---
title: "Macro high-signal pack"
method: GET
path: "/v1/macro/high-signal-pack"
---

# Macro high-signal pack

`GET /v1/macro/high-signal-pack`

## Request

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

Returns the high-signal macro pack for a country: official-source macro series with explicit source, fallback, and release-calendar metadata. Defaults to the compact projection; pass response_mode=standard or include=series for the full nested pack.

## Query parameters

- `country` string
- `response_mode` 'compact' | 'standard' | 'verbose' | 'full' | 'agent'
- `include` string

## Response `200`

Successful response. Defaults to compact; pass response_mode=standard or include=series for the full nested pack.

- MacroHighSignalPack
  - `dataAsOf` string
  - `freshnessStatus` 'fresh' | 'stale' | 'degraded' | 'unknown'
  - `methodologyVersion` string
  - `materializationVersion` string
  - `object` 'macro_high_signal_pack', required
  - `id` string, required
  - `asOf` string, required
  - `country` string, required
  - `coverageTier` 'core' | 'extended': Coverage group this country pack belongs to. `core` is the core coverage group; `extended` is the extended coverage group. Both groups return the same pack shape. Always present on responses from this API version; declared optional so older clients and cached payloads still validate.
  - `coverageSourceId` string: Identifier for this pack's coverage group, e.g. `macro_high_signal_pack_core`. Carries the same information as `coverageTier` in the `macro_high_signal_pack_*` identifier FORMAT, so a caller already parsing an identifier of that shape can migrate without changing its parsing; if you are not format-constrained, read `coverageTier` instead. This is NOT the upstream data source: `provenance.source` / `sourceRights.source` carry that (`fred`, `bls`, `oecd`, `world_bank`, …) and remain the fields to use for attribution. `coverageSourceId` is only the coverage-group identifier, and is what those fields fall back to when a pack has no observations at all.
  - `coverageVersion` string: Materialization version for this pack's coverage group, e.g. `macro_high_signal_pack_v1:core`. This is the same value now carried by `materializationVersion` on this resource. It keeps the `<parserVersion>:<variant>` FORMAT, so a caller parsing `materializationVersion` as a version string can migrate without changing its parsing — which a bare `coverageTier` enum would require. Note it is coarser than the value it replaces: `core` and `extended` only, so packs that `materializationVersion` distinguished may share a `coverageVersion`.
  - `responseMode` 'compact' | 'standard' | 'verbose': Projection used for this resource. compact is token-efficient for agents; standard and verbose retain fuller operational context.
  - `seriesCount` integer
  - `series` union[], required
    - union
      - object
        - `indicatorKey` string, nullable, required
        - `label` string, nullable, required
        - `frequency` 'daily' | 'weekly' | 'monthly' | 'quarterly' | 'annual', nullable, required
        - `sourceKey` string, nullable, required
        - `sourceLabel` string, nullable, required
        - `dataset` string, nullable, required
        - `seriesCode` string, nullable, required
        - `coverageState` 'live' | 'materialized_bootstrap' | 'planned', nullable, required
        - `canonicality` 'official' | 'official_via_dbnomics' | 'fallback_harmonized', nullable, required
        - `fallbackPolicy` 'none' | 'dbnomics' | 'imf_ifs' | 'world_bank', nullable, required
        - `latest` object, nullable, required
          - `period` string, nullable, required
          - `value` number, nullable, required
          - `unit` string, nullable, required
          - `asOf` string, nullable, required
          - `freshnessStatus` string, nullable, required
        - `upcomingRelease` object, nullable, required
          - `scheduledAt` string, nullable, required
          - `status` string, nullable, required
          - `actual` number, nullable, required
          - `prior` number, nullable, required
          - `consensus` number, nullable, required
          - `surprise` number, nullable, required
        - `forecast` object, nullable, required
          - `horizon` string, nullable, required
          - `value` number, nullable, required
          - `intervalLow` number, nullable, required
          - `intervalHigh` number, nullable, required
          - `scenario` string, nullable, required
      - object
        - `indicatorKey` string, required
        - `label` string, required
        - `sourcePlan` object, required
        - `latestObservation` object, nullable
        - `upcomingRelease` object, nullable
        - `forecast` object, nullable
  - `regime` object, nullable
  - `summaryMd` string, required
  - `materializationPending` object: Indicator keys in this pack whose observations or forecasts are not yet available, omitted entirely when nothing is pending. `backdrop` is the subset of those pending keys that feeds the `regime` block, so a non-empty `backdrop` means the regime was inferred from partial inputs. An empty `backdrop` is not a completeness guarantee — a backdrop input can also be absent because it is quarantined or simply returned no rows. Both lists are sorted and deduplicated.
    - `series` string[], required
    - `backdrop` string[], required
  - `expansionHints` string[]
  - `requestId` string
  - `traceparent` string
  - `provenance` object
  - `freshness` object
  - `materialization` object
  - `sourceRights` object
  - `methodology` object
  - `revision` object
  - `degradedState` object, nullable

## 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)
