Spritekick API
Generate the same character references and animations as Spritekick Studio.
Create named keys from your account. You can show, hide, copy, and revoke each key separately.
Send the key only in the Authorization: Bearer header. Read-only and read/write scopes are available.
Base URL: https://spritekick.com/api/v1
Start with the catalog. It is the source of truth for every supported option.
curl https://spritekick.com/api/v1/catalog \
-H 'Authorization: Bearer YOUR_API_KEY'Create a character with the same camera and style choices shown in Studio.
curl https://spritekick.com/api/v1/characters \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"name":"Kiko","description":"A fox courier","orientation":"platformer","style":"pixel"}'After its reference job completes, create an animation.
curl https://spritekick.com/api/v1/characters/CHARACTER_ID/animations \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"pose":"walk","quality":"standard"}'Read the animation until sheet.status is ready, then download sheet.links.png, sheet.links.sheetZip, sheet.links.frames, sheet.links.manifest, sheet.links.godot, or sheet.links.video (the raw video, cut to the character) with the same key. Pending downloads return 202 with Retry-After. The optional links.viewer opens Studio for review.
You do not have to poll. Every generation started through the API emails your account address when it lands or fails, with a link straight to it. Work started in Studio is not emailed: the page you started it on already follows it.
| Method | Path | Action |
|---|---|---|
| GET | /catalog | List cameras, styles, qualities, and animations. |
| GET | /tokens | Read the account token balance. |
| GET | /characters | List your characters, objects and textures. |
| POST | /characters | Create a character, object or texture and generate its reference. |
| PATCH | /characters/{characterId} | Set visibility to public or private. New characters are public. |
| GET | /characters/{characterId} | Read one character and its reference status. |
| DELETE | /characters/{characterId} | Delete a character and all its animations. |
| POST | /characters/{characterId}/reference | Generate a missing or failed reference. |
| GET | /characters/{characterId}/reference.png | Download the reference image, or a texture's full tile. |
| GET | /characters/{characterId}/texture.png | Download a texture tile at one size (`?size=1024` to `32`). |
| GET | /characters/{characterId}/animations | List a character's animations. |
| POST | /characters/{characterId}/animations | Generate a standard, premium, or custom animation. |
| GET | /animations/{animationId} | Read animation progress, measurements and export status. |
| GET | /animations/{animationId}/sheet.png | Download the default transparent PNG sheet. |
| GET | /animations/{animationId}/sheet.zip | Download the default PNG sheet with its manifest. |
| GET | /animations/{animationId}/frames.zip | Download default PNG frames and manifest. |
| GET | /animations/{animationId}/manifest.json | Read the default sheet manifest. |
| GET | /animations/{animationId}/godot.zip | Download the default export as a Godot 4 SpriteFrames folder. |
| GET | /animations/{animationId}/video.mp4 | Download the default export's raw video, cut to the character. |
| POST | /animations/{animationId}/renders | Request an export with Studio settings. |
| GET | /renders/{renderId} | Read export status and download links. |
| GET | /renders/{renderId}/sheet.png | Download an export's PNG sheet. |
| GET | /renders/{renderId}/sheet.zip | Download an export's PNG sheet with its manifest. |
| GET | /renders/{renderId}/frames.zip | Download an export's frame ZIP. |
| GET | /renders/{renderId}/manifest.json | Read an export's manifest. |
| GET | /renders/{renderId}/godot.zip | Download an export as a Godot 4 SpriteFrames folder. |
| GET | /renders/{renderId}/video.mp4 | Download an export's raw video, cut to the character. |
| PATCH | /animations/{animationId} | Name or favorite an animation. |
| DELETE | /animations/{animationId} | Delete an animation. |
| POST | /animations/{animationId}/revisions | Generate a revision with a change note. |
| GET | /jobs/{jobId} | Read generation status and progress. |
| POST | /jobs/{jobId}/feedback | Rate a completed generation. |
The machine-readable contract documents every request body, option, scope, status code, and response shape.
Exports cost no tokens. Use POST /animations/ANIMATION_ID/renders with frame rate (8, 10, 12, 15 or 24), sprite height (32, 48, 64, 96, 128, 192 or original), scale percentage (1–100), grid or row layout, and cycle or full clip. Defaults match Studio: 15 fps, original size, 100% scale, grid, measured cycle. Sampling follows the character style.
Custom trim ranges are not supported in v1. New exports are limited to 10 per minute per key. Cached exports are free to read; non-default exports expire after 7 days. The raw video is the animation cut to the export's clip and to one rectangle that holds the character, at its own frame rate; only the clip setting changes it. The uncut source animation cannot be downloaded through the API. The Markdown reference and OpenAPI contract give the exact field names and download steps.
This page is also published as Markdown, for a coding agent that would rather read one file than a rendered document. Fetch /api/docs.md, or ask for it here with Accept: text/markdown.