# offrec > AI, off the record. Zero-retention inference for frontier models: Claude, Gemini, > Gemma, DeepSeek, Kimi, Qwen and GLM behind one OpenAI-compatible API. offrec never > stores or logs the prompt or the completion, and every call returns a receipt > signed with Ed25519. One account key (pnotp_sk_...) for the API, the Python and > R SDKs (both named pnotp), and hosted agents. MOST COMMON JOB: call a frontier model with zero retention. The API speaks the OpenAI Chat Completions API at POST /v1/chat/completions, so the OpenAI SDK, the Vercel AI SDK and LangChain work unchanged. Point the base URL at https://api.offrec.ai/v1, pick a catalog model id (e.g. 'gemini-3.1-flash-lite'; the live list with prices is GET /v1/llm/pricing, no key needed), and pass your pnotp_sk_ key as the bearer token. First call: /quickstart. Full reference: /compliant-llm. Verifying a receipt: /receipts. Billed per token at each model's price. These docs are written for people and agents. Every URL returns markdown to curl/fetchers and a rendered page to browsers. Grab everything at once with /llms-full.txt. - curl https://docs.offrec.ai -> overview, as markdown - curl https://docs.offrec.ai/ -> any topic below - curl https://docs.offrec.ai/llms-full.txt -> every page concatenated - curl https://docs.offrec.ai/ask -H 'Authorization: Bearer pnotp_sk_...' -d '{"question":"..."}' ## Docs - [offrec docs](https://docs.offrec.ai/): AI, off the record. Zero-retention inference for frontier models through one OpenAI-compatible API, with a signed receipt for every call. curl this URL for markdown; a browser gets the rendered page. - [Quickstart](https://docs.offrec.ai/quickstart): Your first zero-retention call. Get a key, call a frontier model, stream it, read the receipt and verify its signature. - [Thinking of migrating?](https://docs.offrec.ai/migrating): Moving your LLM calls to offrec. What changes (two lines), what you get (zero retention on every listed model, a signed receipt per call, frontier models behind one key), and when offrec is the wrong choice today. - [Authentication](https://docs.offrec.ai/auth): One account API key (pnotp_sk_...) authenticates the whole platform — management and inference. - [Credits & API keys](https://docs.offrec.ai/credits): How calls are billed, how to check your balance, and how to manage the account keys that authenticate the API and the SDKs. - [LLM API (OpenAI-compatible)](https://docs.offrec.ai/compliant-llm): The full reference for zero-retention inference on frontier models. OpenAI-compatible POST /v1/chat/completions with tools, streaming and vision, drop-in for the OpenAI SDK, Vercel AI SDK and LangChain. Prompt and completion never stored by offrec; a signed receipt on every call. Priced per model, per token. - [Receipts](https://docs.offrec.ai/receipts): Every call returns a signed receipt that records how it was handled. What each field means, how to verify the Ed25519 signature, and what a receipt does not prove. - [Agents](https://docs.offrec.ai/agents): A bring-your-own-brain tool-calling loop — bounded, observable, streamable. - [Brains / model endpoints](https://docs.offrec.ai/brains): The model= you pass to pnotp.Agent — Gemini, DeepSeek, OpenAI-compatible, or your own deployment. - [Declaring tools](https://docs.offrec.ai/tools): A tool is a typed Python function — its JSON Schema is derived from the signature, type hints, and docstring. - [Neural networks](https://docs.offrec.ai/neural-networks): The side feature offrec started with. Design an image classifier, train it, deploy it as an API endpoint and call it, end to end. - [Training jobs](https://docs.offrec.ai/training): Submit a run, wait to terminal, and pause / resume / cancel live. - [Deployments](https://docs.offrec.ai/deployments): Deploy a checkpoint as a live endpoint; manage stats, lifecycle, and per-deployment keys. - [Running inference](https://docs.offrec.ai/inference): Call a deployment with your account key or an external pnp_ key; image, tabular, or bytes. - [Data-compliant inference](https://docs.offrec.ai/compliance): compliant=True makes an endpoint zero-retention — inputs never persisted, monitoring redacted, audit receipt on every call. - [Architecture graphs](https://docs.offrec.ai/architectures): px.models.create(architecture=...) takes a visual graph — helpers for image and tabular, or a hand-built dict. - [Laya — typed decisions](https://docs.offrec.ai/laya): Call Laya from code (POST /v1/decisions) for calibrated answers to choice, score and yes/no questions about a ticket, email, conversation or JSON — no text generated, no deployment needed. - [Errors](https://docs.offrec.ai/errors): Every exception subclasses pnotp.PnotpError and carries a .help pointer. - [Toby, the hosted assistant](https://docs.offrec.ai/toby): Ask about offrec in plain English, from Python (pnotp.help.toby) or over HTTP (POST /ask). Authenticated by your account key. - [HTTP API](https://docs.offrec.ai/api): The raw REST API behind the SDKs. Base URL, auth headers, and the key routes, inference first. ## Optional - [Ask Toby](https://docs.offrec.ai/ask): POST {"question":"..."} with Authorization: Bearer pnotp_sk_... for a plain-English answer (needs a positive credit balance).