Skip to main content
POST
UploadFile
Questions or issues? Contact us at api-support@manus.ai.
Auth:
  • API Key: Full access.
  • Standard OAuth client: Requires create_task or manage_all_tasks.
  • Trusted client: Full access.

Limits

Exceeding a size limit returns QuotaExceededError. Files attached inline in a task message instead of through file.upload have a lower cap: file_url and decoded file_data are limited to 20 MB each. Upload larger files first and pass the returned file.id as file_id.

Headers

x-manus-api-key
string

API key for direct authentication. Provide either this or Authorization, not both. See Authentication.

Authorization
string

OAuth2 access token in Bearer {token} format. An OAuth client requires the create_task or manage_all_tasks scope unless it is a Trusted team client or Trusted public client. Provide either this or x-manus-api-key, not both. See the Open App guide.

Example:

"Bearer {access_token}"

Body

application/json
filename
string
required

Name of the file to upload, including extension (e.g., "report.pdf", "data.csv"). The extension helps determine the file type.

Response

File record created successfully.

ok
boolean

Whether the request was successful.

Example:

true

request_id
string

Unique identifier for this API request.

file
object

The created file record. Status will be pending until the upload completes.

upload_url
string

Presigned S3 URL for uploading the file content. Send a PUT request with the file bytes as the body. Expires in 3 minutes.

upload_expires_at
string

Unix timestamp in seconds when upload_url expires, encoded as a decimal string. Complete the upload before this time.

Pattern: ^[0-9]+$
Example:

"1893456180"