WebmeticDocs

Asynchrone Ergebnisse

Asynchrone Ergebnisse sind Antworten, die Webmetic erst nach Ihrer Anfrage fertigstellt.

Zwei Enrichment-Aufrufe in der API arbeiten auf diese Weise. Zum Beispiel senden Sie 300 Domains aus Ihrer Messeliste an eine Enrichment-Liste. Die API bestätigt sofort mit HTTP 202, und Sie holen die Unternehmensdaten später ab.

Ein 202 ist also weder ein Fehler noch ein Auftrag mit Job-ID.

Asynchrone Endpunkte

Nur zwei Endpunkte antworten mit 202, und beide gehören zu Enrichment:

Alle anderen Endpunkte antworten sofort mit dem Ergebnis oder einem Fehler, auch die für Ansprechpartner unter /contacts/*.

Beide Aufrufe brauchen den Enrichment-Schlüssel, nicht den Schlüssel für Visitor Intelligence. Neue Listen, neue Domains und Einzelabfragen brauchen außerdem die Testphase, den Plan Growth oder den Plan Enterprise. Sonst antwortet die API mit 403 und PLAN_REQUIRED.

Einzelabfrage

Wenn Webmetic die Domain schon kennt, antwortet die API sofort mit 200 und "status": "found". Sonst beginnt Webmetic mit der Arbeit und antwortet mit 202:

HTTP/1.1 202 Accepted
Retry-After: 15

{"status": "processing", "domain": "beispiel.de", "retry_after_seconds": 15}

Wiederholen Sie dann dieselbe Anfrage nach so vielen Sekunden, wie retry_after_seconds oder der Header Retry-After nennt. Eine Wiederholung startet keinen zweiten Lauf für dieselbe Domain.

Fragen Sie erneut, bis die API mit 200 und found oder mit 404 und not_found antwortet. Ein 404 heißt hier, dass die Website nicht erreichbar war oder keine verwertbaren Daten hatte.

Wenn Webmetic die Website erst lesen muss, dauert das Stunden bis einige Tage. Die API beendet die Einzelabfrage in dieser Zeit nicht von selbst. Geben Sie Ihrem Client deshalb eine eigene Höchstdauer, nach der er nicht mehr fragt.

Für unbekannte Domains empfehlen wir eine Liste, denn dort endet jede Zeile mit einem Ergebnis.

curl -i "https://hub.webmetic.de/enrichment/company?domain=beispiel.de" \
  -H "Authorization: wmtc_IHR_API_SCHLUESSEL"

Ablauf einer Liste

  1. 1Domains sendenDie API antwortet mit 202 und zählt neue, vorhandene und ungültige Domains.
  2. 2Webmetic reichert anJede neue Zeile startet als pending und wechselt zu enriching.
  3. 3Fortschritt abfragenSie rufen die Liste ab, bis pending_rows 0 ist.
  4. 4Ergebnisse abholenSie laden die Zeilen als JSON oder als CSV-Datei.

Die Liste selbst legen Sie vorher mit POST /enrichment/lists an, und die API antwortet darauf sofort mit 201. Danach senden Sie bis zu 5.000 Domains pro Anfrage:

curl -X POST "https://hub.webmetic.de/enrichment/lists/IHRE_LISTEN_ID/domains" \
  -H "Authorization: wmtc_IHR_API_SCHLUESSEL" \
  -H "Content-Type: application/json" \
  -d '{"domains": ["beispiel.de", "muster-gmbh.de"]}'

added zählt die neuen Zeilen, invalid die Einträge ohne gültige Domain. skipped_existing zählt Domains, die schon in der Liste stehen und die Webmetic deshalb nicht erneut anreichert.

GET /enrichment/lists/{list_id} zeigt den Fortschritt mit drei Zählern:

  • done_rows: Zeilen mit dem Status done.
  • miss_rows: Zeilen mit dem Status miss.
  • pending_rows: alle übrigen Zeilen, also pending und enriching.

Anders als die Einzelabfrage nennen die Listen-Endpunkte kein Abfrageintervall. Weil unbekannte Domains Stunden brauchen, genügen seltene Abfragen.

Wenn pending_rows auf 0 steht, ist jede Zeile der Liste fertig. Rufen Sie dann /rows seitenweise mit page und page_size ab. Eine Seite umfasst standardmäßig und höchstens 10.000 Zeilen, und die Antwort enthält rows, total und pagination.

Der Filter status akzeptiert einen der vier Statuswerte, und total zählt dann nur die passenden Zeilen. /export liefert alle Zeilen auf einmal als CSV-Datei.

curl "https://hub.webmetic.de/enrichment/lists/IHRE_LISTEN_ID" \
  -H "Authorization: wmtc_IHR_API_SCHLUESSEL"

curl "https://hub.webmetic.de/enrichment/lists/IHRE_LISTEN_ID/rows?status=done&page=1" \
  -H "Authorization: wmtc_IHR_API_SCHLUESSEL"

Zeilenstatus

Jede Zeile einer Liste hat einen von vier Statuswerten. Das Dashboard zeigt dieselben Zeilen mit eigenen Bezeichnungen:

StatusBedeutungIm Dashboard
pendingDie Zeile wartet auf die BearbeitungEnriching
enrichingWebmetic reichert die Zeile gerade anEnriching
doneWebmetic hat Daten gefundenEnriched
missWebmetic hat keine verwertbaren Daten gefundenNicht gefunden

Enrichment-Liste beschreibt alle Felder einer Zeile.

done und miss sind endgültig. Solange Webmetic die Website noch lesen muss, kann eine Zeile von enriching zurück auf pending wechseln.

  • Teilweise gefüllt: Weil Webmetic die Felder einer Zeile nacheinander schreibt, zeigen /rows und /export vor dem Ende auch halb gefüllte Zeilen.
  • Leere Felder: Auch eine Zeile mit done kann leere Felder haben, wenn Webmetic einen Wert nicht kennt. In /rows stehen diese Felder als null.
  • Dashboard: Listen aus der API erscheinen im Tab Enrichment, Einzelabfragen dagegen nicht.

Credits und Webhooks

Das Abfragen des Status kostet keine Credits, weder die Wiederholung der Einzelabfrage noch der Abruf von Liste, Zeilen und Export.

Enrichment kostet derzeit keine Credits. Mehr dazu unter Credits in der API.

Webmetic sendet für Enrichment-Ergebnisse kein Webhook-Ereignis, denn Webhooks melden nur Besuche von Unternehmen auf Ihrer Website. Deshalb fragen Sie den Fortschritt einer Liste selbst ab.

Nächste Schritte

Auf dieser Seite