Uploads

Initiate a multipart upload

For large files: register the file and get presigned URLs for each part, PUT the parts, then call the multipart complete endpoint with their ETags. media_id and file_hash are optional for API keys (see the create upload endpoint); the response carries the media_id.

post/projects/{projectId}/uploads/multipart/initiate

Request

  • Base URL
    https://api.rendley.com/v1
  • Auth
    API key in header Authorization

Path parameters

projectIdstring required

Project ID

Request body

durationnumber
file_hashstring

FileHash is the client-computed content hash (XXH3-64, 16 hex chars). Optional for API keys.

file_sizeinteger
media_idstring

MediaId is the client-chosen media id (a UUID). Optional for API keys.

metadatastring
mime_typestring
original_file_namestring
part_countinteger required
project_idstring
role'library' | 'pending' | 'staged' | 'transient'

Role is the sync-lifecycle tag: "library" (reconciled by the editor's hash sync), "pending" (awaiting auto-injection into the library; invisible to the sync), "staged" (agent/AI workflow file; invisible to the sync AND not auto-injected — adopted to library only when explicitly referenced) or "transient" (never a library asset). Defaults to "library"; "pending" when Source is "mcp"; "staged" for API-key requests (so opening the project in the editor never reaps an API-uploaded file before it is referenced).

source'editor' | 'mcp' | 'agent' | 'export' | 'ai' | 'duplicate'

Source is provenance: which flow created the upload.

Example request

{
  "file_hash": "c6c8ec4f9a6fdd9d"
}

Response

OK

metaunknown

Example response

{
  "data": {
    "media_id": "c448b6e3-2b78-4bda-b369-d1afc6aec07f"
  }
}

Changes

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