Tresor's /v1/chat/completions endpoint follows the OpenAI request and response shape, so any OpenAI SDK works after changing the base URL to https://api.tresor.co/v1 and the API key to a Tresor key (tr-…).
For end-to-end install + first-call instructions, see the Use the OpenAI SDK guide.
| Feature | Status |
|---|---|
| Non-streaming chat completions | ✅ Supported |
| Streaming via SSE | ✅ Supported |
tools / tool_choice (function calling) | ✅ Supported (streaming + non-streaming) |
response_format (JSON mode / schema) | ✅ Forwarded; provider-dependent |
reasoning_content for reasoning models | ✅ Supported |
Vision / multimodal content arrays | ✅ Forwarded; provider-dependent |
seed, stop, top_p, penalties | ✅ Forwarded |
logprobs, n > 1 | ⚠️ Forwarded; only choices[0] is surfaced in streaming |
/v1/embeddings | ❌ Not supported |
/v1/completions (legacy) | ❌ Not supported |
/v1/audio/*, /v1/images/*, batches | ❌ Not supported |
For per-parameter detail (which are validated, which are forwarded verbatim) see the chat completions reference.
The tresor extension on responses (receipt_id, requested_route, routed_model, failover) is an unknown key as far as the OpenAI SDK is concerned, so existing SDK code reads it via the raw response or simply ignores it. requested_route is the normalized primary route you asked for; routed_model is the concrete route that actually served the request. The failover boolean reports routing failover, not client retry behaviour.
tresor-attest SDK — wrap the OpenAI SDK with attestation pinning