Access & visibility
Allow documents.GetUpload on your API key.
Workspace access by default. Private member data requires approved member delegation through Brigg-Act-As; the key supplies permissions while private ownership and project boundaries remain enforced.
Request fields
Send a JSON object with the following fields. Required fields must be included; omit optional fields you do not need.
upload_idstringRequiredKeep the upload_id and the same credential and acting member throughout the upload. Completion returns a separate file_id. documents.CreateUpload.
At least 1 character.
Where this fits in an upload
The file guide includes a streaming Node.js helper and the complete HTTP sequence: create an upload, request a signed URL for each part, PUT the bytes directly to that URL, then complete the upload. Never send the Brigg API key to a transfer URL.
Keep the same credential and acting member for every step. Follow the returned part size and count rather than imposing your own split. Completing with only upload_id lets Brigg collect part receipts. A successful byte transfer is not a completed file: verification and scanning must finish before you receive a usable file_id.
Retain upload_id for recovery. Read its state before retransferring an interrupted upload; ready returns the existing file ID, while an expired upload requires a new start. Temporary transfer URLs and completed file IDs have different lifetimes.
Response
Returns 200 OK with a JSON body.
upload_idstringRequiredUpload ID returned by documents.CreateUpload. Only the credential that created this upload can transfer parts, complete it or cancel it. This is different from the completed file ID.
statestringRequiredUpload lifecycle state. Uploading bytes and completing the file are separate steps.
Allowed: "uploading", "ready", "cancelled", "expired".
expires_atnumberRequiredUpload expiry, in Unix milliseconds. Complete the upload before this time.
modestringRequiredTransfer mode selected by Brigg: single upload or multipart upload. Follow the returned part count and part size.
Allowed: "single", "multipart".
part_sizeintegerRequiredBytes in each part, except the last part which contains the remaining bytes. Split the original file at these boundaries.
part_countintegerRequiredNumber of parts to transfer before completion. One means the entire file is sent in a single PUT request.
file_idstringOptionalStable file ID returned by documents.CompleteUpload, documents.ListDocuments or a document creation operation. Use the same ID for downloads, attachments and supported file-based workflows. Do not use a filename or storage path.
Errors & retries
This operation reads data. It needs no idempotency key and can be retried after a transient failure.
For rate limits, follow the server’s retry guidance and back off. See HTTP errors and safe retries and limits.
| HTTP status | Code | What to do |
|---|---|---|
| 400 | invalid_json |
Send a JSON object with Content-Type: application/json. |
| 400 | invalid_input |
Check the request fields and types. |
| 401 | invalid_key |
The workspace API key is missing, invalid or revoked. |
| 403 | forbidden |
Check the key’s operation and resource grants. If Brigg-Act-As is supplied, the key must be authorized to delegate to that member. |
| 404 | not_found |
The requested operation or resource is not available to this credential. |
| 429 | rate_limited |
Wait for Retry-After before retrying. |
Next steps
JSON schemas
Use the complete schemas for validation or client generation.
Full request JSON schema
{
"type": "object",
"properties": {
"upload_id": {
"type": "string",
"minLength": 1,
"description": "Keep the upload_id and the same credential and acting member throughout the upload. Completion returns a separate file_id. [documents.CreateUpload](/reference/documents/CreateUpload)."
}
},
"required": [
"upload_id"
],
"additionalProperties": false,
"examples": [
{
"upload_id": "upl_example"
}
]
}Full response JSON schema
{
"type": "object",
"properties": {
"upload_id": {
"type": "string",
"description": "Upload ID returned by documents.CreateUpload. Only the credential that created this upload can transfer parts, complete it or cancel it. This is different from the completed file ID."
},
"state": {
"type": "string",
"enum": [
"uploading",
"ready",
"cancelled",
"expired"
],
"description": "Upload lifecycle state. Uploading bytes and completing the file are separate steps."
},
"expires_at": {
"type": "number",
"description": "Upload expiry, in Unix milliseconds. Complete the upload before this time."
},
"mode": {
"type": "string",
"enum": [
"single",
"multipart"
],
"description": "Transfer mode selected by Brigg: single upload or multipart upload. Follow the returned part count and part size."
},
"part_size": {
"type": "integer",
"description": "Bytes in each part, except the last part which contains the remaining bytes. Split the original file at these boundaries."
},
"part_count": {
"type": "integer",
"description": "Number of parts to transfer before completion. One means the entire file is sent in a single PUT request."
},
"file_id": {
"type": "string",
"description": "Stable file ID returned by documents.CompleteUpload, documents.ListDocuments or a document creation operation. Use the same ID for downloads, attachments and supported file-based workflows. Do not use a filename or storage path."
}
},
"required": [
"upload_id",
"state",
"expires_at",
"mode",
"part_size",
"part_count"
],
"additionalProperties": false,
"examples": [
{
"upload_id": "upl_example",
"state": "uploading",
"expires_at": 1794387600000,
"mode": "single",
"part_size": 48231,
"part_count": 1
}
]
}