---
title: "Catalogue coverage and freshness"
method: GET
path: "/v1/health"
tags: ["Meta"]
---

# Catalogue coverage and freshness

`GET /v1/health`

## Request

- Base URL: `https://api.placementapi.com`
- URL: `https://api.placementapi.com/v1/health`
- Auth: HTTP bearer

Check this before trusting prices. Customers see coverage counts and how many integrated suppliers' latest snapshot is stale, with the supplier roster itself withheld. `stale_after_hours` is the snapshot-recency threshold behind `suppliers_stale` and `all_fresh` — scrape recency for coverage, not the price judgement. Whether a specific price is current is measured per supplier: each catalogue price is labelled fresh, aged or stale against that supplier's own derived drift window, and an aged price is still quoted and orderable at its observed date (see /v1/offers and quote lines), so price freshness is a measured, per-supplier judgement rather than one fixed cutoff.

## Response `200`

OK

- object
  - `configured` boolean
  - `stale_after_hours` integer: Snapshot age at which a supplier counts stale for `suppliers_stale` / `all_fresh`. Coverage recency only; each price's own fresh/aged/stale label is decided per supplier, not by this value.
  - `all_fresh` boolean: True when at least one supplier is integrated and none counts stale.
  - `coverage` object
    - `suppliers_integrated` integer
    - `suppliers_stale` integer
    - `total_offers` integer

## Other responses

- `401`: Missing, malformed or revoked Bearer credential: `{ error: "unauthorized" }`.

---

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