Skills
The skill guide the API serves to agents, generated from the live contract.
This is rendered from
skills/api. Agents fetch the raw markdown from https://app.assets.dev/api/v1/skills/api, and the endpoint list stays in sync with the OpenAPI document.Use the assets.dev REST API and MCP surface to create branded renders from agents.
Auth
- Get an API key with
POST https://app.assets.dev/api/v1/agent/register, approve the device flow, then pollPOST https://app.assets.dev/api/v1/agent/token. - Send the key as
Authorization: Bearer <apiKey>. - Read the live OpenAPI document at
https://app.assets.dev/api/v1/openapi.json. - Connected MCP hosts should use
https://app.assets.dev/api/mcp; headless agents can use the same API key as a bearer token.
Render Loop
- List templates with
GET /api/v1/templates. - Fetch a template schema with
GET /api/v1/templates/{id}. - Create or select a brand with
POST /api/v1/extractions,GET /api/v1/extractions/{id}, andPOST /api/v1/brands. - Submit one or more variants with
POST /api/v1/renders. - Poll
GET /api/v1/renders/{id}; when done, fetchGET /api/v1/renders/{id}/file. - Publish with
POST /api/v1/renders/{id}/publishonly when the output should be public.
Credits
- Check
GET /api/v1/creditsbefore expensive batches. - Image and video variants both debit credits; videos cost more as duration and scale increase.
- Failed renders are refunded and emit
render.failedwebhooks withrefunded: true.
Webhooks
- Register endpoints with
POST /api/v1/webhooks. - Verify
X-Studio-Signatureas HMAC-SHA256 over<timestamp>.<body>. - Store event IDs and ignore duplicates.
Endpoint List
DELETE /api/v1/webhooks/{id}GET /api/v1/brands/{id}/extractions/{extractionId}/diffGET /api/v1/brands/{id}/versionsGET /api/v1/brands/{id}GET /api/v1/brandsGET /api/v1/creditsGET /api/v1/extractions/{id}GET /api/v1/renders/{id}GET /api/v1/skills/{name}GET /api/v1/skillsGET /api/v1/templates/{id}GET /api/v1/templatesGET /api/v1/webhooksPATCH /api/v1/brands/{id}POST /api/v1/agent/registerPOST /api/v1/agent/tokenPOST /api/v1/brands/{id}/extractions/{extractionId}/applyPOST /api/v1/brands/{id}/extractionsPOST /api/v1/brands/{id}/versions/{versionId}/restorePOST /api/v1/brands/{id}/versionsPOST /api/v1/brandsPOST /api/v1/claimsPOST /api/v1/extractionsPOST /api/v1/rendersPOST /api/v1/webhooksPUT /api/v1/brands/{id}