# Princeps Sator | Documentation > Princeps Sator is a pay-per-token inference API for open models with two wires: OpenAI Chat Completions at https://sator-api.princep.org/v1 and Anthropic Messages at https://sator-api.princep.org. These docs cover both, plus setup for Claude Code, OpenCode, Cursor, Cline, Roo Code, Continue, Aider, Zed and the OpenAI, Anthropic, Vercel AI and LangChain SDKs. ## Docs - [Quickstart](https://sator.princep.org/docs/quickstart.md): From signup to a working call on either wire, in curl, Python or TypeScript. - [Authentication](https://sator.princep.org/docs/authentication.md): The key format, the two headers that carry it, and how keys are created, shown and revoked. - [Models](https://sator.princep.org/docs/models.md): Every model id, with its context window and max output. Rates are on the price page. - [Chat Completions](https://sator.princep.org/docs/api/chat-completions.md): POST /v1/chat/completions — the OpenAI wire: request fields, response shape, streaming frames. - [Responses](https://sator.princep.org/docs/api/responses.md): POST /v1/responses — the OpenAI Responses wire, served stateless: send the whole conversation every turn. - [Messages](https://sator.princep.org/docs/api/messages.md): POST /v1/messages — the Anthropic wire: required max_tokens, top-level system, named SSE events. - [List models](https://sator.princep.org/docs/api/models.md): GET /v1/models — the catalog as a four-field OpenAI list, no key needed. - [Errors](https://sator.princep.org/docs/errors.md): Both error envelopes side by side, every status and code, and what to retry. - [Streaming](https://sator.princep.org/docs/streaming.md): Server-sent events on both wires, what is filtered, and what happens on disconnect. - [Prompt caching](https://sator.princep.org/docs/prompt-caching.md): Cache reads are billed at the cache-read rate automatically; how conversations stay warm and how to key them yourself. - [Rate limits](https://sator.princep.org/docs/rate-limits.md): 300 requests per minute per account, a 5 MB body cap, and what a 429 carries. - [Billing](https://sator.princep.org/docs/billing.md): Prepaid credits in USD, debited per token; the $10 minimum, the zero-balance cutoff and the low-balance email. - [Tool calling, JSON mode and vision](https://sator.princep.org/docs/tool-calling.md): Tools, tool_choice, structured output and images on both wires — what translates and what is refused. - [Privacy and logging](https://sator.princep.org/docs/privacy.md): What Sator records about a request and what it never records: no prompt or completion is ever logged. - [Limitations and known issues](https://sator.princep.org/docs/limitations.md): What is not served, what is different from the model's own documentation, and the open issues we know about. - [Set up your tool](https://sator.princep.org/docs/tools.md): One page per coding tool, with the exact file, the exact keys and the base URL with or without /v1. - [OpenCode](https://sator.princep.org/docs/tools/opencode.md): Add Sator as a custom provider in opencode.json with @ai-sdk/openai-compatible. - [Claude Code](https://sator.princep.org/docs/tools/claude-code.md): Point Claude Code at Sator's Anthropic wire with ANTHROPIC_BASE_URL and pick a model explicitly — the picker will not list Sator's. - [Cursor](https://sator.princep.org/docs/tools/cursor.md): Override Cursor's OpenAI base URL with Sator's /v1 endpoint — reported to work, not verified by us. - [Cline](https://sator.princep.org/docs/tools/cline.md): Use Cline's OpenAI Compatible provider with Sator's /v1 base URL and set the context and output limits by hand. - [Roo Code](https://sator.princep.org/docs/tools/roo.md): Roo Code's OpenAI Compatible provider with Sator's /v1 base URL; Roo requires native tool calling, which Sator provides. - [Continue](https://sator.princep.org/docs/tools/continue.md): Add Sator models to ~/.continue/config.yaml with provider openai and Sator's /v1 apiBase. - [Aider](https://sator.princep.org/docs/tools/aider.md): Point Aider at Sator with OPENAI_API_BASE and a prefixed model name, openai/. - [Zed](https://sator.princep.org/docs/tools/zed.md): Add Sator to Zed's language_models settings as an openai_compatible provider (or anthropic_compatible, without /v1). - [Codex CLI](https://sator.princep.org/docs/tools/codex.md): A model_providers entry with wire_api = "responses" in config.toml. Verified. - [OpenAI SDK](https://sator.princep.org/docs/sdks/openai.md): The official openai packages for Python and TypeScript against Sator's /v1 base URL. - [Anthropic SDK](https://sator.princep.org/docs/sdks/anthropic.md): The official anthropic packages for Python and TypeScript against Sator's bare host, with auth_token for the key. - [Vercel AI SDK](https://sator.princep.org/docs/sdks/vercel-ai.md): createOpenAICompatible for the OpenAI wire; createAnthropic for the Anthropic wire — the one client that wants /v1 on both. - [LangChain](https://sator.princep.org/docs/sdks/langchain.md): ChatOpenAI with base_url; ChatAnthropic with the bare host. Python and JavaScript. - [Agent setup](https://sator.princep.org/docs/agent-setup.md): A deterministic procedure for an AI coding agent to configure any harness against Sator without guessing.