returns ReportBundleDownload
Presigned download URL for a published Report's serialization bundle.
The only way to download a report's bundle. Every format resolves to a
short-lived presigned S3 URL which the client follows directly — the
field returns the URL, never the bytes. JSON-LD is stamped at publish
time; XBRL is materialized and cached on first request. expiresIn
is the URL's lifetime in seconds, bounded 60-3600.
Returns null when the report doesn't exist; raises
REPORT_BUNDLE_NOT_AVAILABLE when it exists but has no published
bundle yet.
| Name | Type | Description |
|---|---|---|
| reportId | String! | The published report whose bundle to link. |
| format | ReportDownloadFormat | Serialization flavor. Defaults to JSON-LD. |
| expiresIn | Int | URL lifetime in seconds, 60-3600. Out of range raises INVALID_EXPIRES_IN. |
Presigned-URL response for a published Report's serialization bundle.
Every flavor resolves to a short-lived presigned URL pointing at the
bundle in S3 — JSON-LD is stamped at publish time, XBRL is
materialized on first download and cached by generationCount.
The client follows downloadUrl to fetch the artifact directly
from S3 (the API never streams the bytes). Mirrors the
backup-download shape the frontend already consumes.
| Field | Type | Description |
|---|---|---|
| downloadUrl | String! | Presigned URL that streams the bundle directly from S3. |
| expiresAt | DateTime! | UTC timestamp at which the presigned URL stops working. |
| contentType | String! | MIME type of the artifact behind the URL. |
| format | String! | Serialization flavor delivered by this URL — one of the RdfFlavor / XbrlFlavor values (e.g. jsonld, xbrl-2.1). |
| generationCount | Int! | Bundle generation number stamped on the Report. |
| omittedContent | [String!]! | Content the Report carries that this flavor does not. disclosure_notes: the XBRL 2.1 zip ships statements only — tenant-authored disclosure notes render on screen and ride the JSON-LD and holon flavors, but are excluded from this file. The Tavi compiled model carries the statements and notes but has no home for ib_envelopes (the per-Network Information Block payloads), definition_links (equivalence, general-special, essence-alias and mapping arcs), reporting_style, framework_pins, fact_sets (the FactSet partition and each fact's structure pin) or filing_lifecycle (filing status, supersession, share provenance); all of it rides the JSON-LD and holon flavors. |
{ reportDownloadUrl(reportId: "...") { downloadUrl expiresAt contentType format } }curl -X POST "https://api.robosystems.ai/extensions/$GRAPH_ID/graphql" \
-H "X-API-Key: $ROBOSYSTEMS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "{ reportDownloadUrl(reportId: \"...\") { downloadUrl expiresAt contentType format } }"}'