API referenceUploads

Get a link to upload a file

A short-lived signed link to PUT ONE file from your own disk, so its bytes never pass through an agent's conversation.

Text (html, js, css, json; UTF-8, up to 2,000,000 bytes): pass public_url as a scene's src_url or reference it from scenes with <script src>. AUDIO you rendered yourself (wav, mp3, ogg, m4a, flac; up to 50 MB, counted against the storage quota) goes straight to storage: PUT it to the presigned upload_url with the returned headers (Content-Type is signed), then POST complete_url, which checks the stored bytes' magic number, records the file in the media library and as a music track that is transcoded and tempo/beat-analysed like any other (kind "sfx": library entry only), and returns track_id; the returned curl does both. Then PATCH /projects/{id}/music with trackId (or url: public_url) makes it the project music. Same access as landing authored compositions. Images and video also go straight to storage (see complete_url). Free.

POST
/uploads

Authorization

bearerAuth
AuthorizationBearer <token>

Typecut API key. Generate one in app.typecut.ai → Settings → API keys. Send as Authorization: Bearer tc_live_….

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/uploads" \  -H "Content-Type: application/json" \  -d '{    "file_name": "score.wav"  }'
{
  "data": {
    "upload_url": "http://example.com",
    "method": "PUT",
    "public_url": "http://example.com",
    "content_type": "string",
    "max_bytes": 0,
    "expires_at": "string",
    "curl": "string",
    "next": "string",
    "kind": "image",
    "mode": "single",
    "headers": {
      "property1": "string",
      "property2": "string"
    },
    "complete_url": "http://example.com",
    "part_url": "string",
    "part_count": 0,
    "part_size": 0
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}
{
  "error": {
    "type": "string",
    "code": "string",
    "message": "string"
  }
}