Access & visibility
Allow documents.GetUploadPart 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.
part_numberintegerRequiredOne-based part number. Use 1 for a single upload; for multipart uploads, transfer every part from 1 through part_count.
Greater than 0.
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.
urlstringRequiredAbsolute URL, including its scheme.
methodstringRequiredHTTP method to use when sending bytes to the temporary transfer URL.
Allowed: "PUT".
expires_atnumberRequiredExpiry time in Unix milliseconds. Obtain a fresh transfer or download URL after expiry.
content_typestringRequiredMedia type of the file, such as application/pdf. Null when no binary file exists.
size_bytesintegerRequiredFile size in bytes. Null for a document without a downloadable binary file.
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](/developers/reference/documents/CreateUpload)."
},
"part_number": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "One-based part number. Use 1 for a single upload; for multipart uploads, transfer every part from 1 through part_count."
}
},
"required": [
"upload_id",
"part_number"
],
"additionalProperties": false,
"examples": [
{
"upload_id": "upl_example",
"part_number": 1
}
]
}Full response JSON schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Absolute URL, including its scheme."
},
"method": {
"type": "string",
"enum": [
"PUT"
],
"description": "HTTP method to use when sending bytes to the temporary transfer URL."
},
"expires_at": {
"type": "number",
"description": "Expiry time in Unix milliseconds. Obtain a fresh transfer or download URL after expiry."
},
"content_type": {
"type": "string",
"description": "Media type of the file, such as application/pdf. Null when no binary file exists."
},
"size_bytes": {
"type": "integer",
"description": "File size in bytes. Null for a document without a downloadable binary file."
}
},
"required": [
"url",
"method",
"expires_at",
"content_type",
"size_bytes"
],
"additionalProperties": false,
"examples": [
{
"url": "https://example.com/temporary-upload",
"method": "PUT",
"expires_at": 1794301800000,
"content_type": "application/pdf",
"size_bytes": 48231
}
]
}