---
title: "Bulk macro observations"
method: GET
path: "/v1/macro/all"
---

# Bulk macro observations

`GET /v1/macro/all`

## Request

- Base URL: `https://api.turos.app`
- URL: `https://api.turos.app/v1/macro/all`
- Auth: one of:
  - API key in header `x-api-key`
  - HTTP bearer

Return a bulk, filterable export of macro observations across countries and indicators, with cursor pagination and CSV or async export.

## Query parameters

- `country` string
- `indicator_type` 'growth' | 'inflation' | 'labor' | 'rates' | 'trade' | 'fiscal' | 'housing' | 'sentiment' | 'money' | 'other'
- `indicator` string
- `frequency` 'daily' | 'weekly' | 'monthly' | 'quarterly' | 'annual'
- `date_from` string
- `date_to` string
- `cursor` string
- `limit` integer
- `format` 'json' | 'csv'

## Response `200`

A page of macro observations, or — when the filtered result set is too large to inline — an async export job whose signed download URL is delivered via the export.completed webhook event.

- union
  - MacroObservationList
    - `object` 'list', required
    - `data` object[], required
      - `object` 'macro_observation', required
      - `id` string, required
      - `indicatorKey` string, required
      - `country` string, required
      - `frequency` 'daily' | 'weekly' | 'monthly' | 'quarterly' | 'annual', required
      - `period` string, required
      - `unit` string, nullable
      - `value` number, nullable, required
      - `previousValue` number, nullable
      - `changePercent` number, nullable
      - `regimeTag` string, nullable
      - `comparabilityNote` string, nullable, required
      - `requestId` string
      - `traceparent` string
      - `responseMode` 'compact' | 'standard' | 'verbose'
      - `dataAsOf` string
      - `freshnessStatus` string
      - `methodologyVersion` string
      - `materializationVersion` string
      - `provenance` object
        - `source` string, required
        - `sourceLabel` string
        - `sourceAgency` string
        - `canonicality` string
        - `fallbackPolicy` string
        - `accessionNumber` string, nullable, required
        - `filingUrl` string, uri, nullable, required
        - `acceptedAt` string, nullable
        - `retrievedAt` string, required
        - `parserVersion` string, required
      - `freshness` object
        - `status` 'fresh' | 'current' | 'archival' | 'stale' | 'degraded' | 'unknown', required
        - `asOf` string, required
        - `sourcePublishedAt` string, nullable
        - `lagMs` integer, nullable
        - `synthetic` boolean
      - `materialization` object
        - `parserVersion` string, required
        - `materializationVersion` string, required
      - `sourceRights` object
        - `source` string, required
        - `sourceLabel` string
        - `sourceAgency` string
        - `canonicality` string
        - `fallbackPolicy` string
        - `posture` 'public_safe' | 'contract_gated' | 'internal_only' | 'inventory_only' | 'review_required', required
        - `publicAvailability` 'public' | 'contract_gated' | 'internal_only' | 'inventory_only', required
        - `contractStatus` 'approved' | 'review_required' | 'restricted' | 'prohibited' | 'expired', required
        - `reviewOwner` string, nullable
        - `reviewedAt` string, nullable
        - `restrictions` string[], required
        - `notes` string, nullable
      - `methodology` object
        - `id` string, required
        - `version` string, required
        - `summary` string, required
        - `confidence` 'high' | 'medium' | 'low', required
        - `launchState` 'experimental' | 'beta' | 'ga', required
        - `inputs` string[], required
        - `validation` object
      - `revision` object
        - `sourcePublishedAt` string, nullable
        - `retrievedAt` string, required
        - `vintageId` string, nullable
        - `revisedFrom` string, nullable
      - `degradedState` object, nullable
        - `code` string, required
        - `message` string, required
        - `retryable` boolean, required
        - `missingCapabilities` string[], required
        - `fallbackUsed` string[], required
    - `hasMore` boolean, required
    - `nextCursor` string, nullable, required
    - `responseMode` 'compact' | 'standard' | 'verbose', nullable
    - `include` string[], nullable
    - `requestId` string, required
  - MacroExportJob
    - `object` 'export_job', required
    - `jobId` string, required
    - `status` 'completed' | 'failed', required
    - `dataset` 'macro_observations', required
    - `format` 'json' | 'csv', required
    - `rowCount` integer, required
    - `byteSize` integer, required
    - `downloadUrl` string, nullable, required
    - `expiresAt` string, nullable, required
    - `replayed` boolean
    - `errorText` string

## Other responses

- `default`: Contract-aware error response

---

[API](https://skmtc.dev/turos/apis/turos-api.md) · [All operations](https://skmtc.dev/turos/apis/turos-api/llms.txt) · [OpenAPI document](https://skmtc.dev/turos/apis/turos-api/revisions/a68d3ec80a56?raw)
