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

# Get storefront capabilities

> Inspect source-level capability diagnostics for a storefront

`GET /api/v2/buyer/storefronts/{storefrontId}/capabilities`

Returns source-level diagnostic rows for active sources behind a storefront the buyer can see. External AdCP sales-agent sources are capability-checkable and include cached-or-refreshed capability details. Managed ad-server-backed sources are included with `probeable: false` and `probeStatus: "not_applicable"`; do not treat those rows as unreachable agents.

Capability lookups use the platform's normal cache and refresh policy. A `probeStatus: "reachable"` row means capabilities are currently available for routing and diagnostics — this includes both live HTTP-probed capabilities and in-process synthesized capabilities for official adapter and ESA storefronts. It is not a guarantee that this request opened a fresh network connection to the agent.

## Request

```bash curl theme={null}
curl https://api.interchange.io/api/v2/buyer/storefronts/42/capabilities \
  -H "Authorization: Bearer $SCOPE3_API_KEY"
```

## Parameters

| Field          | In   | Type    | Required | Notes                    |
| -------------- | ---- | ------- | -------- | ------------------------ |
| `storefrontId` | path | integer | Yes      | Storefront ID to inspect |

## Response

```json theme={null}
{
  "storefrontId": 42,
  "agents": [
    {
      "sourceId": "src_main",
      "sourceName": "Premium CTV Direct",
      "executionType": "AGENT",
      "agentName": "Premium CTV Sales Agent",
      "requiresCredentials": true,
      "probeable": true,
      "probeStatus": "reachable",
      "message": null,
      "capabilities": {
        "version": "3.1.0",
        "tools": ["get_products", "create_media_buy"],
        "protocols": ["mcp"],
        "sandboxSupported": true,
        "synthetic": false
      }
    },
    {
      "sourceId": "managed-ad-server",
      "sourceName": "Managed ad server",
      "executionType": "MANAGED_SALES_AGENT",
      "agentName": null,
      "requiresCredentials": null,
      "probeable": false,
      "probeStatus": "not_applicable",
      "message": "Managed ad-server-backed source; not probed via AdCP capabilities.",
      "capabilities": null
    }
  ]
}
```

| Field                                       | Type            | Notes                                                                                                                                                                                                  |
| ------------------------------------------- | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `storefrontId`                              | integer         | Storefront ID that was inspected                                                                                                                                                                       |
| `agents`                                    | array           | Active source rows behind the storefront. The field name is retained for compatibility                                                                                                                 |
| `agents[].sourceId`                         | string          | Source identifier within the storefront                                                                                                                                                                |
| `agents[].sourceName`                       | string \| null  | Source display name                                                                                                                                                                                    |
| `agents[].executionType`                    | string          | Source execution type                                                                                                                                                                                  |
| `agents[].agentName`                        | string \| null  | External sales-agent name when one exists                                                                                                                                                              |
| `agents[].requiresCredentials`              | boolean \| null | Whether buyer-provided credentials are required for this external AdCP source. `null` when not applicable or unavailable                                                                               |
| `agents[].probeable`                        | boolean         | Whether this row is an external AdCP sales agent that this capability diagnostic can check                                                                                                             |
| `agents[].probeStatus`                      | string          | `reachable`, `unreachable`, `not_applicable`, or `unavailable`. `reachable` means capabilities are available (including synthesized capabilities for adapter and ESA storefronts), possibly from cache |
| `agents[].message`                          | string \| null  | Explanation when the row is not probeable                                                                                                                                                              |
| `agents[].capabilities`                     | object \| null  | Capability summary for external AdCP sources; `null` for managed sources or failed capability lookups                                                                                                  |
| `agents[].capabilities.requireOperatorAuth` | boolean         | Capability-payload copy of the external source credential requirement when a capability payload is available. Prefer top-level `requiresCredentials` for credential workflow decisions                 |

## Errors

* `401 UNAUTHORIZED` — missing or invalid bearer token.
* `404 NOT_FOUND` — the storefront does not exist or is not visible to the caller.

See [Errors](/v2/reference/errors) for the full error contract.

## Related

<CardGroup cols={2}>
  <Card title="Get storefront" href="/v2/buyer/storefronts/tasks/get-storefront" icon="magnifying-glass">
    Rolled-up connection state
  </Card>

  <Card title="List storefronts" href="/v2/buyer/storefronts/tasks/list-storefronts" icon="list">
    Paginated summaries
  </Card>
</CardGroup>
