Reference
API reference
Base URL https://api.story0.com. Authenticate with Authorization: Bearer s0_live_…. Errors are RFC 9457 problem documents. Generated from the OpenAPI 3.1 contract, version 2026-11-01.
Assets
/v1/uploadsStart an upload
Returns a short-lived URL. PUT the file bytes to it with the listed headers, then complete the upload to get an asset.
Request body
Response 201 · Upload
Responses
/v1/uploads/{id}/completeComplete an upload
Creates an asset from the uploaded bytes. The asset is processing until its media facts are read, usually within seconds.
Parameters
Response 200 · Asset
Responses
/v1/assetsCreate an asset from a URL
Fetches a direct link to a video file. Platform pages (YouTube, Instagram, TikTok) are not fetched; upload those files instead.
Request body
Response 200 · Asset
Responses
/v1/assetsList assets
Parameters
Response 200 · AssetList
Responses
/v1/assets/{id}Retrieve an asset
Parameters
Response 200 · Asset
Responses
/v1/assets/{id}Delete an asset's media
Deletes the stored media now. Results that already exist stay available until their own expiry.
Parameters
Response 200 · Asset
Responses
Segments
/v1/segmentsSegment a video
partition labels every moment of the range with exactly one of your labels or uncertain. extract returns only the moments that match the instruction. Returns a job; the result is a Segmentation.
Request body
Response 200 · Job
Responses
/v1/segments/{id}Retrieve a segmentation
Parameters
Response 200 · Segmentation
Responses
Screenings
/v1/screeningsScreen a video against categories
Answers each category with match, no_match or uncertain, with the frames that support a match. Returns a job; the result is a Screening.
Request body
Response 200 · Job
Responses
/v1/screenings/{id}Retrieve a screening
Parameters
Response 200 · Screening
Responses
Jobs
/v1/jobs/{id}Retrieve a job
Returns the job's current state. With wait, the request is held for up to that many seconds and answers as soon as the job finishes, so completion is seen within a fraction of a second without rapid polling. Or listen for the job.* webhooks.
Parameters
Response 200 · Job
Responses
/v1/jobsList jobs
Parameters
Response 200 · JobList
Responses
/v1/jobs/{id}/cancelCancel a job
A queued job is cancelled at once and costs nothing. A running job stops at its next checkpoint; if it finishes first, it completes and is billed.
Parameters
Response 200 · Job
Responses
Billing
/v1/estimatesEstimate a charge
Quotes an operation for a ready asset, or for a duration you supply.
Request body
Response 200 · Estimate
Responses
/v1/balanceRetrieve the balance
Response 200 · Balance
Responses
/v1/usageSummarize usage
Live charges by day and operation. Test-mode work is never billed and is not included.
Parameters
Response 200 · Usage
Responses
/v1/pricesList prices
The current price list. No authentication required.
Response 200 · PriceList
Responses
Webhooks
/v1/webhook_endpointsCreate a webhook endpoint
Story0 signs every delivery with the Standard Webhooks scheme. The signing secret is returned only here.
Request body
Response 201 · WebhookEndpoint
Responses
/v1/webhook_endpointsList webhook endpoints
Response 200 · WebhookEndpointList
Responses
/v1/webhook_endpoints/{id}Disable a webhook endpoint
Parameters
Response 200 · WebhookEndpoint
Responses
/v1/webhook_endpoints/{id}/testSend a test event
Queues a signed ping event to this endpoint only.
Parameters
Response 202 · Event
Responses
/v1/webhook_endpoints/{id}/deliveriesList recent deliveries
Parameters
Response 200 · WebhookDeliveryList
Responses
/v1/eventsList events
Every event is recorded, whether or not an endpoint was subscribed. Use this to reconcile after downtime.
Parameters
Response 200 · EventList
Responses
Feedback
/v1/feedbackRecord feedback on a result
Append-only. Feedback never changes the result it refers to.
Request body
Responses