---
title: "Get Strategy Health"
method: GET
path: "/strategies/{strategy_id}/healthcheck"
tags: ["Strategies"]
---

# Get Strategy Health

`GET /strategies/{strategy_id}/healthcheck`

## Request

- Base URL: `https://api.mediamath.com/api/v3.0`
- URL: `https://api.mediamath.com/api/v3.0/strategies/{strategy_id}/healthcheck`
- Auth: OAuth 2
  - Authorization code: `https://auth.mediamath.com/authorize`
  - Token URL: `https://auth.mediamath.com/oauth/token` scopes: `offline_access`, `manage:services`
- TypeScript: <https://skmtc.dev/mediamath/apis/campaigns-api/docs/strategies/:strategy_id/healthcheck/get.ts> (a function with typed inputs; its response is checked against the schema)

Get strategy health

## Path parameters

- `strategy_id` integer, required

## Response `200`

Strategy healthcheck response

- object
  - `data` StrategyHealthcheck
    - `result` 'pass' | 'warning' | 'fail'
    - `organization` object
      - `id` integer
      - `status` boolean
      - `activity_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
    - `contract` object
      - `id` integer, nullable: Null when the organization has no contract on file.
      - `expiration_date` string, date-time, nullable: effective_end_date of the contract surfaced by the check; null when no contract was found.
      - `activity_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
    - `agency` object
      - `id` integer
      - `status` boolean
      - `activity_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
    - `advertiser` object
      - `id` integer
      - `status` boolean
      - `activity_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
    - `campaign` object
      - `id` integer
      - `status` boolean
      - `activity_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
      - `start_date` string, date-time
      - `end_date` string, date-time
      - `start_end_date_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
      - `budget_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
      - `remaining_budget` number, nullable: Remaining budget (total_budget − spend_to_date) on the campaign's relevant budget flight; null when no active flight exists.
      - `currency_code` string, nullable: Currency of `remaining_budget`, inherited from the relevant budget flight; null when no active flight exists.
    - `strategy` object
      - `id` integer
      - `status` boolean
      - `activity_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
      - `start_date` string, date-time
      - `use_campaign_start` boolean
      - `use_campaign_end` boolean
      - `end_date` string, date-time
      - `start_end_date_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
      - `budget_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
      - `remaining_budget` number, nullable: Strategy budget minus spend-to-date; null when no strategy-level budget cap is set.
      - `currency_code` string, nullable: Currency of `remaining_budget`, inherited from the parent campaign; null when no strategy-level cap is set.
      - `inventory_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
      - `day_parts_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
      - `next_active_window_start` string, date-time, nullable: UTC time the next active daypart window will open. Populated only when day_parts_check is `warning` (currently outside every active window); null otherwise (including when no dayparting is configured).
      - `deals` object: Per-deal configuration consistency checks for the PMP deals the strategy targets (resolved from both direct deals and deal groups). Individual deal results are informational; `summary` carries the strategy-level rollup, which is driven by the supply-path logic: when open auction is enabled, deal issues are downgraded to warnings because an alternative supply path exists; for a deal-only strategy the summary fails when no deal is fully healthy.
        - `summary` HealthcheckResult
          - `result` 'pass' | 'warning' | 'fail'
          - `message` string: Will be returned for all statuses.
        - `items` object[]: One entry per targeted deal. Empty when no deals are targeted or deal data is unavailable.
          - `deal_id` integer
          - `deal_name` string: The deal's name as returned by the deals service.
          - `deal_identifier` string: The deal's external deal identifier; empty string when not configured.
          - `supply_source_id` integer
          - `active_check` HealthcheckResult
            - `result` 'pass' | 'warning' | 'fail'
            - `message` string: Will be returned for all statuses.
          - `date_check` HealthcheckResult
            - `result` 'pass' | 'warning' | 'fail'
            - `message` string: Will be returned for all statuses.
          - `identifier_check` HealthcheckResult
            - `result` 'pass' | 'warning' | 'fail'
            - `message` string: Will be returned for all statuses.
          - `floor_vs_bid_check` HealthcheckResult
            - `result` 'pass' | 'warning' | 'fail'
            - `message` string: Will be returned for all statuses.
          - `creative_format_check` HealthcheckResult
            - `result` 'pass' | 'warning' | 'fail'
            - `message` string: Will be returned for all statuses.
          - `creative_approval_check` HealthcheckResult
            - `result` 'pass' | 'warning' | 'fail'
            - `message` string: Will be returned for all statuses.
      - `creative_approval_readiness` object: Strategy-context creative approval readiness. Cross-references each assigned non-native creative's latest per-exchange approval status against the approval-gated exchanges the strategy targets (Google AdX, Xandr). Native creatives are excluded from the cross-reference and all counts — they are never submitted for approval on these exchanges (ES-9095). Individual exchange results are informational; `summary` carries the rollup. A creative can still serve on an exchange unless it is rejected there — pending, pending > 48h and not-submitted are non-blocking. A would-be blocker is downgraded to a warning when any alternative serving path remains (another approval-gated exchange that can still serve, a targeted RTB-enabled non-approval exchange that can accept open-auction bids, or run_on_all_exchanges).
        - `summary` HealthcheckResult
          - `result` 'pass' | 'warning' | 'fail'
          - `message` string: Will be returned for all statuses.
        - `items` object[]: One entry per targeted approval-gated exchange. Empty when none are targeted or no creatives are assigned.
          - `supply_source_id` integer
          - `exchange_name` string
          - `approved_count` integer
          - `rejected_count` integer
          - `pending_count` integer: Creatives PENDING or PENDING > 48 Hours on this exchange, combined.
          - `not_submitted_count` integer: Creatives with no approval record for this exchange (treated as N/A).
          - `total_creatives` integer: Assigned non-native creatives. 0 when every assigned creative is native (the item passes with an informational message and all counts at zero).
          - `result` HealthcheckResult
            - `result` 'pass' | 'warning' | 'fail'
            - `message` string: Will be returned for all statuses.
    - `creative` object: Collective creative diagnostics. A strategy has many creatives via the strategy_concepts → concepts → atomic_creatives path, so there is no single creative to point at — only the collective check outcomes. Per-exchange creative approval is reported under strategy.creative_approval_readiness.
      - `activity_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
      - `media_type_check` HealthcheckResult
        - `result` 'pass' | 'warning' | 'fail'
        - `message` string: Will be returned for all statuses.
  - `meta` SingleMetadata
    - `status` string, required

## Other responses

- `400`: Error response
- `401`: Error response
- `403`: Error response
- `404`: Error response

---

[API](https://skmtc.dev/mediamath/apis/campaigns-api.md) - [All operations](https://skmtc.dev/mediamath/apis/campaigns-api/llms.txt) - [OpenAPI document](https://skmtc.dev/mediamath/apis/campaigns-api/revisions/408743891def?raw)
