Skip to main content
Upload a file to the platform, get a file id, then pass it to Run Expert as attachment_file_ids. The platform materializes the file in the Expert’s sandbox (/home/user/uploads/), where the Expert can read / grep it — including PDF, Word, and Excel.
Why ids and not URLs: the platform never fetches a link you hand it. That means (1) you never have to publish a readable link to a private document, and (2) the platform cannot be used as a proxy to reach your internal network. The read URL is minted by the platform at invoke time and only travels inside the platform.

Quick Start

One call with the SDK (which wraps the three steps below):

Upload Flow

Without the SDK, uploading is three steps: get an upload ticket, PUT the bytes to storage, register the object. The bytes go straight to object storage rather than through the platform’s API pods, so large files are not bounded by a request body limit.

1. Get an Upload Ticket

string
required
File name. Must not contain path separators (/, \); max 255 characters.
string
required
MIME type, e.g. application/pdf. Must be on the platform’s allowlist.
integer
required
Size in bytes, max 100 MB. Used here for a fail-fast storage quota check.
Response

2. PUT the Bytes to Storage

Send a PUT to upload_url with the file bytes as the body.
Content-Type must exactly match the content_type from step 1 — the signature covers that header, and a mismatch is a 403.Do not send an Authorization header on this PUT: object storage would switch to header-based auth and ignore the query-string signature.

3. Register the File

string
required
The file_key returned in step 1.
string
File name. Defaults to the name embedded in file_key.
string
MIME type. Defaults to what object storage recorded.
The platform confirms the object was really uploaded (and uses the size reported by storage rather than the size declared in the request), then returns the file id:
Response

Delete a File

Soft-deletes the record and purges the stored object. You can only delete your own files; deleting an unknown id also succeeds (idempotent).

Limits

Error Codes

Next Steps

Run Expert

Pass the file to an Expert via attachment_file_ids

Python SDK

Complete Python SDK guide