Get an object download URL
Returns a time-limited downloadUrl for the object, valid for 3600 seconds (expiresInSeconds).
Returns a time-limited downloadUrl for the object, valid for 3600 seconds (expiresInSeconds). Once the object's malware scan has passed (scanStatus of clean or skipped), the response also includes a shareable shareUrl viewer page. As the owner you can still download an object whose scan is pending, but an object that scanned infected or failed is quarantined and returns 403. Requires buckets:read.
Scope: buckets:read. Send the API key as a bearer token; Scopes lists what each one reaches.
Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
bucketId | string | yes | Bucket identifier (buk_*). |
objectId | string (uuid) | yes | Storage object identifier. |
Response
200 Success. Body: application/json, PresignedDownload.
| Field | Type | Required | Description |
|---|---|---|---|
downloadUrl | string (uri) | yes | Presigned S3 GET URL. |
expiresInSeconds | integer | yes | (minimum 1, maximum 604800) |
Errors
Every error has the same body, {"error": {"type", "code", "message", "param"}}; branch on code. Errors lists every code.
| Status | Meaning |
|---|---|
400 | The request is malformed or a value is invalid (invalid_request, invalid_domain, idempotency_key_mismatch). |
401 | The API key is missing or invalid. |
403 | The key lacks the scope this endpoint needs (scope_missing) or may not do this (not_permitted). |
404 | No such resource in this account (resource_not_found). |
409 | The resource already exists or its state does not allow this (duplicate_resource or a condition-specific code). |
422 | The request is well-formed but a field failed validation (validation_failed). |
429 | Rate limit, plan limit, budget or spend cap reached (rate_limited, plan_limit_reached, budget_exceeded, spend_cap_reached). |
500 | An unexpected error; retry with backoff, then contact support (internal_error). |