Files

Download a file

Streams the file. Proxied, so the documented size cap applies.

GET /v1/files/:id/content

Permission

The key must be granted files.read

A key without it gets 403 insufficient_scope, with the missing permission named in details.

Answers the bytes rather than JSON, with the stored content type and always as an attachment: HTML somebody uploaded must not render on this origin. Ranged reads are supported and carried through, which is how a file larger than the proxy's ceiling is fetched and how media seeks. A document that is not an uploaded file has no bytes and answers 404.

Path parameters

Field Type Description
id required string The file to download.

Request

curl https://api.veruapis.com/v1/files/:id/content \
  -H "Authorization: Bearer vak_live_..."

Response

Streams the file itself rather than the JSON envelope.

Worth knowing

Streams the bytes rather than the envelope, always as an attachment so uploaded HTML cannot render on this origin. Send a Range header for a large file or to seek; the 206 comes back with its Content-Range intact.

Errors

Every failure uses the same shape, with a stable string code you can branch on. See the error reference.

Related

GET /v1/files/:id/content

id
Runs the real request against your own workspace. The key is used once and never stored.