PricingPromotions

Preview a promotion

POST
/v1/promotions/impact

Takes the offer you are thinking of running and saves nothing. Says how many customers are on its list, how many things they hold, and for a sample of those what one unit costs them now and what it would cost on the offer. belowCost counts the ones that would sell under what you pay: this route reports them rather than refusing the offer, since seeing the margin is the point of it.

Authorization

apiKey
headerAuthorizationBearer <token>

An API key from the Developers page. rhq_test_ keys reach the sandbox, rhq_live_ keys the live side.

Request Body

application/json
  1. body
name*string
Length1 <= length <= 80
priceListId?|

The list the offer belongs to. Null, or left out, covers every list

product*string
Value in"number""domain""domain_privacy""licence""mailbox"
match?|

Narrows the offer within its product. Null, or left out, covers the whole product; send null to take a narrowing off again. For several at once, send matches

matches?array<>|

Narrows the offer to any of these: several domain endings, countries or plans in one promotion. Send this or match, not both; null takes the narrowing off again

term?|

Narrows a number offer to one rental length. Null, or left out, covers every length

kind*string

fixed is the promotional price itself; percent takes a share off the normal price; amount takes a fixed sum off it

Value in"fixed""percent""amount"
value*integer

Minor units of the list's currency for fixed and amount; basis points for percent (2500 is 25% off)

Range0 <= value <= 100000000
startsAt*string

When the offer starts

Formatdate-time
endsAt*string

When it stops. A purchase at or after this moment pays the normal price

Formatdate-time
code?|

The coupon code an order has to send. Null, or left out, and everyone on the list gets the offer without asking. A code is never handed out twice, even after the offer ends

maxUses?|

How many times it may be used in all. Null, or left out, for no limit

maxPerCustomer?|

How many times one customer may use it. Null, or left out, for no limit

applies?string

new is first purchases only, which is what an introductory offer means; renew is renewals only; both is every purchase, a restore included

Default"new"
Value in"new""renew""both"
allowBelowCost?boolean

Lets the promotional price sit under what you pay for the item

Defaultfalse
id?string

The offer being changed, so its own dates and coupon are not counted twice

Response Body

What the offer would do to the prices customers on its list are charged

application/json
  1. response

What the offer would do to the prices customers on its list are charged

customers*integer

How many customers are on the offer's list

items*integer

How many active domains, licences and numbers those customers hold

belowCost*integer

How many of the items in data would sell under what you pay

data*array<>
curl -X POST "https://example.com/v1/promotions/impact" \  -H "Content-Type: application/json" \  -d '{    "name": "Launch offer on .com",    "product": "number",    "kind": "fixed",    "value": 2500,    "startsAt": "2026-10-07T11:04:31.000Z",    "endsAt": "2026-12-01T00:00:00.000Z"  }'
{  "customers": 3,  "items": 12,  "belowCost": 0,  "data": [    {      "type": "number",      "id": "dom_01K6Z3M5T8Q2W4E6R8Y0U2I4O6",      "name": "northwind-telecom.com",      "customerId": "cus_01K6XJ4Q8ZT3M9R5V2B7WDHNCA",      "cost": 1440,      "normal": {        "cost": 1440,        "price": 1440,        "currency": "USD",        "priceUsd": 1440,        "ruleId": "prr_01K6XJ4Q8ZT3M9R5V2B7WDHNCA",        "level": "override",        "floored": true,        "normalPrice": 1440,        "discount": 1440,        "promotion": {          "id": "prm_01K6XJ4Q8ZT3M9R5V2B7WDHNCA",          "code": "LAUNCH25",          "endsAt": "2026-11-01T00:00:00.000Z"        }      },      "promoted": {        "cost": 1440,        "price": 1440,        "currency": "USD",        "priceUsd": 1440,        "ruleId": "prr_01K6XJ4Q8ZT3M9R5V2B7WDHNCA",        "level": "override",        "floored": true,        "normalPrice": 1440,        "discount": 1440,        "promotion": {          "id": "prm_01K6XJ4Q8ZT3M9R5V2B7WDHNCA",          "code": "LAUNCH25",          "endsAt": "2026-11-01T00:00:00.000Z"        }      }    }  ]}