# InterOdin - [Introduction](https://docs.interodin.com/en): Odin v1 through the OpenAI and Anthropic APIs you already use. - [Quickstart](https://docs.interodin.com/en/quickstart): Create an API key and send your first request. - [Authentication](https://docs.interodin.com/en/authentication): Send your io-sk- key as a Bearer token or in the x-api-key header. - **Guides** - [Chat Completions](https://docs.interodin.com/en/guides/chat-completions): The OpenAI Chat Completions format, with streaming, tools, structured outputs, reasoning on or off and prompt caching. - [Responses](https://docs.interodin.com/en/guides/responses): The OpenAI Responses format, stateless, with streaming events, tools, structured outputs and reasoning control. - [Messages](https://docs.interodin.com/en/guides/messages): The Anthropic Messages format, with streaming, tools, extended thinking (on or off), token counting and prompt caching. - [Prompt caching](https://docs.interodin.com/en/guides/prompt-caching): How automatic prompt caching works, how to route a conversation to its cache, and how to read cached tokens. - **Integrations** - [Claude Code](https://docs.interodin.com/en/integrations/claude-code): Run Claude Code on Odin v1 and Odin Flash as a separate claudeodin command, next to your normal claude, or with a few lines in settings.json. - [Codex CLI](https://docs.interodin.com/en/integrations/codex): Use the OpenAI Codex CLI with Odin v1 over the Responses API. - [Cursor](https://docs.interodin.com/en/integrations/cursor): Use Odin v1 in Cursor's chat and agent through a custom OpenAI base URL. - [Cline and Roo Code](https://docs.interodin.com/en/integrations/cline-roo): Configure the Cline and Roo Code VS Code extensions to use Odin v1. - [Continue](https://docs.interodin.com/en/integrations/continue): Add Odin v1 to the Continue extension for VS Code and JetBrains. - [n8n](https://docs.interodin.com/en/integrations/n8n): Use Odin v1 in n8n workflows and AI agents. - [OpenAI SDK](https://docs.interodin.com/en/integrations/openai-sdk): Use the official OpenAI SDKs for Python and JavaScript with InterOdin. - [Anthropic SDK](https://docs.interodin.com/en/integrations/anthropic-sdk): Use the official Anthropic SDKs for Python and TypeScript with InterOdin. - [Vercel AI SDK](https://docs.interodin.com/en/integrations/vercel-ai-sdk): Use Odin v1 from the Vercel AI SDK with the OpenAI-compatible provider. - [LangChain](https://docs.interodin.com/en/integrations/langchain): Use Odin v1 as a LangChain chat model in Python or JavaScript. - [LlamaIndex](https://docs.interodin.com/en/integrations/llamaindex): Use Odin v1 as the LLM in LlamaIndex through the OpenAI-like integration. - **Models** - [Models](https://docs.interodin.com/en/models): Every model you can call, with context size, capabilities and prices. - [Odin v1](https://docs.interodin.com/en/models/odin-v1): Context window, capabilities and prices for odin-v1. - [Odin Flash](https://docs.interodin.com/en/models/odin-flash): Context window, capabilities and prices for odin-flash. - **Reference** - API reference - [API reference](https://docs.interodin.com/en/api-reference): Every endpoint, with request and response schemas and a live playground. - Chat completions - [Create chat completion](https://docs.interodin.com/en/api-reference/chat-completions/create-chat-completion): Generates the next assistant message. With `stream: true` the reply is sent as server-sent events: each `data:` line is a `ChatCompletionChunk`, the last chunk carries `usage`, and the stream ends with `data: [DONE]`. - Messages - [Count message tokens](https://docs.interodin.com/en/api-reference/messages/count-message-tokens): Counts the input tokens of a Messages request without running the model. Free: never billed, and it works even when the balance is zero. It counts toward rate limits. - [Create message](https://docs.interodin.com/en/api-reference/messages/create-message): Anthropic Messages format. Accepts `x-api-key` or `Authorization: Bearer` (`x-api-key` wins if both are sent), query strings such as `?beta=true`, and the `anthropic-version` / `anthropic-beta` headers. - Models - [List models](https://docs.interodin.com/en/api-reference/models/list-models): Lists the models your key may call. A key restricted to some models lists only those. OpenAI format by default; Anthropic format when the request carries an `anthropic-version` header. It sends `x-request-id` but no rate-limit headers. In practice only `invalid_api_key` (401), `organization_suspended` (403), `not_found` (404) and `internal_error` (500) occur here; the other error statuses are listed for completeness. - Responses - [Create response](https://docs.interodin.com/en/api-reference/responses/create-response): Generates a model response. Responses are never stored: `store` is always `false`, `previous_response_id` is rejected, and there is no endpoint to retrieve or delete a response. Send the whole conversation in `input` each time. - [Errors and rate limits](https://docs.interodin.com/en/errors-and-rate-limits): Every error code the API returns, the rate-limit headers, and how to retry. - [Changelog](https://docs.interodin.com/en/changelog): Changes to the API, models and documentation.