leeeed GmbH, München
API-Dokumentation
REST-Schnittstelle für Läufe, Leads, Anreicherung und Webhooks.
Entwurf - noch nicht verfügbar. Diese Schnittstelle ist geplant, aber nicht implementiert: Es gibt weder api.leeeed.de noch nutzerseitige API-Schlüssel, Webhooks oder Rate Limits. Die Seite dokumentiert den vorgesehenen Umfang zur Abstimmung. Die Seite ist bis dahin auf noindex gesetzt.
Basis-URL und Versionierung
Alle Endpunkte liegen unter https://api.leeeed.de/v1. Breaking Changes erscheinen ausschließlich unter einer neuen Versionsnummer im Pfad. Antworten sind immer application/json; charset=utf-8.
Authentifizierung
Die API authentifiziert über einen Bearer-Token. Den Schlüssel finden Sie im Produkt unter Profil → Settings → API. Behandeln Sie ihn wie ein Passwort; er kann jederzeit rotiert werden.
curl https://api.leeeed.de/v1/runs \ -H "Authorization: Bearer lf_live_9f3a…9a63"
Rate Limits
60 Anfragen pro Minute und Konto, 10 parallele Läufe. Jede Antwort enthält X-RateLimit-Remaining und X-RateLimit-Reset. Bei Überschreitung antwortet die API mit 429.
Lauf starten
POST /v1/runs legt einen Scraping-Lauf an und antwortet sofort mit 202 Accepted. Der Lauf verarbeitet asynchron.
curl -X POST https://api.leeeed.de/v1/runs \
-H "Authorization: Bearer $LEEEED_KEY" \
-H "Content-Type: application/json" \
-d '{
"branchen": ["Zahnarzt", "Rechtsanwalt"],
"cities": ["München", "Berlin"],
"max_per_city": 50,
"enrich": true
}'{
"id": "run_8f21c4",
"status": "running",
"created_at": "2026-07-28T14:32:11Z",
"estimated_credits": 400
}Lauf abrufen
GET /v1/runs/{id} liefert Status und Fortschritt. Mögliche Werte für status: queued, running, enriching, completed, failed.
{
"id": "run_8f21c4",
"status": "completed",
"total": 87,
"with_email": 71,
"credits_used": 710
}Leads abrufen
GET /v1/runs/{id}/leads?limit=100&cursor=… gibt die Ergebnisse cursor-paginiert zurück. limit maximal 250.
{
"data": [
{
"id": "lead_a91f0c",
"name": "Zahnarztpraxis Dr. Bauer",
"city": "München",
"branche": "Zahnarzt",
"phone": "+49 89 24 55 12",
"website": "drbauer-dental.de",
"email": "praxis@drbauer-dental.de",
"email_source": "impressum",
"confidence": 0.94
}
],
"next_cursor": "eyJvIjoxMDB9"
}Einzelne Zeile anreichern
POST /v1/leads/{id}/enrich sucht die fehlende E-Mail-Adresse nach. Kostet 10 Credits pro Treffer; erfolglose Versuche werden nicht berechnet.
Webhooks
Unter Profil → Settings → API hinterlegen Sie eine Ziel-URL. Wir senden run.completed und run.failed als POST mit Signatur im Header X-Leeeed-Signature (HMAC-SHA256 über den Rohbody).
{
"event": "run.completed",
"run_id": "run_8f21c4",
"total": 87,
"with_email": 71
}Fehlercodes
400- ungültige Parameter, Details im Felderror.fields401- Schlüssel fehlt, ist abgelaufen oder wurde rotiert402- Guthaben erschöpft, Credits nachkaufen404- Lauf oder Lead nicht gefunden429- Rate Limit erreicht,Retry-Afterbeachten5xx- Serverfehler, idempotenter Retry mit Backoff empfohlen