Upload Recordings and Download Media via API

Upload raw recording tracks to FoxCue with POST /recordings and a retry-safe upload_id, then download rendered media with GET /media using its storage key.

To send a recording to FoxCue through the API, create a recording session, then upload the raw track bytes. To download a rendered file, call GET /media with the file's storage key from an output.

Upload a recording

Create a session

POST /recordings (scope media:write) returns a recording ID.

Upload the track

curl "https://app.foxcue.com/api/v1/recordings/<id>/sources/upload?kind=camera&upload_id=<uuid>" \
  -H "Authorization: Bearer <workspace API key>" \
  -H "Content-Type: video/mp4" --data-binary @recording.mp4

Generate a UUID for upload_id and reuse it if you retry, so the upload isn't duplicated.

API uploads are limited to 64 MiB. For bigger files, upload in the app (up to 500 MB).

Download media

curl "https://app.foxcue.com/api/v1/media?key=<URL-encoded-storage-key>" \
  -H "Authorization: Bearer <workspace API key>" --output result.mp4

Get the key from an output (GET /artifacts/{id}). Downloads only work for media your workspace owns.

On this page