Skip to main content
POST
Start file upload
Step one of the two-step upload, for files up to 2 GB. It returns a signed URL and an upload_token. PUT the file’s bytes to the URL, then call Complete large upload to have the computer pull the file into place. The bytes go straight to storage and never pass through Orgo’s API. The file lands on one computer only. No file record is written, so it does not appear in the list endpoint. For files up to 10 MB that should be stored in the workspace, use Upload file.

Request

Send a JSON body.
string
required
Computer ID (UUID) the file goes to. The computer does not need to be running yet. It must be running when you complete the upload.
string
required
Name the file will have on the computer. A plain name only: no / or \, not . or .., at most 255 characters.
integer
required
Exact size of the file in bytes, from 1 to 2147483648 (2 GB). The signed URL accepts a body of exactly this size and no other.
string
Absolute folder on the computer, such as /root/Documents or, on Windows, C:\Users\Public. Omit it, or send desktop, for the desktop folder of the computer’s user. On Linux, a folder that does not exist is created.

Response

string
Signed URL to PUT the file’s bytes to. Send exactly size_bytes bytes.
string
Always PUT.
integer
Seconds the upload_url stays valid: 900 (15 minutes).
string
Pass it to Complete large upload. It is valid for one hour and only for the same caller and computer.
string
A one-line reminder of the next two steps.

Example

Response

Errors

Every error carries the shape {"error": "<message>"}. The scope-mismatch 403 adds code, key_workspace_id, and target_workspace_id. The checks below run in order.

Authorizations

Authorization
string
header
required

API key authentication. Get your key at orgo.ai/workspaces

Body

application/json
desktopId
string
required

Computer ID.

filename
string
required

A plain file name, no folders.

size_bytes
integer
required

The file's exact size in bytes. Up to 2 GB.

Required range: 1 <= x <= 2147483648
destPath
string

Absolute folder on the computer to place it in. Omitted or desktop: the desktop folder of the computer's user.

Response

Where to send the bytes, and the token to finish with.

upload_url
string

Signed URL to PUT the bytes to. Works for 15 minutes.

method
enum<string>
Available options:
PUT
expires_in
integer

Seconds upload_url works (900).

upload_token
string

Send it to POST /files/uploads/complete. Works for one hour.

next
string

What to do next, in words.