venice-api-overview
High-level map of the Venice.ai API - base URL, which auth mode each endpoint accepts (API key, x402 wallet, or none), endpoint…
Manage Venice API keys. Covers GET/POST/PATCH/DELETE /api_keys, GET /api_keys/{id}, GET /api_keys/rate_limits, GET /api_keys/rate_limits/log, the two-step /api_keys/generate_web3_key wallet flow, INFERENCE vs ADMIN key types, per-key consumption limits (USD / DIEM) with EPOCH /
$ npx -y skills add veniceai/skills --skill venice-api-keys --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/venice-api-keysContext preview
The summary Claude sees to decide when to auto-load this skill.
Manage Venice API keys. Covers GET/POST/PATCH/DELETE /api_keys, GET /api_keys/{id}, GET /api_keys/rate_limits, GET /api_keys/rate_limits/log, the two-step /api_keys/generate_web3_key wallet flow, INFERENCE vs ADMIN key types, per-key consumption limits (USD / DIEM) with EPOCH /
name: venice-api-keys
description: Manage Venice API keys. Covers GET/POST/PATCH/DELETE /api_keys, GET /api_keys/{id}, GET /api_keys/rate_limits, GET /api_keys/rate_limits/log, the two-step /api_keys/generate_web3_key wallet flow, INFERENCE vs ADMIN key types, per-key consumption limits (USD / DIEM) with EPOCH / MONTH / LIFETIME reset windows, and per-key modelPrivacy (ALL / PRIVATE_TEXT / PRIVATE_ONLY).Admin endpoints for managing Bearer API keys. Management routes need an **ADMIN** key. For wallet-only auth, use [`venice-auth`](../venice-auth/SKILL.md) / [`venice-x402`](../venice-x402/SKILL.md) instead.
| Endpoint | Key type | Purpose | |---|---|---| | `GET /api_keys` | ADMIN | List your active keys (masked). | | `POST /api_keys` | ADMIN | Create a key. Response contains the **only copy of the secret**. | | `PATCH /api_keys` | ADMIN | Update `description`, `expiresAt`, `consumptionLimit`, `limitPeriod`, `modelPrivacy`. | | `DELETE /api_keys?id=...` | ADMIN | Revoke a key. | | `GET /api_keys/{id}` | ADMIN | Full details for one key (usage, limits, expiration). | | `GET /api_keys/rate_limits` | any | Balances + per-model rate limits for the calling key. | | `GET /api_keys/rate_limits/log` | ADMIN | Last 50 rate-limit breaches on the account. | | `GET /api_keys/generate_web3_key` | none | Get a short-lived token to sign with a wallet. | | `POST /api_keys/generate_web3_key` | none | Prove a wallet holds staked VVV and mint an API key. |
Limits: key creation (`POST /api_keys`) is capped at **20 requests/minute per user** and **500 active keys per user** (expired keys don't count).
A request with no `Authorization` header gets a `402` x402 auth challenge rather than `401`; a bad key gets `401`.
| Type | Can call | |---|---| | `INFERENCE` | Inference and utility routes — `/chat/completions`, `/responses`, `/decisions`, `/systemone`, `/image/*`, `/images/generations`, `/audio/*`, `/video/*`, `/embeddings`, `/augment/*`, `/crypto/rpc/*`, `/characters*`, `/models*` — plus `GET /api_keys/rate_limits`. Admin-only routes return `401` `"Admin API key required"`. | | `ADMIN` | Everything above, plus `GET/POST/PATCH/DELETE /api_keys`, `GET /api_keys/{id}`, `GET /api_keys/rate_limits/log`, and all billing routes (`/billing/balance`, `/billing/usage-history`, `/billing/usage-analytics`). |
Secrets are prefixed `VENICE_INFERENCE_KEY_` or `VENICE_ADMIN_KEY_`. A leaf app should almost always use **`INFERENCE`** keys — per-app, per-user, with consumption caps.
curl https://api.venice.ai/api/v1/api_keys \ -H "Authorization: Bearer $VENICE_ADMIN_KEY"
{
"object": "list",
"data": [
{
"id": "e28e82dc-9df2-4b47-b726-d0a222ef2ab5",
"apiKeyType": "INFERENCE",
"description": "backend prod",
"createdAt": "2025-10-01T12:00:00.000Z",
"expiresAt": null,
"lastUsedAt": "2026-04-20T10:05:00.000Z",
"last6Chars": "2V2jNW",
"consumptionLimits": { "usd": 50, "diem": 10, "vcu": null },
"limitPeriod": "MONTH",
"modelPrivacy": "ALL",
"usage": { "trailingSevenDays": { "usd": "4.2000", "vcu": "0.0000", "diem": "0.0000" } },
"currentPeriodUsage": { "usd": "12.5000", "diem": "0.0000" }
}
]
}curl https://api.venice.ai/api/v1/api_keys \
-H "Authorization: Bearer $VENICE_ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{
"apiKeyType": "INFERENCE",
"description": "backend prod",
"expiresAt": "2026-12-31T23:59:59Z",
"consumptionLimit": { "usd": 50, "diem": 10 },
"limitPeriod": "MONTH",
"modelPrivacy": "PRIVATE_ONLY"
}'{
"success": true,
"data": {
"id": "e28e82dc-9df2-4b47-b726-d0a222ef2ab5",
"apiKey": "VENICE_INFERENCE_KEY_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"apiKeyType": "INFERENCE",
"description": "backend prod",
"expiresAt": "2026-12-31T23:59:59.000Z",
"consumptionLimit": { "usd": 50, "diem": 10, "vcu": null },
"limitPeriod": "MONTH",
"modelPrivacy": "PRIVATE_ONLY"
}
}**Save `apiKey` immediately** — Venice won't show the secret again. If you lose it, delete and re-create. The body is strict: unknown fields are a `400`.
| Value | Window | |---|---| | `EPOCH` | Resets every UTC day (default, legacy behaviour). | | `MONTH` | Resets at 00:00 UTC on the 1st of each calendar month. | | `LIFETIME` | Never resets — a permanent cap on the key. |
When a key hits its limit while the account still has funds, inference returns `402` with only an `error` string: `"API key USD spend limit exceeded. Your account may still have USD balance, but this API key has reached its configured USD spending limit."` (or the same with DIEM). There is no `code` fie
Agent Skills for the Venice API. Skills are self-contained folders of instructions (one SKILL.md each) that an LLM agent loads on demand to work correctly against a specific surface area of the API.
High-level map of the Venice.ai API - base URL, which auth mode each endpoint accepts (API key, x402 wallet, or none), endpoint…
Async music, sound-effect and long-form voice generation via Venice. Covers the /audio/quote + /audio/queue + /audio/retrieve +…
Generate speech from text via POST /audio/speech, and clone a voice via POST /audio/voices. Covers TTS models (Kokoro, Qwen 3,…
Transcribe audio files to text via POST /audio/transcriptions. Covers supported models (Parakeet, Whisper, Wizper, Scribe, xAI…
Async speech-to-speech voice conversion via Venice — re-record a source recording in a different voice while keeping delivery and…
Venice augmentation endpoints for agent pipelines. Covers POST /augment/text-parser (extract text from…