Download Everything as a ZIP
From an intake's detail page in the dashboard, or GET /v1/intakes/:id/download,
download everything a client submitted as one ZIP file — no need to open each
item individually.
What's in the ZIP
podklady-bella-napoli-website-in_8f3kQmR2.zip
├── podklady.pdf
├── podklady.md
├── Logo/
│ └── bella-napoli-logo.png
└── Food and interior photos/
├── photo-1.jpg
├── photo-2.jpg
└── photo-3.jpgpodklady.pdf is a readable summary of every item — label, type, status, the
submitted value, decisions, and waived items with their reason — for a human
who wants one document instead of opening the dashboard. podklady.md carries
the same content in Markdown, for a script or another agent to parse. Every
uploaded file sits in its own item's subfolder, exactly as the client uploaded
it — no re-encoding, no format conversion.
A file still going through the antivirus scan is left out of the ZIP and
listed as pending in both podklady.pdf and podklady.md — download again
once the scan clears. The dashboard says so before anything downloads: if the
check is still running for any file, it asks whether to come back in a few
minutes for a complete ZIP or download without those files now.
Secrets are opt-in per download
By default, secret items are left out entirely, so they stay available for
a one-time reveal in the dashboard. Choosing to include them — in
podklady.pdf only; podklady.md never carries secret values — reveals
every secret item that hasn't been shown yet, and that reveal is final: it
consumes the same one-time reveal as get_intake_results or the dashboard's
Reveal button, and downloading again without secrets does not give it back. A
secret already revealed earlier is shown as already revealed on <date>
regardless of what you choose this time. See Secrets vault
for the one-time reveal itself. Only the account owner's own session, or an
API key with the secrets:read or admin scope, may choose to include
secrets — anyone else gets 403 forbidden (reason secrets_owner_only) if
they try.
Size limit
An intake above 2 GB is refused for ZIP download (413 download_too_large).
There's no bundled alternative for an intake that large — fetch each item's
signed URL individually with get_intake_results /
GET /v1/intakes/:id/results instead.
API
Check before downloading
curl https://api.briefgate.dev/v1/intakes/in_8f3kQmR2/download/preflight \
-H "Authorization: Bearer bg_live_xxxxx"{
"files": 6,
"bytes": 18420531,
"skipped_files": 1,
"secrets": { "total": 2, "unrevealed": 1, "already_revealed": 1 },
"too_large": false,
"max_bytes": 524288000,
"filename": "podklady-bella-napoli-website-in_8f3kQmR2.zip"
}skipped_files is how many uploads are still pending the antivirus scan and
would be left out. secrets.unrevealed is how many secret items are still
available for a one-time reveal if include_secrets is left off;
secrets.already_revealed show as already-revealed text either way.
too_large mirrors the 413 the download call below would return.
Download the ZIP
curl "https://api.briefgate.dev/v1/intakes/in_8f3kQmR2/download?include_secrets=false" \
-H "Authorization: Bearer bg_live_xxxxx" \
-o podklady.zipReturns application/zip with Content-Disposition: attachment; filename="podklady-bella-napoli-website-in_8f3kQmR2.zip". include_secrets
defaults to false; set it to true to reveal and include secret values in
podklady.pdf — owner session or a secrets:read/admin key only, see
Secrets are opt-in per download above.
Logged as an intake.downloaded audit event either way.
Troubleshooting
- "Download refused, intake too large." ZIP download tops out at 2 GB
(
413 download_too_large). CheckGET /v1/intakes/:id/download/preflightfor the exact size, then fetch large items individually throughget_intake_resultsinstead.