The endpoint is familiar. The supported subset is explicit.
BrokenGPT exposes POST /v1/chat/completions at https://brokengpt.com. Requests use a bearer API key, a public model alias, and an ordered array of role-based messages. Responses return JSON by default or server-sent events when stream is true.
“Uncensored” means the gateway does not block prompts before inference. “Compatible” describes a request and response shape. Neither word should be stretched into a claim that the endpoint implements every feature of another provider. The exact public contract is the API documentation.
Revocable bearer keys
Keys are authenticated server-side and can be managed independently from the browser session.
JSON or SSE
Use a normal completion response or stream incremental chunks over server-sent events.
Request identifiers
Response and rate-limit headers make a live request easier to trace and diagnose.
Input + output metering
API calls spend credits and are labelled as API usage instead of chat usage in the dashboard.
One cURL request to the first streamed token.
Create an API key in the dashboard, keep it on the server, and send the public model alias shown in the live docs. The example below requests SSE streaming without adding an output-token cap, so the model can finish naturally.
POST /v1/chat/completions
curl https://brokengpt.com/v1/chat/completions \
-H "Authorization: Bearer $BROKENGPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "broken-one",
"messages": [
{"role": "user", "content": "Explain the tradeoff directly."}
],
"stream": true,
"temperature": 0.7
}'Know what the current chat-completions route accepts.
| Field | Current behavior | Notes |
|---|---|---|
| model | Required public model alias | A mismatched alias returns a model-not-found error. |
| messages | Required array of system, user, and assistant messages | Content is a string; one to 100 messages per request. |
| stream | Optional boolean | True returns text/event-stream chunks and a final DONE event. |
| temperature / top_p | Optional sampling controls | Temperature accepts 0–2; top_p accepts 0–1. |
| max_tokens | Optional caller-chosen cap | Omit it for natural completion; max_completion_tokens is accepted as an alias. |
| stop / user | Optional | Stop accepts one string or up to four strings; user is a short identifier. |
| tools / tool_choice | Optional function calling | Clients execute returned calls unless they build a separate hosted-tool workflow. |
| response_format | Optional validated JSON | JSON object and JSON Schema formats complete before delivery and do not stream. |
| seed / Idempotency-Key | Optional reproducibility controls | Seeds depend on route support; idempotency applies to non-streamed calls. |
Responses, batch inference, token counting, and usage reports have their own documented endpoints. Multimodal message parts, embeddings, image generation, hosted assistants, and private-route extensions are not implied by chat compatibility.
API usage costs credits—and remains separately visible.
A direct API request first checks the account’s credit balance and request-rate allowance. Successful completions record input tokens, output tokens, model alias, latency, API-key identifier, and request status. Streamed requests are recorded when the stream completes; failed inference records a failed status without fabricated output usage.
The account uses one prepaid balance across browser chat and API calls, while the usage view separates the two sources by color and totals. Current token prices belong on the pricing page, where they can change without making an old guide misleading.
The router selects capability, not permission.
Every valid API request is sent to the configured open-source model mixture. The gateway can select a specialist inference tier, but it does not return a platform-authored censorship response or stop prompts with a keyword gate.
The system page defines the stable public alias, private mixture, limits, and data flow. Build application-specific validation and human review on top; generated output can still be false, biased, insecure, or incomplete.