Get a short-lived download URL for a file.
Same flow in MCP: beecargo_get_download_url
No API key needed. If the share is protected, pass unlockCode, unlockToken, or handoffToken. Priced shares need purchaseToken (or owner auth).
Send the file id. You get a signed URL that expires in about 1 hour. For protected or priced shares, add credentials as query params.
# Get download URL (unprotected)
curl https://api.beecargo.net/files/download/550e8400-e29b-41d4-a716-446655440000
# Protected share: unlock first, then download
curl -X POST https://api.beecargo.net/downloads/unlock \
-H "Content-Type: application/json" \
-d '{"shortId":"AbC123","unlockCode":"XyZ789"}'
curl "https://api.beecargo.net/files/download/550e8400-e29b-41d4-a716-446655440000?unlockCode=XyZ789"
# Download file directly
curl -L https://api.beecargo.net/files/download/550e8400-e29b-41d4-a716-446655440000 \
-o downloaded-file.pdfReturns a signed download URL that expires in about 1 hour (3600 seconds).
scanPending: true and retryAfterSeconds (about 15). Wait that long and try again, or wait for the file.ready webhook. Some clients also see errorCode: SCAN_PENDING.scanBlocked). Poll GET /files/share/{shortId} for scanStatus: pending, scanning, clean, or unavailable. Download only when it is clean.scanStatus. Use the share metadata route above for readiness.unlockRequired and paymentRequired / priceCents on GET /files/share/{shortId} or GET /files/info before downloadingpurchaseToken (owners with auth may skip payment). CLI: beecargo download FILE_ID ./out --purchase-token TOKEN.POST /downloads/unlock with { shortId|fileId, unlockCode } or { handoffToken } returns unlockToken for later download calls/h/{token} unlock without typing the code; GET /files/handoff/{token} returns the message and shortId