WebmeticDocs

Datenmodell

Das Datenmodell zeigt, welche Objekte die API liefert und über welche Kennungen sie zusammenhängen.

Ein Beispiel: Die Bergquell Mineralbrunnen GmbH besucht diese Woche dreimal Ihre Website. In der API ist das ein Unternehmen mit drei Sessions, und jede Session enthält ihre Seitenaufrufe. Personen kommen in den Besuchsdaten nicht vor.

Die API liefert nur Besuche, die Webmetic einem Unternehmen zugeordnet hat, und lässt alle anderen Besuche weg.

Besuchsdaten

  1. 1Ihre WebsiteSie wählen die Website in jeder Anfrage mit dem Parameter domain.
  2. 2SessionJeder Besuch auf dieser Website ist eine Session mit eigener session_id und gehört zu genau einem Unternehmen.
  3. 3SeitenaufrufJede Seite, die der Besuch aufgerufen hat, steht als Seitenaufruf im Feld user_data der Session.

Diese Kennungen verbinden die Objekte:

  • domain: Ihre Website als Domain ohne https://, genau so geschrieben wie in Ihrem Konto. Bei jeder anderen Schreibweise antwortet die API mit API_KEY_NOT_AUTHORIZED. Besuche auf Subdomains wie shop.ihre-website.de zählen zu ihre-website.de.
  • company_id: die Kennung eines Unternehmens als Zeichenkette, die gleich bleibt. Werten Sie den Aufbau der Kennung nicht aus und speichern Sie company_url als zweiten Schlüssel dazu.
  • session_id: die Kennung eines Besuchs mit 26 Zeichen, die gleich bleibt und sich nach der Zeit sortieren lässt.
  • client_id: die pseudonymisierte Kennung des Besuchers, die sich täglich ändert und je Konto verschieden ist. Über mehrere Tage hinweg verbindet sie deshalb keine Besuche.
  • Seitenaufruf: Weil er keine eigene Kennung hat, erkennen Sie ihn an session_id und timestamp.

Alle Zeitstempel stehen in UTC, in API-Antworten ohne Z und in Webhook-Zustellungen mit Z. Mehr dazu unter Zeiträume und Zeitzonen.

Objekte und Verbindungen

ObjektVerbunden überEndpunkt
Companycompany_id/company, /company-sessions
Sessionsession_id, dazu company_id des Unternehmens/session
Page Viewsession_id, ohne company_id/session_user_data
NACE-CodeListe nace_codes im Unternehmen, in /company_nace eine Zeile pro Code mit company_id/company_nace
BesuchsartenUnternehmen mit den passenden Sessions/intensive-visits, /returning-visits, /new-visits
Contactcompany_id in der Anfrage, contact_id in der Antwort/contacts/search, /contacts/reveal
CreditsIhr Konto, nicht die Website/contacts/credits
Enrichment-Listenur die Domain des Unternehmens/enrichment/lists, /enrichment/company
Webhook-Ereignisdata.company.company_id und data.visit.session_idWebhooks

Ansprechpartner tragen zwar den Namen ihres Unternehmens, aber keine company_id. Speichern Sie deshalb die company_id, mit der Sie gesucht haben. Die Suche funktioniert nur für Unternehmen, die eine Ihrer Websites besucht haben. Für alle anderen Unternehmen antwortet die API mit COMPANY_NOT_IDENTIFIED.

Ein Webhook-Ereignis enthält das Unternehmen in data.company und den Besuch mit seinen Seitenaufrufen in data.visit. Bei segment.entered stehen in data.segment id und label eines Segments aus dem Dashboard. Segmente selbst liefert die API nicht.

Verschachtelte und flache Antworten

/company-sessions liefert jedes Unternehmen mit seinen Sessions und darin die Seitenaufrufe. Die Seiten der Antwort zählen dabei Unternehmen und nicht Sessions, wie unter Paginierung beschrieben. /company, /session und /session_user_data liefern dieselben Ebenen einzeln als flache Listen.

Kein Endpunkt liefert ein Unternehmen nach seiner company_id oder eine Session nach ihrer session_id. Sie fragen immer eine Website und einen Zeitraum ab und wählen danach aus der Liste.

