Skip to main content
POST
Create a rate-card discount row

Authorizations

Authorization
string
header
required

API key or access token

Body

application/json

Request body for creating a rate-card discount on the brand or operator axis. (house_domain, scope) is unique per storefront — a duplicate fails with a conflict; use PATCH to update it.

houseDomain
string
required

Lowercase buyer-entity domain the discount is keyed to (e.g. "nike.com" for a brand, "wpp.com" for an operator). A buy matches this row when its brand (scope=brand) or operator (scope=operator) resolves up its hierarchy to this domain — so a brand discount on "nike.com" applies to a converse.com buy.

Required string length: 1 - 253
Example:

"nike.com"

scope
enum<string>
required

Which buyer axis this discount applies to: brand matches the buy's advertiser brand (and its corporate parents/house), operator matches the buying operator (agency/DSP, and its parents/house). When both a brand and an operator discount match a buy, the larger applies (a tie resolves to the brand axis).

Available options:
brand,
operator
Example:

"brand"

discountPercent
number
required

Discount percent off the storefront quote for buys whose brand or operator resolves to this domain. 0–100. The larger of this and any buyer-specific instruction wins; the quote is floored at the wholesale cost.

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

20

notes
string | null
required

Freeform operator notes for this discount (e.g. "Negotiated 2026 Nike-house rate"). Null = no notes.

Maximum string length: 2000

Response

Create a rate-card discount row

A single house-scoped buyer-discount 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"

houseDomain
string
required
scope
enum<string>
required

Which buyer axis this discount applies to: brand matches the buy's advertiser brand (and its corporate parents/house), operator matches the buying operator (agency/DSP, and its parents/house). When both a brand and an operator discount match a buy, the larger applies (a tie resolves to the brand axis).

Available options:
brand,
operator
Example:

"brand"

discountPercent
number
required
notes
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