WebmeticDocs

Enrichment-Liste

Eine Enrichment-Liste sammelt Domains, zu denen Webmetic Unternehmensdaten ergänzt, mit einer Zeile je Domain.

Ein Beispiel: Sie senden die Domains Ihrer Messekontakte an eine Liste. Webmetic ergänzt jede Zeile um Branche, Mitarbeiterzahl und Telefonnummer oder schließt sie ohne Daten ab.

Listen gehören zu Ihrem Konto. Die API liefert dieselben Listen, die Ihr Team im Tab Enrichment sieht.

Alle Endpunkte brauchen den Enrichment-Schlüssel, nicht den Schlüssel für Visitor Intelligence, wie unter Authentifizierung beschrieben.

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

Liste

Eine Liste hat keinen eigenen Status und ist fertig, wenn pending_rows 0 ist. Wie Sie darauf warten, steht unter Asynchrone Ergebnisse.

FeldTypBeispielBeschreibung
idstring"6717a3c2e4b0a1f2c3d4e5f6"ID der Liste, 24 Zeichen
namestring"Messe-Kontakte Oktober"Name mit 1 bis 200 Zeichen. Namen müssen nicht eindeutig sein
descstring"Gespräche am Messestand"Beschreibung mit bis zu 1.000 Zeichen, leer ohne Beschreibung
created_atstring"2026-10-22T09:15:04.512000"Wann die Liste angelegt wurde, in UTC
updated_atstring"2026-10-22T09:15:04.512000"Zeitpunkt der letzten Änderung, derzeit gleich created_at
total_rowsinteger120Alle Zeilen der Liste
done_rowsinteger104Zeilen mit done, im Dashboard Gefunden
miss_rowsinteger16Zeilen mit miss, im Dashboard Nicht gefunden
pending_rowsinteger0Zeilen mit pending oder enriching, im Dashboard Ausstehend

Eine neue Liste hat in allen Zählern 0. Wie die API Zeitangaben schreibt, steht unter Zeiträume und Zeitzonen.

Sie können eine Liste nur im Dashboard löschen und derzeit nicht umbenennen.

Zeile

Eine Zeile steht für eine Domain in einer Liste. Jede Zeile beginnt mit sechs eigenen Feldern, auf die die Datenfelder des Unternehmens folgen. In /rows hat jede Zeile alle Felder, und unbekannte Werte stehen als null darin.

FeldTypBeispielBeschreibung
idstring"6717a3c2e4b0a1f2c3d4e601"ID der Zeile, 24 Zeichen
domainstring"bergquell.example"Die gekürzte Domain. Wenn die Website auf eine Domain weiterleitet, die Webmetic schon kennt, steht danach diese Domain hier
statusstring"done"Stand der Zeile, siehe unten
srcstring oder null"db"Herkunft der Daten: db aus vorhandenen Daten, ext neu ermittelt, miss nicht gefunden. null, solange die Zeile offen ist
created_atstring"2026-10-22T09:15:09.207000"Wann die Zeile angelegt wurde, in UTC
enriched_atstring oder null"2026-10-22T09:16:02.418000"Wann die Zeile done oder miss wurde. Vorher null

Sie können Zeilen nur im Dashboard ändern oder entfernen. Webmetic reichert jede Zeile einmal an und aktualisiert sie danach nicht.

Status

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

Eine neue Zeile startet als pending und wechselt zu enriching, sobald Webmetic sie bearbeitet. Am Ende steht done oder miss, und beide Werte sind endgültig. Solange Webmetic die Website noch lesen muss, kann eine Zeile von enriching zurück auf pending wechseln.

Unternehmen, die Webmetic schon kennt, sind nach etwa einer Minute fertig. Wenn Webmetic die Website erst lesen muss, kann das Stunden bis einige Tage dauern.

Weil Webmetic die Datenfelder in mehreren Schritten schreibt, kann eine Zeile mit enriching schon teilweise gefüllt sein. Auch eine Zeile mit done kann Felder mit null haben, wenn Webmetic einen Wert nicht kennt. Eine Zeile mit miss behält den Platzhalter als Namen und die Domain. Nach technischen Fehlern kann sie auch einige Datenfelder tragen.

Datenfelder

Die Datenfelder sind flach, und jeder Wert ist Text oder null. Spannen, Branchen und Beschreibungen sind immer deutsch, auch wenn Ihr Dashboard Englisch zeigt.

