Upload a file
create_upload_urlGet a public cdn.revid.ai URL for a local image, video or audio file, to use wherever Revid takes a media URL (render_video media and references, generate_media references and frames, create_character, clone_voice). This server cannot read your files: the call returns a one-time uploadUrl; PUT the file bytes to it with the returned headers within expiresIn seconds, e.g. curl -X PUT -H "Content-Type: <contentType>" --data-binary @<path> "<uploadUrl>". The file is then served at url. With a shell and the Revid CLI, revid upload <file> does both steps. For a file attached in a chat (ChatGPT), or without a way to send the bytes, use upload_files instead: url stays dead until the bytes are PUT, so never pass it on without having sent them. Uses no credits.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"contentType": "<contentType>"
},
"name": "create_upload_url"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | No | Original file name; its extension is kept in the URL. | |
| contentType | Yes | MIME type of the file: image/*, video/* or audio/*, e.g. image/jpeg, video/mp4, audio/mpeg. The PUT must send exactly this Content-Type. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | ||
| data | No | ||
| error | No | ||
| method | Yes | ||
| status | Yes | ||
| endpoint | Yes | ||
| retryAfterSeconds | No |