curl "https://hub.webmetic.de/company-sessions?domain=ihre-website.de&page_size=1" \
  -H "Authorization: wmtc_IHR_API_SCHLUESSEL"
Antwort (gekürzt)
{
  "pagination": [
    {
      "total": 32,
      "page_total": 32,
      "isFirst": true,
      "current": 1,
      "isLast": false,
      "page_size": 1
    }
  ],
  "result": [
    {
      "company_id": "41ea486a9c95",
      "company_name": "Bergquell Mineralbrunnen GmbH",
      "company_url": "www.bergquell.example",
      "nace_codes": [
        {
          "code": "11.07",
          "full_code": "C 11.07",
          "description_de": "Herstellung von Erfrischungsgetränken und Mineralwässern",
          "description_en": "Manufacture of soft drinks and bottled waters"
        }
      ],
      "sessions": [
        {
          "session_id": "01M4WQFX6YM2X5V8T4N6R1C0DZ",
          "client_id": "14e382cf709a614559666137b3d1dfcefa99b1e7ecf93400cc9e2cc4822619d3",
          "timestamp": "2026-10-14T08:12:05.214000",
          "weburl": "https://ihre-website.de",
          "session_duration": 309.0,
          "user_data": [
            {
              "timestamp": "2026-10-14T08:12:05.214000",
              "document_location": "https://ihre-website.de/preise",
              "time_spent": 95.0
            }
          ]
        }
      ]
    }
  ]
}

Die Reihenfolge der Einträge ist nicht festgelegt. Die meisten Endpunkte lassen ein Feld weg, wenn sein Wert unbekannt ist. Nur die Besuchsarten und data.visit in Webhooks liefern jedes Feld und setzen unbekannte Werte auf null. Wenn Webmetic eine Zeit nicht messen konnte, steht dort ein geschätzter Wert von wenigen Sekunden, den Page View genauer beschreibt.

Domain in Besuchsdaten und Enrichment

Der Parameter domain hat in der API zwei Bedeutungen:

  • Besuchsdaten: Ihre Website, deren Besuche Sie abfragen.
  • Enrichment: das Unternehmen, dessen Daten Sie abrufen.

Die Endpunkte für Ansprechpartner nehmen keine Domain an, nur die company_id.

Weil Enrichment-Zeilen keine company_id tragen, verbinden Sie die Zeilen über die Domain mit den Besuchsdaten. In den Besuchsdaten kann in company_url ein www. oder eine andere Subdomain vor der Domain stehen. Kürzen Sie den Wert deshalb vor dem Vergleich auf die Domain, also zum Beispiel www.bergquell.example auf bergquell.example. Enrichment-Liste beschreibt, wie auch die übrigen Felder in Enrichment anders aussehen.

Schlüssel, Plan und Credits

Welche Objekte Sie lesen, hängt vom API-Schlüssel ab, den Sie wie unter Authentifizierung beschrieben mitsenden. Admins finden die Schlüssel unter Menü > Integrationen > API:

  • Visitor Intelligence: Unternehmen, Sessions, Seitenaufrufe, Ansprechpartner, Credits und Webhooks.
  • Enrichment: Enrichment-Listen, ihre Zeilen und die Einzelabfrage. Neue Listen, neue Domains und Einzelabfragen funktionieren nur in der Testphase und in den Plänen Growth und Enterprise.

Im Free-Plan liefert die API auch Unternehmen, die Sie nicht lesen können. Diese Unternehmen tragen nur ihre company_id, ihre Sessions mit Zeiten, einen Platzhalter als Namen und "blurred": true. Mehr dazu unter Pläne.

Nur /contacts/reveal und /contacts/find kosten Credits. Bevor Sie Ansprechpartner suchen, schließen Sie Ansprechpartner einrichten einmal im Dashboard ab. Sonst antwortet die API mit CONTACTS_SETUP_REQUIRED. Enrichment kostet derzeit keine Credits. Mehr dazu unter Credits in der API.

Nächste Schritte

Auf dieser Seite