Delivery and signed links
Serve public assets through a stable URL or mint time-limited grants for private access and revision-specific delivery.
Deliver the current revision of a public asset. This endpoint does not use an API key.
Delivery query parameters
NameTypeDescription
vintegerPin delivery to one retained revision. Omit it to follow the current revision.
wintegerTarget width in pixels.
hintegerTarget height in pixels.
fmwebp | jpg | pngRequested output format.
qintegerOutput quality from 30 to 95.
fitcover | contain | inside | outsideHow the source fits the requested width and height.
focuscenter | autoChoose automatic high-detail framing when fit is cover.
fp-x, fp-ynumber 0 to 1Explicit focal coordinates. Supply both and use fit=cover.
GET https://cdn.steadylink.io/a/$ASSET_ID
GET https://cdn.steadylink.io/a/$ASSET_ID?w=1200&h=630&fit=cover&focus=auto&fm=webp
The current URL uses a five-minute shared cache lifetime. Revision-specific responses use a one-year immutable cache. Replacement and rollback invalidate the API hot-path cache, but an edge may serve the previous current revision until the five-minute stable cache expires.
POST/api/assets/{asset_id}/signed-url
201 CreatedCreate a revocable signed access grant.
Required scopeassets:write
Query parameters
NameTypeDescription
ttlintegerLifetime in seconds. Clamped between 60 and 2,592,000. Default 300.
namestringOptional internal label, up to 200 characters.
revisionintegerOptional revision number. Omit it to follow the current revision.
{
"id": "grant_uuid",
"token": "signed_token",
"name": "customer preview",
"revisionNumber": 41,
"expiresAt": "2026-08-17T19:01:00"
}
GET https://cdn.steadylink.io/a/$ASSET_ID?token=$SIGNED_TOKEN
GET/api/assets/{asset_id}/signed-urls
200 OKList signed grants without returning their secret tokens.
Required scopeassets:read
DELETE/api/assets/{asset_id}/signed-urls/{grant_id}
200 OKRevoke a signed grant before it expires.
Required scopeassets:write