# New ChatGPT API, prompt-to-reply as structured JSON > Source: https://scrape.do/documentation/changelog/2026-05-12-chatgpt-api/ 2026-05-12 ยท feature A new dedicated endpoint sends a prompt to `chatgpt.com` and returns the assembled assistant message as structured JSON. One GET call. No account. No cookies. No streaming protocol to handle on your side. ## What you get back The response is the full message envelope, ready to walk: | Path | What's there | |---|---| | `data.message.content.parts[0]` | The assistant's reply text, already cleaned of inline citation delimiters | | `data.message.metadata.model_slug` | Which model produced the reply (e.g., `gpt-5`) | | `data.message.metadata.finish_details.type` | Stop reason (`"stop"` for a normal completion) | | `data.message.metadata.content_references[]` | Inline citations with resolved `safe_urls[]` | | `data.message.id` | Unique message id | | `data.conversation_id` | Conversation id for logging or audit | ## Why it matters - **Stateless from your side.** Each request is independent. Build prompt batches, evaluation harnesses, or research pipelines without juggling conversation IDs or session tokens. - **Citations already parsed.** When the model cites a source, you get the resolved URL in `content_references[].safe_urls[]`. Inline citation markers in the raw stream are stripped, so `parts[0]` reads cleanly. - **Flat per-call price.** Every successful request is 25 credits, regardless of prompt length or response size. Failed calls don't consume credits. Each request costs 25 credits. See the [ChatGPT API documentation](/documentation/chatgpt-api) for the full request shape, response envelope, and citation reference fields.