Skip to main content
PATCH /api/v2/storefront/inventory-sources/{sourceId}/modular/modules/{moduleInstanceId}/config Updates the non-secret configuration for one module on a modular inventory source. Nested config objects are deep-merged by default; pass merge: false to replace the module config wholesale.

Request

curl -X PATCH \
  https://api.interchange.io/api/v2/storefront/inventory-sources/retail-modular/modular/modules/inventory-feed-1/config \
  -H "Authorization: Bearer $SCOPE3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "config": {
      "feedUrl": "https://feeds.retail-network.example.com/avails.csv",
      "refreshCron": "0 * * * *"
    },
    "merge": true
  }'

Parameters

FieldTypeRequiredNotes
sourceIdstring (path)YesStorefront-scoped inventory source ID
moduleInstanceIdstring (path)YesSeller-local module instance id
configobjectYesNon-secret module configuration values to write
mergebooleanNotrue (default) deep-merges into existing config; false replaces it
statusenumNoManual module status: CONFIGURING, DISABLED, or ERROR. ACTIVE is derived by readiness workflows and cannot be set here. Omit to leave unchanged

Response

200 OK with the refreshed InventorySourceRuntimeProjection (same shape as Get modular readiness). The updated module reflects the new configuredFieldKeys and recomputed missingSetupFieldsBySource:
{
  "inventorySource": {
    "id": "900222",
    "storefrontId": "42",
    "sourceId": "retail-modular",
    "name": "Retail Modular Source",
    "executionType": "MODULAR_SOURCE",
    "status": "ACTIVE",
    "healthStatus": "healthy",
    "lastError": null,
    "lastCheckedAt": "2026-05-02T09:00:00Z"
  },
  "modules": [
    {
      "moduleRowId": "7001",
      "inventorySourceId": "900222",
      "moduleInstanceId": "inventory-feed-1",
      "kind": "INVENTORY_FEED",
      "name": "Inventory Feed",
      "provider": null,
      "status": "CONFIGURING",
      "contractId": null,
      "contractVersion": null,
      "contract": null,
      "configuredFieldKeys": ["feedUrl", "refreshCron"],
      "missingSetupFieldsBySource": [],
      "lifecycle": [],
      "openWorkItemCount": 0,
      "lastError": null,
      "lastCheckedAt": null,
      "issues": []
    }
  ],
  "openWorkItemCount": 0
}

Errors

  • 400 VALIDATION_ERROR — missing config, or status: ACTIVE (not settable here).
  • 401 UNAUTHORIZED — missing or invalid API key.
  • 404 NOT_FOUND — no modular source with this sourceId, or no module with this moduleInstanceId.
See Errors for the full error contract.

Inventory source tasks

All operations

Get modular readiness

See missing fields and lifecycle stages

Get inventory source

Read the source row

Inventory sources overview

Concepts and lifecycle