curl --request POST \
--url https://api.interchange.io/api/v2/storefront/inventory-sources/{sourceId}/feeds \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"profileId": "<string>",
"profileVersion": "<string>"
}
'import requests
url = "https://api.interchange.io/api/v2/storefront/inventory-sources/{sourceId}/feeds"
payload = {
"profileId": "<string>",
"profileVersion": "<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({profileId: '<string>', profileVersion: '<string>'})
};
fetch('https://api.interchange.io/api/v2/storefront/inventory-sources/{sourceId}/feeds', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"feedId": "<string>",
"feedKey": "<string>",
"inventorySourceId": "<string>",
"inventorySourceModuleId": "<string>",
"canonicalProfile": {
"profileId": "<string>",
"profileVersion": "<string>",
"transport": "HITL"
},
"requestedCapability": {
"profileId": "<string>",
"profileVersion": "<string>",
"transport": "HITL"
},
"registrationTransport": "HITL",
"deliverySemantics": "FULL_REPLACEMENT",
"moduleAssignment": {
"assignmentId": "<string>",
"contractId": "static-avails-feed:v1",
"contractVersion": "<string>",
"provider": "<string>"
},
"dataPlane": {
"authentication": {
"scheme": "BEARER",
"scope": "TENANT_STOREFRONT"
},
"paths": {
"preview": "<string>",
"upload": "<string>",
"commit": "<string>",
"push": "<string>"
}
},
"unsupportedOperations": [
{
"operation": "PULL",
"code": "UNSUPPORTED_OPERATION",
"reason": "<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": {}
}
}Register an Inventory Feed capability
Idempotently register an exact ratified HITL or API-push capability. The server derives the canonical v1 feed key, proves the module assignment, and returns authenticated REST data-plane paths without issuing credentials or returning feed bytes.
curl --request POST \
--url https://api.interchange.io/api/v2/storefront/inventory-sources/{sourceId}/feeds \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"profileId": "<string>",
"profileVersion": "<string>"
}
'import requests
url = "https://api.interchange.io/api/v2/storefront/inventory-sources/{sourceId}/feeds"
payload = {
"profileId": "<string>",
"profileVersion": "<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({profileId: '<string>', profileVersion: '<string>'})
};
fetch('https://api.interchange.io/api/v2/storefront/inventory-sources/{sourceId}/feeds', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"feedId": "<string>",
"feedKey": "<string>",
"inventorySourceId": "<string>",
"inventorySourceModuleId": "<string>",
"canonicalProfile": {
"profileId": "<string>",
"profileVersion": "<string>",
"transport": "HITL"
},
"requestedCapability": {
"profileId": "<string>",
"profileVersion": "<string>",
"transport": "HITL"
},
"registrationTransport": "HITL",
"deliverySemantics": "FULL_REPLACEMENT",
"moduleAssignment": {
"assignmentId": "<string>",
"contractId": "static-avails-feed:v1",
"contractVersion": "<string>",
"provider": "<string>"
},
"dataPlane": {
"authentication": {
"scheme": "BEARER",
"scope": "TENANT_STOREFRONT"
},
"paths": {
"preview": "<string>",
"upload": "<string>",
"commit": "<string>",
"push": "<string>"
}
},
"unsupportedOperations": [
{
"operation": "PULL",
"code": "UNSUPPORTED_OPERATION",
"reason": "<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": {}
}
}Authorizations
API key or access token
Path Parameters
Inventory source ID
1Body
Registers (or idempotently retrieves) an Inventory Feed record. The server resolves the exact ratified profile capability and eligible INVENTORY_FEED module. The canonical key is always canonicalProfile.profileId:canonicalProfile.profileVersion.
Response
Register an Inventory Feed capability
Canonical feed identity, exact capability evidence, module assignment, and authenticated REST data-plane paths.
1111Show child attributes
Show child attributes
Show child attributes
Show child attributes
HITL, API_PUSH, BESPOKE_PULL FULL_REPLACEMENT, PATCH_UPSERT Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes