Workflows can declare parameters ofDocumentation Index
Fetch the complete documentation index at: https://docs.cyberun.cloud/llms.txt
Use this file to discover all available pages before exploring further.
type: file. To submit a task
against one, upload the file first, then pass the returned
file_key as the parameter value. The path runs through S3 with a
presigned PUT — uploads don’t touch the API server’s bandwidth.
The flow
Three calls in order:POST /api/v1/r/files/presign— describe the file. Returnsfile_key,upload_url, andupload_headers.PUT <upload_url>— upload the file body directly to S3, sending every header inupload_headersverbatim.POST /api/v1/r/workflows/{workflowId}/run(or/r/workflows/slug/{workflowSlug}/run) with thefile_keyas the value for the file parameter.
Request a presigned URL
| Field | Notes |
|---|---|
file_key | Opaque reference. Pass this as the value for any type: file parameter. |
upload_url | S3 PUT URL with the signature in the query string. |
upload_headers | Headers that must be sent verbatim on the PUT. Signed in. |
Upload to S3
Send the file body as thePUT request body with all of
upload_headers attached. The signature enforces them — if you skip
Content-Length or If-None-Match, S3 returns 403. If a file
already exists at the key, S3 returns 412 (overwrite prevented).
Content-Length value must match the file_size you sent at
step 1 exactly.
Submit the workflow
Passfile_key as the parameter value:
End-to-end examples
Retention and limits
- Input files uploaded via
/r/files/presignare kept for 1 day then removed by S3 lifecycle policy. Submit the task within that window. - Task outputs are retained for 7 days. After that the
download_urlyou receive fromGET /r/tasks/{taskId}/resultstops working. - Default per-file size limit is 500 MB. Larger limits are a
deployment configuration. For files near or above this limit use
the multipart upload endpoints (
/uploads/multipart/...) instead — they presign each part separately.
Multipart for large files
For files that exceed the single-part limit, use the multipart flow:POST /api/v1/uploads/multipart/initiate— start an upload, get an upload ID.POST /api/v1/uploads/multipart/presign-parts— request signed URLs for each part.PUTeach part to its signed URL.POST /api/v1/uploads/multipart/complete— finalize, get the samefile_keyshape back.
initiate, presign-parts, complete)
accept a user session token only — they reject sk- integration
credentials and dk- device credentials with 401. Single-part
/r/files/presign accepts all three. If you call the API with an
sk- or dk- credential, use the single-part presign flow.
Related
- API reference —
/r/files/presignand/uploads/multipart/*endpoint specs. - Stream task events (SSE) — watch the run after submission.
- Generate an API key — issue an
sk-credential.
