Upload and manage files

Upload, list, fetch, update, move, delete, and restore assets through the Storage API.

Every file in Storage is an asset: the bytes plus metadata like its name, folder, visibility, alt text, and tags. This page covers the management operations you run against the asset API. All of them go through the gateway at https://api.revenexx.com/v1/storage and carry the auth headers X-Revenexx-Api-Key (or Authorization: Bearer) and X-Revenexx-Tenant.

Upload a file

Send one multipart/form-data request. The file part is required. The rest is optional metadata you can also change later.

curl -X POST https://api.revenexx.com/v1/storage/assets \
  -H "X-Revenexx-Api-Key: <API_KEY>" \
  -H "X-Revenexx-Tenant: <TENANT_SLUG>" \
  -F "file=@./datasheet.pdf" \
  -F "folder_id=<FOLDER_ID>" \
  -F "visibility=private" \
  -F "display_name=Product datasheet" \
  -F "tags=spec,2026"

The fields you can send with an upload:

FieldDescription
fileThe file to upload. Required.
folder_idFolder to place the asset in. Defaults to the tenant root.
visibilitypublic or private. Public assets are served without auth; private ones need a signed URL.
display_nameA human-friendly name, up to 255 characters.
alt_textAlternative text for images, up to 1000 characters.
descriptionA longer description.
tagsOne or more tags, comma-separated or repeated. Each tag is up to 64 characters.

A single file can be up to 96 MiB. The SDKs and a plain multipart request both work; there is no separate chunked-upload protocol to implement. For large recurring imports, use SFTP sync instead.

The response carries the asset id. Keep it: every operation below addresses an asset by its id.

Upload several files at once

To upload a batch in one request, post to the bulk endpoint with repeated files[] parts. A batch is up to 20 files and 200 MiB total. The response is a multi-status report, one entry per file, so you can see which succeeded and which didn't.

Bash
curl -X POST https://api.revenexx.com/v1/storage/assets/bulk \
  -H "X-Revenexx-Api-Key: <API_KEY>" \
  -H "X-Revenexx-Tenant: <TENANT_SLUG>" \
  -F "files[]=@./a.jpg" \
  -F "files[]=@./b.jpg" \
  -F "folder_id=<FOLDER_ID>"

List files

List assets in the tenant, with filtering, search, sorting, and pagination. Return at most 200 per page.

Bash
curl "https://api.revenexx.com/v1/storage/assets?filter[folder_id]=<FOLDER_ID>&limit=50" \
  -H "X-Revenexx-Api-Key: <API_KEY>" \
  -H "X-Revenexx-Tenant: <TENANT_SLUG>"

You can filter by folder_id, kind, status, and created_at, pass a search term, set sort, and page with limit.

Get one file's metadata

Bash
curl https://api.revenexx.com/v1/storage/assets/<ASSET_ID> \
  -H "X-Revenexx-Api-Key: <API_KEY>" \
  -H "X-Revenexx-Tenant: <TENANT_SLUG>"

This returns metadata, not bytes. To serve the file to end users, link to the delivery host. To pull the original bytes from a backend, use the download endpoint below.

Download the original

Streams the original, untransformed file. Useful for server-side processing.

Bash
curl https://api.revenexx.com/v1/storage/assets/<ASSET_ID>/download \
  -H "X-Revenexx-Api-Key: <API_KEY>" \
  -H "X-Revenexx-Tenant: <TENANT_SLUG>" \
  -o datasheet.pdf

Update metadata, rename, or move

A PATCH updates any metadata field. To rename a file, set name. To move it to another folder, set folder_id.

Bash
curl -X PATCH https://api.revenexx.com/v1/storage/assets/<ASSET_ID> \
  -H "X-Revenexx-Api-Key: <API_KEY>" \
  -H "X-Revenexx-Tenant: <TENANT_SLUG>" \
  -H "Content-Type: application/json" \
  -d '{ "display_name": "2026 datasheet", "folder_id": "<NEW_FOLDER_ID>", "visibility": "public" }'

You can change display_name, alt_text, description, visibility, tags, folder_id (move), and name (rename).

Delete and restore

Deleting an asset is a soft delete: the file is hidden and scheduled for removal, but recoverable for a retention window (30 days by default).

Bash
curl -X DELETE https://api.revenexx.com/v1/storage/assets/<ASSET_ID> \
  -H "X-Revenexx-Api-Key: <API_KEY>" \
  -H "X-Revenexx-Tenant: <TENANT_SLUG>"

Restore a soft-deleted asset within the retention window:

Bash
curl -X POST https://api.revenexx.com/v1/storage/assets/<ASSET_ID>/restore \
  -H "X-Revenexx-Api-Key: <API_KEY>" \
  -H "X-Revenexx-Tenant: <TENANT_SLUG>"

Allowed file types

Storage accepts common image, video, document, audio, archive, data, and 3D model formats. For safety, executable types (such as exe, dll, sh, bat, jar, app, dmg, msi) are rejected regardless of the declared content type.

What's next

Was this page helpful?