GPT Responses
Call GPT-6.1 Sol, GPT-6 Astra, GPT-6 Sol and GPT-6 Luna through the OpenAI Responses API with a BeatAPI key.
- One endpoint,
POST /v1/responses, for every current GPT model. Changemodelto switch. - The recommended format for new reasoning and tool-calling integrations.
- Text and image input, text output, streaming, function calling, structured outputs and configurable reasoning effort.
- Works with the OpenAI SDK: change the base URL and use a BeatAPI key. For an existing Chat Completions integration, see Chat Completions.
Use https://direct.beatapi.io as the base URL for text requests: it is not subject to Cloudflare’s 100-second limit, so a long non-streaming request is not cut off. https://api.beatapi.io also works and is the fallback if direct.beatapi.io is unreachable from your network. The key, models and prices are the same on both. Image and video APIs use https://api.beatapi.io only.
Opens this endpoint in the API Explorer. Enter your BeatAPI API key and send: the call is real and is billed to your own balance.
Models
Send one of these IDs as model. Each is a separate model; do not treat them as aliases of each other.
- Prices are the base tier, discount already applied. A long-context tier, cached-input rates and cache writes are not in this table; see the price table.
—means the catalogue does not publish the number.
Older IDs of this family still work and are listed on Legacy models.
Quick start
Install the openai package on your server, keep the key in BEATAPI_API_KEY, and never put it in browser code. output_text is the SDK’s shortcut for the answer text.
Reasoning effort accepts none, low, medium, high, xhigh and max on the GPT-5.6 models; gpt-6.1-sol accepts low to max. Use medium as a balanced starting point, then evaluate one level lower and higher on your own workload. An HTTP 200 alone does not prove the answer satisfies your task: validate it in your application.
Endpoint and authentication
POST https://direct.beatapi.io/v1/responses
Authorization
string
Required
Bearer <BEATAPI_API_KEY>. The key works with or without the sk- prefix.
Request parameters
Standard OpenAI Responses fields are accepted. Request-format compatibility does not mean every provider-specific option or hosted tool is supported, so test the options you rely on.
model
string
Required
The exact model ID.
Allowed values: gpt-6.1-sol, gpt-6-astra, gpt-6-sol, gpt-6-luna
- Older IDs that still work (
gpt-5.6-sol,gpt-5.6-terra,gpt-5.6-luna) are on Legacy models. - Call
GET /v1/modelswith your key to confirm which models are enabled for it.
input
string | object[]
Required
The prompt: a string, or an array of input items for text and image input.
- Image input is supported by all GPT models on this page.
reasoning
object
Optional
Reasoning settings. reasoning.effort chooses how much the model reasons before answering.
Allowed values: none, low, medium, high, xhigh, max
Per model
gpt-6.1-sol:low,medium,high,xhighandmax.noneandminimalare not supported.gpt-5.6-sol:none,low,medium,high,xhighandmax.gpt-5.6-terra:none,low,medium,high,xhighandmax.gpt-5.6-luna:none,low,medium,high,xhighandmax.
Example
max_output_tokens
integer
Optional
Upper bound on the generated tokens.
- The gateway accepts values up to 1,073,741,823; a larger value is
400 bad_request. - The gateway does not compare your value with the model’s max output from the table above. Keep it at or below that number.
- The value is also used to estimate how much balance a request needs. A very large value can be refused with
402 insufficient_creditseven when the real output would be small. Set it to what you need.
stream
boolean
OptionalDefault: false
Return the answer as server-sent events. See the Streaming section below.
Default: false
tools
object[]
Optional
Function tools the model may call. Responses is the recommended format for tool calls.
text
object
Optional
Output format settings, for example text.format for structured outputs.
Response
A non-streaming call returns one JSON object. This is an abbreviated example.
Response fields
Streaming
Set "stream": true. BeatAPI forwards the server-sent event stream without converting it, so event names and objects stay compatible with the OpenAI SDK.
- The response is
text/event-stream; without streaming it isapplication/json. - A failure before the model is called is returned as a normal JSON error with an HTTP status, not as a stream event.
- Set explicit timeouts and reconnect a streamed response safely.
Errors
HTTP errors at a glance
Authentication, routing, rate-limit and unknown-model failures are answered before the model is called, in the BeatAPI envelope: error.code, error.message, retryable, request_id. Every other failure keeps the OpenAI SDK shape {"error": {"message", "type", "code"}}: the code is in error.code and the request id ends message. See Errors.
Full code table and retry policy: Errors.
Notes
- Claude models do not answer on
/v1/responses(400 bad_request); call them on Anthropic Messages. - Above 272K input tokens,
gpt-6.1-solandgpt-6-astrause a higher tier for the full request. See the price table before budgeting a long-context workload. - Keep API keys on trusted servers, log the response request ID, and retry only
429,500and503.
Authentication
Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.
Request
The exact model ID.
Older IDs that still work (gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna) are on Legacy models.
Call GET /v1/models with your key to confirm which models are enabled for it.
gpt-6.1-sol, gpt-6-astra, gpt-6-sol, gpt-6-luna
The prompt: a string, or an array of input items for text and image input.
Image input is supported by all GPT models on this page.
Reasoning settings. reasoning.effort chooses how much the model reasons before answering.
gpt-6.1-sol: low, medium, high, xhigh and max. none and minimal are not supported.
gpt-5.6-sol: none, low, medium, high, xhigh and max.
gpt-5.6-terra: none, low, medium, high, xhigh and max.
gpt-5.6-luna: none, low, medium, high, xhigh and max.
none, low, medium, high, xhigh, max
Upper bound on the generated tokens.
The gateway accepts values up to 1,073,741,823; a larger value is 400 bad_request.
The gateway does not compare your value with the model’s max output from the table above. Keep it at or below that number.
The value is also used to estimate how much balance a request needs. A very large value can be refused with 402 insufficient_credits even when the real output would be small. Set it to what you need.
Return the answer as server-sent events. See the Streaming section below.
Output format settings, for example text.format for structured outputs.
Response
A non-streaming call returns one JSON object. This is an abbreviated example.
completed for a finished answer.
Output items: messages, reasoning and tool calls. The SDK’s output_text joins the text parts for you.

