Skip to main content
POST
/
buyer-instructions
Create a buyer-instructions row
curl --request POST \
  --url https://api.interchange.io/api/v2/storefront/buyer-instructions \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "operatorDomain": "nike.com",
  "brandDomain": "nike.com",
  "discountPercent": 15,
  "notes": "<string>",
  "countries": [
    "US",
    "CA"
  ]
}
'
{
  "id": "17",
  "storefrontId": "1234",
  "operatorDomain": "<string>",
  "brandDomain": "<string>",
  "discountPercent": 123,
  "notes": "<string>",
  "countries": [
    "<string>"
  ],
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "createdBy": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.interchange.io/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key or access token

Body

application/json

Request body for creating a buyer-instructions row. (operatorDomain, brandDomain) is unique per storefront — duplicate scopes fail with a validation error; use PATCH instead.

operatorDomain
string | null
required

Operator (e.g. agency/DSP) the row applies to, or null to match any operator. (operatorDomain, brandDomain) form the scope — one of the four shapes: house (both null), house+brand (brand only), operator (operator only), operator+brand (both).

Required string length: 1 - 253
Example:

"nike.com"

brandDomain
string | null
required

Advertiser brand the row applies to, or null to match any brand. See operatorDomain for the four scope shapes.

Required string length: 1 - 253
Example:

"nike.com"

discountPercent
number | null
required

Discount percent off the storefront base price for buys that match this scope. Null = no discount contribution.

Required range: 0 <= x <= 100
Example:

15

notes
string | null
required

Freeform notes Chef weaves into compositions for matching buyers (e.g. "Brand requires GroupM viewability ≥ 70%"). Null = no notes contribution.

Maximum string length: 2000
countries
string[] | null
required

Optional country filter. Null = row applies regardless of country.

Minimum array length: 1
Pattern: ^[A-Z]{2}$
Example:
["US", "CA"]

Response

Create a buyer-instructions row

A single buyer-instructions row.

id
string
required

Surrogate id (BIGINT serialized as string).

Example:

"17"

storefrontId
string
required

Storefront the row belongs to (BIGINT serialized as string).

Example:

"1234"

operatorDomain
string | null
required
brandDomain
string | null
required
discountPercent
number | null
required
notes
string | null
required
countries
string[] | null
required
createdAt
string<date-time>
required
Pattern: ^(?:(?:\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))$
updatedAt
string<date-time>
required
Pattern: ^(?:(?:\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))$
createdBy
string | null
required