Install any skill in seconds. Free to start, no credit card required.
Get Started Free →High-level map of the Venice.ai API - base URL, authentication modes, endpoint categories, response headers, pricing model, error shape, and versioning. Load this first when starting any Venice integration.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 56% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 142% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 72% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 43% | 0% |
Venice.ai is an OpenAI-compatible inference platform for text, image, audio, video, and embeddings. One API — two ways to pay: a traditional API key (Pro account), or a wallet (x402, USDC on Base or Solana, no account required).
api.venice.ai for the first time.X-Balance-Remaining, PAYMENT-REQUIRED, etc.).All endpoints live under:
https://api.venice.ai/api/v1The OpenAPI spec is distributed at outerface/swagger.yaml (current version 20260728.190807).
| Scheme | Header | Best for | |---|---|---| | BearerAuth | Authorization: Bearer <VENICE_API_KEY> | Server-side apps, dashboards, usage analytics, bundled credits | | siwx (x402) | SIGN-IN-WITH-X: <base64 SIWX JSON> | No account, pay-as-you-go with USDC on Base or Solana, serverless / agents |
Every inference endpoint accepts either — see venice-auth.
bash# Bearer curl https://api.venice.ai/api/v1/models \ -H "Authorization: Bearer $VENICE_API_KEY" # x402 / SIWE (one-liner via the SDK) import { VeniceClient } from 'venice-x402-client' const v = new VeniceClient(process.env.WALLET_KEY) await v.models.list()
| Category | Endpoints | Skill | |---|---|---| | Chat | POST /chat/completions | venice-chat | | Responses (Alpha) | POST /responses | venice-responses | | Embeddings | POST /embeddings | venice-embeddings | | Image gen | POST /image/generate, POST /images/generations, GET /image/styles | venice-image-generate | | Image edit | POST /image/edit, POST /image/multi-edit, POST /image/upscale, POST /image/background-remove | venice-image-edit | | TTS | POST /audio/speech, POST /audio/voices (voice cloning) | venice-audio-speech | | STT | POST /audio/transcriptions | venice-audio-transcription | | Music (async) | POST /audio/quote, /audio/queue, /audio/retrieve, /audio/complete | venice-audio-music | | Video (async) | POST /video/quote, /video/queue, /video/retrieve, /video/complete, /video/transcriptions | venice-video |
| Category | Endpoints | Skill | |---|---|---| | Models | GET /models, /models/traits, /models/compatibility_mapping | venice-models | | Characters | GET /characters, /characters/{slug}, /characters/{slug}/reviews | venice-characters |
| Category | Endpoints | Skill | |---|---|---| | API keys | GET|POST|DELETE /api_keys, /api_keys/{id}, /api_keys/rate_limits, /api_keys/rate_limits/log, /api_keys/generate_web3_key | venice-api-keys | | Billing | GET /billing/balance, /billing/usage-history, /billing/usage-analytics, /billing/usage (deprecated) | venice-billing | | x402 wallet | GET /x402/balance/{wallet}, POST /x402/top-up, GET /x402/transactions/{wallet} | venice-x402 |
| Category | Endpoints | Skill | |---|---|---| | Crypto RPC proxy | GET /crypto/rpc/networks, POST /crypto/rpc/{network} | venice-crypto-rpc | | Augment | POST /augment/text-parser, /augment/scrape, /augment/search | venice-augment |
| Header | When | Meaning | |---|---|---| | X-Balance-Remaining | x402 inference success | USDC credits left, e.g. "4.230000" | | X-RateLimit-Limit-* / X-RateLimit-Remaining-* | all inference | your current per-minute/day caps | | PAYMENT-REQUIRED | 402 on x402 inference | base64 JSON with top-up + SIWX challenge (x402 v2) | | Content-Encoding | 200 when client sent Accept-Encoding: gzip, br | compression (embeddings, chat) |
x-payment-info block with min and max bounds in USD (typically min: 0.001, max: 10.00; higher for bulk video/audio). Read-only discovery routes like GET /models, /models/traits, and /models/compatibility_mapping do not.GET /models → model_spec.pricing (when present — video models omit it; use /video/quote for video pricing) (see venice-models).Every error body follows one of:
json{ "error": "Human-readable message" }
or, for 400 validation errors:
json{ "error": "...", "details": { "fieldName": { "_errors": ["Field is required"] } } }
402 on x402 adds structured topUpInstructions and siwxChallenge. See venice-errors for the full table and retry strategy.
/chat/completions, /embeddings, /images/generations, /audio/speech, /audio/transcriptions, /models.user, store.venice_parameters (chat completions)venice_parameters is rejected on /responses — use headers / native fields insteadzai-org-glm-5-1:enable_web_search=on, kimi-k2-6:strip_thinking_response=true&disable_thinking=true) flip venice_parameters via the model ID — see venice-chat.info.version in swagger.yaml is a timestamp (YYYYMMDD.HHMMSS). There is no /v2; features roll forward on the single /api/v1 surface and are guarded by:/responses, Billing).x-guidance / model capability flags on /models.model_spec.capabilities from GET /models for feature flags (supportsWebSearch, supportsReasoning, supportsE2EE, supportsXSearch, supportsMultipleImages, supportsFunctionCalling, supportsAudioInput, supportsVideoInput, …) before relying on a feature.venice-auth and choose Bearer vs x402.GET /models — pick a model and note its model_spec.constraints and model_spec.pricing.venice-errors (402, 422, 429).X-Balance-Remaining / /billing/usage-history / /x402/transactions.Other measured skills in the registry, with their headline benchmark lift.