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

# Get storefront

> Get canonical availability and your rolled-up connection status

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

Returns a single storefront with canonical transaction readiness and separate rolled-up connection state: `connected`, `requiresCredentials`, and your registered `customerAccounts`. Use `readiness.canTransact` for availability. Use connection fields to diagnose buyer credential setup, for example after registering credentials or completing OAuth. Use the capabilities endpoint when you need source-level diagnostic rows.

## Request

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

## Parameters

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

## Response

```json theme={null}
{
  "id": 42,
  "platformId": "premium-ctv",
  "name": "Premium CTV Storefront",
  "publisherDomain": "premium-ctv.example.com",
  "displayStatus": "neutral",
  "readiness": {
    "canTransact": true,
    "effectiveStatus": "live",
    "blockerIds": []
  },
  "channels": ["CTV", "display"],
  "adapterProviderType": null,
  "supportedRoutingTypes": ["DECISIONED", "ROUTED"],
  "regions": ["US", "EMEA"],
  "connected": false,
  "requiresCredentials": true,
  "customerAccounts": [
    {
      "accountIdentifier": "buyer-seat-123",
      "status": "ACTIVE"
    }
  ],
  "adcpCapabilities": null
}
```

| Field                       | Type           | Notes                                                                                                             |
| --------------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------- |
| `id`                        | integer        | Storefront ID                                                                                                     |
| `platformId`                | string         | Public-facing slug                                                                                                |
| `name`                      | string         | Storefront display name                                                                                           |
| `publisherDomain`           | string \| null | Publisher domain                                                                                                  |
| `displayStatus`             | enum           | Deprecated stored-control compatibility label; not purchasing availability                                        |
| `readiness.canTransact`     | boolean        | Canonical answer to whether ordinary buyer traffic may transact now                                               |
| `readiness.effectiveStatus` | enum           | `archived`, `paused`, `blocked`, or `live`                                                                        |
| `readiness.blockerIds`      | string\[]      | Machine-readable blocker IDs; empty when live                                                                     |
| `channels` / `regions`      | array          | Supported channels and covered regions                                                                            |
| `adapterProviderType`       | string \| null | Adapter platform, `null` for non-adapter                                                                          |
| `supportedRoutingTypes`     | array          | Deprecated v2 compatibility placeholder. Always both legacy values; do not use for storefront type or behavior.   |
| `connected`                 | boolean        | Whether the buyer has the required credentials/account setup. This does not mean the seller is transaction-ready. |
| `requiresCredentials`       | boolean        | Whether any source behind the storefront requires buyer credentials                                               |
| `customerAccounts`          | array          | Registered buyer accounts, deduped across the storefront                                                          |
| `adcpCapabilities`          | object \| null | Rolled-up capability manifest when cached capability data exists                                                  |

`customerAccounts` is scoped to the authenticated buyer. On Storefront MCP
discovery calls, supplying an opaque account ID without that buyer/storefront
grant fails closed with `ACCOUNT_NOT_FOUND` and
`details.reason: "account_not_authorized_for_buyer"`. Use an account returned
for the current buyer; an account visible to another buyer is not reusable.

## 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="Storefront tasks" href="/v2/buyer/storefronts/tasks" icon="list-check">
    All storefront operations
  </Card>

  <Card title="Register source credentials" href="/v2/buyer/storefronts/tasks/register-source-credentials" icon="user-lock">
    Connect a source that requires credentials
  </Card>

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

  <Card title="Get storefront capabilities" href="/v2/buyer/storefronts/tasks/get-storefront-capabilities" icon="signal">
    Source-level capability diagnostics
  </Card>
</CardGroup>
