Stand 28. Juli 2026
leeeed GmbH, München
Entwickler

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 Feld error.fields
  • 401 - Schlüssel fehlt, ist abgelaufen oder wurde rotiert
  • 402 - Guthaben erschöpft, Credits nachkaufen
  • 404 - Lauf oder Lead nicht gefunden
  • 429 - Rate Limit erreicht, Retry-After beachten
  • 5xx - Serverfehler, idempotenter Retry mit Backoff empfohlen
Fragen zu diesem Dokument?kontakt@leeeed.de