Documentation
Build with Pixelit
One OpenAI-compatible API for 35+ open-source models at up to 70% below list price. If your code talks to OpenAI, it already talks to Pixelit — change two lines and you're in.
Quickstart
- 1Create an account and open your dashboard.
- 2Click New key, then copy it immediately; it's shown once. Add credits before your first billable request.
- 3Point any OpenAI-compatible client at our base URL with your key:
Base URL
https://api.pixelit.pro/v1local dev: http://localhost:4000/v1
Authentication
Every request needs your virtual API key as a Bearer token. Keys are scoped to your account, carry your credit balance and rate limits, and can be revoked anytime from the dashboard.
Never ship keys in client-side code — call from your backend.
Code examples
1from openai import OpenAI23client = OpenAI(4base_url="https://api.pixelit.pro/v1",5api_key="pxit-sk-...", # from your dashboard6)78resp = client.chat.completions.create(9model="kimi-k3",10messages=[{"role": "user", "content": "Explain KV caching in 2 lines"}],11stream=False,12)13print(resp.choices[0].message.content)
1import OpenAI from "openai";23const client = new OpenAI({4baseURL: "https://api.pixelit.pro/v1",5apiKey: process.env.PIXELIT_API_KEY,6});78// streaming works too9const stream = await client.chat.completions.create({10model: "glm-5.2",11messages: [{ role: "user", content: "Hello!" }],12stream: true,13});1415for await (const chunk of stream) {16process.stdout.write(chunk.choices[0]?.delta?.content ?? "");17}
1curl https://api.pixelit.pro/v1/chat/completions -H "Authorization: Bearer $PIXELIT_API_KEY" -H "Content-Type: application/json" -d '{2"model": "deepseek-v4-pro",3"messages": [{"role": "user", "content": "Hello!"}]4}'
Coding agents
Use Pixelit inside your favorite AI coding tool — cheap open models for autocomplete, chat and agentic coding. Anything that speaks the OpenAI or Anthropic API works.
Claude Code
1export ANTHROPIC_BASE_URL=https://api.pixelit.pro2export ANTHROPIC_AUTH_TOKEN=pxit-sk-...3export ANTHROPIC_MODEL=kimi-k345claude
Codex CLI
1model_provider = "pixelit"2model = "kimi-k3"34[model_providers.pixelit]5name = "pixelit.pro"6base_url = "https://api.pixelit.pro/v1"7env_key = "PIXELIT_API_KEY"8wire_api = "chat"
Cursor
- Open Settings → Models
- Under OpenAI API Key, paste your
pxit-sk-…key - Enable Override OpenAI Base URL →
https://api.pixelit.pro/v1 - Add a model named
kimi-k3(or any from the catalog) and select it
opencode
1{2"$schema": "https://opencode.ai/config.json",3"provider": {4"pixelit": {5"npm": "@ai-sdk/openai-compatible",6"name": "pixelit.pro",7"options": {8"baseURL": "https://api.pixelit.pro/v1",9"apiKey": "pxit-sk-..."10},11"models": {12"kimi-k3": { "name": "Kimi K3" },13"glm-5.2": { "name": "GLM 5.2" }14}15}16}17}
pi
1import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";23export default function (pi: ExtensionAPI) {4pi.registerProvider("pixelit", {5name: "pixelit.pro",6baseUrl: "https://api.pixelit.pro/v1",7apiKey: "$PIXELIT_API_KEY",8api: "openai-completions",9models: [10{11id: "kimi-k3",12name: "Kimi K3",13reasoning: true,14input: ["text"],15cost: { input: 0.3, output: 1.5, cacheRead: 0, cacheWrite: 0 },16contextWindow: 1000000,17maxTokens: 8192,18},19{20id: "glm-5.2",21name: "GLM 5.2",22reasoning: true,23input: ["text"],24cost: { input: 0.076, output: 0.242, cacheRead: 0, cacheWrite: 0 },25contextWindow: 1000000,26maxTokens: 8192,27},28],29});30}
Aider
1export OPENAI_API_BASE=https://api.pixelit.pro/v12export OPENAI_API_KEY=pxit-sk-...34aider --model kimi-k3
Thinking / reasoning models
Reasoning models (Kimi K3, GLM 5.2, DeepSeek V4 Pro, DeepSeek R1) return their chain-of-thought in a separate reasoning_content field alongside the answer in content. When streaming, reasoning chunks arrive first, then the answer — perfect for a “show thinking” UI. Token usage splits are in usage.completion_tokens_details.reasoning_tokens.
{"choices": [{"message": {"role": "assistant","reasoning_content": "Compute 17*23: 17*20 + 17*3 = 391.","content": "17 × 23 = 391"}}],"usage": {"completion_tokens_details": { "reasoning_tokens": 30 }}}
Model catalog
Request any model by its ID — e.g. kimi-k3, glm-5.2, deepseek-v4-pro. A sample of the catalog — prices per 1M tokens, list vs Pixelit:
| Model | Provider | In / Out | Save |
|---|---|---|---|
| Kimi K3 | BB | $3.00/$15.00$0.90/$4.50 | −70% |
| GLM 5.2 | BB | $0.76/$2.42$0.23/$0.73 | −70% |
| DeepSeek V4 Pro | BB | $0.28/$0.42$0.084/$0.13 | −70% |
| DeepSeek V4 Flash | BB | $0.090/$0.18$0.027/$0.054 | −70% |
| Kimi K2.7 Code | BB | $0.73/$3.50$0.22/$1.05 | −70% |
| MiniMax M3 | BB | $0.30/$1.20$0.090/$0.36 | −70% |
| Nemotron 3 Ultra | BB | $0.60/$3.60$0.18/$1.08 | −70% |
| Nemotron 3 Super | BB | $0.085/$0.40$0.025/$0.12 | −70% |
| Mistral Medium 3.5 | BB | $1.50/$7.50$0.45/$2.25 | −70% |
| Codestral | BB | $1.00/$3.00$0.30/$0.90 | −70% |
| gpt-oss-120b | BB | $0.037/$0.17$0.011/$0.051 | −70% |
| Trinity Large Thinking | BB | $0.22/$0.85$0.066/$0.26 | −70% |
| DeepSeek V3.2 | DeepSeek | $0.28/$0.42$0.084/$0.13 | −70% |
| DeepSeek R1 | DeepSeek | $0.28/$0.42$0.084/$0.13 | −70% |
| Llama 4 Maverick | Meta | $0.20/$0.80$0.060/$0.24 | −70% |
| Qwen3 235B | Alibaba | $0.23/$2.30$0.069/$0.69 | −70% |
| Mistral Large 3 | Mistral AI | $0.50/$1.50$0.15/$0.45 | −70% |
| GLM-4.6 | Zhipu AI | $0.30/$0.90$0.090/$0.27 | −70% |
| Qwen3 Coder | Alibaba | $0.12/$0.80$0.036/$0.24 | −70% |
| Llama 3.3 70B | Meta | $0.59/$0.79$0.18/$0.24 | −70% |
| Gemma 3 27B | $0.080/$0.45$0.024/$0.14 | −70% | |
| Mistral Small 3 | Mistral AI | $0.060/$0.18$0.018/$0.054 | −70% |
Full live list: GET /v1/models with your key.
Errors & retries
Errors follow the OpenAI shape with standard HTTP status codes. Transient blips are retried automatically — if a request still fails, you get a clean, honest error. No silent degradation, ever.
{"error": {"message": "You have exceeded your credit budget","type": "budget_exceeded","code": 429}}
| 200 | Success |
| 400 | Bad request — check model name, messages format & params |
| 401 | Invalid or revoked API key |
| 429 | Out of credits, or plan RPM/TPM limit hit — top up or back off |
| 500 | Something failed on our side — logged & alerted instantly |
Rate limits & credits
Pay as you go
30 RPM · 100K TPM · top up before use · all 33 models
4-Day Unlimited · $40
Kimi K3 and GLM 5.2 · renews every 4 days · 120 RPM safeguard
Model access, RPM, and TPM safeguards are enforced at the gateway. Admins can set custom per-user limits — contact us for bursts.
FAQ
Which SDKs work with Pixelit?
Anything OpenAI-compatible: the official OpenAI Python/Node SDKs, LangChain, LlamaIndex, Vercel AI SDK, or plain HTTP. Just change base_url and api_key.
How do credits work?
1 credit = $1 of usage at our discounted rates. Pay as you go with packs (never expire), or go Pro ($40/mo) for 5,000 requests every day. Our gateway enforces your quota on every request — you get a clean 429 when you run out.
What happens when a request fails?
Transient blips are retried automatically. If it still fails, you get a standard HTTP error code (400/401/429/500) with a clear message — we never silently swap your model or hide failures. Every error is deduped and visible to our ops team in real time.
Do you train on my data?
Never. Prompts pass through to the model provider and are not stored or used for training. Enterprise plans can enable zero-retention mode.
Why only open-source models?
Open weights mean no vendor lock-in, transparent pricing, and the freedom to fine-tune. We pass the infra savings straight to you — that's how we hit 70% off.