curl --request GET \
--url https://api.interchange.io/api/v2/storefront/readiness/compliance \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.interchange.io/api/v2/storefront/readiness/compliance"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.interchange.io/api/v2/storefront/readiness/compliance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"category": "<string>",
"status": "complete",
"isBlocker": true,
"method": "<string>",
"details": "<string>",
"action": "inline_currency",
"actionLabel": "<string>",
"actionUrl": "<string>",
"actionValue": "<string>",
"compliance": [
{
"agentId": "<string>",
"agentUrl": "<string>",
"passed": true,
"tracks": [
{
"track": "<string>",
"status": "pass",
"label": "<string>",
"durationMs": 123,
"failureReason": "<string>"
}
],
"summary": "<string>",
"observations": [
{
"category": "<string>",
"severity": "info",
"message": "<string>"
}
],
"durationMs": 123,
"error": "<string>"
}
],
"requirement": "hard",
"appliedDefault": "<string>",
"guidance": {
"coverage": "complete",
"stage": "before_source_dispatch",
"why": "<string>",
"effect": "<string>",
"fix": "<string>",
"subjects": [
{
"kind": "inventory_source",
"id": "<string>",
"name": "<string>"
}
],
"evidence": {
"kind": "billing_compatibility",
"requiredSupportedBilling": "agent",
"incompatibleSources": [
{
"sourceId": "<string>",
"sourceName": "<string>",
"advertisedSupportedBillings": [
"<string>"
]
}
]
}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}Get storefront compliance status
Get the most recent compliance readiness check for the storefront. Returns null when no compliance check has run yet.
curl --request GET \
--url https://api.interchange.io/api/v2/storefront/readiness/compliance \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.interchange.io/api/v2/storefront/readiness/compliance"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.interchange.io/api/v2/storefront/readiness/compliance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"name": "<string>",
"description": "<string>",
"category": "<string>",
"status": "complete",
"isBlocker": true,
"method": "<string>",
"details": "<string>",
"action": "inline_currency",
"actionLabel": "<string>",
"actionUrl": "<string>",
"actionValue": "<string>",
"compliance": [
{
"agentId": "<string>",
"agentUrl": "<string>",
"passed": true,
"tracks": [
{
"track": "<string>",
"status": "pass",
"label": "<string>",
"durationMs": 123,
"failureReason": "<string>"
}
],
"summary": "<string>",
"observations": [
{
"category": "<string>",
"severity": "info",
"message": "<string>"
}
],
"durationMs": 123,
"error": "<string>"
}
],
"requirement": "hard",
"appliedDefault": "<string>",
"guidance": {
"coverage": "complete",
"stage": "before_source_dispatch",
"why": "<string>",
"effect": "<string>",
"fix": "<string>",
"subjects": [
{
"kind": "inventory_source",
"id": "<string>",
"name": "<string>"
}
],
"evidence": {
"kind": "billing_compatibility",
"requiredSupportedBilling": "agent",
"incompatibleSources": [
{
"sourceId": "<string>",
"sourceName": "<string>",
"advertisedSupportedBillings": [
"<string>"
]
}
]
}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}Authorizations
API key or access token
Response
Get storefront compliance status
Individual readiness check result
Status of a readiness check. optional is reserved for checks that are explicitly skipped (e.g. billing in non-production environments) — they are not required before the storefront can start transacting.
complete, partial, missing, optional Where this step resolves. Absent → the widget falls back to its own routing for the check id.
inline_currency, inline_operator_domain, link, policy, open, chat, recheck Outcome-named action label for this step (e.g. "Connect ad server", "Set currency") — names the task, not the tool. Absent → the widget derives a label from the check name.
Absolute application destination for a link action. Server-owned so every MCP Apps host executes the same destination without a model prompt.
Current value used to seed an inline action control, when applicable.
Per-agent compliance results (present on agent_connectivity checks)
Show child attributes
Show child attributes
Requirement classification for this storefront's current selling path. 'hard': must be resolved before the storefront can go live. 'soft': advisory — improves outcomes but never blocks. 'platform_default': the platform applied a sensible default (named in appliedDefault) that the seller can change later. The server always sets this; optional only for payload compatibility.
hard, soft, platform_default For 'platform_default' checks: the default the platform applied, stated in seller terms, and how to change it.
Present on every incomplete hard requirement. Omitted for complete or non-blocking checks.
Show child attributes
Show child attributes