Skip to content

The original

GET
/a/{id}
curl --request GET \
--url http://localhost:3000/a/example

Bytes, exactly as uploaded, Content Credentials included; ?download writes current metadata in, except into a file with Content Credentials, which it leaves as signed. What the asset is: GET /api/v1/assets/{id}/description. Private: served to whoever can see the asset in the library, by session or key. Anyone else needs s, a signature from POST /api/v1/assets/{id}/signed-url, a share link or a portal, or the asset made public. Signed or public, only while approved, unexpired and out of embargo, and cached for an hour at most, never past the last day of use. Expired or archived: 410. Not there for this caller: 404. A name may follow the id, or a transform, for people reading the link (/a/{id}/summer-hero.jpg, /a/{id}/w_800,f_webp/summer-hero.webp): any segment with a dot, never read.

No key needed.

id
required
string

Asset id

download
string

Present: attach, saved as the asset’s name, with metadata embedded (a rendition: in its format)

s
string

A signature: lets whoever holds the URL in until it expires. Renditions take it too

The file

Expired or archived

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
detail
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"detail": "example"
}
}

An error

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
detail
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"detail": "example"
}
}