Jetzt starten
Zum Inhalt
API

Endpunktreferenz

Methoden, Pfade, Parameter und Antworten der öffentlichen API für Aufträge, Ergebnisse und Guthaben.

Alle Pfade auf dieser Seite sind relativ zu https://api.krake.run/api/v1/. Senden Sie Ihren Schlüssel im Header X-API-Key. Die Konsole unter https://console.krake.run verwendet stattdessen eine Browsersitzung. Kennungen in geschweiften Klammern ersetzen Sie durch die tatsächliche UUID.

Produkt und URL wählen

Produktbezogene Endpunkte
ProduktAPI-PräfixErgebnis
Datenanreicherung (enrichment) /enrichment/ Strukturiertes Unternehmensprofil.
Impressum-Scraper (imprint_scraper) /imprint-scraper/ Strukturiertes Profil mit Angaben aus dem Impressum.
E-Mail-Prüfung (email_verification) /email-verification/ Flaches Prüfergebnis für eine Adresse.

Ersetzen Sie {produkt} in den folgenden Pfaden durch den passenden API-Präfix. Ein Auftrag und seine Datensätze sind nur unter dem Präfix ihres Produkts abrufbar. Das optionale Feld product im Request muss zum URL-Präfix passen.

Einen Datensatz einreichen

POST /{produkt}/batches/ erwartet JSON mit einem Objekt unter input_data. Die nötigen Werte hängen vom Produkt ab; siehe Eingabefelder. Optional können Sie den passenden API-Produktwert unter product senden. Jeder Wert in input_data muss Text oder eine Zahl sein; Listen und Objekte werden abgelehnt. Bei der E-Mail-Prüfung ist genau eine Adresse pro Anfrage erlaubt.

Die Anreicherung und der Impressum-Scraper antworten mit HTTP 202 und batch_id, record_id sowie status. Eine einzelne E-Mail-Prüfung wartet kurz auf das Ergebnis und antwortet gewöhnlich mit HTTP 200 und batch_id plus dem Datensatz einschließlich result. Läuft die Prüfung noch, lautet der Status 202; fragen Sie dann GET /email-verification/records/{record_id}/ ab.

CSV-Auftrag erstellen

POST /{produkt}/batches/csv/ erwartet multipart/form-data.

Parameter des CSV-Uploads
FormularfeldStandardBeschreibung
file Pflicht Eine CSV-Datei mit Kopfzeile und Komma als Trennzeichen; höchstens 50.000 Datenzeilen und 10 MiB.
product Produkt der URL Optional; falls angegeben, muss der API-Produktwert zur URL passen.
overwrite_existing false Bei true erneute Abfrage anfordern. Vorhandene Eingabewerte behalten ihren Vorrang.
export_columns Alle vorhandenen Ergebnisfelder Optionale Liste von Ergebnisfeldern. Bei Multipart den Feldnamen für jeden Wert wiederholen.
scrapers_requested Schritte des Produkts Optionale technische Einschränkung der Verarbeitung. Für den üblichen Ablauf weglassen.
curl --fail-with-body "https://api.krake.run/api/v1/enrichment/batches/csv/" \
  -H "X-API-Key: $KRAKE_API_KEY" \
  -F "file=@unternehmen.csv;type=text/csv" \
  -F "overwrite_existing=false" \
  -F "export_columns=company_name" \
  -F "export_columns=phone" \
  -F "export_columns=email"

Setzen Sie den Multipart-Content-Type nicht selbst; curl -F ergänzt die Boundary. export_columns ist kein kommaseparierter Einzelwert. Die Antwort hat HTTP 202 und enthält batch_id, record_count und estimated_cost_eur.

Kosten und Laufzeit schätzen

POST /{produkt}/batches/eta-estimate/ mit {"records":100} liefert eine unverbindliche Vorschau ohne Auftragserstellung. Die Antwort enthält records, product, scrapers, estimated_cost_eur, eta_seconds, rate_source, bottleneck_scraper und breakdown. Zeitangaben können null sein; records muss positiv sein.

Aufträge lesen

Auftragsabfragen je Produkt
Methode und PfadFunktion / Parameter
GET /{produkt}/batches/list/ Eigene Aufträge dieses Produkts, neueste zuerst. Optional: via_api=true oder false; page_size von 1 bis 1.000.
GET /{produkt}/batches/{batch_id}/ Status, Fortschritt, Kosten und Zeitangaben des Auftrags.
GET /{produkt}/batches/{batch_id}/progress/ Fortschritt als Server-Sent Events; mit Accept: text/event-stream aufrufen.

