Three commands, one model.
1. Issue an API key
Head to your API keys page, click Issue key, pick the scopes you need (or leave * for full access), and copy the plaintext token. It's shown ONCE.
2. Sanity check
curl -H "Authorization: Bearer ffl_…" https://formfromlight.com/api/v1/whoami
You should see your name + token balance. Anything else means the key is wrong, expired, or your subscription lapsed.
3. Generate from an image URL
curl -X POST https://formfromlight.com/api/v1/generate/image \
-H "Authorization: Bearer ffl_…" \
-H "Content-Type: application/json" \
-d '{
"image_url": "https://example.com/horse.png",
"ai_model": "tripo-h31",
"quality": "standard",
"style": "realistic"
}'
Response includes a poll_url · GET it every few seconds until status === "completed". Or skip polling and set up a webhook for the model.completed event.
Interactive docs
The full spec is at /api/openapi.json · play with it in the API explorer.