> ## Documentation Index
> Fetch the complete documentation index at: https://omnirelay.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Responses and embeddings

> Stateless Responses, typed stream events and reviewed embedding models.

Use `GET /v1/models` with your own inference key. `capabilities.responses` and `capabilities.embeddings` determine which protocol a model accepts. The same workspace, key model allowlist, rate limits, wallet and budgets apply.

## Responses

All callable GPT routes support `POST /v1/responses`, JSON and SSE according to the documented contract. Use `store: false` and pass the complete conversation in `input`; stored response IDs, `previous_response_id`, background processing, hosted tools and WebSocket are unsupported.

```bash theme={null}
curl https://api.omnirelay.ai/v1/responses \
  -H "Authorization: Bearer $OMNIRELAY_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"model":"gpt-6-luna","input":"Reply concisely.","store":false,"max_output_tokens":64}'
```

`input` accepts text or explicit messages, `function_call` and `function_call_output` history. Function tools use the flat Responses format: `{type: "function", name, parameters}`. Tool execution remains in your application. Reviewed GPT contracts now enable strict tools and named function selection. Use `tool_choice: "auto"`, `"none"` or `"required"`; named selection requires `capabilities.named_tool_choice`. JSON output uses `text.format`, including `json_object` or `json_schema` with `name`, `schema` and optional `strict: true`.

Add `stream: true` for typed SSE events such as `response.created`, `response.output_text.delta`, `response.function_call_arguments.delta` and `response.completed`. A length-limited response ends with `response.incomplete`. The terminal response contains validated `usage` and settled `cost_microusd`. `input_tokens_details` preserves both `cached_tokens` and `cache_write_tokens` within total input tokens. A failed stream emits `error` without a completion event; disable automatic SDK retries and use `X-Request-ID` for diagnostics.

## GPT 5.6 Sol Responses

For `gpt-5.6-sol`, Responses supports function tools, strict definitions, named selection, parallel calls, JSON object/schema, JSON and SSE. `reasoning.effort` accepts `none`, `low`, `medium`, `high`, `xhigh` and `max`; function tools can accompany these efforts. The default remains `none`. Unlike Chat, tools do not impose the `none` restriction on this endpoint. Sampling parameters require `none`.

```json theme={null}
{"model":"gpt-5.6-sol","input":"Reply with exactly: OK.","store":false,"reasoning":{"effort":"low"},"max_output_tokens":1024}
```

This integration is stateless and exposes function calls and final text, model reasoning items, including encrypted history, with hosted tools excluded. Replay explicit function calls/results and the conversation for each turn. Higher effort consumes the same output budget, including hidden reasoning; the 4,096-token platform ceiling still applies. Newly enabled parameter combinations await individual live validation.

## Embeddings

`POST /v1/embeddings` is implemented for reviewed embedding model contracts. **No embedding model is currently enabled for this provider group.** Model discovery will not advertise an embedding capability until the model, dimensions, aggregate request input ceiling and input price have been verified.

For an enabled model, `input` accepts text, text batches, token IDs or batches of token IDs. Batch size is limited by `limits.embedding_inputs`. `encoding_format` currently accepts `float` only. `dimensions` requires the model's verified adjustable-dimensions capability; otherwise omit it. Responses contain ordered finite vectors, input usage and the settled customer charge. No output-token charge is added.

Inference request bodies are limited to 4 MiB, with up to 2,000 messages or input items; see [Rate limits](https://omnirelay.ai/docs/overview/rate-limits.md#payload-size). Fees are reserved before dispatch and settled only from valid final usage. See [Model discovery](https://omnirelay.ai/docs/llms/listing-models.md), [Usage and billing](https://omnirelay.ai/docs/general/usage-billing.md) and [Errors](https://omnirelay.ai/docs/general/errors.md).

Ordinary Responses fields and native input/output/reasoning items are preserved. Encrypted reasoning history can be replayed with store:false. Authentication, budgets and final-usage settlement remain enforced.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.