Auftragsdetails enthalten unter anderem id, status, priority, product, via_api, Datensatzzähler, progress_percent, estimated_credits, actual_credits, billing_paused, uncharged_records und input_filename. Zeitfelder sind created_at, started_at, completed_at, estimated_completion_at und results_purged_at; zusätzlich gibt es eta_seconds_remaining. Die Kostenfelder enthalten Eurobeträge.

Paginierung

Die Auftragsliste liefert standardmäßig 50 Einträge pro Seite mit next, previous und results. Sie verwendet einen Cursor und enthält kein count. Folgen Sie der vollständigen URL in next. Die Buchungsliste unter /wallet/transactions/ ist genauso aufgebaut, mit höchstens 500 Einträgen pro Seite.

Die Datensatzliste liefert count, next, previous und results. Standard und Maximum sind 1.000 Datensätze pro Seite; ?page=2&page_size=100 wählt eine kleinere Seite. index ist die 1-basierte Position im gesamten Auftrag.

Fortschritt als Ereignisstrom

curl --no-buffer --fail-with-body \
  "https://api.krake.run/api/v1/enrichment/batches/$BATCH_ID/progress/" \
  -H "X-API-Key: $KRAKE_API_KEY" \
  -H "Accept: text/event-stream"

data:-Nachrichten enthalten JSON mit Status und Fortschrittswerten; Kommentare wie : heartbeat halten die Verbindung offen. Der Stream schließt bei einem Endzustand. Ein API-Client muss den Header selbst setzen können; die native Browser-EventSource-Schnittstelle bietet dies nicht.

Datensätze und Ergebnisse lesen

Ergebnisendpunkte je Produkt
Methode und PfadAusgabe
GET /{produkt}/batches/{batch_id}/records/ Paginierte Datensätze mit id, index, status, input_data, result, error, charged, charge_amount und payment_pending.
GET /{produkt}/records/{record_id}/ Ein einzelner Datensatz mit derselben Struktur.
GET /{produkt}/batches/{batch_id}/export/ CSV-Datei nach Abschluss oder Stopp. Bei der Anreicherung: ?layout=full für alle Felder und ?layout=without_result für Zeilen ohne Ergebnis. Werkzeuge haben einen vollständigen Export; sie ignorieren den Layout-Parameter.

Das result unterscheidet sich je nach Produkt; siehe Ergebnisse & Export und E-Mail-Prüfung. Der Kunden-API stehen keine Rohdaten, technischen Verarbeitungsschritte oder genauen Quellen pro Feld zur Verfügung. Nach Ablauf der Aufbewahrungsfrist antworten Export und Datensatzliste mit HTTP 410 und code: "results_expired". Einzelne gelöschte Datensätze antworten mit 404.

Aufträge steuern

Die folgenden POST-Aufrufe benötigen keinen fachlichen Request-Body und gelten jeweils unter dem Produktpräfix.

Auftragsaktionen
Pfad (POST)VoraussetzungAntwort
/{produkt}/batches/{batch_id}/cancel/ validating, queued oder processing. Aktualisierte Auftragsdetails.
/{produkt}/batches/{batch_id}/restart/ cancelled, failed oder partially_completed. Aktualisierte Auftragsdetails mit Status queued; nur fehlgeschlagene Datensätze werden erneut eingeplant.
/{produkt}/batches/{batch_id}/retry-billing/ billing_paused=true. charged, failed, total_charged_eur und billing_paused.
/{produkt}/batches/retry-billing/ Offene Ergebnisse und Guthaben. {"charged": …} für dieses Produkt, ältere Aufträge zuerst.

Nach der Ergebnisbereinigung antworten Neustart und nachträgliche Abrechnung eines Auftrags mit 410. Eine fremde Kennung oder ein Auftrag unter dem falschen Produktpräfix liefert 404.

Guthaben und Buchungen

Weitere Endpunkte auf dem API-Host
Methode und PfadEingabe / Ausgabe
GET /wallet/ balance als Dezimalstring und created_at.
GET /wallet/transactions/ Eigene Buchungen, neueste zuerst, unter anderem mit id, type, amount, balance_after, label, details, job_reference, job_name, subject, description, batch_id, record_id, refunded_charge_id und created_at. Optional: page_size von 1 bis 500.
GET /health/ Technische Erreichbarkeitsprüfung ohne Anmeldung.

Guthaben aufladen, API-Schlüssel verwalten und Supportanfragen senden Sie über die Konsole. Diese Aktionen sind auf dem API-Host nicht freigegeben.