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.
| Feld | Typ | Beispiel | Beschreibung |
|---|---|---|---|
id | string | "6717a3c2e4b0a1f2c3d4e5f6" | ID der Liste, 24 Zeichen |
name | string | "Messe-Kontakte Oktober" | Name mit 1 bis 200 Zeichen. Namen müssen nicht eindeutig sein |
desc | string | "Gespräche am Messestand" | Beschreibung mit bis zu 1.000 Zeichen, leer ohne Beschreibung |
created_at | string | "2026-10-22T09:15:04.512000" | Wann die Liste angelegt wurde, in UTC |
updated_at | string | "2026-10-22T09:15:04.512000" | Zeitpunkt der letzten Änderung, derzeit gleich created_at |
total_rows | integer | 120 | Alle Zeilen der Liste |
done_rows | integer | 104 | Zeilen mit done, im Dashboard Gefunden |
miss_rows | integer | 16 | Zeilen mit miss, im Dashboard Nicht gefunden |
pending_rows | integer | 0 | Zeilen 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.
| Feld | Typ | Beispiel | Beschreibung |
|---|---|---|---|
id | string | "6717a3c2e4b0a1f2c3d4e601" | ID der Zeile, 24 Zeichen |
domain | string | "bergquell.example" | Die gekürzte Domain. Wenn die Website auf eine Domain weiterleitet, die Webmetic schon kennt, steht danach diese Domain hier |
status | string | "done" | Stand der Zeile, siehe unten |
src | string oder null | "db" | Herkunft der Daten: db aus vorhandenen Daten, ext neu ermittelt, miss nicht gefunden. null, solange die Zeile offen ist |
created_at | string | "2026-10-22T09:15:09.207000" | Wann die Zeile angelegt wurde, in UTC |
enriched_at | string 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
status | Bedeutung | Im Dashboard |
|---|---|---|
pending | Die Zeile wartet auf die Bearbeitung | Enriching |
enriching | Webmetic reichert die Zeile gerade an | Enriching |
done | Webmetic hat Daten gefunden | Enriched |
miss | Webmetic hat keine verwertbaren Daten gefunden | Nicht 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.
| Feld | Typ | Beispiel | Beschreibung |
|---|---|---|---|
company_name | string oder null | "Bergquell Mineralbrunnen GmbH" | Name des Unternehmens. Bis Daten ankommen, steht hier ein Platzhalter aus der Domain wie Bergquell |
company_url | string 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_url | string oder null | "https://logos.docs.example/bergquell.png" | Adresse des Logos |
industry | string oder null | "Industrie & Fertigung" | Branche als deutsche Bezeichnung. Mehrere Branchen stehen kommagetrennt, die wichtigste zuerst |
nace_codes | string oder null | "11.07" | NACE-Codes, getrennt durch Komma und Leerzeichen |
wz2025_codes | string oder null | "11.07.0" | Codes der WZ 2025, getrennt wie nace_codes |
employee_count | string 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+ |
revenue | string oder null | "50–100 Mio. €" | Jahresumsatz als Spanne, von < 100 Tsd. € bis > 500 Mio. € |
address | string oder null | "Brunnenweg 4" | Straße und Hausnummer |
postal_code | string oder null | "85354" | Postleitzahl |
city | string oder null | "Freising" | Ort |
country | string 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_number | string oder null | "+49 89 99998214" | Allgemeine Telefonnummer |
fax_number | string oder null | Faxnummer | |
email_address | string oder null | "info@bergquell.example" | Allgemeine E-Mail-Adresse des Unternehmens |
directors | string oder null | "Florian Obermaier" | Geschäftsführung, kommagetrennt |
organization_type | string 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_id | string oder null | "DE000000000" | Umsatzsteuer-ID |
tax_number | string oder null | "115/000/00000" | Steuernummer |
registration_number | string oder null | "HRB 000000" | Handelsregisternummer |
registration_court | string oder null | "Amtsgericht München" | Registergericht |
short_description_de | string oder null | Kurze Beschreibung | |
full_description_de | string oder null | Ausführliche Beschreibung | |
what_they_do_de | string oder null | Was das Unternehmen tut | |
how_they_make_money_de | string oder null | Geschäftsmodell | |
target_audience_de | string oder null | Zielgruppe | |
linkedin, facebook, instagram, youtube, twitter | string oder null | "https://www.linkedin.com/company/bergquell-mineralbrunnen-example" | Profil des Unternehmens im jeweiligen Netzwerk. Bei LinkedIn nur Unternehmensseiten |
primary_color, secondary_color | string 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 Siedomainmitcompany_urlaus Company, gekürzt auf die Domain ohnewww.und Subdomain. - Spannen:
employee_countundrevenuesind Text wie201–500, in Company zwei Zahlen[min, max]. - Codes:
nace_codesundwz2025_codessind kommagetrennte Codes, in Company Objekte mit Beschreibungen. - Geschäftsführung:
directorsist ein Text, in Company eine Liste. - Land:
countryist der ISO-Code, und ein eigenes Feldcountry_codefehlt. - Weitere Felder: Scores wie
relevance_scoreund englische Beschreibungen fehlen. Dafür kommtindustryhinzu.
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.deundinfo@ihre-website.dewird soihre-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:
{
"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:
{
"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
- Endpunkte für Listen:
GET /enrichment/lists,POST /enrichment/listsundGET /enrichment/lists/{list_id} - Endpunkte für Zeilen:
POST /enrichment/lists/{list_id}/domains,GET /enrichment/lists/{list_id}/rowsundGET /enrichment/lists/{list_id}/export - Einzelabfrage:
GET /enrichment/companymit denselben Datenfeldern - Produktseiten: Enrichment und Ergebnisse und Export mit denselben Listen im Tab Enrichment
- Webhooks: Die Webhooks senden keine Enrichment-Ereignisse
- KI-Assistent: Auch der KI-Assistent liefert keine Enrichment-Daten