Access denied.
← Back to homeAPI Showcase
Try the Creator API Here. Every request goes through the public endpoints using your own Bearer token.
sessionStorage only — never sent to the server by this page.Debug Log 0 entries
GET + POST /api/sprite/* Inspect and render generator-backed sprite emotes for the signed-in actor.
These endpoints use the signed-in actor session bearer. The creator API key field above does not apply. The simplest flow is to call POST /api/sprite/upgrade, upload its returned sheets to the actor's PDS, then write preview.spriteRecord back to actor.rpg.sprite/self. The Sprite Emote Upgrade page performs those steps for you.
- Send the actor's bearer token. No DID or request body is needed.
- Read
spriteRecordand the ninevariantsfrom the fresh preview. - Upload each
emoteSheetandtalkSheetto that actor's PDS. - Save the blob refs inside
spriteRecord.emoteswithcom.atproto.repo.putRecord.
| Endpoint | What it returns |
|---|---|
GET /api/sprite/status |
Upgrade metadata, version completeness, the current spriteRecord, primary sheet image, suitability, and stored emote count. |
POST /api/sprite/upgrade |
A fresh spriteRecord plus versioned closed-mouth and talk sheets as data URIs. It never writes to the PDS. |
A render needs a standard 144×192 3×4 sprite linked to the actor's own generator, with active eyes, nose, and mouth layers. Custom sprites and incomplete generators receive a suitability response instead of a render. A matching emote version is current only when all nine states have both blob references. Compare preview.snapshot with a fresh status response before writing. The separate status call is optional because upgrade performs the fresh read and suitability check itself.
POST
/api/creator/utils/check
Validate an .item or .generator JSON record against the lexicon.
▸ Raw JSON / manual check
POST /api/creator/utils/recolor Apply sentinel-marker recolor to a base layer. Returns the recolored image and the extracted subtractive mask.
equipment.rpg.item records — click one to load its blob and colorway automatically.
POST
/api/creator/utils/dress
Merge an equipment.rpg.item into a actor.rpg.generator, returning the combined generator ready for compose.
▸ Raw JSON (advanced)
POST
/api/creator/utils/undress
Remove a layer from an actor.rpg.generator by category. Complement of /dress — also strips the slug from gen.items[].
› Raw JSON (advanced)
POST /api/generator/compose Preview a character’s sprite. You can temporarily replace a layer with a live asset or an equipment item. Nothing is saved.
► Customize this preview
Advanced: provide a complete generator.layers array
POST /api/creator/utils/compose/raw Advanced: combine PNG layers you provide into a sprite. Use this for images that are not stored on a PDS. For a character’s saved generator, use the Preview section above.
▸ Manual layer builder (advanced fallback)
POST /api/creator/utils/slice Cut a sprite sheet into the individual PNG frames it contains, using the sprite record’s width, height, rows, columns, and per-frame sizing. Great for animating new characters or previewing every pose from a single sheet.
A sprite sheet is one PNG holding every pose in a grid. This endpoint does the cutting server-side, so instead of opening an image editor you get each cell back as its own PNG. The grid comes from the .sprite record’s columns, rows, frameWidth, and frameHeight.
Indexing starts at 0. The formula is index = row × columns + col, and frames run left-to-right across each row.
For the standard 3 × 4 sprite sheet:
- Rows map to facing direction:
0= down,1= left,2= right,3= up. - Columns map to pose:
0= step,1= idle/standing,2= opposite step. - The default standing pose is row 0, col 1, which is frame 1.
A walk cycle uses the row’s standard order 0, 1, 2, 1. If a sheet is not 3 columns wide, the API still reads the real grid from the record and image dimensions instead of assuming a standard layout.
actor.rpg.sprite record from their PDS, downloads the sheet blob, and fills the JSON below for you. Loads your own sprite automatically on first open.Frame/Row+Col below. all returns every frame; a list like 3,4,5 returns just those (that example is the whole left-facing walk cycle).datauri drops straight into an <img src>; base64 is the bare payload for writing files or uploading as a blob.1, the standing, viewer-facing portrait pose on a 3-column sheet.0 / 1 is that portrait pose. See the labeled sheet reference above.Frames wins whenever it is set (all or a list). Clear it to target a single frame with Frame or Row/Col.POST /api/creator/utils/roll Resolve a character’s roll formula or dice pool for any named check — D&D 5e, DCC, WoD, Cyberpunk 2020, and any custom stat system.
Looks up a character’s actor.rpg.stats record and resolves the given check name to a dice
formula (1d20+N, Xd10) plus metadata. Designed for dice bots and social tools.
+ for WoD pools.► Example checks by system
| System | Check input | Result shape |
|---|---|---|
| D&D 5e | perception | 1d20+N |
| D&D 5e | str save / strength saving throw | 1d20+N |
| D&D 5e | initiative | 1d20+N |
| DCC | reflex / fortitude / will | 1d20+N |
| DCC | agility / agi | 1d20+N |
| DCC | spell check | d20+N |
| WoD (Mage / VTM) | perception | Xd10 |
| WoD (Mage / VTM) | wits+perception or wits + perception | Xd10 |
| Cyberpunk 2020 | int / ref / cool / Intelligence | 1d10+N |
POST /api/creator/utils/lookup Look up raw stat values for any character — HP, AC, Speed, Spell DC, or any named stat across all RPG systems.
dnd.combat.ac or reverie.vitality.{system}.{category}.{stat} when set.Item Fulfillment API
For creators who've had items transferred to them by rpg.actor. List your items, fetch one in full, and log gifts to your own PDS. See Becoming a Provider for the whole flow, including writing equipment.rpg.item to the player.