---
title: "Portfolio macro exposure"
method: POST
path: "/v1/intelligence/macro-exposure"
---

# Portfolio macro exposure

`POST /v1/intelligence/macro-exposure`

## Request

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

Return revenue-weighted macro sensitivities for a portfolio: geographic revenue segments crossed with country macro indicators, with per-holding contributions and a coverage percentage.

## Request body

- PortfolioMacroExposureRequest
  - `holdings` object[], required
    - `symbol` string, required
    - `weight` number, required
    - `shares` number, nullable
    - `costBasis` number, nullable
  - `country` string
  - `lookback` string

## Response `200`

Successful response

- PortfolioMacroExposure
  - `object` 'portfolio_macro_exposure', required
  - `country` string, required
  - `asOf` string, required
  - `lookback` string, nullable, required
  - `exposures` object[], required
    - `indicatorKey` string, required
    - `label` string, required
    - `indicatorType` 'growth' | 'inflation' | 'labor' | 'rates' | 'trade' | 'fiscal' | 'housing' | 'sentiment' | 'money' | 'other', required
    - `beta` number, nullable, required
    - `rSquared` number, nullable, required
    - `sensitivityRank` integer, nullable, required
    - `direction` 'positive' | 'negative' | 'neutral', nullable, required
    - `confidence` 'high' | 'medium' | 'low', nullable, required
  - `holdings` object[], required
    - `symbol` string, required
    - `weight` number, required
    - `exposures` object[], required
      - `indicatorKey` string, required
      - `label` string, required
      - `indicatorType` 'growth' | 'inflation' | 'labor' | 'rates' | 'trade' | 'fiscal' | 'housing' | 'sentiment' | 'money' | 'other', required
      - `beta` number, nullable, required
      - `rSquared` number, nullable, required
      - `sensitivityRank` integer, nullable, required
      - `direction` 'positive' | 'negative' | 'neutral', nullable, required
      - `confidence` 'high' | 'medium' | 'low', nullable, required
  - `summaryMd` string, nullable, required
  - `provenance` object, required
    - `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, required
    - `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

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