Skip to main content
POST /api/v2/storefront/operating-instructions Authors a new operating-instructions version. The version number is computed atomically as the current maximum plus one for your storefront. This does not auto-activate — the new version sits in history until you activate it. Versions are immutable; to change the rules, create another version.

Request

curl -X POST https://api.interchange.io/api/v2/storefront/operating-instructions \
  -H "Authorization: Bearer $SCOPE3_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "# Merchandising rules\n\nLead with premium CTV inventory. Never surface remnant display to direct-response buyers. Hold rate-card pricing for new operators.",
    "notes": "tighten brand-safety rules"
  }'

Parameters

FieldTypeRequiredNotes
contentstringYesMarkdown body the Interchange Merchandising Engine uses when composing products. Freeform, 1–50000 chars
notesstringNoOperator note describing why this version was created. Not surfaced to buyers; visible in version history. Max 2000 chars

Response

{
  "id": "43",
  "storefrontId": "1234",
  "version": 3,
  "content": "# Merchandising rules\n\nLead with premium CTV inventory. Never surface remnant display to direct-response buyers. Hold rate-card pricing for new operators.",
  "notes": "tighten brand-safety rules",
  "isActive": false,
  "createdAt": "2026-06-01T14:30:00Z",
  "createdBy": "5567"
}
Returns 201 with the new version. version is assigned by the platform — never supplied by the caller. isActive is false until you activate it. createdBy is the authoring operator’s user id, or null when authored by a service token.

Errors

  • 400 VALIDATION_ERROR — missing content, empty body, or content over 50000 chars.
See Errors for the full error contract.

Activate version

Make this version the active one

List versions

See all versions, newest first

Operating instructions tasks

All operating-instructions operations

Operating instructions overview

Concepts and versioning model