§ DOCUMENTATION
Clear an asset in two calls.
Starla runs a pre-flight compliance evaluation on regulated marketing assets and returns a clause-cited verdict against Portman, DISCUS, ASA, TTB, platform and house standards. It advises; it never publishes or approves.

Getting started
An evaluation is asynchronous. You hand Starla a batch of assets and the frameworks to judge them against, and it hands back an id you can poll. Every asset in the batch becomes one job— the API's own noun for a single ruling.
- 01
Submit the assets
POST /v1/evaluations as multipart form data: a name, the frameworks to judge against, and the files themselves. The evaluation id comes back immediately.
- 02
Poll the evaluation
GET /v1/evaluations/{evaluationId} returns the batch's status and, once it is completed, the section-by-section ruling for every asset in it.
- 03
Zoom into one asset
Optional. Each file in a batch is a job — GET /v1/jobs/{id} reads a single one back on its own, with the clause each finding cites.
- 04
Work with what is already there
Optional. GET /v1/frameworks lists what you can judge against, GET /v1/assets lists the media already in the workspace, and POST /v1/uploads sends a large file straight to storage instead of through the evaluation call.
Authentication
Every request carries a tenant-scoped API key in an X-API-Key header. Keys are issued per workspace and never leave the server that holds them — keep yours in an environment variable, not in client code.
X-API-Key: $STARLA_API_KEYA missing or expired key returns 401 Unauthorized. The session token the web app carries is not an API key and will be rejected the same way — the public API accepts nothing but this header.
Every endpoint, in full
Requests, parameters and response shapes for the public API.