Mint an attachment download URL
GET
/v1/attachments/{attachment_id}/download-urlAnswers a short-lived presigned GET URL for the attachment's bytes (the SAME signer the in-app proxy and the MCP `get_task_details` tool use). An attachment from another organization (or an unknown id) answers 404 `resource_not_found`.
Required scopes
tasks:read
Availability
All plans
Quota cost
1 API call
Idempotency
Not applicable
Request
Path parameters
| Field | Type | Description |
|---|---|---|
attachment_idrequired | string |
Response 200
The presigned download URL.
Fields
| Field | Type | Description |
|---|---|---|
urlrequired | string | Presigned GET URL. |
expires_atrequired | string (date-time) | When the URL stops working, ISO-8601 UTC. |
▸ ▾ Raw response schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Presigned GET URL."
},
"expires_at": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"description": "When the URL stops working, ISO-8601 UTC."
}
},
"required": [
"url",
"expires_at"
],
"additionalProperties": false,
"description": "A short-lived presigned download URL."
}Example request
curl
curl -X GET https://app.nowgetitdone.com/v1/attachments/att_a1b2c3/download-url \
-H "Authorization: Bearer gid_YOUR_API_KEY"Possible errors
- 401
missing_credentialsMissing credentials - 401
invalid_api_keyInvalid API key - 401
invalid_tokenInvalid access token - 403
insufficient_scopeInsufficient scope - 403
feature_not_enabledFeature not enabled on this plan - 404
resource_not_foundResource not found - 429
rate_limitedRate limit exceeded - 429
quota_exhaustedPlan quota exhausted - 500
internal_errorInternal server error