Skip to content
/api/v1/portfolio/exports/{export_id}

Read a portfolio export

Returns the current state and artifact fields for a portfolio export.

Why use this

Poll an export job until its artifact is available, failed, or expired.

Common use case

Render export progress and, after success, offer the returned download URL and artifact reference.

Parameters

NameInRequiredDefaultAllowedDescriptionExample
export_idpathrequiredExport identifier returned by the create operation.00000000-0000-4000-8000-000000000006

Response schema

FieldTypeNullableDescription
statusstringno`success`.
request_idstringnoRequest correlation identifier.
timestampstringnoResponse timestamp.
dataobjectnoExport result with exactly `id`, `portfolio_id`, `state`, `format`, `expires_at`, `download_url`, `artifact_ref`, `reconciled_at`, `authoritative_version`, and `evidence`. Download and reconciliation fields are null until a successful result is reconciled.
data.evidenceobjectyesOn success, reconciliation evidence with `kind`, `reference`, `verified_at`, and `authoritative_version`.
metaobjectnoSource metadata with exactly `source_as_of`, `freshness`, `coverage`, `version`, and `omissions`; `coverage` has `covered_count` and `omitted_count`.

Sample response

·
  • "status": "success"
  • "request_id": "00000000-0000-4000-8000-000000000010"
  • "timestamp": "2026-09-07T12:00:00Z"
  • "data":
    • "id": "00000000-0000-4000-8000-000000000006"
    • "portfolio_id": "00000000-0000-4000-8000-000000000004"
    • "state": "RUNNING"
    • "format": "CSV"
    • "expires_at": "2026-09-07T12:05:00Z"
    • "download_url": null
    • "artifact_ref": null
    • "reconciled_at": null
    • "authoritative_version": null
    • "evidence": null
    }
  • "meta":
    • "source_as_of": "2026-09-07T12:00:00Z"
    • "freshness": "FRESH"
    • "coverage":
    • "version": "source-v1"
    • "omissions": []
    }
}

Errors

StatusLabelDescription
200Success; returns the export data and source metadata.
400`INVALID_REQUEST` — the export identifier is malformed.
401`UNAUTHENTICATED` — authentication is required.
403`FORBIDDEN` — the caller lacks `portfolio:export`.
404`NOT_FOUND` — the export does not exist or is not visible to the caller.
410`EXPORT_EXPIRED` — the export artifact is no longer available.
429`RATE_LIMITED` — retry after the server-provided delay.
503`SERVICE_UNAVAILABLE`, `DEADLINE_EXCEEDED`, `RESULT_GRAPH_INVALID`, or `RESULT_GRAPH_LIMIT_EXCEEDED`.

Code samples

curl "https://api.finradar.ai/api/v1/portfolio/exports/00000000-0000-4000-8000-000000000006" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).