API
Chat Completions
POST /v1/chat/completions in the OpenAI format, for any model in the catalogue, with what is sent on, translated or dropped for each kind of provider.
POST https://api.digitspace.ai/v1/chat/completionsThe OpenAI Chat Completions format. Any OpenAI SDK or OpenAI-compatible tool works by setting its base URL to https://api.digitspace.ai/v1.
Request
model and a non-empty messages array are required; anything else is optional.
curl https://api.digitspace.ai/v1/chat/completions \
-H "Authorization: Bearer $DIGITSPACE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "auto",
"messages": [
{ "role": "system", "content": "Answer in one sentence." },
{ "role": "user", "content": "What is an AI gateway?" }
],
"max_tokens": 200
}'| Field | |
|---|---|
model | A model ID or alias, provider/model to pin a provider, or auto. See Choosing a model. |
messages | The conversation, as in OpenAI's API. Text and image parts are supported. |
stream | true for server-sent events. See Streaming. |
tools, tool_choice | Function calling. See Tool calls. |
response_format | JSON mode or a JSON schema. See Structured output. |
reasoning_effort | For reasoning models. See Reasoning. |
max_tokens, max_completion_tokens | The longest answer. Either name works; for OpenAI and Azure the gateway sends max_completion_tokens. |
temperature, top_p, stop | Sent to every provider. |
| Other OpenAI fields | n, seed, user, metadata, logprobs, penalties and the rest are passed to providers that use the OpenAI format, and dropped for the rest (see below). |
How the request reaches the provider
The gateway rewrites only model, to the provider's own name for it. What happens to the other fields depends on the format the chosen provider uses:
- OpenAI-format providers (OpenAI, Azure, Groq, DeepSeek, Mistral and most others) get the body as you sent it.
- Anthropic and Claude on Vertex or Azure get it translated to the Messages format. System messages are joined into
system, tools and tool results are converted,stopbecomesstop_sequences, andmax_tokensdefaults to 4,096 when you don't set it.response_format,n,seed,user,metadata,parallel_tool_calls,logprobsand the penalties have no Anthropic equivalent and are dropped. - AWS Bedrock gets it translated to the Converse API. Messages, system,
max_tokens,temperature,top_p,stopand function tools are kept; the rest is dropped. Images must be sent asdata:URLs.
On DigitSpace credits, a few provider-only options are removed: service_tier, web_search_options, and tools that aren't functions. On your own provider key they're passed through.
If you need a field that one provider format drops, such as response_format with a JSON schema, either pin a provider that uses the OpenAI format with provider/model, or let auto choose: routing only picks models whose providers can do what the request asks for.
Response
The response is in the OpenAI format whichever provider answered. Answers from Anthropic-format providers are converted: thinking becomes reasoning_content on the message, tool_use becomes tool_calls, and finish_reason is mapped (end_turn to stop, max_tokens to length, tool_use to tool_calls).
{
"id": "chatcmpl-…",
"object": "chat.completion",
"model": "auto",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "An AI gateway is …" },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 31,
"completion_tokens": 24,
"total_tokens": 55,
"prompt_tokens_details": { "cached_tokens": 0 }
}
}modelrepeats what you sent, so a request forautoanswers"model": "auto".- The
x-digitspace-providerheader names the provider that answered, andx-request-ididentifies the request. Quote it when you contact support. - The response carries no cost. The cost of each request is in the dashboard's Activity page.
Errors
Errors use OpenAI's shape, {"error": {"message", "type", "code"}}. Errors lists every one.
Checked against the gateway on 31 October 2026. Something wrong or missing? Tell us.