Skip to main content
POST
/
job
/
file
/
upload
curl --request POST \
  --url https://operator.opus.com/job/file/upload \
  --header 'Content-Type: application/json' \
  --header 'x-service-key: {YOUR_SERVICE_KEY}' \
  --data '{
    "fileExtension": ".pdf",
    "originalName": "Q4-Report.pdf",
    "accessScope": "organization"
  }'
{
  "presignedUrl": "{PRESIGNED_URL}",
  "fileUrl": "{FILE_URL}"
}
If your workflow contains file inputs (type: file or array_files), you must upload files before executing the job. This endpoint generates a presigned URL for uploading.
Call this endpoint once for each file you need to upload. After receiving the presigned URL, proceed to Upload File to complete the upload.

Headers

x-service-key
string
required
Your API authentication key

Body Parameters

fileExtension
string
required
The file extension including the dot (e.g., .pdf, .docx)
accessScope
string
Access scope for the file. Options: all, user, workspace, organization. If omitted, the file is uploaded as unlisted — tracked by the platform but not shown in the file library.
originalName
string
The original filename of the file being uploaded (e.g., Q4-Report.pdf). Surfaced in the Opus file library to make the file easier to identify later.
workspaceId
string
Target workspace ID for the file. Required when accessScope is workspace and workflowId is not provided.
workflowId
string
Target workflow ID for the file. The workspace that owns this workflow becomes the owner of the file. Required when accessScope is workspace and workspaceId is not provided.

Supported File Types

ExtensionDescription
.pdfPDF documents
.docxWord documents
.csvCSV spreadsheets
.xls, .xlsxExcel spreadsheets
.txtPlain text files
.jsonJSON files
.htmlHTML files
.xmlXML files
.jpeg, .jpg, .pngImage files
The maximum file size for uploads is 10 MB. Files exceeding this limit will be rejected.

Response

presignedUrl
string
required
Temporary URL for uploading your file. Use this in the Upload File step.
fileUrl
string
required
Permanent URL to reference this file in your Execute Job request.
curl --request POST \
  --url https://operator.opus.com/job/file/upload \
  --header 'Content-Type: application/json' \
  --header 'x-service-key: {YOUR_SERVICE_KEY}' \
  --data '{
    "fileExtension": ".pdf",
    "originalName": "Q4-Report.pdf",
    "accessScope": "organization"
  }'
{
  "presignedUrl": "{PRESIGNED_URL}",
  "fileUrl": "{FILE_URL}"
}