Every request to the Dohoo API (except the S3 PUT in step 2) must include your API key in the
X-API-Key header.Step 1 — Get a presigned upload URL
POST /api/upload/presigned-url
Request a short-lived presigned URL from Dohoo. Provide the filename and MIME type of the file you want to upload. Dohoo returns a signed S3 URL along with a fileId you’ll use to track and reference the file later.
Request body
string
required
The original filename including its extension (e.g.
my-video.mp4).string
required
The MIME type of the file (e.g.
video/mp4, image/jpeg).uploadUrl in step 2, and reference fileId in all subsequent API calls.
Step 2 — Upload the file to S3
PUT {uploadUrl}
PUT the raw file bytes directly to the presigned S3 URL you received in step 1. You do not need to include your X-API-Key header for this request — the URL is already cryptographically signed and authorises the upload on its own.
Set the Content-Type header to match the MIME type you specified when requesting the URL.
200 OK from S3 means the upload succeeded. Proceed to check processing status if your file requires transcoding before publishing.
Check upload status
GET /api/upload/status/:id
Returns the current processing status of an uploaded file. Poll this endpoint after uploading a video to confirm it has finished transcoding before you attempt to publish it.
string
required
The
fileId returned in step 1.List all files
GET /api/upload/files
Returns a list of all files you have uploaded to Dohoo.
Get the latest uploaded file
GET /api/upload/latest
Returns metadata for the most recently uploaded file in your account. Useful for quickly referencing the last file you uploaded without having to list all files.
Download a file
GET /api/upload/direct/{fileId}
Returns the file itself as a binary response. Use this endpoint when you need to retrieve the original file contents, for example to serve it from your own infrastructure or archive it locally.
string
required
The unique identifier of the file to download.
Delete a file
DELETE /api/upload/file/{fileId}
Permanently deletes a file from Dohoo storage.
string
required
The unique identifier of the file to delete.