FeldTypBeispielBeschreibung
company_namestring oder null"Bergquell Mineralbrunnen GmbH"Name des Unternehmens. Bis Daten ankommen, steht hier ein Platzhalter aus der Domain wie Bergquell
company_urlstring oder null"bergquell.example"Adresse der Website ohne www.. Nach dem Anreichern ist es die Adresse, unter der die Website antwortet. Diese Adresse kann deshalb eine Subdomain enthalten und von domain abweichen
company_logo_urlstring oder null"https://logos.docs.example/bergquell.png"Adresse des Logos
industrystring oder null"Industrie & Fertigung"Branche als deutsche Bezeichnung. Mehrere Branchen stehen kommagetrennt, die wichtigste zuerst
nace_codesstring oder null"11.07"NACE-Codes, getrennt durch Komma und Leerzeichen
wz2025_codesstring oder null"11.07.0"Codes der WZ 2025, getrennt wie nace_codes
employee_countstring oder null"201–500"Mitarbeiterzahl als Spanne: 1–10, 11–50, 51–200, 201–500, 501–1.000, 1.001–5.000, 5.001–10.000 oder 10.000+
revenuestring oder null"50–100 Mio. €"Jahresumsatz als Spanne, von < 100 Tsd. € bis > 500 Mio. €
addressstring oder null"Brunnenweg 4"Straße und Hausnummer
postal_codestring oder null"85354"Postleitzahl
citystring oder null"Freising"Ort
countrystring oder null"DE"Land als ISO-Code mit zwei Buchstaben. Wenn sich das Land nicht zuordnen lässt, steht hier der Name wie gefunden
phone_numberstring oder null"+49 89 99998214"Allgemeine Telefonnummer
fax_numberstring oder nullFaxnummer
email_addressstring oder null"info@bergquell.example"Allgemeine E-Mail-Adresse des Unternehmens
directorsstring oder null"Florian Obermaier"Geschäftsführung, kommagetrennt
organization_typestring oder null"business"Art der Organisation, keine Rechtsform: business (Unternehmen), academic (Bildung und Forschung), government (Behörde), isp (Internet- oder Hosting-Anbieter) oder non_entity (keine Organisation)
vat_idstring oder null"DE000000000"Umsatzsteuer-ID
tax_numberstring oder null"115/000/00000"Steuernummer
registration_numberstring oder null"HRB 000000"Handelsregisternummer
registration_courtstring oder null"Amtsgericht München"Registergericht
short_description_destring oder nullKurze Beschreibung
full_description_destring oder nullAusführliche Beschreibung
what_they_do_destring oder nullWas das Unternehmen tut
how_they_make_money_destring oder nullGeschäftsmodell
target_audience_destring oder nullZielgruppe
linkedin, facebook, instagram, youtube, twitterstring oder null"https://www.linkedin.com/company/bergquell-mineralbrunnen-example"Profil des Unternehmens im jeweiligen Netzwerk. Bei LinkedIn nur Unternehmensseiten
primary_color, secondary_colorstring oder null"#1f6feb"Haupt- und Zweitfarbe aus dem Logo als Hex-Wert

Unterschiede zu Company

Die Datenfelder ähneln dem Objekt Company aus Visitor Intelligence, haben aber eine andere, flache Form:

  • Verbindung: Zeilen haben keine company_id. Um sie mit Besuchsdaten zu verbinden, vergleichen Sie domain mit company_url aus Company, gekürzt auf die Domain ohne www. und Subdomain.
  • Spannen: employee_count und revenue sind Text wie 201–500, in Company zwei Zahlen [min, max].
  • Codes: nace_codes und wz2025_codes sind kommagetrennte Codes, in Company Objekte mit Beschreibungen.
  • Geschäftsführung: directors ist ein Text, in Company eine Liste.
  • Land: country ist der ISO-Code, und ein eigenes Feld country_code fehlt.
  • Weitere Felder: Scores wie relevance_score und englische Beschreibungen fehlen. Dafür kommt industry hinzu.

Regeln für Domains

POST /enrichment/lists/{list_id}/domains nimmt 1 bis 5.000 Einträge pro Anfrage an. Für mehr Domains senden Sie weitere Anfragen an dieselbe Liste.

Webmetic kürzt jeden Eintrag auf die Hauptdomain:

  • Webmetic entfernt Protokoll, Pfad, Port, www. und Subdomains und schreibt alles klein.
  • Von einer E-Mail-Adresse bleibt der Teil nach dem @.
  • Aus https://www.ihre-website.de/kontakt, shop.ihre-website.de und info@ihre-website.de wird so ihre-website.de.
  • Weil die Subdomain einer Plattform zur Domain der Plattform wird, geben Sie die eigene Domain des Unternehmens an.

Die Antwort mit Status 202 enthält nur Zähler, keine Zeilen:

  • added: neue Zeilen in der Liste.
  • skipped_existing: Domains, die schon in der Liste stehen. Webmetic legt sie kein zweites Mal an, aber in einer anderen Liste darf dieselbe Domain stehen.
  • invalid: Einträge ohne Domain, zum Beispiel ein Unternehmensname.

Wenn eine Domain in derselben Anfrage mehrmals steht, legt Webmetic sie einmal an und zählt die Wiederholungen nicht.

