> ## Documentation Index
> Fetch the complete documentation index at: https://docs.querying.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Monitor-Belege: zitierte Quellen, Antworten und Ergebnisexporte

> Sehen Sie, welche Seiten die Engines zitieren, öffnen Sie die genaue Antwort hinter jeder Zahl und exportieren Sie die bewerteten Antworten eines Monitors als JSON oder CSV.

Jede Zahl in einem [Monitor-Bericht](/de/monitors/reports.md) stammt aus bewerteten Antworten, die Sie öffnen können. Diese
Seite behandelt die Lese-Endpunkte, die sie zeigen: welche Quellen zitiert werden, wie sich Zitationen über die Zeit
entwickeln, die Antwort hinter einer Bewertung, ein Prompt im Detail, Antworten pro Standort und der vollständige
Export. Sie lesen nur gespeicherte Ergebnisse und kosten daher nichts.

| Endpunkt | Beantwortet |
| - | - |
| [`GET /v1/monitors/{id}/sources`](#welche-quellen-zitiert-werden) | Welche Domains oder Seiten zitiert werden, jede Zeile per Cursor erreichbar. |
| [`GET /v1/monitors/{id}/citations`](#zitationen-im-zeitverlauf) | Zitationssummen und Tagesreihen für die wichtigsten Domains und Seiten. |
| [`GET /v1/monitors/{id}/answers/{taskId}`](#eine-antwort-lesen) | Die gespeicherte Antwort hinter einer Bewertung. |
| [`GET /v1/monitors/{id}/prompt`](#ein-prompt-im-detail) | Tagesreihe, Quellen und neueste Antworten eines Prompts. |
| [`GET /v1/monitors/{id}/grid`](#antworten-nach-standort) | Antworten pro Punkt des Standorts oder Rasters eines Monitors. |
| [`GET /v1/monitors/{id}/results`](#bewertete-antworten-exportieren) | Die bewerteten Antworten selbst, als JSON oder CSV. |

## Welche Quellen zitiert werden

`GET /v1/monitors/{id}/sources` ([Referenz](/de/api-reference/monitors/list-sources.md)) rankt die Domains oder Seiten,
die die Engines zitiert haben, mit demselben Fenster und denselben Filtern wie der Bericht. Gezählt werden
**unterschiedliche Antworten**, nicht rohe Zitationen: Eine Seite, die in einer Antwort dreimal zitiert wird, zählt einmal.

```bash theme={"theme":"css-variables"}
curl "https://api.querying.ai/v1/monitors/$MONITOR_ID/sources?days=30&groupBy=domain&limit=2" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

| Parameter | Beschreibung |
| - | - |
| `groupBy` | `domain` (Standard): der Host ohne `www.`, Port oder Zugangsdaten. `page`: die vollständige URL. |
| `limit` | 1–100, Standard 20. |
| `cursor` | Das `nextCursor` der vorherigen Antwort, unverändert. |
| `days`, `since`, `until`, `engine`, `prompt` | Wie beim [Bericht](/de/monitors/reports.md#query-parameter). |

Zum Beispiel:

```json theme={"theme":"css-variables"}
{
  "success": true,
  "data": {
    "results": [
      {
        "key": "reviews.example",
        "domain": "reviews.example",
        "url": null,
        "label": "Best wireless earbuds of 2026",
        "citations": 11,
        "prompts": 2,
        "own": false,
        "evidenceTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61"
      },
      {
        "key": "rtings.example",
        "domain": "rtings.example",
        "url": null,
        "label": "Earbuds reviews",
        "citations": 7,
        "prompts": 1,
        "own": false,
        "evidenceTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a62"
      }
    ],
    "nextCursor": "eyJrZXkiOiJydGluZ3MuZXhhbXBsZSIsImNpdGF0aW9ucyI6N30",
    "groupBy": "domain",
    "window": { "since": "2026-09-19T07:00:00.000Z", "until": "2026-10-19T07:00:00.000Z" },
    "filters": { "engine": null, "prompt": null },
    "counting": "distinct_answers",
    "ownership": "current_monitor_domains"
  }
}
```

| Feld | Bedeutung |
| - | - |
| `citations` | Antworten, die diese Domain oder Seite zitiert haben. |
| `prompts` | Unterschiedliche Prompts, deren Antworten sie zitiert haben. |
| `own` | Ob sie eine der aktuellen `domains` des Monitors oder eine Subdomain davon ist (`ownership: "current_monitor_domains"`). |
| `url` | Die Seiten-URL bei `groupBy=page`; `null` für Domains. |
| `label` | Das Label der Zitation, wie die Engine es angegeben hat, falls vorhanden. |
| `evidenceTaskId` | Eine Antwort, die sie zitiert hat. Öffnen Sie sie mit dem [Antworten-Endpunkt](#eine-antwort-lesen). |

Zeilen sind nach `citations`, dann `key` sortiert. `nextCursor` ist auf der letzten Seite `null`; es gibt keinen
Top-N-Schnitt, jede zitierte Domain oder Seite im Fenster ist also erreichbar. Behandeln Sie den Cursor als opak.

## Zitationen im Zeitverlauf

`GET /v1/monitors/{id}/citations` ([Referenz](/de/api-reference/monitors/get-citations.md)) liefert die Daten hinter den
Zitationsdiagrammen im Dashboard: Summen für das Fenster, eine Tagesreihe und die 20 wichtigsten Domains und Seiten,
jeweils mit eigener Tagesreihe.

```bash theme={"theme":"css-variables"}
curl "https://api.querying.ai/v1/monitors/$MONITOR_ID/citations?days=30&kind=owned" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

| Parameter | Beschreibung |
| - | - |
| `days` | `7`, `30` (Standard) oder `90`. |
| `since`, `until` | Ein festes Fenster, wie beim Bericht. Wenn gesetzt, wird `days` nur als `windowDays` zurückgegeben. |
| `engine` | Eine Engine, oder `all` (Standard). |
| `prompt` | Ein Prompt, nach exaktem Text. |
| `kind` | `all` (Standard), `owned`, `editorial`, `review_media`, `pr_wire`, `institution`, `reviews`, `commerce`, `social`, `blog`, `community`, `video`, `brand`, `content` oder `other`. |
| `q` | Behält Domains, deren Name, oder Seiten, deren URL diesen Text enthält. Bis 200 Zeichen. |
| `offset` | 0–10.000, um die Domain- und Seitenlisten in 20er-Schritten zu blättern. |

Hier ist eine Zitation eine Seite in einer Antwort, `citations` zählt also zitierte Seiten, nicht Antworten. `/sources`
zählt unterschiedliche Antworten, daher können die Zahlen abweichen.

| Feld | Inhalt |
| - | - |
| `totals` | `answers` (bewertete Antworten), `citedAnswers`, `citations` und `ownedCitations` für das Fenster. |
| `days` | Ein Eintrag pro UTC-Tag mit Antworten: `day`, `answers`, `citations`, `ownedCitations`. Ein Tag mit Antworten und ohne Zitationen hat `citations: 0`; ein Tag ohne Antworten fehlt. |
| `domains`, `pages` | Bis zu 20 Zeilen ab `offset`: `key`, `domain`, `label`, `kind`, `owned`, `citations`, `answers`, `prompts` und `daily`, eine Liste von `{ day, citations }` für Tage mit Zitationen. |
| `types` | Pro `kind`: `citations` und unterschiedliche `domains`. |
| `pagination` | `offset`, `limit` (20), `totalDomains`, `totalPages`. |
| `windowDays`, `engine`, `prompt`, `since`, `until` | Der gelesene Umfang. |

`kind` ist `owned` für Ihre Domains; andere Arten stammen aus einer festen Liste bekannter Publisher, und alles
Unbekannte ist `other`. Der Anteil einer Quelle ist ihr `citations` geteilt durch `totals.citations`. `kind`, `q` und
`offset` schränken nur `domains`, `pages` und `pagination` ein; `totals`, `days` und `types` decken immer jede Quelle
im Fenster ab.

## Eine Antwort lesen

`GET /v1/monitors/{id}/answers/{taskId}` ([Referenz](/de/api-reference/monitors/get-answer.md)) liefert die gespeicherte
Antwort hinter einer Bewertung, mit dem, wogegen sie abgeglichen wurde, sodass sich eine Nennung prüfen lässt, statt ihr
zu vertrauen. Task-ids stammen aus `evidenceTaskId`, `mentionTaskId` und `latestTaskId` eines Berichts, aus
`/sources` und aus exportierten Zeilen.

```bash theme={"theme":"css-variables"}
curl "https://api.querying.ai/v1/monitors/$MONITOR_ID/answers/6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

Zum Beispiel:

```json theme={"theme":"css-variables"}
{
  "success": true,
  "data": {
    "answer": {
      "taskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61",
      "engine": "CHATGPT",
      "prompt": "best wireless earbuds for commuting",
      "mentioned": true,
      "cited": true,
      "position": 81,
      "ranAt": "2026-10-17T09:01:48.311Z",
      "answerText": "For commuting, look at the **Northwind Audio Pro** for noise cancelling or the **Acme Audio Air** for battery life.",
      "sources": [
        { "url": "https://reviews.example/best-earbuds", "label": "Best wireless earbuds of 2026", "position": 1 },
        { "url": "https://acme-audio.example/air", "label": "Acme Audio Air", "position": 2 }
      ],
      "competitorHits": ["Northwind Audio"],
      "scoringContext": {
        "aliases": ["Acme Audio", "Acme"],
        "domains": ["acme-audio.example"],
        "competitors": [
          { "name": "Northwind Audio", "aliases": ["Northwind Audio"], "source": "user" },
          { "name": "Contoso Sound", "aliases": ["Contoso Sound", "Contoso"], "source": "user" }
        ],
        "country": "US",
        "version": "3f9a6c1e8b2d4f7a9c0e1b3d5f7a9c1e3b5d7f9a1c3e5b7d9f1a3c5e7b9d1f3a",
        "scoredAt": "2026-10-17T09:01:48.305Z",
        "answerPresent": true,
        "evidenceTruncated": false
      },
      "analysis": null
    },
    "display": {
      "markdown": "For commuting, look at the **Northwind Audio Pro** for noise cancelling or the **Acme Audio Air** for battery life.",
      "text": "For commuting, look at the Northwind Audio Pro for noise cancelling or the Acme Audio Air for battery life."
    },
    "mode": "BRAND",
    "aliases": ["Acme Audio", "Acme"],
    "competitors": [
      { "name": "Northwind Audio", "aliases": ["Northwind Audio"], "source": "user" },
      { "name": "Contoso Sound", "aliases": ["Contoso Sound", "Contoso"], "source": "user" }
    ],
    "scoringKnown": true,
    "evidenceTruncated": false
  }
}
```

| Feld | Bedeutung |
| - | - |
| `answer` | Die bewertete Antwort, wie gespeichert. |
| `answer.answerText` | Die Antwort, als Markdown, wenn die Engine sie so geliefert hat, gekürzt auf 8.000 Zeichen mit nachgestelltem `…`. `null`, wenn die Engine keinen Text geliefert hat. |
| `answer.sources` | Die zitierten Seiten in der Reihenfolge der Engine, nach URL dedupliziert, jeweils mit `label` und 1-basierter `position`. |
| `answer.competitorHits` | Die in der Antwort genannten Wettbewerber. |
| `answer.position` | Zeichen-Offset des ersten Treffers Ihrer Marke, oder `null`. |
| `answer.scoringContext` | Die Definition, mit der die Antwort bewertet wurde: `aliases`, `domains`, `competitors`, `country`, ihr `version`-Hash, `scoredAt`, `answerPresent` und `evidenceTruncated`. `null` für Antworten, die bewertet wurden, bevor sie gespeichert wurde. |
| `answer.analysis` | Das Ergebnis der [Antwortanalyse](/de/engines/answer-analysis.md), wenn der Monitor `analysis: true` hat, sonst `null`. |
| `display` | Anzeigefelder der ursprünglichen Task-Antwort, etwa `markdown`, `text`, `sources`, `searchQueries`, Layout, Orte und Produkte, je nach Engine. `null`, wenn der ursprüngliche Task nicht mehr gespeichert ist. |
| `mode` | Der Modus des Monitors. Bei einem Kategorie-Monitor ist `aliases` leer und `competitors` die Liste der verfolgten Marken. |
| `aliases`, `competitors` | Wogegen diese Antwort abgeglichen wurde: aus `scoringContext`, oder die aktuellen Werte des Monitors, wenn es `null` ist. |
| `scoringKnown` | `false`, wenn die Antwort älter als der gespeicherte Bewertungskontext ist; `aliases` und `competitors` sind dann die aktuellen Werte des Monitors. |
| `evidenceTruncated` | Ob `answerText` gekürzt wurde. `null`, wenn `scoringKnown` `false` ist. |

Eine Task-id, die keine bewertete Antwort dieses Monitors ist, liefert `404 NOT_FOUND`.

## Ein Prompt im Detail

`GET /v1/monitors/{id}/prompt` ([Referenz](/de/api-reference/monitors/get-prompt.md)) liefert die Daten eines Prompts.
`prompt` (exakter Text) ist Pflicht und funktioniert auch für Prompts, die Sie inzwischen aus dem Monitor entfernt
haben; `days` ist `7`, `30` (Standard) oder `90`.

```bash theme={"theme":"css-variables"}
curl -G "https://api.querying.ai/v1/monitors/$MONITOR_ID/prompt" \
  --data-urlencode "prompt=best wireless earbuds for commuting" \
  --data-urlencode "days=30" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

| Feld | Inhalt |
| - | - |
| `monitor` | `id`, `name`, `engines` und `aliases`. |
| `prompt`, `windowDays` | Was gelesen wurde. |
| `series` | Pro UTC-Tag und Engine: `day`, `engine`, `runs`, `mentioned`, `cited`. |
| `topDomains` | Bis zu 12 zitierte Domains: `domain`, `citations`, `prompts`, `own`. |
| `topPages` | Bis zu 20 zitierte Seiten: `url`, `domain`, `label`, `citations`, `prompts`, `own`. |
| `results` | Bis zu 100 neueste bewertete Antworten: `taskId`, `engine`, `prompt`, `mentioned`, `cited`, `position`, `ranAt`, `competitorHits`. |

Hier zählt `citations` zitierte Seiten über die Antworten hinweg, nicht unterschiedliche Antworten. Für eine
vollständige, paginierte Quellenliste eines Prompts nutzen Sie `/sources?prompt=...`.

## Antworten nach Standort

`GET /v1/monitors/{id}/grid` ([Referenz](/de/api-reference/monitors/get-grid.md)) liefert die Antworten eines Monitors pro
Punkt seines aktuellen [Standorts oder Rasters](/de/monitors.md#standort-und-raster). Optional schränken `engine` (eine der
Engines des Monitors) und `prompt` ein; `days` ist `7`, `30` (Standard) oder `90`.

Die Antwort enthält `location`, `grid`, `engine`, `prompt`, `windowDays` und `points`. Jeder Punkt hat `row`,
`col`, `location`, `runs`, `mentioned`, `cited`, `topCompetitor` (`{ name, mentions }` oder `null`) und
`latest` (`{ taskId, engine, mentioned, ranAt }` der neuesten Antwort, oder `null`). Antworten werden Punkten über
ihre exakten Koordinaten zugeordnet, daher bleiben Antworten eines früheren Standorts oder Rasters desselben Monitors
außen vor. Ein Monitor ohne Standort oder Raster liefert keine Punkte.

## Bewertete Antworten exportieren

`GET /v1/monitors/{id}/results` ([Referenz](/de/api-reference/monitors/export-results.md)) liefert die bewerteten
Antworten selbst, für ein Data Warehouse, eine Tabelle oder eine Präsentation. Um stattdessen jede neue Antwort nach
Zeitplan in Cloud-Speicher zu liefern, siehe [Ergebnisexporte](/de/exports.md).

```bash theme={"theme":"css-variables"}
curl "https://api.querying.ai/v1/monitors/$MONITOR_ID/results?since=2026-10-01T00:00:00Z&until=2026-10-18T00:00:00Z&mentioned=false" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

| Parameter | Beschreibung |
| - | - |
| `since`, `until` | Halboffenes Fenster. Standard: die 30 Tage bis jetzt. ISO-Zeitpunkte mit Zeitzone; ein bloßes `YYYY-MM-DD` wird hier ebenfalls akzeptiert und als Mitternacht UTC gelesen. Es gibt keine Höchstspanne. |
| `engine`, `prompt` | Wie beim Bericht. |
| `mentioned`, `cited` | `true` oder `false`. `mentioned=false` ist die Lückenansicht. |
| `competitor` | Behält Antworten, deren gespeicherte Wettbewerbertreffer genau diesen Namen enthalten, 1–80 Zeichen. Abgeglichen wird der Name, wie er bei der Bewertung jeder Antwort gespeichert wurde, nicht gegen die aktuellen Wettbewerber des Monitors: Ein Name, den der Monitor nie verfolgt hat, liefert keine Zeilen, keinen Fehler. |
| `includeEvidence` | `true` fügt jeder Zeile `answerText`, `sources` und `scoringContext` hinzu. |
| `limit` | 1–10.000, Standard 10.000. Mit `includeEvidence=true`: 1–100, Standard 100. |
| `format` | `json` (Standard) oder `csv`. |
| `cursor` | Das `nextCursor` der vorherigen Seite. |

Die JSON-Antwort, zum Beispiel:

```json theme={"theme":"css-variables"}
{
  "success": true,
  "data": {
    "monitor": { "id": "d39b8de0-b159-4229-bf58-7064e5369db1", "name": "Earbud brand tracking" },
    "since": "2026-10-01T00:00:00.000Z",
    "until": "2026-10-18T00:00:00.000Z",
    "filters": { "engine": null, "prompt": null, "mentioned": false, "cited": null, "competitor": null },
    "truncated": false,
    "nextCursor": null,
    "results": [
      {
        "id": "0b6e4a52-7c1d-4f8e-9a3b-2d5c6e7f8a91",
        "taskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a63",
        "engine": "CHATGPT",
        "prompt": "are cheap earbuds worth it",
        "mentioned": false,
        "cited": false,
        "position": null,
        "ranAt": "2026-10-17T09:02:57.204118Z",
        "competitorHits": ["Northwind Audio"]
      }
    ]
  }
}
```

Zeilen kommen neueste zuerst. Die Paginierung ist ein Keyset über `ranAt` (Mikrosekundengenauigkeit) und die Zeilen-`id`,
sodass Zeilen mit gleichem Zeitstempel nie übersprungen oder wiederholt werden. Für eine wiederholbare Extraktion senden
Sie explizite `since` und `until`, halten sie fest und folgen `nextCursor`, bis es `null` ist. Wer das Fenster zwischen
Seiten ändert, kann Zeilen überspringen oder wiederholen. Behandeln Sie den Cursor als opak.

### CSV

Mit `format=csv` ist die Antwort `text/csv`, UTF-8 mit Byte Order Mark, damit Tabellenprogramme sie korrekt öffnen. Ein
CSV-Body kann keine Paginierung tragen, daher wandert sie in Header:

| Header | Bedeutung |
| - | - |
| `x-next-cursor` | Der Cursor für die nächste Seite; leer auf der letzten Seite. |
| `x-result-truncated` | `true`, wenn mehr Zeilen passten, als diese Seite geliefert hat. |
| `x-result-since`, `x-result-until` | Das aufgelöste Fenster, damit ein fortgesetzter Export es festhalten kann. |

Die Spalten sind `ran_at, monitor, engine, prompt, mentioned, cited, position, competitors, task_id`, mit
`includeEvidence=true` zusätzlich `answer_text, sources, scoring_context`. `competitors` verbindet Namen mit
`|`; `sources` und `scoring_context` enthalten JSON-Text. Einer Zelle, die mit `=`, `+`, `-`, `@`, einem Tabulator
oder einem Wagenrücklauf beginnt, wird `'` vorangestellt, damit Engine-Text keine Tabellenformel werden kann.

```bash theme={"theme":"css-variables"}
curl -D headers.txt -o page1.csv \
  "https://api.querying.ai/v1/monitors/$MONITOR_ID/results?since=2026-10-01T00:00:00Z&until=2026-10-18T00:00:00Z&format=csv&includeEvidence=true" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

## Fehler und Limits

| Limit | Wert |
| - | - |
| Fenster für Bericht und Quellen | 90 Tage |
| `/sources`-Seite | 1–100 Zeilen, Standard 20 |
| `/citations`-Listen | 20 Zeilen pro Seite; `offset` bis 10.000 |
| `/results`-Seite | 10.000 Zeilen; 100 mit `includeEvidence=true` |
| Gespeicherter Antworttext | 8.000 Zeichen |
| `/prompt` | 12 Domains, 20 Seiten, 100 Antworten |

Ungültige Parameter liefern `400 VALIDATION_ERROR` mit dem Problem, auch ein Cursor, der nicht von der vorherigen Seite
stammt. Ein Monitor eines anderen Kontos oder eine unbekannte Task-id liefert `404 NOT_FOUND`. Die gemeinsamen Codes
stehen unter [Monitore](/de/monitors.md#fehler).

## Nächste Schritte

> **[Ereignisse und Alarme](/de/monitors/events-and-alerts.md)**
>
> Einen Webhook erhalten, wenn sich die Antworten auf einen Prompt ändern.

> **[Ergebnisexporte](/de/exports.md)**
>
> Bewertete Antworten nach Zeitplan in Ihren eigenen Speicher liefern.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.