Frappe Core API
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when building ERPNext/Frappe API integrations (v14/v15/v16) including REST API, RPC API, authentication, webhooks, and rate limiting.
Manages Venice API keys through the /api_keys endpoints: create, list, update and revoke keys, set spending limits, and read rate limits.
$ npx skills add veniceai/skills --skill venice-api-keys -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install veniceai/skills venice-api-keys --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/venice-api-keys .claude/skills/venice-api-keys && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "venice-api-keys" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-api-keys into .claude/skills/venice-api-keys/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-api-keys", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/veniceai/skills/tree/main/skills/venice-api-keysType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add veniceai/skills --skill venice-api-keys -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install veniceai/skills venice-api-keys --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/venice-api-keys .agents/skills/venice-api-keys && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "venice-api-keys" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-api-keys into .agents/skills/venice-api-keys/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-api-keys", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add veniceai/skills --skill venice-api-keys -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install veniceai/skills venice-api-keys --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/venice-api-keys .cursor/skills/venice-api-keys && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "venice-api-keys" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-api-keys into .cursor/skills/venice-api-keys/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-api-keys", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/veniceai/skills.git --path skills/venice-api-keys--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add veniceai/skills --skill venice-api-keys -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install veniceai/skills venice-api-keys --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/venice-api-keys .gemini/skills/venice-api-keys && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "venice-api-keys" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-api-keys into .gemini/skills/venice-api-keys/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-api-keys", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install veniceai/skills venice-api-keysInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add veniceai/skills --skill venice-api-keys -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/venice-api-keys .github/skills/venice-api-keys && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "venice-api-keys" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-api-keys into .github/skills/venice-api-keys/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-api-keys", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add veniceai/skills --skill venice-api-keys -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install veniceai/skills venice-api-keys --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/veniceai/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/venice-api-keys .opencode/skills/venice-api-keys && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "venice-api-keys" agent skill from https://github.com/veniceai/skills/tree/main/skills/venice-api-keys into .opencode/skills/venice-api-keys/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "venice-api-keys", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
venice-api-keysManages Venice API keys through the /api_keys endpoints: create, list, update and revoke keys, set spending limits, and read rate limits.
Venice's key-management endpoints are laid out here: list, create, update and revoke on `/api_keys`, details for a single key, rate-limit balances, a log of recent rate-limit breaches, and a two-step wallet flow at `generate_web3_key` that mints a key for a wallet holding staked VVV. Management routes need an ADMIN key, and the secret is returned only once, when a key is created.
Two key types exist: INFERENCE keys call model and utility routes, while ADMIN keys also manage keys and billing, so apps should normally get per-app, per-user INFERENCE keys with consumption caps. Caps are set in USD or DIEM and reset on an EPOCH, MONTH or LIFETIME window, and each key carries a modelPrivacy value of ALL, PRIVATE_TEXT or PRIVATE_ONLY. Key creation is limited to 20 requests per minute and 500 active keys per user, and a request with no Authorization header gets a 402 challenge rather than 401.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 5eaeac5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.venice.aiFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
VENICE_ADMIN_KEYVENICE_API_KEYWALLET_KEYADMIN_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Venice API Keys loads about 3.8k tokens when it runs. Until then it costs about 97 tokens; SKILL.md has 1,384 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from veniceai/skills at commit 5eaeac5, republished under its MIT licence (© veniceai). 1,384 words, ~3,797 tokens.
.claude/skills/venice-api-keys/SKILL.md (or your agent's skills folder).Admin endpoints for managing Bearer API keys. Management routes need an ADMIN key. For wallet-only auth, use venice-auth / venice-x402 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.
GET /api_keyscurl 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" }
}
]
}last6Chars.usage.trailingSevenDays and currentPeriodUsage values are strings with 4 decimals. The usd figures include bundled-credit spend but not earned-credit spend, even though the USD limit counts both.currentPeriodUsage is spend inside the current limitPeriod window and is present only when the key has a USD or DIEM limit set.consumptionLimits.vcu is deprecated and always shown; ignore it.POST /api_keys — createcurl 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.
apiKeyType — INFERENCE or ADMIN.description — string, max 64 characters.expiresAt — "", a date YYYY-MM-DD, or a UTC datetime YYYY-MM-DDTHH:mm:ss[.sss]Z. Omit (or "") for non-expiring.consumptionLimit.usd / .diem — number 0–9999999999, or null for no cap. The USD limit caps USD, BUNDLED_CREDITS and EARNED_CREDITS spend combined; the DIEM limit caps DIEM spend.consumptionLimit.vcu — deprecated (legacy DIEM). Use diem.limitPeriod — window the limits are measured over. Default EPOCH.modelPrivacy — which models the key may call. Default ALL.limitPeriod| 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 field.
modelPrivacyEnforced on every inference route. A disallowed model returns 403 ("This API key is set to '…', but <model> is an Anonymous model. Choose a Private, TEE, or E2EE model, or change the model privacy setting of this API key."). GET /models, /models/traits, and /models/compatibility_mapping called with the key are filtered to models it may use.
| Value | Effect |
|---|---|
ALL | Any model (default). |
PRIVATE_TEXT | Text, embedding, and decision models must be Private, TEE, or E2EE. Image / audio / video models may be Anonymous. |
PRIVATE_ONLY | Every model must be Private, TEE, or E2EE. Anonymous models are rejected. |
With a restricted key, GET /models returns only the models that key may call — the simplest way to pick an allowed model (see venice-models).
PATCH /api_keys — updatecurl -X PATCH https://api.venice.ai/api/v1/api_keys \
-H "Authorization: Bearer $VENICE_ADMIN_KEY" \
-H "Content-Type: application/json" \
-d '{ "id": "e28e82dc-9df2-4b47-b726-d0a222ef2ab5", "description": "renamed", "consumptionLimit": { "usd": 100 }, "limitPeriod": "LIFETIME" }'id is required; everything else is optional and only the fields you send change. apiKeyType cannot be changed.description (≤ 64 chars), expiresAt, consumptionLimit (usd / diem / vcu, each may be null to remove that cap), limitPeriod, modelPrivacy."expiresAt": "" or null to remove an expiration.{ success: true, data: { id, apiKeyType, description, createdAt, expiresAt, lastUsedAt, last6Chars, consumptionLimits, limitPeriod, modelPrivacy } }.id → 400 "API key not found or expired".DELETE /api_keys?id=<uuid> — revokecurl -X DELETE "https://api.venice.ai/api/v1/api_keys?id=e28e82dc-9df2-4b47-b726-d0a222ef2ab5" \
-H "Authorization: Bearer $VENICE_ADMIN_KEY"The id may also be sent as a JSON body { "id": "..." }. Returns {"success": true}. An unknown key → 400 "API key could not be found". Revocation is immediate.
GET /api_keys/{id} — detailsReturns { data: <key> } with the same fields as a list entry (usage.trailingSevenDays, currentPeriodUsage when limited, limitPeriod, modelPrivacy, …). Unknown or expired id → 400 "API key not found".
GET /api_keys/rate_limitsCallable with any key type; reports on the calling key.
curl https://api.venice.ai/api/v1/api_keys/rate_limits \
-H "Authorization: Bearer $VENICE_API_KEY"{
"data": {
"accessPermitted": true,
"apiTier": { "id": "paid", "isCharged": true },
"balances": { "USD": 50.23, "DIEM": 100.023, "BUNDLED_CREDITS": 25 },
"keyExpiration": null,
"nextEpochBegins": "2026-04-21T00:00:00.000Z",
"rateLimits": [
{
"apiModelId": "zai-org-glm-5-1",
"rateLimits": [
{ "type": "RPM", "amount": 100 },
{ "type": "TPM", "amount": 2000000 }
]
}
]
}
}accessPermitted is the real admission check (balance, per-key limits, account status) — prefer it over /billing/balance's canConsume.balances are what this key can spend right now: each account balance clamped to the key's remaining limit. BUNDLED_CREDITS is USD-denominated and 0 when the plan has none. Earned credits are not listed. Any of the three may be omitted when unknown.apiTier.id is the account's API tier (e.g. paid); isCharged is always true.rateLimits[].rateLimits[].type is RPM (requests/min), RPD (requests/day), or TPM (tokens/min); the amounts shown above are illustrative — read them from the response. Video and music models return an empty array (they are not throughput-limited).nextEpochBegins is when DIEM allocations and EPOCH-period key limits reset.GET /api_keys/rate_limits/logRequires an ADMIN key. Returns the account's last 50 rate-limit breaches, newest first:
{
"object": "list",
"data": [
{ "apiKeyId": "e28e82dc-...", "modelId": "zai-org-glm-5-1", "rateLimitType": "RPM",
"rateLimitTier": "paid", "timestamp": "2026-04-20T12:34:56.000Z" }
]
}rateLimitType is one of:
| Value | Meaning |
|---|---|
RPM / TPM / RPD | Per-model throughput caps. |
FAILED_REQUESTS | The generic error budget: more than 50 client-error responses (4xx other than 429) within 30 seconds. |
UNSUPPORTED_FEATURE_REQUESTS | More than 200 "model doesn't support this feature" rejections within 30 seconds on /chat/completions or /responses. |
modelId is usually a model id, but endpoint-level limits log endpoint:api/v1/... (e.g. endpoint:api/v1/crypto/rpc) and unresolvable model names log model:unknown.
Lets a wallet with staked VVV on Base mint a Bearer API key. No Venice account required; one is created and linked to the wallet on first use.
GET /api_keys/generate_web3_keycurl https://api.venice.ai/api/v1/api_keys/generate_web3_keyReturns { "success": true, "data": { "token": "<JWT>" } }. The token is valid for 15 minutes.
POST /api_keys/generate_web3_keyimport { Wallet } from 'ethers'
const { data: { token } } = await fetch(`${base}/api_keys/generate_web3_key`).then(r => r.json())
const wallet = new Wallet(process.env.WALLET_KEY!)
const signature = await wallet.signMessage(token) // EIP-191 personal_sign of the exact JWT string
const res = await fetch(`${base}/api_keys/generate_web3_key`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
apiKeyType: 'INFERENCE',
description: 'Web3 API Key',
address: wallet.address,
signature,
token,
consumptionLimit: { usd: 50 },
}),
})
const { data } = await res.json()
console.log(data.apiKey) // save this onceaddress, signature, token, and apiKeyType are required; description defaults to "Web3 API Key"; expiresAt, consumptionLimit, limitPeriod, modelPrivacy work as in POST /api_keys.400 with a specific message: bad address, expired/modified token, signature mismatch, or "Wallet … has no staked VVV on Base".POST /api_keys. The returned apiKey behaves exactly like a normal Bearer key. Staked VVV only gates minting: the key still spends DIEM, earned credits, bundled credits, or USD from the linked account.await fetch(`${base}/api_keys`, {
method: 'POST',
headers: { Authorization: `Bearer ${ADMIN_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
apiKeyType: 'INFERENCE',
description: `cust:${customerId}`,
consumptionLimit: { usd: 5 },
limitPeriod: 'MONTH',
modelPrivacy: 'PRIVATE_ONLY',
}),
})Revoke on churn.
const { data } = await fetch(`${base}/api_keys/rate_limits`, {
headers: { Authorization: `Bearer ${key}` },
}).then(r => r.json())
if (!data.accessPermitted) alert('Key blocked — top up or raise its limit')| Code | Meaning |
|---|---|
400 | Bad body (missing apiKeyType, description > 64 chars, malformed expiresAt, unknown field), 500 active keys reached, unknown/expired key id, or any Web3 verification failure. |
401 | Invalid key, or a non-ADMIN key on an admin-only route ("Admin API key required"). |
402 | No Authorization header (x402 auth challenge). On inference, "API key USD spend limit exceeded…" / "API key DIEM spend limit exceeded…" when the key's limit is used up. |
403 | On inference: the model is not permitted by the key's modelPrivacy. |
429 | Exceeded 20 key creations/min, or the generic API error budget. |
500 | Transient; retry. |
consumptionLimit is measured over limitPeriod — EPOCH (UTC day) unless you choose MONTH or LIFETIME. It is not per call.GET /api_keys/rate_limits works with an INFERENCE key; GET /api_keys/rate_limits/log does not (ADMIN only).modelPrivacy is enforced: a PRIVATE_ONLY key gets 403 for Anonymous models, and /models hides them from that key.vcu is legacy — use diem.expiresAt: "" means "no expiration" on create; on update "" or null removes an existing one.GET /api_keys/{id} rather than trusting the create response's consumptionLimit echo — its diem is derived from vcu (so it reads null if you only sent diem) and a usd of 0 echoes as null. The stored limits are correct.© veniceai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/venice-api-keys of veniceai/skills.
Open the folder on GitHubat commit 5eaeac5
Venice API Keys next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Venice API Keys this skillveniceai/skills | 143 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Frappe Core APIImpertio-Studio/Frappe_Claude_Skill_Package | 188 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Memstack Automation API Integrationcwinvestments/memstack | 423 | — | ~2.8k | Automated safety check: Pass | Proprietary | |
| Shopify APIMicrock/ordinary-claude-skills | 404 | — | ~4.3k | Automated safety check: Pass | Custom licence | |
| Agentic Walletcoinbase/agentic-wallet-skills | 127 | 2 repos | ~1k | Automated safety check: Pass | MIT | |
| Passport Developmenttrypostit/trypost | 685 | — | ~1.9k | Automated safety check: Pass | MIT |
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when building ERPNext/Frappe API integrations (v14/v15/v16) including REST API, RPC API, authentication, webhooks, and rate limiting.
cwinvestments/memstack
A skill your agent uses when the user says 'API integration', 'connect APIs', 'sync data', 'data mapping', 'rate limiting', or needs system-to-system connectors with authentication, rate limit…
Microck/ordinary-claude-skills
Complete API integration guide for Shopify including GraphQL Admin API, REST Admin API, Storefront API, Ajax API, OAuth authentication, rate limiting, and webhooks.
coinbase/agentic-wallet-skills
Crypto wallet operations via the awal CLI — sign in, check balances, send USDC/ETH/POL/SOL, trade tokens, fund the wallet, and use the x402 payment protocol to discover paid services, pay for API…
trypostit/trypost
Develops OAuth2 API authentication with Laravel Passport. An agent skill from trypostit/trypost.
soundcloud/api
Integrates applications with the SoundCloud HTTP API using OAuth 2.1, OpenAPI, and developer docs.
veniceai/skills
Picks which Venice text model to call for a prompt based on privacy tier, input modality, capabilities and cost, and decides when to escalate from a local agent.
veniceai/skills
Documents Venice's model discovery endpoints, GET /models, /models/traits and /models/compatibility_mapping, so an agent can pick a model by capability, constraint or price.
veniceai/skills
High-level map of the Venice.ai API: base URL, auth modes per endpoint, endpoint categories, response headers, pricing model, error shape and versioning.
veniceai/skills
Async music, sound-effect and long-form voice generation via Venice.
veniceai/skills
Generate speech from text via POST /audio/speech, and clone a voice via POST /audio/voices.
veniceai/skills
Transcribe audio files to text via POST /audio/transcriptions.
Categories
Manages Venice API keys through the /api_keys endpoints: create, list, update and revoke keys, set spending limits, and read rate limits. Venice's key-management endpoints are laid out here: list, create, update and revoke on `/api_keys`, details for a single key, rate-limit balances, a log of recent rate-limit breaches, and a two-step wallet flow at `generate_web3_key` that mints a key for a wallet holding staked VVV. Management routes need an ADMIN key, and the secret is returned only once, when a key is created.
Venice API Keys fits situations like: creating a limited INFERENCE key for a new app or user; revoking a Venice key or changing its expiry; checking rate limits and balances for the calling key, or recent breaches; minting a key from a wallet with the web3 flow.
Run `npx skills add veniceai/skills --skill venice-api-keys -a claude-code`. Or copy the skill folder (skills/venice-api-keys in veniceai/skills) into .claude/skills/venice-api-keys in your project. Claude Code loads it when a task matches its description.
Run `npx skills add veniceai/skills --skill venice-api-keys -a codex`. Or copy the skill folder (skills/venice-api-keys in veniceai/skills) into .agents/skills/venice-api-keys in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add veniceai/skills --skill venice-api-keys -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/venice-api-keys, .gemini/skills/venice-api-keys, .github/skills/venice-api-keys and .opencode/skills/venice-api-keys in your project.
Going by SKILL.md and its folder, Venice API Keys needs the command-line tools its instructions call (curl) and credentials named VENICE_ADMIN_KEY, VENICE_API_KEY, WALLET_KEY and ADMIN_KEY. Our summary lists: A Venice ADMIN API key for the management routes; Network access to api.venice.ai; A wallet with staked VVV for the web3 key flow.
SKILL.md names 1 domain. In commands or code: api.venice.ai; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Venice API Keys is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Venice API Keys: Frappe Core API (Impertio-Studio/Frappe_Claude_Skill_Package, 188 stars), Memstack Automation API Integration (cwinvestments/memstack, 423 stars), Shopify API (Microck/ordinary-claude-skills, 404 stars) and Agentic Wallet (coinbase/agentic-wallet-skills, 127 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
veniceai (a GitHub organization) maintains it in veniceai/skills, which has 143 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 5, 2026.
Source: veniceai/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.