curl --request POST \
--url https://api.interchange.io/api/v2/storefront/readiness/compliance/refresh \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agentId": "<string>"
}
'import requests
url = "https://api.interchange.io/api/v2/storefront/readiness/compliance/refresh"
payload = { "agentId": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({agentId: '<string>'})
};
fetch('https://api.interchange.io/api/v2/storefront/readiness/compliance/refresh', 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": {}
}
}Re-run the storefront compliance check
Re-run the live compliance check across the storefront’s testable agents (optionally scoped to a single agent with agentId) and return the refreshed readiness check. This is the endpoint behind the recheck action on source-health diagnoses.
curl --request POST \
--url https://api.interchange.io/api/v2/storefront/readiness/compliance/refresh \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"agentId": "<string>"
}
'import requests
url = "https://api.interchange.io/api/v2/storefront/readiness/compliance/refresh"
payload = { "agentId": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({agentId: '<string>'})
};
fetch('https://api.interchange.io/api/v2/storefront/readiness/compliance/refresh', 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
Body
Request body for re-running the storefront compliance check.
Scope the live re-run to a single agent. When omitted, every testable agent on this storefront is re-checked.
1Response
Re-run the storefront compliance check
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