> ## 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.

# ChatGPT-API: Antworten, Quellen und Suchanfragen

> Stellen Sie ChatGPT eine Frage und erhalten Sie die Antwort, zitierte Quellen, Suchanfragen, Produkte und Folgegespräche.

`CHATGPT` fragt ChatGPT mit Websuche und liefert die Antwort, jede gefundene Quelle, die ausgeführten Suchen sowie die gezeichneten Produkt- und Ortskarten.

| | |
| - | - |
| taskType | `CHATGPT` |
| Liest | `prompt` (greift auf `query` zurück) |
| Credits | 1 pro Antwort |
| Land | Optional, Standard `US`. `CN` und `HK` werden über einen Ausgang in Singapur mit lokalem Gerätestandort gefragt. |
| Standort | Akzeptiert `payload.location`. Siehe [Regionen und Standort](/de/engines/capacity.md). |

## Anfrage

```bash theme={"theme":"css-variables"}
curl -X POST https://api.querying.ai/v1/async/task \
  -H "Authorization: Bearer $QUERYING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "taskType": "CHATGPT", "payload": { "prompt": "best CRM for a small team", "country": "US" } }'
```

## Antwort

| Feld | Typ | Beschreibung |
| - | - | - |
| `text` | string | Die Antwort als Klartext. |
| `markdown` | string | Die Antwort als Markdown, Fotos an der Stelle ihrer Karte. Standardmäßig aktiv. |
| `model` | string | Das Modell, mit dem ChatGPT geantwortet hat. |
| `sources` | array | Jede Quelle: `position`, `url`, `label`, `footnote`, `datePublished`, `searchQueries`, `cited`, `citedText`. |
| `searchQueries` | string\[] | Die Websuchen, die ChatGPT ausgeführt hat. Standardmäßig aktiv. |
| `shoppingCards`, `inlineProducts` | array | Produktkarten und in der Antwort verlinkte Produktnamen. Standardmäßig aktiv (`include.shopping`). |
| `ads` | array | Gesponserte Einträge in der Antwort. Standardmäßig aktiv (`include.ads`). |
| `entities` | array | In Karten genannte Orte und Produkte, jeweils mit ihrem `type`, etwa `local_business` oder `product`, und ihrem `name`. |
| `entityDetails` | array | Das Detailfenster jeder Karte. Nur mit `include.entityDetails`. Siehe [Kartendetails](#kartendetails). |
| `map` | array | In Karten gezeigte Orte: Adresse, Koordinaten, Telefon, Bewertung und das `icon`-Emoji, mit dem ChatGPT sie markiert. `provider` ist der Feed, aus dem der Eintrag stammt (`serp` und `bright-feed` für Google Maps, `yelp-feed` für Yelp, `tripadvisor-feed` für Tripadvisor); `placeId` und `providerUrl` sind ID und Seite des Orts in diesem Feed. `resolvedBy: "address"` kennzeichnet einen Ort, den ChatGPT über die vom Modell geschriebene Adresse gefunden hat. `localName` ist der zweite Name des Eintrags, etwa der koreanische Name eines Geschäfts in Korea, und `closed` ist `permanently` oder `temporarily`. |
| `citationPills` | array | Die Quellen hinter jedem Inline-Zitat-Chip. |
| `layout` | object | Das Kartenlayout, wenn ChatGPT die Antwort als Karten darstellt. Siehe unten. |
| `forms` | array | Folgeformulare in der Antwort, falls vorhanden. Siehe [Gespräche](#später-weiterfragen). |
| `conversation` | object | `id`, `turn` und `expiresAt` des Gesprächs, zu dem die Antwort gehört. |
| `html` | object | Der Bildschirm, den ChatGPT gezeigt hat. Nur mit `include.html`. |
| `rawResponse` | array | Geparste Stream-Ereignisse. Nur mit `include.rawResponse`. |

Eine gekürzte Antwort als Beispiel:

```json theme={"theme":"css-variables"}
{
  "text": "For a small team, HubSpot CRM and Pipedrive are the usual picks ...",
  "markdown": "For a small team, **HubSpot CRM** and **Pipedrive** are the usual picks ...",
  "model": "gpt-5-3",
  "sources": [
    {
      "position": 1,
      "url": "https://www.example.com/best-crm-small-business",
      "label": "The best CRM software for small businesses",
      "searchQueries": ["best CRM for small teams"],
      "cited": true,
      "citedText": ["HubSpot CRM and Pipedrive are the usual picks"]
    }
  ],
  "searchQueries": ["best CRM for small teams"],
  "conversation": { "id": "8f6c1d2e-...", "turn": 1, "expiresAt": "2026-10-19T12:00:00.000Z" }
}
```

Jede Quelle enthält `searchQueries` (die Suchen, deren Ergebnisse sie enthielten), `cited` (ob die Antwort sie im Text zitiert) und `citedText` (der Antworttext, den jedes Zitat belegt). Quellen, die keine Suche geliefert hat, etwa Produkte, haben kein `searchQueries`.

### Kartenlayout

`layout` erscheint, wenn ChatGPT die Antwort als Karten darstellt. Die `nodes` folgen der Reihenfolge, in der ChatGPT sie zeigt:

| Knoten | Enthält |
| - | - |
| `row`, `box` | Gruppen von Karten. |
| `title`, `text`, `badge` | Den Kartentext. |
| `image` | Das Foto: `images[].url`, `thumbnailUrl` und `pageUrl`. |
| `markdown` | Den Rest der Antwort. |
| `map` | In `places` die `position` jedes gezeigten Orts. |
| `form` | Ein Formular zur Auswahl einer Folgefrage. Seine `choice`-Knoten enthalten die Optionen und die anfangs gewählte, sein `button`-Knoten die Frage, die ChatGPT als Nächstes senden würde (`prompt`). Formulare fehlen in `text` und `markdown`. |

## Include-Flags

`CHATGPT` berücksichtigt jedes Antwort-Flag. Alle sind standardmäßig aktiv außer `rawResponse` und `html`; senden Sie `false`, um eines abzuschalten.

| Flag | Standard | Wirkung |
| - | - | - |
| `markdown` | `true` | Fügt `markdown` hinzu. |
| `searchQueries` | `true` | Fügt `searchQueries` hinzu. |
| `shopping` | `true` | Fügt Produktkarten hinzu. |
| `ads` | `true` | Fügt `ads` hinzu. |
| `rawResponse` | `false` | Fügt `rawResponse` hinzu. Siehe [Markdown und Rohantworten](/de/engines/response-options.md). |
| `html` | `false` | Fügt `html` hinzu, 0,25 Credits, wenn die Seite gespeichert wird. Zusammen mit `location`, `CN`, `HK` oder `continueFrom` abgelehnt mit `422 EVIDENCE_UNSUPPORTED`. Siehe [HTML-Seiten](/de/engines/html-pages.md). |
| `analysis` | `false` | Fügt `analysis` hinzu, 1 Credit. Siehe [Antwortanalyse](/de/engines/answer-analysis.md). |
| `citationAnalysis` | `false` | Führt eine [Citation Analysis](/de/research/citation-analysis.md) der Antwort aus. |
| `entityDetails` | `false` | Fügt `entityDetails` ohne zusätzliche Credits hinzu. Siehe [Kartendetails](#kartendetails). |

## Kartendetails

Mit `include.entityDetails` kommt zu jeder Karte der Antwort (Produkt, Ort, App oder Marke) das Detailfenster, das ChatGPT beim Klick auf die Karte öffnet: Beschreibung, technische Daten, Bewertungen und die Seiten dahinter. Die Fenster zitieren eigene Seiten und zeigen so Quellen, die im Antworttext fehlen.

| Feld | Beschreibung |
| - | - |
| `name`, `category`, `query` | Die Karte, wie die Antwort sie zeigt, ihre Art (`product`, `local_business`, `software`, `organization`) und der Name, unter dem ChatGPT sie nachgeschlagen hat. |
| `status` | `ok`, oder `failed` mit einem `error`. |
| `markdown` | Das Fenster als Markdown, Zitat-Chips wie in der Antwort. |
| `sources` | Jede zitierte Seite einmal, in der Reihenfolge des ersten Zitats: `position`, `url`, `label`, `site`, `description`. |
| `products` | Die Shopping-Karte oben im Fenster eines Produkts: `title`, `price`, `merchant`, `rating`, `num_reviews`, `url` und `offers`, im Format von `shoppingCards[].products`. Nur wenn das Fenster eine zeigt. |
| `images` | Die Fotos des Fensters. |
| `complete` | `false`, wenn ChatGPT das Fenster vorzeitig beendet hat. Text und Quellen bis dahin sind enthalten. |

`error` ist `ENTITY_DETAIL_FAILED`, wenn die Anfrage fehlschlägt, `ENTITY_DETAIL_EMPTY`, wenn das Fenster keinen Text enthält, und `ENTITY_DETAIL_UNAVAILABLE`, wenn die benötigten Gesprächsdaten oder Zugangsdaten des Antwortschritts fehlen. Kartendetails funktionieren auch mit `payload.location`, `CN`, `HK`, Antworten über den Ausweichweg und `include.html`.

Ein Fenster, das ChatGPT schon einmal geschrieben hat, kommt in etwa einer Sekunde; eines, das es auf Anfrage neu schreibt, braucht 10 bis 30 Sekunden, mit bis zu 4 Fenstern gleichzeitig. Pro Antwort werden bis zu 20 Karten geöffnet. Die Fenster kosten keine zusätzlichen Credits, und jede Folgeantwort erhält eigene Fenster.

```json theme={"theme":"css-variables"}
"entityDetails": [
  {
    "name": "Brooks Adrenaline GTS 25",
    "category": "product",
    "query": "Brooks Adrenaline GTS 25",
    "status": "ok",
    "markdown": "## Brooks Adrenaline GTS 25\n\nThe **Brooks Adrenaline GTS 25** is a **stability road running shoe** ... ([Brooks Running](https://www.brooksrunning.com/...))\n\n### Key specifications\n\n| Feature | Details |\n| --- | --- |\n| Heel-to-toe drop | 10 mm |\n...",
    "sources": [
      { "position": 1, "url": "https://www.brooksrunning.com/...", "label": "Men's Adrenaline GTS 25 Running Shoes | Brooks Running", "site": "Brooks Running" },
      { "position": 2, "url": "https://www.rei.com/product/249691/...", "label": "Brooks Adrenaline GTS 25 Road-Running Shoes - Men's | REI Co-op", "site": "REI" }
    ],
    "images": ["https://images.openai.com/..."],
    "complete": true
  }
]
```

## Folgefragen

`payload.followUps` stellt nach der ersten Antwort bis zu 4 weitere Fragen im selben Gespräch, in dieser Reihenfolge. Jeder Eintrag ist eines von beiden:

* `{ "prompt": "..." }`: eine eigene Frage.
* `{ "select": { "button": 0, "choices": { "budget": "Under $100" } } }`: drückt in der vorherigen Antwort die Schaltfläche eines Folgeformulars.

`button` zählt die Schaltflächen der Antwort ab 0, Standard ist die erste. `choices` wählt Optionen über den `name` des jeweiligen `choice`-Knotens oder als Array in der Reihenfolge des Formulars; eine Wahl ist der `value` oder das `label` einer Option oder ihre Position ab 0. Nicht gewählte Felder behalten die Option, die ChatGPT vorausgewählt hat; `{ "select": {} }` sendet also den eigenen `prompt` der Schaltfläche.

```json theme={"theme":"css-variables"}
{
  "taskType": "CHATGPT",
  "payload": {
    "prompt": "best CRM for a small team",
    "country": "US",
    "followUps": [{ "prompt": "Which of these has the best free plan?" }]
  }
}
```

Die Felder auf oberster Ebene bleiben die erste Antwort. `followUps` in der Antwort listet jede weitere Antwort mit der gesendeten Frage (`prompt`), dem, was ein `select` gedrückt hat (`selection`: das `label` der Schaltfläche und der Wert jeder Wahl), und denselben Feldern wie die erste Antwort.

Lässt sich ein `select` nicht drücken, werden die übrigen Folgefragen nicht gestellt, und `followUpsStopped` nennt den `index` der Folgefrage, einen `code` und eine `message`:

| Code | Bedeutung |
| - | - |
| `NO_FOLLOW_UP_FORM` | Die vorherige Antwort zeigte kein Formular. |
| `BUTTON_NOT_FOUND` | Keine Schaltfläche an diesem Index. |
| `CHOICE_NOT_FOUND` | Keine Auswahl mit diesem Namen. |
| `OPTION_NOT_FOUND` | Keine Option passt zur Wahl. |
| `PROMPT_UNAVAILABLE` | Die Schaltfläche hatte keine Frage zum Senden. |

Der Task wird trotzdem mit den erhaltenen Antworten abgeschlossen. Jede Antwort kostet 1 Credit: Der Task reserviert Credits für jede Folgefrage und berechnet nur die gelieferten Antworten. `include.analysis`, `include.citationAnalysis` und `include.html` gelten für die erste Antwort. Andere Engines lehnen `followUps` mit `400 VALIDATION_ERROR` ab.

## Später weiterfragen

Um eine Antwort zu lesen, bevor Sie die nächste Frage wählen, senden Sie einen neuen `CHATGPT`-Task mit `payload.continueFrom` auf die ID eines abgeschlossenen Tasks und dazu entweder einen `prompt` oder ein `select`, das ein Formular in der letzten Antwort dieses Tasks drückt (dieselben Regeln wie bei `followUps`).

```json theme={"theme":"css-variables"}
{
  "taskType": "CHATGPT",
  "payload": {
    "continueFrom": "8f6c1d2e-...",
    "select": { "button": 0 }
  }
}
```

* Eine Antwort mit Formular enthält `forms`: die `buttons` jedes Formulars, deren Reihenfolge `select.button` ist, und seine `choices` mit `name`, der anfangs gewählten Option und den `options`.
* `conversation.id` ist der Task, der das Gespräch eröffnet hat, `turn` zählt die bisherigen Antworten, und `expiresAt` ist der letzte Zeitpunkt zum Weiterfragen, 3 Stunden nach der ersten Antwort.
* Eine Fortsetzung fragt unter der letzten Antwort des genannten Tasks; nennen Sie denselben Task zweimal, verzweigt sich das Gespräch.
* Sie behält das ursprüngliche `country` und `location`. Lassen Sie beide weg oder senden Sie dieselben Werte.
* Ein Task eines anderen Kontos oder einer anderen Engine, ein nicht abgeschlossener Task oder ein ungültiges `select` wird mit `400 VALIDATION_ERROR` abgelehnt. Ein abgelaufenes Gespräch wird mit `400 CONVERSATION_EXPIRED` abgelehnt. Beides wird nicht berechnet.
* Eine Fortsetzung kostet so viel wie jeder ChatGPT-Task.

## Verwandte Seiten

* [ChatGPT-Produktseite](https://querying.ai/de/engines/chatgpt)
* [Engine-Überblick](/de/engines/overview.md)


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