Überblick
Über die Anfragekraft Partner-API können Sie als Lead-Lieferant Datensätze in Echtzeit an unser CRM übertragen. Jeder Lead durchläuft automatisch Adress-Geocoding, Dublettenprüfung und wird anschließend nach unserem Regelwerk an passende Vertriebspartner ausgeliefert.
- Echtzeit-Ingest via HTTPS
- HMAC-signierte Webhooks bei Statusänderung
- JSON-Body, bis zu 500 Leads pro Request
- TLS 1.2+, DSGVO-konforme Verarbeitung
Authentifizierung
Jeder Request muss mit einem API-Key authentifiziert werden. Sie erhalten Ihren persönlichen Key nach Freischaltung im CRM-Bereich API-Quellen. Der Key ist geheim — behandeln Sie ihn wie ein Passwort und geben Sie ihn niemals in Frontend-Code weiter.
Empfohlener Standard-Header.
Kleinbuchstaben-Variante wird ebenfalls akzeptiert.
Alternativ als Bearer-Token.
curl -X POST https://app.anfragekraft.de/api/public/leads/ingest \
-H "X-API-KEY: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"leads":[{"lastname":"Mustermann","zipcode":"10115","phone":"+491701234567"}]}'HTTP 401. Rate-Limit: 60 Requests/Minute pro Key.Sandbox (Testebene)
Testen Sie Ihre Integration zuerst in der Sandbox. Endpoint, Feldschema und Antwortstruktur sind identisch zum Live-Betrieb — entscheidend ist allein der verwendete API-Key.
Validierung, Mapping und Dublettenlogik laufen vollständig — es wird nichts gespeichert und nichts ausgeliefert. Antwort: mode: sandbox, test: true, Lead-Nummern AK-TEST-000001.
Lead wird gespeichert, dedupliziert, geocodiert und ausgeliefert. Antwort: mode: live mit echter Lead-Nummer AK-2026-000123.
curl -X POST https://app.anfragekraft.de/api/public/leads/ingest \
-H "X-API-KEY: lk_test_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"leads":[{"external_id":"LX-1001","lastname":"Mustermann","email":"max@example.com","phone":"+491701234567","zipcode":"10115"}]}'HTTP 401. Nach erfolgreichem Test tauschen Sie lediglich den Key aus.Endpoint
https://app.anfragekraft.de/api/public/leads/ingestNimmt einen einzelnen Lead oder ein Array von bis zu 500 Leads entgegen. Antwort enthält je Lead ein Ergebnis-Objekt (accepted, duplicate, rejected, error).
Request-Body
Entweder ein einzelnes Lead-Objekt, ein Array oder { "leads": [...] }.
{
"leads": [
{
"salutation": "Herr",
"first_name": "Max",
"last_name": "Mustermann",
"email": "max@example.com",
"phone": "+491701234567",
"street": "Musterstraße",
"house_no": "12",
"zip": "10115",
"city": "Berlin",
"country": "DE",
"vertical": "energie",
"source": "partner-xyz",
"notes": "Interessiert an PV-Anlage"
}
]
}Feld-Mapping
Wir akzeptieren unser eigenes Feld-Schema sowie das Interlead-Feldschema. Alias-Felder werden automatisch auf unser internes Schema gemappt.
| Feld | Aliase (auch akzeptiert) | Typ | Pflicht |
|---|---|---|---|
| last_name | lastname, nachname, surname | string | Ja |
| email, e_mail, mail | string | Ja | |
| phone | phone, mobile, mobil, telefon, tel | string (E.164) | Ja |
| salutation | anrede, gender | string | optional |
| first_name | firstname, vorname, given_name | string | optional |
| street | strasse, straße, streetname | string | optional |
| house_no | housenumber, hausnummer, hnr | string | optional |
| zip | zipcode, postcode, postal_code, plz | string | optional |
| city | ort, stadt, town | string | optional |
| country | land, country_code | ISO-3166-α2 | optional |
| vertical | branche, campaign, kampagne, product | string | optional |
| source | quelle, partner, supplier | string | optional |
| notes | notiz, kommentar, comment, message | string | optional |
| external_id | lead_id, supplier_id, supplier_ref, provider_lead_id, partner_lead_id, ref, reference, referenz, id | string | optional |
Mindestens eines der Pflichtfelder (last_name, email, phone) muss gesetzt sein — sonst wird der Lead abgelehnt.
Response
{
"ok": true,
"import_id": "b6d1…",
"total": 3,
"accepted": 2,
"duplicates": 1,
"rejected": 0,
"results": [
{
"index": 0,
"status": "accepted",
"id": "8f2c…"
},
{
"index": 1,
"status": "duplicate",
"id": "1a9e…"
},
{
"index": 2,
"status": "accepted",
"id": "44b7…"
}
]
}Lieferbestätigung der Leads
Jede erfolgreiche Übertragung wird verbindlich quittiert. Sie erhalten synchron in der HTTP-Antwort zu jedem Lead unsere Lead-Nummer zurück, gespiegelt an Ihrer eigenen ID — damit ist die Lieferung eindeutig bestätigt und beidseitig zuordenbar.
| Feld | Bedeutung |
|---|---|
| confirmed | true, sobald der Request verarbeitet wurde (Lieferbestätigung auf Request-Ebene). |
| received_at | Zeitstempel des Eingangs (ISO-8601, UTC). |
| lead_no / lead_id | Unsere Lead-Nummer, z. B. AK-2026-000123 (Sandbox: AK-TEST-000001). |
| lead_uuid | Interne technische ID des Leads. |
| supplier_lead_id | Ihre übergebene external_id — zurückgespiegelt. |
| received | true je Lead: Datensatz angenommen und quittiert. |
| status | accepted, duplicate, rejected oder error. |
| confirmations | Kompakte Zuordnungsliste: Ihre ID → unsere Lead-Nummer. |
{
"ok": true,
"confirmed": true,
"mode": "live",
"received_at": "2026-08-02T09:14:22.481Z",
"import_id": "b6d1…",
"total": 3,
"accepted": 2,
"duplicates": 1,
"rejected": 0,
"results": [
{
"index": 0,
"status": "accepted",
"received": true,
"lead_no": "AK-2026-000123",
"lead_id": "AK-2026-000123",
"lead_uuid": "8f2c…",
"supplier_lead_id": "LX-1001"
},
{
"index": 1,
"status": "duplicate",
"received": true,
"lead_no": "AK-2026-000124",
"supplier_lead_id": "LX-1002",
"duplicate_of": "0b3f…"
},
{
"index": 2,
"status": "accepted",
"received": true,
"lead_no": "AK-2026-000125",
"supplier_lead_id": "LX-1003"
}
],
"confirmations": [
{
"supplier_lead_id": "LX-1001",
"lead_no": "AK-2026-000123"
},
{
"supplier_lead_id": "LX-1002",
"lead_no": "AK-2026-000124"
},
{
"supplier_lead_id": "LX-1003",
"lead_no": "AK-2026-000125"
}
]
}lead_no zu Ihrer eigenen ID: Nur diese Nummer verwenden wir in Statistik-Abgleich, Retouren und Support — und ausschließlich sie wird an die belieferten Unternehmen übermittelt. Bleibt die Antwort aus (Timeout), wiederholen Sie den Request mit identischer external_id — die Dublettenprüfung verhindert eine Doppel-Erfassung.Code-Beispiele
curl -X POST https://app.anfragekraft.de/api/public/leads/ingest \
-H "X-API-KEY: $ANFRAGEKRAFT_KEY" \
-H "Content-Type: application/json" \
-d @lead.jsonDublettenprüfung
Jeder Lead wird über einen SHA-256-Hash aus normalisierter Telefonnummer, E-Mail sowie Straße/Hausnummer/PLZ auf Dubletten geprüft. Existiert bereits ein Lead mit gleichem Hash, wird der neue Datensatz als duplicate markiert, gespeichert (mit Referenz auf das Original) und nicht weiter ausgeliefert.
Status-Webhooks
Auf Wunsch senden wir Statusänderungen (z. B. delivered, returned) per HMAC-signierten Webhook an eine URL Ihrer Wahl. Die Signatur liegt im HeaderX-Anfragekraft-Signature als Hex-HMAC-SHA256 über den raw-Body.
Aktivierung im CRM unter API-Quellen → Webhook.
Sie möchten Leads liefern?
Wir richten Ihren API-Zugang innerhalb von 24 Stunden ein.
API-Zugang anfragen