Skip to main content

Create a chat completion

POST 

/v1/chat/completions

OpenAI Chat Completions, on any model in the catalog. Send model (an alias) and messages; set stream: true for text/event-stream chunks terminated by data: [DONE]. Parameters the target model cannot take are dropped and named in X-MindsHub-Dropped-Params, and parts of the request the target cannot carry in X-MindsHub-Dropped-Content (a stream whose 200 went out early carries neither); response_format is the one thing refused with a 400 instead. The response's model names the model that served (mindshub_air and mindshub_blaze return their own alias), and it can be sent back as-is.

Request​

Responses​

The completion. Exactly one choice.

Response Headers
    X-MindsHub-Attempts

    Upstream attempts the request took, requested model and fallbacks together. 1 means the first try answered. Never sent on a stream whose 200 went out early because its response took more than 90 seconds to start, so there its absence says nothing.

    X-MindsHub-Clamped-Params

    Parameters adjusted to the model's range, as name=requested>applied. Absent when nothing was clamped. Never sent on a stream whose 200 went out early because its response took more than 90 seconds to start, so there its absence says nothing.

    X-MindsHub-Dropped-Content

    Comma-separated categories of request structure the target model could not take: content blocks and per-block keys, message fields, tool keys, and tool schemas rewritten into the target's dialect (e.g. block_field.cache_control,content_block.thinking,tool_schema.gemini_openapi). Category labels, not an inventory, and capped at 16 with a trailing more.N. Absent when nothing was dropped. Never sent on a stream whose 200 went out early because its response took more than 90 seconds to start, so there its absence says nothing.

    X-MindsHub-Dropped-Params

    Comma-separated parameters the target model could not take and that were dropped. Absent when nothing was dropped. Never sent on a stream whose 200 went out early because its response took more than 90 seconds to start, so there its absence says nothing.

    X-MindsHub-Failover

    true when a fallback model produced the response, false when the requested model did. Present, on errors too, once the request reached a model. Never sent on a stream whose 200 went out early because its response took more than 90 seconds to start, so there its absence says nothing. On such a stream, read the mindshub field of its last event instead (message_delta on Messages). A Chat Completions or Messages stream that fails after its early 200 carries no failover signal at all.