curl --request POST \
--url https://api.interchange.io/api/v2/storefront/inventory-sources \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Retail Network Agent"
}
'import requests
url = "https://api.interchange.io/api/v2/storefront/inventory-sources"
payload = { "name": "Retail Network Agent" }
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({name: 'Retail Network Agent'})
};
fetch('https://api.interchange.io/api/v2/storefront/inventory-sources', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"sourceId": "<string>",
"name": "<string>",
"executionType": "AGENT",
"status": "PENDING",
"agentId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"connectionType": "AD_SERVER",
"adServerProvider": "citrusad",
"type": "SALES",
"endpointUrl": "<string>",
"protocol": "MCP",
"description": "<string>",
"authenticationType": "API_KEY",
"authConfigured": true,
"oauth": {
"authorizationUrl": "<string>",
"agentId": "<string>",
"agentName": "<string>"
},
"managedSa": {
"connectionId": "<string>",
"tenantId": "<string>",
"adServer": {
"type": "google_ad_manager",
"networkCode": "12345678"
},
"lastError": "<string>",
"lastErrorCode": "<string>",
"lastTestedAt": "2023-11-07T05:31:56Z",
"provisionedAt": "2023-11-07T05:31:56Z",
"deactivatedAt": "2023-11-07T05:31:56Z"
},
"linkedStorefront": {
"status": "PENDING",
"buyer": {
"storefrontId": "1234",
"platformId": "acme-media",
"name": "Acme Media",
"publisherDomain": "acme.com",
"operatorDomain": "scope3.com",
"brandName": "Scope3",
"logoUrl": "<string>",
"membershipStatus": "AAO_FOUNDING_MEMBER",
"regions": [
"<string>"
],
"acceptedCountries": [
"<string>"
],
"acceptsAllCountries": true,
"advertisingPolicyDisclosure": [
"brief_acceptance"
],
"advertisedCountries": [
"<string>"
],
"advertisedChannels": [
"<string>"
],
"description": "<string>",
"channels": [
"<string>"
],
"website": "<string>",
"subtitle": "<string>",
"supportUrl": "<string>",
"privacyUrl": "<string>",
"termsUrl": "<string>",
"discoveryCard": {
"storefrontId": "<string>",
"platformId": "<string>",
"storefrontKind": "managed",
"displayName": "<string>",
"logoUrl": "<string>",
"logoBackground": "dark-bg",
"description": "<string>",
"website": "<string>",
"brandColors": {},
"channels": [
"<string>"
],
"countries": [
"<string>"
],
"acceptsAllCountries": true,
"coverageDeclarations": [
{
"channels": [
"<string>"
],
"countries": [
"<string>"
],
"acceptsAllCountries": true
}
],
"advertisingPolicies": "<string>",
"coverage": {
"channels": "declared",
"countries": "declared"
},
"provenance": {
"identity": {
"displayName": "operator",
"logoUrl": "operator",
"description": "operator",
"website": "operator",
"brandColors": "operator"
},
"coverage": {
"channels": "operator",
"countries": "operator"
},
"advertisingPolicies": "operator"
}
},
"demandContactName": "<string>",
"demandContactEmail": "<string>",
"operatorDomainVerified": true,
"routingMode": "CHEF",
"adapterProviderType": "amazon",
"adapterSourceKind": "sales",
"adapterCredentialMode": "BYOK",
"plan": "basic",
"transacting": true,
"isPaused": true,
"archivedAt": "2023-11-07T05:31:56Z",
"displayStatus": "configuring",
"capabilities": {
"offersCreativeReview": false,
"offersCampaignApproval": false,
"offersProductComposition": false
},
"merchandisingEntitled": true,
"listingDistributionEntitled": true,
"configuredCapabilities": {
"offersCreativeReview": false,
"offersCampaignApproval": false,
"offersProductComposition": false
},
"compositionPricing": {
"targetPercentile": "p75",
"rateCard": {
"facts": []
}
},
"creativeApproval": "auto",
"mediaBuyApproval": "auto",
"capabilitiesLocked": true,
"advertiseAsAgent": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"businessProfile": {
"summary": "<string>",
"agentName": "<string>",
"agentPersonality": "<string>",
"propertyCount": 5000,
"channels": [
"display"
],
"regions": [
"UK",
"EMEA"
],
"verticals": [
"sports",
"entertainment"
],
"publisherDomains": [
"pitchside.co.uk",
"football.pitchside.co.uk"
],
"evidenceUrls": [
"<string>"
],
"notes": "<string>",
"updatedBy": "<string>"
},
"logoBackground": "dark-bg",
"setupIntent": "third_party_connect",
"operatingMode": "LISTING_ONLY",
"operatingCapabilities": {
"listingSelected": true,
"scope3MerchandisingSelected": true
},
"sellsThirdPartyInventory": true,
"defaultCurrency": "<string>",
"paymentCurrencies": [
"<string>"
]
},
"seller": {
"storefrontId": "1234",
"platformId": "acme-media",
"name": "Acme Media",
"publisherDomain": "acme.com",
"operatorDomain": "scope3.com",
"brandName": "Scope3",
"logoUrl": "<string>",
"membershipStatus": "AAO_FOUNDING_MEMBER",
"regions": [
"<string>"
],
"acceptedCountries": [
"<string>"
],
"acceptsAllCountries": true,
"advertisingPolicyDisclosure": [
"brief_acceptance"
],
"advertisedCountries": [
"<string>"
],
"advertisedChannels": [
"<string>"
],
"description": "<string>",
"channels": [
"<string>"
],
"website": "<string>",
"subtitle": "<string>",
"supportUrl": "<string>",
"privacyUrl": "<string>",
"termsUrl": "<string>",
"discoveryCard": {
"storefrontId": "<string>",
"platformId": "<string>",
"storefrontKind": "managed",
"displayName": "<string>",
"logoUrl": "<string>",
"logoBackground": "dark-bg",
"description": "<string>",
"website": "<string>",
"brandColors": {},
"channels": [
"<string>"
],
"countries": [
"<string>"
],
"acceptsAllCountries": true,
"coverageDeclarations": [
{
"channels": [
"<string>"
],
"countries": [
"<string>"
],
"acceptsAllCountries": true
}
],
"advertisingPolicies": "<string>",
"coverage": {
"channels": "declared",
"countries": "declared"
},
"provenance": {
"identity": {
"displayName": "operator",
"logoUrl": "operator",
"description": "operator",
"website": "operator",
"brandColors": "operator"
},
"coverage": {
"channels": "operator",
"countries": "operator"
},
"advertisingPolicies": "operator"
}
},
"demandContactName": "<string>",
"demandContactEmail": "<string>",
"operatorDomainVerified": true,
"routingMode": "CHEF",
"adapterProviderType": "amazon",
"adapterSourceKind": "sales",
"adapterCredentialMode": "BYOK",
"plan": "basic",
"transacting": true,
"isPaused": true,
"archivedAt": "2023-11-07T05:31:56Z",
"displayStatus": "configuring",
"capabilities": {
"offersCreativeReview": false,
"offersCampaignApproval": false,
"offersProductComposition": false
},
"merchandisingEntitled": true,
"listingDistributionEntitled": true,
"configuredCapabilities": {
"offersCreativeReview": false,
"offersCampaignApproval": false,
"offersProductComposition": false
},
"compositionPricing": {
"targetPercentile": "p75",
"rateCard": {
"facts": []
}
},
"creativeApproval": "auto",
"mediaBuyApproval": "auto",
"capabilitiesLocked": true,
"advertiseAsAgent": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"businessProfile": {
"summary": "<string>",
"agentName": "<string>",
"agentPersonality": "<string>",
"propertyCount": 5000,
"channels": [
"display"
],
"regions": [
"UK",
"EMEA"
],
"verticals": [
"sports",
"entertainment"
],
"publisherDomains": [
"pitchside.co.uk",
"football.pitchside.co.uk"
],
"evidenceUrls": [
"<string>"
],
"notes": "<string>",
"updatedBy": "<string>"
},
"logoBackground": "dark-bg",
"setupIntent": "third_party_connect",
"operatingMode": "LISTING_ONLY",
"operatingCapabilities": {
"listingSelected": true,
"scope3MerchandisingSelected": true
},
"sellsThirdPartyInventory": true,
"defaultCurrency": "<string>",
"paymentCurrencies": [
"<string>"
]
},
"requestMessage": "<string>",
"responseMessage": "<string>",
"requestedAt": "2023-11-07T05:31:56Z",
"respondedAt": "2023-11-07T05:31:56Z",
"cancelledAt": "2023-11-07T05:31:56Z",
"cancelledBy": "BUYER"
},
"reportingType": "WEBHOOK",
"reportingPollingCadence": "DAILY",
"isAdapterSource": true,
"agentCapabilityUid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"declaredAgentProductMode": "WHOLESALE",
"bindingProductMode": "WHOLESALE",
"effectiveProductMode": "WHOLESALE",
"productModeReasons": [
"SOURCE_NOT_ACTIVE"
],
"productPaths": [
{
"path": "WHOLESALE",
"ready": true,
"reasons": [
"SOURCE_NOT_ACTIVE"
]
}
]
}{
"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": {}
}
}Create inventory source
Create an inventory source and optionally register an agent for it.
curl --request POST \
--url https://api.interchange.io/api/v2/storefront/inventory-sources \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Retail Network Agent"
}
'import requests
url = "https://api.interchange.io/api/v2/storefront/inventory-sources"
payload = { "name": "Retail Network Agent" }
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({name: 'Retail Network Agent'})
};
fetch('https://api.interchange.io/api/v2/storefront/inventory-sources', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"sourceId": "<string>",
"name": "<string>",
"executionType": "AGENT",
"status": "PENDING",
"agentId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"connectionType": "AD_SERVER",
"adServerProvider": "citrusad",
"type": "SALES",
"endpointUrl": "<string>",
"protocol": "MCP",
"description": "<string>",
"authenticationType": "API_KEY",
"authConfigured": true,
"oauth": {
"authorizationUrl": "<string>",
"agentId": "<string>",
"agentName": "<string>"
},
"managedSa": {
"connectionId": "<string>",
"tenantId": "<string>",
"adServer": {
"type": "google_ad_manager",
"networkCode": "12345678"
},
"lastError": "<string>",
"lastErrorCode": "<string>",
"lastTestedAt": "2023-11-07T05:31:56Z",
"provisionedAt": "2023-11-07T05:31:56Z",
"deactivatedAt": "2023-11-07T05:31:56Z"
},
"linkedStorefront": {
"status": "PENDING",
"buyer": {
"storefrontId": "1234",
"platformId": "acme-media",
"name": "Acme Media",
"publisherDomain": "acme.com",
"operatorDomain": "scope3.com",
"brandName": "Scope3",
"logoUrl": "<string>",
"membershipStatus": "AAO_FOUNDING_MEMBER",
"regions": [
"<string>"
],
"acceptedCountries": [
"<string>"
],
"acceptsAllCountries": true,
"advertisingPolicyDisclosure": [
"brief_acceptance"
],
"advertisedCountries": [
"<string>"
],
"advertisedChannels": [
"<string>"
],
"description": "<string>",
"channels": [
"<string>"
],
"website": "<string>",
"subtitle": "<string>",
"supportUrl": "<string>",
"privacyUrl": "<string>",
"termsUrl": "<string>",
"discoveryCard": {
"storefrontId": "<string>",
"platformId": "<string>",
"storefrontKind": "managed",
"displayName": "<string>",
"logoUrl": "<string>",
"logoBackground": "dark-bg",
"description": "<string>",
"website": "<string>",
"brandColors": {},
"channels": [
"<string>"
],
"countries": [
"<string>"
],
"acceptsAllCountries": true,
"coverageDeclarations": [
{
"channels": [
"<string>"
],
"countries": [
"<string>"
],
"acceptsAllCountries": true
}
],
"advertisingPolicies": "<string>",
"coverage": {
"channels": "declared",
"countries": "declared"
},
"provenance": {
"identity": {
"displayName": "operator",
"logoUrl": "operator",
"description": "operator",
"website": "operator",
"brandColors": "operator"
},
"coverage": {
"channels": "operator",
"countries": "operator"
},
"advertisingPolicies": "operator"
}
},
"demandContactName": "<string>",
"demandContactEmail": "<string>",
"operatorDomainVerified": true,
"routingMode": "CHEF",
"adapterProviderType": "amazon",
"adapterSourceKind": "sales",
"adapterCredentialMode": "BYOK",
"plan": "basic",
"transacting": true,
"isPaused": true,
"archivedAt": "2023-11-07T05:31:56Z",
"displayStatus": "configuring",
"capabilities": {
"offersCreativeReview": false,
"offersCampaignApproval": false,
"offersProductComposition": false
},
"merchandisingEntitled": true,
"listingDistributionEntitled": true,
"configuredCapabilities": {
"offersCreativeReview": false,
"offersCampaignApproval": false,
"offersProductComposition": false
},
"compositionPricing": {
"targetPercentile": "p75",
"rateCard": {
"facts": []
}
},
"creativeApproval": "auto",
"mediaBuyApproval": "auto",
"capabilitiesLocked": true,
"advertiseAsAgent": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"businessProfile": {
"summary": "<string>",
"agentName": "<string>",
"agentPersonality": "<string>",
"propertyCount": 5000,
"channels": [
"display"
],
"regions": [
"UK",
"EMEA"
],
"verticals": [
"sports",
"entertainment"
],
"publisherDomains": [
"pitchside.co.uk",
"football.pitchside.co.uk"
],
"evidenceUrls": [
"<string>"
],
"notes": "<string>",
"updatedBy": "<string>"
},
"logoBackground": "dark-bg",
"setupIntent": "third_party_connect",
"operatingMode": "LISTING_ONLY",
"operatingCapabilities": {
"listingSelected": true,
"scope3MerchandisingSelected": true
},
"sellsThirdPartyInventory": true,
"defaultCurrency": "<string>",
"paymentCurrencies": [
"<string>"
]
},
"seller": {
"storefrontId": "1234",
"platformId": "acme-media",
"name": "Acme Media",
"publisherDomain": "acme.com",
"operatorDomain": "scope3.com",
"brandName": "Scope3",
"logoUrl": "<string>",
"membershipStatus": "AAO_FOUNDING_MEMBER",
"regions": [
"<string>"
],
"acceptedCountries": [
"<string>"
],
"acceptsAllCountries": true,
"advertisingPolicyDisclosure": [
"brief_acceptance"
],
"advertisedCountries": [
"<string>"
],
"advertisedChannels": [
"<string>"
],
"description": "<string>",
"channels": [
"<string>"
],
"website": "<string>",
"subtitle": "<string>",
"supportUrl": "<string>",
"privacyUrl": "<string>",
"termsUrl": "<string>",
"discoveryCard": {
"storefrontId": "<string>",
"platformId": "<string>",
"storefrontKind": "managed",
"displayName": "<string>",
"logoUrl": "<string>",
"logoBackground": "dark-bg",
"description": "<string>",
"website": "<string>",
"brandColors": {},
"channels": [
"<string>"
],
"countries": [
"<string>"
],
"acceptsAllCountries": true,
"coverageDeclarations": [
{
"channels": [
"<string>"
],
"countries": [
"<string>"
],
"acceptsAllCountries": true
}
],
"advertisingPolicies": "<string>",
"coverage": {
"channels": "declared",
"countries": "declared"
},
"provenance": {
"identity": {
"displayName": "operator",
"logoUrl": "operator",
"description": "operator",
"website": "operator",
"brandColors": "operator"
},
"coverage": {
"channels": "operator",
"countries": "operator"
},
"advertisingPolicies": "operator"
}
},
"demandContactName": "<string>",
"demandContactEmail": "<string>",
"operatorDomainVerified": true,
"routingMode": "CHEF",
"adapterProviderType": "amazon",
"adapterSourceKind": "sales",
"adapterCredentialMode": "BYOK",
"plan": "basic",
"transacting": true,
"isPaused": true,
"archivedAt": "2023-11-07T05:31:56Z",
"displayStatus": "configuring",
"capabilities": {
"offersCreativeReview": false,
"offersCampaignApproval": false,
"offersProductComposition": false
},
"merchandisingEntitled": true,
"listingDistributionEntitled": true,
"configuredCapabilities": {
"offersCreativeReview": false,
"offersCampaignApproval": false,
"offersProductComposition": false
},
"compositionPricing": {
"targetPercentile": "p75",
"rateCard": {
"facts": []
}
},
"creativeApproval": "auto",
"mediaBuyApproval": "auto",
"capabilitiesLocked": true,
"advertiseAsAgent": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"businessProfile": {
"summary": "<string>",
"agentName": "<string>",
"agentPersonality": "<string>",
"propertyCount": 5000,
"channels": [
"display"
],
"regions": [
"UK",
"EMEA"
],
"verticals": [
"sports",
"entertainment"
],
"publisherDomains": [
"pitchside.co.uk",
"football.pitchside.co.uk"
],
"evidenceUrls": [
"<string>"
],
"notes": "<string>",
"updatedBy": "<string>"
},
"logoBackground": "dark-bg",
"setupIntent": "third_party_connect",
"operatingMode": "LISTING_ONLY",
"operatingCapabilities": {
"listingSelected": true,
"scope3MerchandisingSelected": true
},
"sellsThirdPartyInventory": true,
"defaultCurrency": "<string>",
"paymentCurrencies": [
"<string>"
]
},
"requestMessage": "<string>",
"responseMessage": "<string>",
"requestedAt": "2023-11-07T05:31:56Z",
"respondedAt": "2023-11-07T05:31:56Z",
"cancelledAt": "2023-11-07T05:31:56Z",
"cancelledBy": "BUYER"
},
"reportingType": "WEBHOOK",
"reportingPollingCadence": "DAILY",
"isAdapterSource": true,
"agentCapabilityUid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"declaredAgentProductMode": "WHOLESALE",
"bindingProductMode": "WHOLESALE",
"effectiveProductMode": "WHOLESALE",
"productModeReasons": [
"SOURCE_NOT_ACTIVE"
],
"productPaths": [
{
"path": "WHOLESALE",
"ready": true,
"reasons": [
"SOURCE_NOT_ACTIVE"
]
}
]
}{
"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 creating an inventory source
Display name for the inventory source
1 - 255"Retail Network Agent"
Pinned connection contract used to validate this setup. Omit only for integrations that have not migrated to connection contracts yet.
Show child attributes
Show child attributes
Unique identifier for this source within the storefront. Defaults to a slugified version of the name if not provided.
1 - 255"retail-network-agent"
Optional organization-owned Sales Agent to attach in the same server-authoritative operation. The request fails before Source creation when the Agent is not an eligible first-party binding target.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Required with attachToAgentId only when the selected Sales Agent declares both product paths. Choose WHOLESALE for a Storefront-built catalog, COMPOSING for Agent-supplied products, or BOTH to enable both paths for this Source.
WHOLESALE, COMPOSING, BOTH Only external AGENT inventory sources can be created through this endpoint. MANAGED_SALES_AGENT and MODULAR_SOURCE rows are created by their dedicated provisioning flows; LINKED_STOREFRONT sources cannot be created and are not admitted until linked sellers have canonical Source representation. Storefront-level ADAPTER dispatch is configured on the storefront, not as an inventory source.
AGENT Agent type — required when executionType is "AGENT"
SALES, SIGNAL, CREATIVE, OUTCOME Executable agent endpoint URL from authorized_agents[].url — required when executionType is "AGENT". Do not use an adagents.json authoritative_location.
2048Agent protocol — required when executionType is "AGENT"
MCP, A2A Auth method for the agent — required when executionType is "AGENT"
API_KEY, NO_AUTH, JWT, OAUTH, BASIC_AUTH Optional for most schemes. NO_AUTH sources need no credentials at all, and OAUTH sources are authorized through their own flow — neither carries an auth payload. BASIC_AUTH and API_KEY sources may include credentials here, or be created without them and start PENDING, with the secret collected later through the secure credential form rather than at create time (for BASIC_AUTH use { type: "basic", username, password }). JWT is the exception: its secret must be supplied here at create time, because the secure credential form cannot collect JWT yet.
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
- Option 11
- Option 12
- Option 13
- Option 14
- Option 15
- Option 16
Show child attributes
Show child attributes
OAuth audience / resource indicator for a newly registered OAUTH agent identity (the protected-resource URI the agent gateway validates, e.g. "https://platform.example.com"). When set, the OAuth flow requests a token whose aud claim targets this resource (sent as both Auth0 audience and RFC 8707 resource). Leave unset to auto-discover it from the agent's RFC 9728 protected-resource metadata. If the endpoint reuses an existing identity, that identity's OAuth configuration is reused; update the existing source first to change its audience.
2048"https://platform.example.com"
Agent description
2000Response
Create inventory source
Inventory source response
Globally unique surrogate id (BIGINT serialized as string). Use this when acting on rows the caller does not own (e.g. a seller approving an inbound link).
Storefront-scoped identifier — unique within the row owner's storefront. Use this for actions on the caller's own rows; use id for cross-customer actions.
Display name
Execution type
AGENT, MANAGED_SALES_AGENT, LINKED_STOREFRONT, MODULAR_SOURCE Source lifecycle status
PENDING, ACTIVE, DISABLED Linked agent ID (when executionType is agent)
Creation timestamp (ISO 8601)
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Last update timestamp (ISO 8601)
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Public connection family for a preconfigured ad-server source. Omitted for other inventory-source families.
AD_SERVER Ad-server provider for a preconfigured ad-server source. Omitted for other inventory-source families.
citrusad Agent type
SALES, SIGNAL, CREATIVE, OUTCOME Agent endpoint URL
Agent protocol
MCP, A2A Agent description
Agent authentication type
API_KEY, NO_AUTH, JWT, OAUTH, BASIC_AUTH Whether the agent has authentication configured
OAuth authorization info (for OAUTH agents)
Show child attributes
Show child attributes
Embedded-sales-agent state when executionType is MANAGED_SALES_AGENT. Null/absent for external AGENT-type sources. The current REST surface (/api/v2/storefront/esa/...) remains the way to mutate this state today; subsequent PRs will move those actions under /api/v2/storefront/inventory-sources/:sourceId/....
Show child attributes
Show child attributes
Always null. The version-1 ambient storefront-interchange pool has no canonical Source identity and therefore cannot populate this per-Source projection. Retained for response-shape stability.
Show child attributes
Show child attributes
How the underlying agent reports delivery (WEBHOOK, BUCKET, POLLING). Mirrors the AdCP-spec values used when connecting the source. Projected from storefront_agent_source; null for non-AGENT sources.
WEBHOOK, BUCKET, POLLING Polling cadence (DAILY, MONTHLY) — only meaningful when reportingType is POLLING. Projected from storefront_agent_source; null for non-AGENT sources or non-polling reporting.
DAILY, MONTHLY True when this source is routed through an official Scope3-hosted adapter (storefront routing_mode is ADAPTER and the source_id matches the configured adapter). When true, the UI labels this as an official adapter rather than a generic external sales agent.
Explicit reusable SALES Agent capability connected to this Source. Null means the Source requires governed connection reconciliation; endpoint similarity is never used.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$The backing Agent completeness contract. Managed ESA and initial modular Sources project their fixed WHOLESALE contract.
WHOLESALE, COMPOSING, BOTH Source product-path selection only when the Agent declares BOTH; null for single-mode Agents.
WHOLESALE, COMPOSING, BOTH Effective mode for new discovery. Null when the explicit Agent connection or declaration is unresolved.
WHOLESALE, COMPOSING, BOTH Bounded reconciliation reasons when effective mode cannot be resolved.
SOURCE_NOT_ACTIVE, AGENT_BINDING_MISSING, AGENT_MODE_UNDECLARED, BOTH_SELECTION_REQUIRED, MERCHANDISING_ACCESS_INACTIVE, WHOLESALE_CATALOG_NOT_READY Readiness for the Agent-supplied and Storefront-built product paths. BOTH exposes both entries; neither path silently replaces the other.
Show child attributes
Show child attributes