curl --request POST \
--url https://api.interchange.io/api/v2/storefront/inventory-sources/modular/feed \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>"
}
'import requests
url = "https://api.interchange.io/api/v2/storefront/inventory-sources/modular/feed"
payload = { "name": "<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({name: '<string>'})
};
fetch('https://api.interchange.io/api/v2/storefront/inventory-sources/modular/feed', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"inventorySourceId": "<string>",
"sourceId": "<string>",
"projection": {
"inventorySource": {
"id": "<string>",
"storefrontId": "<string>",
"sourceId": "<string>",
"name": "<string>",
"executionType": "MODULAR_SOURCE",
"status": "<string>",
"healthStatus": "<string>",
"lastError": "<string>",
"lastCheckedAt": "2023-11-07T05:31:56Z"
},
"modules": [
{
"moduleRowId": "<string>",
"inventorySourceId": "<string>",
"moduleInstanceId": "<string>",
"kind": "INVENTORY_FEED",
"name": "<string>",
"provider": "<string>",
"status": "CONFIGURING",
"contractId": "<string>",
"contractVersion": "<string>",
"contract": {
"contractId": "<string>",
"version": "<string>",
"moduleType": "<string>",
"primaryKind": "INVENTORY_FEED",
"displayName": "<string>",
"description": "<string>",
"constraints": [
"<string>"
],
"provider": "<string>",
"maturity": "sandbox"
},
"configuredFieldKeys": [
"<string>"
],
"missingSetupFieldsBySource": [
{
"source": "MODULE_CONFIG",
"fields": [
{
"key": "<string>",
"label": "<string>",
"description": "<string>",
"source": "MODULE_CONFIG",
"valueType": "STRING",
"required": true,
"requiredFor": [
"LIST_ACCOUNTS"
],
"mapsTo": "<string>",
"enumValues": [
"<string>"
]
}
]
}
],
"lifecycle": [
{
"stage": "LIST_ACCOUNTS",
"mode": "AUTOMATED",
"description": "<string>",
"outputKeys": [
"<string>"
],
"requiredFieldsBySource": [
{
"source": "MODULE_CONFIG",
"fields": [
{
"key": "<string>",
"label": "<string>",
"description": "<string>",
"source": "MODULE_CONFIG",
"valueType": "STRING",
"required": true,
"requiredFor": [
"LIST_ACCOUNTS"
],
"mapsTo": "<string>",
"enumValues": [
"<string>"
]
}
]
}
],
"missingSetupFieldsBySource": [
{
"source": "MODULE_CONFIG",
"fields": [
{
"key": "<string>",
"label": "<string>",
"description": "<string>",
"source": "MODULE_CONFIG",
"valueType": "STRING",
"required": true,
"requiredFor": [
"LIST_ACCOUNTS"
],
"mapsTo": "<string>",
"enumValues": [
"<string>"
]
}
]
}
],
"moduleConfigReady": true,
"workItemKind": "<string>",
"taskContract": {
"taskId": "<string>",
"stage": "LIST_ACCOUNTS",
"automationMode": "AUTOMATED",
"completionPolicy": "NO_TASK",
"defaultActor": "system",
"requiredInputKeys": [
"<string>"
],
"requiredResultKeys": [
"<string>"
],
"outputKeys": [
"<string>"
],
"retryable": true,
"blocksStage": true,
"workItemKind": "<string>",
"fallbackWorkItemKind": "<string>",
"operatorAction": "<string>",
"idempotencyKeyFields": [
"<string>"
]
}
}
],
"openWorkItemCount": 4503599627370495,
"openWorkItemCountsByKind": {},
"lastError": "<string>",
"lastCheckedAt": "2023-11-07T05:31:56Z",
"issues": [
"<string>"
]
}
],
"lifecycleSummary": [
{
"stage": "LIST_ACCOUNTS",
"supported": true,
"status": "UNSUPPORTED",
"modes": [
"AUTOMATED"
],
"moduleInstanceIds": [
"<string>"
],
"moduleNames": [
"<string>"
],
"setupConfigured": true,
"runtimeInputsRequired": true,
"hitlRequired": true,
"openWorkItemCount": 4503599627370495,
"requiredRuntimeFieldSources": [
"MODULE_CONFIG"
],
"missingSetupFieldsBySource": [
{
"source": "MODULE_CONFIG",
"fields": [
{
"key": "<string>",
"label": "<string>",
"description": "<string>",
"source": "MODULE_CONFIG",
"valueType": "STRING",
"required": true,
"requiredFor": [
"LIST_ACCOUNTS"
],
"mapsTo": "<string>",
"enumValues": [
"<string>"
]
}
]
}
],
"issues": [
"<string>"
]
}
],
"openWorkItemCount": 4503599627370495,
"activeAvailCount": 4503599627370495,
"catalogMappingReadiness": {
"sections": [
{
"id": "SET_UP_INVENTORY",
"title": "Set up inventory",
"rows": [
{
"id": "<string>",
"title": "<string>",
"requirement": "REQUIRED",
"status": "NOT_STARTED",
"evidence": [
{
"code": "<string>",
"summary": "<string>",
"observedAt": "2023-11-07T05:31:56Z",
"value": "<string>"
}
],
"freshness": {
"state": "FRESH",
"observedAt": "2023-11-07T05:31:56Z"
},
"sourceOfTruth": "INVENTORY_SOURCE",
"action": {
"operation": "open_modular_avails_commit",
"arguments": {
"sourceId": "<string>"
}
},
"externalOwner": "PUBLISHER",
"diagnostics": [
{
"code": "<string>",
"message": "<string>"
}
]
}
]
}
],
"progress": {
"ready": 4503599627370495,
"applicable": 4503599627370495,
"percent": 50
},
"nextAction": {
"operation": "open_modular_avails_commit",
"arguments": {
"sourceId": "<string>"
}
}
}
},
"warnings": [
{
"code": "NO_EXECUTION_MODULE",
"message": "<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": {}
}
}Create a modular source with an avails-feed module
Create a real seller modular inventory source backed by the uploaded/static avails-feed module, the built-in booking ledger, and, by default, the provider-neutral manual execution workflow. Explicit upstream or no-execution modes return a non-bookable warning until a matching execution module is attached.
curl --request POST \
--url https://api.interchange.io/api/v2/storefront/inventory-sources/modular/feed \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>"
}
'import requests
url = "https://api.interchange.io/api/v2/storefront/inventory-sources/modular/feed"
payload = { "name": "<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({name: '<string>'})
};
fetch('https://api.interchange.io/api/v2/storefront/inventory-sources/modular/feed', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"inventorySourceId": "<string>",
"sourceId": "<string>",
"projection": {
"inventorySource": {
"id": "<string>",
"storefrontId": "<string>",
"sourceId": "<string>",
"name": "<string>",
"executionType": "MODULAR_SOURCE",
"status": "<string>",
"healthStatus": "<string>",
"lastError": "<string>",
"lastCheckedAt": "2023-11-07T05:31:56Z"
},
"modules": [
{
"moduleRowId": "<string>",
"inventorySourceId": "<string>",
"moduleInstanceId": "<string>",
"kind": "INVENTORY_FEED",
"name": "<string>",
"provider": "<string>",
"status": "CONFIGURING",
"contractId": "<string>",
"contractVersion": "<string>",
"contract": {
"contractId": "<string>",
"version": "<string>",
"moduleType": "<string>",
"primaryKind": "INVENTORY_FEED",
"displayName": "<string>",
"description": "<string>",
"constraints": [
"<string>"
],
"provider": "<string>",
"maturity": "sandbox"
},
"configuredFieldKeys": [
"<string>"
],
"missingSetupFieldsBySource": [
{
"source": "MODULE_CONFIG",
"fields": [
{
"key": "<string>",
"label": "<string>",
"description": "<string>",
"source": "MODULE_CONFIG",
"valueType": "STRING",
"required": true,
"requiredFor": [
"LIST_ACCOUNTS"
],
"mapsTo": "<string>",
"enumValues": [
"<string>"
]
}
]
}
],
"lifecycle": [
{
"stage": "LIST_ACCOUNTS",
"mode": "AUTOMATED",
"description": "<string>",
"outputKeys": [
"<string>"
],
"requiredFieldsBySource": [
{
"source": "MODULE_CONFIG",
"fields": [
{
"key": "<string>",
"label": "<string>",
"description": "<string>",
"source": "MODULE_CONFIG",
"valueType": "STRING",
"required": true,
"requiredFor": [
"LIST_ACCOUNTS"
],
"mapsTo": "<string>",
"enumValues": [
"<string>"
]
}
]
}
],
"missingSetupFieldsBySource": [
{
"source": "MODULE_CONFIG",
"fields": [
{
"key": "<string>",
"label": "<string>",
"description": "<string>",
"source": "MODULE_CONFIG",
"valueType": "STRING",
"required": true,
"requiredFor": [
"LIST_ACCOUNTS"
],
"mapsTo": "<string>",
"enumValues": [
"<string>"
]
}
]
}
],
"moduleConfigReady": true,
"workItemKind": "<string>",
"taskContract": {
"taskId": "<string>",
"stage": "LIST_ACCOUNTS",
"automationMode": "AUTOMATED",
"completionPolicy": "NO_TASK",
"defaultActor": "system",
"requiredInputKeys": [
"<string>"
],
"requiredResultKeys": [
"<string>"
],
"outputKeys": [
"<string>"
],
"retryable": true,
"blocksStage": true,
"workItemKind": "<string>",
"fallbackWorkItemKind": "<string>",
"operatorAction": "<string>",
"idempotencyKeyFields": [
"<string>"
]
}
}
],
"openWorkItemCount": 4503599627370495,
"openWorkItemCountsByKind": {},
"lastError": "<string>",
"lastCheckedAt": "2023-11-07T05:31:56Z",
"issues": [
"<string>"
]
}
],
"lifecycleSummary": [
{
"stage": "LIST_ACCOUNTS",
"supported": true,
"status": "UNSUPPORTED",
"modes": [
"AUTOMATED"
],
"moduleInstanceIds": [
"<string>"
],
"moduleNames": [
"<string>"
],
"setupConfigured": true,
"runtimeInputsRequired": true,
"hitlRequired": true,
"openWorkItemCount": 4503599627370495,
"requiredRuntimeFieldSources": [
"MODULE_CONFIG"
],
"missingSetupFieldsBySource": [
{
"source": "MODULE_CONFIG",
"fields": [
{
"key": "<string>",
"label": "<string>",
"description": "<string>",
"source": "MODULE_CONFIG",
"valueType": "STRING",
"required": true,
"requiredFor": [
"LIST_ACCOUNTS"
],
"mapsTo": "<string>",
"enumValues": [
"<string>"
]
}
]
}
],
"issues": [
"<string>"
]
}
],
"openWorkItemCount": 4503599627370495,
"activeAvailCount": 4503599627370495,
"catalogMappingReadiness": {
"sections": [
{
"id": "SET_UP_INVENTORY",
"title": "Set up inventory",
"rows": [
{
"id": "<string>",
"title": "<string>",
"requirement": "REQUIRED",
"status": "NOT_STARTED",
"evidence": [
{
"code": "<string>",
"summary": "<string>",
"observedAt": "2023-11-07T05:31:56Z",
"value": "<string>"
}
],
"freshness": {
"state": "FRESH",
"observedAt": "2023-11-07T05:31:56Z"
},
"sourceOfTruth": "INVENTORY_SOURCE",
"action": {
"operation": "open_modular_avails_commit",
"arguments": {
"sourceId": "<string>"
}
},
"externalOwner": "PUBLISHER",
"diagnostics": [
{
"code": "<string>",
"message": "<string>"
}
]
}
]
}
],
"progress": {
"ready": 4503599627370495,
"applicable": 4503599627370495,
"percent": 50
},
"nextAction": {
"operation": "open_modular_avails_commit",
"arguments": {
"sourceId": "<string>"
}
}
}
},
"warnings": [
{
"code": "NO_EXECUTION_MODULE",
"message": "<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
Body
Creates a real seller modular inventory source backed by an uploaded/static avails feed module, the built-in booking ledger, and, by default, the provider-neutral manual execution workflow. Explicit upstream or no-execution modes remain non-secret setup metadata and return a non-bookable warning until a matching module exists.
Seller-facing inventory source name.
1 - 255Stable source identifier; generated from name when omitted.
1 - 255^[a-z0-9][a-z0-9_-]*$Whether to include the built-in reservation ledger.
Availability-feed setup metadata.
Show child attributes
Show child attributes
Booking and reservation setup metadata.
Show child attributes
Show child attributes
Booking execution setup. Omission defaults to the provider-neutral manual execution workflow.
Show child attributes
Show child attributes
Delivery reporting setup metadata.
Show child attributes
Show child attributes
Creative synchronization setup metadata.
Show child attributes
Show child attributes
Additional modular-source setup notes.
1 - 2000Response
Create a modular source with an avails-feed module