Neue Listen, neue Domains und Einzelabfragen funktionieren nur in der Testphase und in den Plänen Growth und Enterprise. Sonst antwortet die API mit 403 und PLAN_REQUIRED.

In Starter und Free lesen und exportieren Sie bestehende Listen weiter. Die Ausnahme sind Konten, die Enrichment derzeit nicht nutzen können, zum Beispiel nach einer Kündigung. Für diese Konten antwortet jeder Enrichment-Aufruf mit 403 und ACCOUNT_NOT_ELIGIBLE, wie unter Fehler beschrieben.

Seiten, Filter und Export

GET /enrichment/lists und GET /enrichment/lists/{list_id}/rows liefern die neuesten Einträge zuerst, seitenweise mit page und page_size, wie unter Paginierung beschrieben.

Der Filter status nimmt pending, enriching, done oder miss an, und total zählt dann nur die passenden Zeilen. Ein anderer Wert ergibt Status 422 mit VALIDATION_ERROR.

GET /enrichment/lists/{list_id}/export liefert alle Zeilen einer Liste in einer Antwort als CSV-Datei. Die Datei ist in UTF-8 mit BOM kodiert, trennt mit Komma und hat deutsche Spaltennamen wie Branche und Mitarbeiter.

Einzelabfrage

GET /enrichment/company liefert dieselben Datenfelder für eine Domain im Objekt company. Daneben stehen "status": "found" und die gekürzte domain.

Leere Felder fehlen dort ganz, statt null zu sein. Das Objekt company enthält die Felder id, status, src und die Zeitangaben einer Zeile nicht. industry nennt dort nur die wichtigste Branche.

Wenn Webmetic die Domain kennt, antwortet die API sofort. Unbekannte Domains brauchen Stunden bis einige Tage, wie unter Asynchrone Ergebnisse beschrieben.

Wenn Webmetic die Website nicht lesen kann oder dort keine Unternehmensdaten findet, antwortet die API mit 404 und "status": "not_found".

Die Einzelabfrage legt keine Zeile an und erscheint nicht im Dashboard.

Beispiel

Das erste Beispiel zeigt eine fertige Liste:

GET /enrichment/lists/6717a3c2e4b0a1f2c3d4e5f6
{
  "list": {
    "id": "6717a3c2e4b0a1f2c3d4e5f6",
    "name": "Messe-Kontakte Oktober",
    "desc": "Gespräche am Messestand",
    "created_at": "2026-10-22T09:15:04.512000",
    "updated_at": "2026-10-22T09:15:04.512000",
    "total_rows": 120,
    "done_rows": 104,
    "miss_rows": 16,
    "pending_rows": 0
  }
}

Das zweite Beispiel zeigt die erste Seite ihrer Zeilen mit done, mit einer Zeile pro Seite:

GET /enrichment/lists/6717a3c2e4b0a1f2c3d4e5f6/rows?status=done&page_size=1
{
  "rows": [
    {
      "id": "6717a3c2e4b0a1f2c3d4e601",
      "domain": "bergquell.example",
      "status": "done",
      "src": "db",
      "created_at": "2026-10-22T09:15:09.207000",
      "enriched_at": "2026-10-22T09:16:02.418000",
      "company_name": "Bergquell Mineralbrunnen GmbH",
      "company_url": "bergquell.example",
      "company_logo_url": "https://logos.docs.example/bergquell.png",
      "industry": "Industrie & Fertigung",
      "nace_codes": "11.07",
      "employee_count": "201–500",
      "revenue": "50–100 Mio. €",
      "city": "Freising",
      "country": "DE",
      "phone_number": "+49 89 99998214",
      "email_address": "info@bergquell.example",
      "short_description_de": "Mineralbrunnen mit eigener Abfüllung für Mineralwasser und Erfrischungsgetränke.",
      "full_description_de": null,
      "what_they_do_de": null,
      "how_they_make_money_de": null,
      "target_audience_de": null,
      "linkedin": "https://www.linkedin.com/company/bergquell-mineralbrunnen-example",
      "facebook": null,
      "instagram": null,
      "youtube": null,
      "twitter": null,
      "directors": "Florian Obermaier",
      "organization_type": "business",
      "address": "Brunnenweg 4",
      "postal_code": "85354",
      "vat_id": "DE000000000",
      "tax_number": null,
      "registration_number": "HRB 000000",
      "registration_court": "Amtsgericht München",
      "fax_number": null,
      "primary_color": "#1f6feb",
      "secondary_color": null,
      "wz2025_codes": "11.07.0"
    }
  ],
  "total": 104,
  "pagination": [
    {
      "total": 104,
      "page_total": 104,
      "isFirst": true,
      "current": 1,
      "isLast": false,
      "page_size": 1
    }
  ]
}

Die Werte sind erfunden, und bergquell.example dient nur als Beispiel. Die API selbst nimmt nur echte Domains an und zählt Einträge mit der Endung .example als invalid.

Verwendet von

Auf dieser Seite