StoredFile

Upload a file

Uploads a file to be stored by Telerivet.

After uploading a file, it can be attached to an outgoing message by passing its ID as a file_id item in the media parameter of project.sendMessage, project.sendBroadcast, or project.sendMulti. This makes it possible to upload a media file once and attach it to many messages, instead of including the file content in every API request.

The file content is provided inline via the data parameter, encoded via Base64, with a maximum decoded file size of 5 MB. Image, video, audio, PDF, and vCard files are supported.

Files are deduplicated by content: if a file previously uploaded via the API in the same project has the same content and MIME type, the existing stored file is returned instead of creating a duplicate.

post/v1/projects/{project_id}/files

Request

  • Base URL: https://api.telerivet.com
  • URL: https://api.telerivet.com/v1/projects/{project_id}/files
  • Auth: one of:
    • HTTP basic
    • OAuth 2 (authorization code, authorization URL https://telerivet.com/oauth/authorize, token URL https://api.telerivet.com/oauth/token)

Path parameters

project_idstring required

ID of the Project

Request body

datastring required

Base64-encoded file content (max 5 MB decoded). Alternatively, a Base64 data URI such as data:image/jpeg;base64,..., in which case the type parameter may be omitted.

filenamestring

Filename of the stored file. If not provided, the filename is generated automatically.

typestring

MIME type of the file, e.g. image/jpeg. If data is a data URI, the type may be omitted, but must match the MIME type of the data URI if provided.

descriptionstring

Description of the file

varsobject

Custom variables to store with the file

Example request

{
  "filename": "image.jpg",
  "type": "image/jpeg"
}

Response

Successful response

idstring

ID of the stored file

filenamestring

Filename of the stored file

typestring

MIME type of the file

sizeinteger

Size of the file in bytes

descriptionstring nullable

Description of the file

varsobject

Custom variables stored for this stored file. Variable names may be up to 32 characters in length and can contain the characters a-z, A-Z, 0-9, and _. Values may be strings, numbers, or boolean (true/false). String values may be up to 4096 bytes in length when encoded as UTF-8. Up to 100 variables are supported per object. Setting a variable to null will delete the variable.

category'outgoing_media' | 'incoming_media' | 'call_audio' | 'test_recording' | 'script_module' | 'icon'

Category of the stored file

source'upload' | 'recording' | 'message' | 'api'

How the stored file was created

message_idstring nullable

ID of the message associated with this file, if any. Files associated with a message are deleted automatically when the message is deleted.

sha256string nullable

SHA-256 hash of the file content (lowercase hex), if available

time_createdinteger

Time the file was created in Telerivet

user_idstring nullable

ID of the Telerivet user who created the file (if applicable)

urlstring

URL where the file content can be downloaded. Note: this URL is temporary and may not be valid for more than 1 day; retrieve the stored file again to get a fresh URL.

thumbnail_urlstring nullable

URL of a thumbnail image for video files, if available. Note: this URL is temporary and may not be valid for more than 1 day.

project_idstring

ID of the project this file belongs to

Example response

{
  "id": "SF2c72e0be64f38ea9",
  "filename": "image.jpg",
  "type": "image/jpeg",
  "size": 482133,
  "category": "outgoing_media",
  "source": "api",
  "message_id": "SM66bba24d8b6a3a25",
  "sha256": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
  "time_created": 1751980000,
  "user_id": "URba3e403e98f49735",
  "project_id": "PJ2ad0100821a98bea"
}

Changes

No recorded changes to this operation across all 1 revision of this API.