REST · v1

One key, every endpoint

Generate, rig, retexture and export from your own code. The same routes the site runs on, the same token metering, no second path to your balance.

Needs an active plan · Pulse, Forge or Crown.

bash
$ { "name": "Taner", "plan": "forge", "tokens_remaining": 1414, "scopes": ["*"] }

Issue a key on your API keys page and authenticate with Authorization: Bearer ffl_…. Everything lives under /api/v1.

Authentication

Send your API key as a Bearer token. Requires an active Pulse/Forge/Crown subscription.

curl -H "Authorization: Bearer ffl_…" https://formfromlight.com/api/v1/whoami

Scopes

Keys can be limited to specific actions. Default issued keys get * (full access). Use the scoped variants in CI / production for least-privilege.

* All endpoints
models:read GET /models, /models/{id}
generate:image POST /generate/image
generate:text POST /generate/text
retexture POST /models/{id}/retexture
rig POST /models/{id}/rig

Calls without the right scope return 403 with the list of granted scopes.

GET /api/v1/whoami

Account + balance

GET /api/v1/models?limit=25

List your recent models

GET /api/v1/models/{id}

Single model status + download URLs

POST /api/v1/generate/image

Generate from image (URL or multipart) · 2 tokens on Fast, 4 on Studio

image_url · ai_model (trellis/tripo-h31) · quality · style · title
POST /api/v1/generate/text

Generate from text prompt

prompt · quality · style · title
POST /api/v1/models/{id}/retexture

Re-skin existing mesh · 4 tokens

style · prompt (optional)
POST /api/v1/models/{id}/rig

Auto-rig, optionally with a baked animation · 4 tokens

animation (optional: idle/walk/run/jump/dance/wave/punch/kick)

Rate limits

120 requests/minute across all endpoints. Generation endpoints charge tokens up-front; failed generations are auto-refunded.