SpicyAPI Skill
The official SpicyAPI skill: an agent runs image, video and audio generation tasks through the MCP server, CLI or SDK
- 3 ★ on the repository
- Last commit
- MIT
Broad access
Why this level
- Swapping the face of a real person without consent is unlawful: Article 152.1 of the Russian Civil Code protects a citizen's image, and intimate material with another person's face carries criminal liability
- The service returns adult content without filtering: requests are not reviewed for content, and the mature and policyTier fields on a model record only classify and block nothing
- Prompts, uploaded files and results go to the SpicyAPI server and to the agent's model, and every created task charges money from the balance
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/spicyapi-skillDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Swapping the face of a real person without consent is unlawful: Article 152.1 of the Russian Civil Code protects a citizen's image, and intimate material with another person's face carries criminal liability
- The service returns adult content without filtering: requests are not reviewed for content, and the mature and policyTier fields on a model record only classify and block nothing
- Prompts, uploaded files and results go to the SpicyAPI server and to the agent's model, and every created task charges money from the balance
This is third-party code. Review the repository files before installing.
What it does
The spicyapi skill is a set of instructions for an agent working with the SpicyAPI public API for media generation: images, video and audio. It runs nothing on its own and stores no keys; the package holds Markdown and YAML text plus an installer. To act on an account, the agent uses separate SpicyAPI packages: the MCP server, the spicyapi command line or the TypeScript SDK. Following the instructions, the agent reads the live model catalog and the input schema of the chosen model, creates a generation task and retries it after a failure, then waits for the result or takes a webhook. It uploads local files, collects ready links, saves what you want to keep in the asset library, checks balance and usage, shortens retention and, once you confirm, destroys a task's content. Creating and retrying a task cost money, so the agent shows the price estimate with the maximum charge and waits for your approval, and it keeps one idempotency key for the whole attempt so you do not pay twice. The service returns content without moderation: the API has no content-mode flag, requests are not reviewed for content, and results can include adult material. The catalog contains models marked subject-swap that replace a person in an image or a video. Such a video takes two separately billed tasks, analysis and swap, and the user chooses the target of the replacement.
Who it is for. For developers who add image, video and audio generation through SpicyAPI to an app or an automation and want the agent to stop guessing models and to stop spending money twice.
Good fit when
- You need a server route for an app that creates an image or a short clip from a text description, waits for the result and returns a link
- You need a webhook that verifies the SpicyAPI signature over the raw request body and stores each task result
- A finished result has to be copied to your own storage because the file link is temporary
- Requests must survive a timeout without paying twice, and the agent must show the user a low balance
- Reference images and voice samples should be saved once to the asset library and reused in later requests
Not a fit when
- You work with images or video of real people without their consent: a person's likeness needs permission, and swapping a face without it is unlawful
- You have no SpicyAPI key or topped-up balance: the skill generates nothing by itself and every task is billed
- You want generation with a free unlimited tier: creating and retrying a task cost money, and on models whose page says so, a refused request is billed too
- You need open server code: the repository holds only instructions and an installer, with no models or service backend
- You want the agent to register, pay or close an account: those operations stay in the SpicyAPI Console
Example request
Add a server route to my Next.js project that uses SpicyAPI to make a short clip from a scene description, a sunrise over the sea with the camera slowly pulling back, waits for the result and returns the link. Show the price before running itLimitations
You need a SpicyAPI key and a balance. The key starts with sk-spicy- and is issued after sign-up on spicyapi.ai; pass it only through the SPICY_API_KEY environment variable. The installer requires Node.js 22.13 or newer; installing needs no key.
Without the MCP server, CLI or SDK the agent writes integration code that follows the API rules but does nothing on your account. The public API has no task cancellation, no deletion of a task record and no webhook redelivery: a running task has to finish. Sign-up, payments, data export and deletion, and account closure stay in the SpicyAPI Console.
How to disable. If you installed with skills, run npx skills remove spicyapi (add -g for a global install). If you used the package installer, delete ~/.claude/skills/spicyapi or the directory you gave in --target. Revoke the API key in the SpicyAPI Console. Removing the skill leaves your account, keys and code the agent already wrote untouched.
FAQ
How do I install the SpicyAPI skill in Claude Code?
Run npx skills add spicyapi-ai/spicy-skill --agent claude-code. It needs Node.js 22.13 or newer, and no key is needed to install. The repository owner is spicyapi-ai; the old Spicy-API address no longer resolves. Start a new session afterwards, or the client will not see the skill.
How does the skill differ from the SpicyAPI MCP server?
The skill is a set of instructions: the order of steps, what to confirm and what to avoid. The MCP server gives the agent the actual actions on your account: models, price quotes, tasks, uploads and results. With the skill alone the agent writes code that follows the API rules but runs nothing. Most people install both, and they do not conflict.
How does the skill protect against extra charges?
It treats creating and retrying a task as billable: the price and maximum charge are shown first, and one idempotency key covers the whole attempt. On models where a refused request is billed too, the skill forbids resending it unchanged. A video that replaces a person takes two tasks, and the agent states both charges before the first.
Can I use text models through this skill?
Not directly: the skill covers asynchronous media tasks. The catalog's chat models are served through OpenAI, Anthropic and Gemini compatible layers: you point your usual client at api.spicyapi.ai. For the OpenAI client that is https://api.spicyapi.ai/v1.
How long are prompts and results stored?
Outputs for 14 days, prompt text for 30 days, uploaded reference files for 24 hours. Those defaults are also the maximums, so a window can only be shortened. The tasks purge command irreversibly erases the content of a finished task; the billing record stays.
Discussion
No questions or reviews yet.
Related
SkillsA set of skills for agents to generate and edit images, video and audio through the muapi.ai service and muapi-cli
A skill that writes prompts for video, image and music generation on 14 platforms and can submit them in the browser
Scenario Agent Skills
scenario-labs-skills
Skills for the paid Scenario service: images, video, audio and 3D from an agent, model and price selection before spending, sets for game assets and brands
Two skills for generative video and images: video writes Seedance, Kling and Veo prompts by dramaturgy rules, image picks the model and its syntax
Pexo Skills
pexo-skills
Video generation skills backed by the Pexo service: from text, an image, a URL or a script the agent assembles a finished clip with music and subtitles
A skill that turns an idea, a link or a screen recording into finished video: HeyGen avatar, b-roll, captions and quality checks
Comparison with similar tools
Entries that share the main search query, and how they differ.
| Entry | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| SpicyAPI Skill (this entry) | yes | 3 | ||
| HeyGen Skills | yes | 525 | Three HeyGen skills make avatar video and translate clips on a single service, while SpicyAPI gives the agent a catalog of different image, video and audio models | |
| mcp-kling | no | API key | 45 | An unofficial MCP server for the API of a single model family, Kling AI: video, images, lip sync and try-on |
README in short
The author stresses that the package is text plus an installer, holds no keys and makes no network calls. It can be installed two ways and checked in a fresh session by asking what the agent will do before a paid task. Thirteen rules cover reading the model schema, confirming the price, the idempotency key, webhook verification, retention windows and the asset library.
README badge
Original SKILL.md
--- name: spicyapi description: Use the SpicyAPI public developer API through the official SDK, CLI, or MCP server to inspect live models, create, retry, and wait for media tasks, upload inputs, retrieve outputs, keep files in the personal or team asset library, set how long results are kept, destroy a task's stored content, check balances, and verify webhooks. Use for SpicyAPI integration and API operations; not for browser-account administration, payments, or publishing provider models. metadata: short-description: Operate SpicyAPI through its SDK, CLI, or MCP server --- # SpicyAPI Use the packaged `spicyapi_*` MCP tools when they are connected. Otherwise use the `spicyapi` CLI for operations or `SpicyClient` for application code. Treat the live model catalog and the bundled OpenAPI contract as authoritative. Read [references/api-workflows.md](references/api-workflows.md) before composing API, CLI, or MCP operations. Read [references/safety.md](references/safety.md) before billable calls, real integration tests, webhook handling, credential work, or cleanup. ## Required behavior - Obtain the selected model's live input schema once: get a known model, or discover it in the catalog. Reuse a complete record already returned with `includeSchema`; refresh when it is missing or stale. Never invent a model ID, price, provider capability, or input field. - Before a key exists, `GET https://api.spicyapi.ai/console/v1/catalog/models` answers "which models are there and what do they cost" with no credentials, so an evaluation is never blocked on signing up. It is a plain HTTPS GET with no SDK, CLI, or MCP wrapper. Switch to the authenticated catalog as soon as a key is available: only that one is scoped to the key, carries the full input schema and validated examples, and is the surface task creation's `model` is tied to. Never build `input` from the anonymous list. - Pass the model-specific `input` object through unchanged. The SpicyAPI server owns schema, price, balance, operational API-key scope, and routing decisions. - Choose model capabilities from the live catalog. No content-mode request flag or platform content review is required. - Treat task creation and retry as billable. On a model whose page says refused requests are billed, a `content_rejected` task is charged its accepted estimate, so never resend a refused request unchanged there. CLI and MCP creation obtain and confirm the exact quote internally; do not call the separate quote command/tool first unless comparing prices. In SDK code, quote the exact request once, show its USD estimate and maximum charge, confirm it, and pass that quote into creation. Preserve one idempotency key for the entire logical attempt, including recovery from an uncertain response. - Health/readiness and balance checks are optional diagnostics, not a per-task checklist. The server validates availability and funds when accepting a task. - When the user points at a file on their own machine, upload it first and pass the returned `spicy://` URI in `input` (or in a chat message part): `spicyapi_upload_file` on MCP, `spicyapi files upload <path>` on the CLI, `client.uploadFile(path)` in the SDK. Public HTTPS media URLs need no upload. Never inline file bytes or base64 into task input, and never treat a