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.
.claude/skills/sediman-agent-venice-api-overview/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 81% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 122% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 114% | 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, 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 20260420.235001).
| Scheme | Header | Best for | |---|---|---| | BearerAuth | Authorization: Bearer <VENICE_API_KEY> | Server-side apps, dashboards, usage analytics, bundled credits | | siwx (x402) | X-Sign-In-With-X: <base64 SIWE JSON> | No account, pay-as-you-go with USDC on Base, 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 | 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, /billing/usage-analytics | 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 / /x402/transactions.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 14,750 | 10,856 | -26% | 1 | 1 | 0% | 2,426 | 4,400 | +81% | 0 | 0 | — |
case-02 | fail→pass | 17,843 | 14,698 | -18% | 1 | 1 | 0% | 3,064 | 5,206 | +70% | 0 | 0 | — |
case-03 | fail→fail | 20,561 | 12,884 | -37% | 1 | 1 | 0% | 3,336 | 4,637 | +39% | 0 | 0 | — |
case-04 | fail→pass | 9,322 | 5,697 | -39% | 1 | 1 | 0% | 1,440 | 3,201 | +122% | 0 | 0 | — |
case-05 | pass→pass | 5,935 | 4,068 | -31% | 1 | 1 | 0% | 994 | 2,975 | +199% | 0 | 0 | — |
case-06 | pass→pass | 6,690 | 6,605 | -1% | 1 | 1 | 0% | 1,128 | 3,358 | +198% | 0 | 0 | — |
case-07 | fail→pass | 11,468 | 4,304 | -62% | 1 | 1 | 0% | 1,761 | 2,937 | +67% | 0 | 0 | — |
case-08 | fail→pass | 8,324 | 4,339 | -48% | 1 | 1 | 0% | 1,378 | 2,948 | +114% | 0 | 0 | — |
case-09 | fail→pass | 9,560 | 3,638 | -62% | 1 | 1 | 0% | 1,564 | 2,896 | +85% | 0 | 0 | — |
case-10 | fail→pass | 6,318 | 2,932 | -54% | 1 | 1 | 0% | 1,088 | 2,750 | +153% | 0 | 0 | — |
case-11 | fail→pass | 25,610 | 2,070 | -92% | 1 | 1 | 0% | 4,593 | 2,608 | -43% | 0 | 0 | — |
case-12 | pass→pass | 4,032 | 2,213 | -45% | 1 | 1 | 0% | 433 | 2,572 | +494% | 0 | 0 | — |
case-13 | fail→pass | 12,793 | 4,781 | -63% | 1 | 1 | 0% | 2,141 | 3,040 | +42% | 0 | 0 | — |
case-14 | pass→pass | 8,483 | 3,520 | -59% | 1 | 1 | 0% | 1,396 | 2,841 | +104% | 0 | 0 | — |
case-15 | pass→pass | 7,689 | 2,183 | -72% | 1 | 1 | 0% | 1,341 | 2,558 | +91% | 0 | 0 | — |
case-16 | fail→pass | 9,414 | 3,471 | -63% | 1 | 1 | 0% | 1,719 | 2,869 | +67% | 0 | 0 | — |
case-17 | fail→pass | 10,752 | 4,122 | -62% | 1 | 1 | 0% | 1,926 | 3,023 | +57% | 0 | 0 | — |
case-18 | fail→pass | 10,460 | 2,637 | -75% | 1 | 1 | 0% | 1,752 | 2,726 | +56% | 0 | 0 | — |
case-19 | fail→pass | 12,556 | 3,680 | -71% | 1 | 1 | 0% | 2,077 | 2,816 | +36% | 0 | 0 | — |
case-20 | fail→pass | 8,482 | 4,022 | -53% | 1 | 1 | 0% | 1,453 | 2,941 | +102% | 0 | 0 | — |
case-21 | fail→pass | 15,869 | 3,459 | -78% | 1 | 1 | 0% | 2,545 | 2,887 | +13% | 0 | 0 | — |
case-22 | pass→pass | 5,597 | 3,364 | -40% | 1 | 1 | 0% | 1,017 | 2,869 | +182% | 0 | 0 | — |
case-23 | fail→pass | 12,099 | 4,041 | -67% | 1 | 1 | 0% | 2,083 | 2,997 | +44% | 0 | 0 | — |
case-24 | fail→pass | 9,968 | 2,207 | -78% | 1 | 1 | 0% | 1,595 | 2,600 | +63% | 0 | 0 | — |
case-25 | pass→pass | 8,857 | 2,759 | -69% | 1 | 1 | 0% | 1,479 | 2,720 | +84% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted. The headline lift of +68 percentage points is the difference between those two pass rates over the 25 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.