> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Market readiness preview

> Check pilot availability and public-safe supply evidence by country and channel.

Market readiness answers a narrow question before buyer setup: **is this ISO
country × channel cell open for a pilot, and what public-safe supply applies?**

It does not admit an account. Buyer signup and every authenticated buyer API
remain behind the existing `alpha-opt-in` gate. A storefront appearing in the
supply read also never opens a pilot cell; opening and closing are explicit,
audited human decisions.

## Request readiness

Call `POST /api/v2/market-readiness` with one to 50 cells. This endpoint is
public and rate-limited. Country codes use assigned ISO 3166-1 alpha-2 values.
Send country codes in uppercase. Supported canonical channels are `audio`,
`ctv`, `display`, `dooh`, `social`, `meta`, and `google`; channel values are
lowercase. `meta` and `google` are globally governed platform overlays.

```json theme={null}
{
  "cells": [
    { "countryCode": "FR", "channel": "display" },
    { "countryCode": "ID", "channel": "social" }
  ]
}
```

Each result includes:

* `pilotState`: the effective `open` or `closed` decision;
* `pilotScope`: `domestic`, `global_overlay`, or `none`;
* `domesticSupply` and `globalSupply`, kept separate;
* up to 10 public names from human-reviewed listed storefronts (while
  `storefrontCount` remains the full usable count); and
* `sourceHealth`, which is `healthy`, `degraded`, or `unknown`.

Only active sources from human-reviewed `LISTED` storefronts contribute to
public status, counts, names, or health. Hidden storefronts cannot be inferred
from a count, and pending or disabled sources are not treated as available
supply.

Global supply is an overlay, not a made-up country. An open global social path
can therefore apply to Indonesia while Indonesia display remains closed.

```json theme={null}
{
  "data": {
    "cells": [
      {
        "countryCode": "ID",
        "channel": "social",
        "pilotState": "open",
        "pilotScope": "global_overlay",
        "domesticSupply": {
          "scope": "domestic",
          "status": "none",
          "storefrontCount": 0,
          "namedStorefronts": [],
          "sourceHealth": "unknown"
        },
        "globalSupply": {
          "scope": "global",
          "status": "available",
          "storefrontCount": 1,
          "namedStorefronts": [
            {
              "name": "Global Social Platform",
              "domain": "social.example"
            }
          ],
          "sourceHealth": "healthy"
        }
      }
    ]
  },
  "error": null
}
```

## Unknown is not empty

If the supply query or source-health projection fails, the endpoint returns
`status: "unknown"`, `storefrontCount: null`, and
`sourceHealth: "unknown"`. It never turns a failed read into a claim that the
market has no supply.

`status: "none"` is returned only after the supply read succeeds and finds no
usable source for that scope.
