european-alternatives-api
Skill2 starsChanged 30 days agoMITView on GitHub
Looks up the community-curated european-alternatives.cloud catalogue of EU-hosted and open-source replacements for US products (live data). Use when picking software for EU customers, GDPR-driven replacements, digital-sovereignty contexts, or when the user asks for the European or open-source version of a product such as Google Drive, Dropbox or Slack. Not for German public-sector standards (deutschland-stack-api).
In this repository32 other files it gives its agents.
- AGENTS.mdAGENTS.md
- check-consistencySkill
- adopt-brownfieldSkill
- atomic-designSkill
- code-reviewSkill
- deutschland-stack-apiSkill
- document-releaseSkill
- finish-branchSkill
- grillSkill
- handoff-sessionSkill
- init-projectSkill
- minimal-codeSkill
- office-hoursSkill
- oss-projectSkill
- plan-ceo-reviewSkill
- plan-eng-reviewSkill
- plan-milestoneSkill
- plan-taskSkill
- quick-taskSkill
- reassess-roadmapSkill
- reconcileSkill
- resume-sessionSkill
- retroSkill
- shipSkill
- slice-milestoneSkill
- software-craftsmanshipSkill
- spawn-milestone-teamSkill
- summarize-taskSkill
- systematic-debuggingSkill
- test-driven-developmentSkill
- using-ytstackSkill
- verification-before-completionSkill
The file
Files
European Alternatives
Community-kuratierter Katalog unter https://european-alternatives.cloud/en. 289 Einträge über 46 Kategorien, überwiegend DE/CH/FR/NL. Quelle: https://github.com/TheMorpheus407/european-alternatives.
Kernprinzip: Wenn für ein US-Produkt eine europäische oder Open-Source-Alternative gesucht wird, zuerst hier nachschlagen. Für Behörden-/Vergabe-Kontexte hat deutschland-stack-api Vorrang; EA ergänzt um Breite und Aktualität.
Wann anwenden
- User fragt nach einer EU-/OSS-Alternative zu einem konkreten US-Produkt
- Tech-Stack-Pick mit GDPR- oder EU-Data-Residency-Anforderung
- Cross-Check des Deutschland-Stack mit Community-View (DS = staatlich graduated; EA = community, breiter, weniger streng)
- Audits der Form "was ersetzt X, und wer ersetzt es noch"
Nicht anwenden für reines Web-Scraping der Seite -- die API liefert dieselben Daten strukturiert.
Endpoints
Base: https://european-alternatives.cloud/api/catalog
| Endpoint | Größe | Inhalt |
/categories | ~9 KB | 46 Kategorien mit usGiants und alternativeCount |
/entries?status=alternative | ~1.9 MB | 289 Alternativen (full database) |
/entries?status=us | ~700 KB | 109 US-Originale, die ersetzt werden |
/entries?status=denied | ~50 KB | 18 abgelehnte Einträge mit Begründung |
/landing-groups | ~1 KB | Kategorie-Cluster (privacy-security, communication-work, …) |
/further-reading | ~1 KB | Weitere Verzeichnisse (european-alternatives.eu, Privacy Guides, PRISM Break) |
Alle liefern {"data": [...]}. Keine Pagination, keine Auth. Für wiederholte Lookups in einer Session einmal cachen (-o /tmp/ea-alts.json).
Eintrags-Schema (Alternativen)
id, name, description, website, logo, country (ISO-2 / "oss"),
category, replacesUS[], isOpenSource, pricing (free|freemium|paid),
tags[], openSourceLevel, openSourceAuditUrl, sourceCodeUrl,
headquartersCity, license, dateAdded, localizedDescriptions{},
reservations[], positiveSignals[], trustScore (0-100),
trustScoreStatus, trustScoreBreakdown{}US-Einträge lassen OSS-Felder weg; denied-Einträge haben zusätzlich deniedDecision.
Lookup-Patterns
BASE="https://european-alternatives.cloud/api/catalog"
# 1. List all categories with counts
curl -s "$BASE/categories" | jq -r '.data[] | "\(.alternativeCount)\t\(.name)\t\(.usGiants | join(", "))"'
# 2. Find what replaces a specific US product (by id, e.g. "google-drive")
curl -s "$BASE/entries?status=alternative" \
| jq '.data[] | select(.replacesUS | index("google-drive")) | {name, country, website, isOpenSource, trustScore}'
# 3. All alternatives in a category (e.g. "email")
curl -s "$BASE/entries?status=alternative" \
| jq '.data[] | select(.category=="email") | {name, country, pricing, trustScore}'
# 4. Open-source only, filtered by country
curl -s "$BASE/entries?status=alternative" \
| jq '.data[] | select(.isOpenSource==true and .country=="de") | .name'
# 5. Cache the full alternatives JSON locally (re-fetch occasionally -- community catalog grows)
curl -s "$BASE/entries?status=alternative" -o /tmp/ea-alts.jsonFor richer filtering (multi-field, sort by trustScore, joins with categories), use Python:
import json, urllib.request
B = "https://european-alternatives.cloud/api/catalog"
alts = json.load(urllib.request.urlopen(f"{B}/entries?status=alternative"))["data"]
cats = {c["id"]: c for c in json.load(urllib.request.urlopen(f"{B}/categories"))["data"]}
# Top-trust EU-hosted LLM alternatives
llm = [a for a in alts if a["category"] == "large-language-models" and a["country"] != "us"]
for a in sorted(llm, key=lambda x: -(x.get("trustScore") or 0))[:5]:
print(f"{a['trustScore']:>3} {a['name']:<25} ({a['country']}) -- {a['website']}")Siehe auch
deutschland-stack-api-- Staatlich graduated/auditiert, enger Scope, Vergabe-relevant. Bei ÖR-Kontext hat DS Vorrang; EA ergänzt um Breite und Aktualität.
Caveats
- API ist undokumentiert (aus JS-Bundle extrahiert). Kein SLA, kein Versions-Pinning.
countrynutzt ISO-2 plus den Literal"oss"für vendor-neutrale OSS-Projekte.trustScoreist Community-abgeleitet --trustScoreBreakdownlesen, bevor er zitiert wird.- Für Sessions mit vielen Filter-Queries die Alternativen-JSON einmal cachen -- 1.9 MB pro Call summiert sich.
- Community-Katalog wächst -- gelegentlich neu fetchen.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

