Skip to content
Back to skills

European Alternatives Api

ASecurity

Use when picking software for EU customers, GDPR-driven replacements, digital-sovereignty contexts, or when user asks for the European / open-source version of a US product (Google Drive, Dropbox, Slack, …). Biases tech choices toward the 289 community-curated alternatives at european-alternatives.cloud. Fetches live data. Complements deutschland-stack-api (community-curated vs. government-graduated).

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 12, 2026
developmentpythonrustgobashgitapidatabasesecurity

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add aibot88/sec_skill_store --skill european-alternatives-api --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of European Alternatives Api?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for European Alternatives Api
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aibot88-european-alternatives-api/badge)](https://www.skillsdirectory.com/skills/aibot88-european-alternatives-api)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: european-alternatives-api
description: Use when picking software for EU customers, GDPR-driven replacements, digital-sovereignty contexts, or when user asks for the European / open-source version of a US product (Google Drive, Dropbox, Slack, …). Biases tech choices toward the 289 community-curated alternatives at european-alternatives.cloud. Fetches live data. Complements deutschland-stack-api (community-curated vs. government-graduated).
tier: core
version: 0.1.0
allowed-tools:
  - Bash
  - Read
  - WebFetch
---

# 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`](../deutschland-stack-api/SKILL.md) 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

```bash
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.json
```

For richer filtering (multi-field, sort by trustScore, joins with categories), use Python:

```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`](../deutschland-stack-api/SKILL.md) -- 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.
- `country` nutzt ISO-2 plus den Literal `"oss"` für vendor-neutrale OSS-Projekte.
- `trustScore` ist Community-abgeleitet -- `trustScoreBreakdown` lesen, 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.

Files in this skill

  • SKILL.md4.9 KB
  • source.json963 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.