Marketing and Promotion (promotion)
Promo calendar, campaign management, bid settings, financial data accounting, and settings for with standard and custom bid.
Data synchronization from the database occurs every 3 minutes. Status changes occur every 1 minute. The bid change occurs every 30 seconds. The latest changes are saved within the intervals.
You can test the Promotion methods in the sandbox. Also you can use special methods in the sandbox for managing test balance
Promo calendar, campaign management, bid settings, financial data accounting, and settings for with standard and custom bid.
Data synchronization from the database occurs every 3 minutes. Status changes occur every 1 minute. The bid change occurs every 30 seconds. The latest changes are saved within the intervals.
You can test the Promotion methods in the sandbox. Also you can use special methods in the sandbox for managing test balance
Campaigns Lists{{ /adv/v1/promotion/count }}
Method allows to get campaigns lists grouped by type and status with information about last campaign change date.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 5 requests |
| Service | 1 s | 5 requests | 200 ms | 5 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 5 requests |
| Base | 1 h | 4 requests | 15 min | 1 request |
Authorizations:
Responses
Response samples
- 200
- 401
- 403
- 429
{- "adverts": [
- {
- "type": 9,
- "status": 8,
- "count": 3,
- "advert_list": [
- {
- "advertId": 6485174,
- "changeTime": "2023-05-10T12:12:52.676254+03:00"
}, - {
- "advertId": 6500443,
- "changeTime": "2023-05-10T17:08:46.370656+03:00"
}, - {
- "advertId": 7936341,
- "changeTime": "2023-07-12T15:51:08.367478+03:00"
}
]
}
], - "all": 3
}Campaigns Information{{ /api/advert/v2/adverts }}
The method returns information about campaigns with standard or custom bid via statuses, payment types and IDs.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 5 requests |
| Service | 1 s | 5 requests | 200 ms | 5 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 5 requests |
| Base | 1 h | 1 request | 1 h | 1 request |
Authorizations:
query Parameters
| ids | string Example: ids=12345,23456,34567,45678,56789 Campaign IDs, maximum 50 |
| statuses | string Example: statuses=-1,4,8 Campaign statuses:
|
| payment_type | string Enum: "cpm" "cpc" Payment type:
|
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
{- "adverts": [
- {
- "bid_type": "manual",
- "currency": "RUB",
- "id": 567456457,
- "nm_settings": [
- {
- "bids_kopecks": {
- "recommendations": 0,
- "search": 0
}, - "nm_id": 123456789,
- "subject": {
- "id": 52,
- "name": "кошельки"
}
}, - {
- "bids_kopecks": {
- "recommendations": 11200,
- "search": 11200
}, - "nm_id": 987654321,
- "subject": {
- "id": 54,
- "name": "ювелирные кольца"
}
}
], - "restrictions": {
- "can_change_nms": true
}, - "settings": {
- "name": "Кампания от 01.02.2024",
- "payment_type": "cpm",
- "placements": {
- "recommendations": false,
- "search": true
}
}, - "status": 7,
- "timestamps": {
- "created": "2024-02-01T09:57:38.500606+03:00",
- "deleted": "2024-02-05T14:29:32.633968+03:00",
- "started": "2024-02-05T12:38:10.212086+03:00",
- "updated": "2024-02-05T14:29:32.633968+03:00"
}
}, - {
- "bid_type": "manual",
- "currency": "RUB",
- "id": 28150154,
- "nm_settings": [
- {
- "bids_kopecks": {
- "recommendations": 0,
- "search": 1100
}, - "nm_id": 5764746785,
- "subject": {
- "id": 69,
- "name": "платья"
}
}
], - "restrictions": {
- "can_change_nms": false
}, - "settings": {
- "name": "Кампания от 28.08.2025 ",
- "payment_type": "cpc",
- "placements": {
- "recommendations": false,
- "search": true
}
}, - "status": 11,
- "timestamps": {
- "created": "2025-08-28T09:50:57.611559+03:00",
- "deleted": "2100-01-01T00:00:00+03:00",
- "started": null,
- "updated": "2025-09-10T10:14:58.475499+03:00"
}
}
]
}Minimum Bids for Listings{{ /api/advert/v1/bids/min }}
Method allows minimum bids for listings in minor currency units — 0.01 of the base unit of the seller account currency — depending on the payment type and placements.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 min | 20 requests | 3 s | 5 requests |
| Service | 1 min | 20 requests | 3 s | 5 requests |
| Base with secret | 1 min | 20 requests | 3 s | 5 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
| advert_id required | integer <int64> Campaign ID |
| nm_ids required | Array of integers <int64> [ 1 .. 100 ] characters [ items <int64 > ] WB item numbers list |
| payment_type required | string Enum: "cpm" "cpc" Payment type:
|
| placement_types required | Array of strings Items Enum: "combined" "search" "recommendation" Placements:
|
Responses
Request samples
- Payload
{- "advert_id": 98765432,
- "nm_ids": [
- 12345678,
- 87654321
], - "payment_type": "cpm",
- "placement_types": [
- "combined",
- "search",
- "recommendation"
]
}Response samples
- 200
- 400
- 401
- 403
- 429
{- "bids": [
- {
- "bids": [
- {
- "currency": "RUB",
- "type": "combined",
- "value": 155
}, - {
- "currency": "RUB",
- "type": "search",
- "value": 250
}, - {
- "currency": "RUB",
- "type": "recommendation",
- "value": 250
}
], - "nm_id": 12345678
}, - {
- "bids": [
- {
- "currency": "RUB",
- "type": "combined",
- "value": 155
}, - {
- "currency": "RUB",
- "type": "search",
- "value": 250
}, - {
- "currency": "RUB",
- "type": "recommendation",
- "value": 250
}
], - "nm_id": 87654321
}
]
}Create Campaign{{ /adv/v2/seacat/save-ad }}
The method creates campaign:
- with custom bid for promo items in search and/or recommendations
- with standard bid for promo items both in search and recommendations
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 min | 5 requests | 12 s | 5 requests |
| Service | 1 min | 5 requests | 12 s | 5 requests |
| Base with secret | 1 min | 5 requests | 12 s | 5 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
Request Body schema: application/json
| name required | string Campaign name |
| nms | Array of integers Listing for this campaign. You can available listings with listings for campaigns method. Maximum of 50 items ( |
| bid_type | string Default: "manual" Enum: "manual" "unified" Bid type:
|
| payment_type | string Default: "cpm" Enum: "cpm" "cpc" Payment type:
|
| placement_types | Array of strings Default: ["search"] Items Enum: "search" "recommendations" Placements:
Specify for campaign with custom bid only |
Responses
Request samples
- Payload
{- "name": "Телефоны",
- "nms": [
- 146168367,
- 200425104
], - "bid_type": "manual",
- "placement_types": [
- "search",
- "recommendations"
]
}Response samples
- 200
- 400
- 401
- 403
- 429
1234567Subcategories for Campaigns{{ /adv/v1/supplier/subjects }}
Returns subcategories listings from which are available for all campaigns
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 12 s | 1 request | 12 s | 5 requests |
| Service | 12 s | 1 request | 12 s | 5 requests |
| Base with secret | 12 s | 1 request | 12 s | 5 requests |
| Base | 1 h | 2 requests | 30 min | 1 request |
Authorizations:
query Parameters
| payment_type | string Default: "cpm" Payment type:
|
Responses
Response samples
- 200
- 401
- 403
- 429
[- {
- "name": "3D очки",
- "id": 2560,
- "count": 1899
}
]Listings for Campaigns{{ /adv/v2/supplier/nms }}
Returns listings that are available for all campaigns.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 min | 5 requests | 12 s | 5 requests |
| Service | 1 min | 5 requests | 12 s | 5 requests |
| Base with secret | 1 min | 5 requests | 12 s | 5 requests |
| Base | 1 h | 2 requests | 30 min | 1 request |
Authorizations:
Request Body schema: application/json
ID of subcategories to get listings
Responses
Request samples
- Payload
[- 123,
- 456,
- 765,
- 321
]Response samples
- 200
- 400
- 401
- 403
- 429
[- {
- "title": "Плед",
- "nm": 146168367,
- "subjectId": 765
}
]Delete Campaign{{ /adv/v0/delete }}
The method allows to delete campaigns in the status 4 — ready to launch.
After deleting, the campaign will be in -1 status for a while.
It takes between 3 and 10 minutes to completely delete the campaign.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 5 requests |
| Service | 1 s | 5 requests | 200 ms | 5 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 5 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
query Parameters
| id required | integer Campaign ID |
Responses
Response samples
- 400
- 401
- 403
- 429
Invalid campaign identifier
{- "error": "Invalid campaign identifier"
}Rename Campaign{{ /adv/v0/rename }}
The method allows to rename a campaign.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 5 requests |
| Service | 1 s | 5 requests | 200 ms | 5 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 5 requests |
| Base | 1 h | 2 requests | 30 min | 1 request |
Authorizations:
Request Body schema: application/json
| advertId required | integer ID of the campaign where the name is changing |
| name required | string New name (max 100 characters) |
Responses
Request samples
- Payload
{- "advertId": 2233344,
- "name": "newname"
}Response samples
- 400
- 401
- 403
- 422
- 429
Incorrect campaign identifier (RC ID)
Launch Campaign{{ /adv/v0/start }}
The method allows to run campaigns that are in statuses 4 — ready to launch or 11 — paused campaign.
To run a campaign, check its budget. If the budget is insufficient, replenish it.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 5 requests |
| Service | 1 s | 5 requests | 200 ms | 5 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 5 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
query Parameters
| id required | integer Example: id=1234 Campaign ID |
Responses
Response samples
- 400
- 401
- 403
- 422
- 429
Incorrect campaign ID
{- "error": "Invalid Advert: invalid advert"
}Pause Campaign{{ /adv/v0/pause }}
Campaign in status 9 — active — can be paused
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 5 requests |
| Service | 1 s | 5 requests | 200 ms | 5 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 5 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
query Parameters
| id required | integer Example: id=1234 Campaign ID |
Responses
Response samples
- 400
- 401
- 403
- 422
- 429
Incorrect campaign ID
{- "error": "Invalid Advert: invalid advert"
}Stop Campaign{{ /adv/v0/stop }}
The method allows to end campaigns in statuses:
9— active11— paused
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 5 requests |
| Service | 1 s | 5 requests | 200 ms | 5 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 5 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
query Parameters
| id required | integer Example: id=1234 Campaign ID |
Responses
Response samples
- 400
- 401
- 403
- 422
- 429
Incorrect campaign ID
{- "error": "Invalid Advert: invalid advert"
}Changing Placements in Campaigns with Custom Bid{{ /adv/v0/auction/placements }}
The method allows you to change placements in campaigns with custom bid and per mille payment model — cpm.
For campaigns in statuses 4, 9 and 11.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 1 request | 1 s | 1 request |
| Service | 1 s | 1 request | 1 s | 1 request |
| Base with secret | 1 s | 1 request | 1 s | 1 request |
| Base | 1 h | 2 requests | 30 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
required | Array of objects <= 50 items Placements in campaigns |
Responses
Request samples
- Payload
{- "placements": [
- {
- "advert_id": 12345,
- "placements": {
- "search": true,
- "recommendations": true
}
}
]
}Response samples
- 400
- 401
- 403
- 429
{- "detail": "can not deserialize response body",
- "origin": "camp-api-public-cache",
- "request_id": "9a929a81ea9dc1601fcc4be81f32c1cb",
- "status": 400,
- "title": "invalid payload"
}Changing Campaigns Bids{{ /api/advert/v1/bids }}
The method changes the bids of listings by WB item numbers in campaigns:
- with standard bid
- with custom bid
- with a
cpcpayment model — per click
For campaigns in statuses 4, 9 and 11.
Specify the placement in the request parameter placement:
combined— in search and recommendations for campaigns with standard bidsearchorrecommendations— in search or recommendations for campaigns with custom bid
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 5 requests |
| Service | 1 s | 5 requests | 200 ms | 5 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 5 requests |
| Base | 1 h | 2 requests | 30 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
required | Array of objects <= 50 items Bids in campaigns |
Responses
Request samples
- Payload
{- "bids": [
- {
- "advert_id": 12345,
- "nm_bids": [
- {
- "nm_id": 13335157,
- "bid_kopecks": 250,
- "placement": "recommendations"
}
]
}
]
}Response samples
- 200
- 400
- 401
- 403
- 429
{- "bids": [
- {
- "advert_id": 12345,
- "nm_bids": [
- {
- "nm_id": 13335157,
- "bid_kopecks": 250,
- "placement": "recommendations"
}
]
}
], - "currency": "RUB"
}Changing the Listings in Campaigns{{ /adv/v0/auction/nms }}
The method allows you to add and remove listings in campaigns.
For campaigns in statuses 4, 9 and 11.
The current minimum bid is set for the added items.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 1 request | 1 s | 1 request |
| Service | 1 s | 1 request | 1 s | 1 request |
| Base with secret | 1 s | 1 request | 1 s | 1 request |
| Base | 1 h | 2 requests | 30 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
required | Array of objects <= 20 items Listings in campaigns |
Responses
Request samples
- Payload
{- "nms": [
- {
- "advert_id": 12345,
- "nms": {
- "add": [
- 11111111,
- 44444444
], - "delete": [
- 55555555
]
}
}
]
}Response samples
- 200
- 400
- 401
- 403
- 429
{- "nms": [
- {
- "advert_id": 12345,
- "nms": {
- "added": [
- 11111111,
- 44444444
], - "deleted": [
- 55555555
]
}
}
]
}Recommended bids for items and search clusters{{ /api/advert/v0/bids/recommendations }}
The method returns recommended bids for items and search clusters of the campaign.
You can use this method for campaigns with cpm — for impressions, and cpc — for clicks payment models.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 min | 5 requests | 12 s | 5 requests |
| Service | 1 min | 5 requests | 12 s | 5 requests |
| Base with secret | 1 min | 5 requests | 12 s | 5 requests |
| Base | 1 h | 20 requests | 3 min | 1 request |
Authorizations:
query Parameters
| nmId required | integer <int64> Example: nmId=123456789 WB item number |
| advertId required | integer <int64> Example: advertId=987654321 Campaign ID |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
{- "advertId": 987654321,
- "base": {
- "competitiveBid": {
- "bidKopecks": 39500
}, - "leadersBid": {
- "bidKopecks": 66900
}, - "top2": {
- "bidKopecks": 0
}
}, - "nmId": 123456789,
- "normQueries": [
- {
- "normQuery": "футболка",
- "reachMax": {
- "bidKopecks": 50500,
- "bidKopecksMin": 49500
}, - "reachMedium": {
- "bidKopecks": 32000
}, - "reachMin": {
- "bidKopecks": 32000
}
}
], - "paymentType": "cpm"
}Promotion Configuration Values{{ /api/advert/v1/config }}
The method returns the currency, currency codes of the seller account and the allowed bid increments for the method POST /api/advert/v1/normquery/bids.
| Period | Limit | Interval | Burst |
|---|---|---|---|
| 1 min | 1 request | 1 min | 10 requests |
Authorizations:
Responses
Response samples
- 200
- 401
- 403
- 429
{- "cpcStep": 500,
- "cpmStep": 100000,
- "currency": "UZS",
- "currencyCode": 860,
- "minTopUp": 10000
}Search Clusters
Request cluster is a grouped list of requests that buyers use to search for items on WB. The cluster includes:
- synonyms
- requests in different genders
- requests with typos
- different word forms
- phrases with similar meanings
For example, the men t-shirt cluster will also include requests like mren t-shirt, men t-shirts with sleeves, man t-shirts, and other similar phrases.
To get clusters that have already had impressions, use the search clusters statistics method.
You can set or delete bids for campaigns with custom bids. You can specify the seller account currency and bid steps in the response of the GET /api/advert/v1/config method. Bids are individual for each search cluster.
Exclusions
Set minus phrases to exclude request clusters from campaigns. The item will not be promoted for minus phrases.
List of Search Clusters Bids{{ /adv/v0/normquery/get-bids }}
The method returns a list of search clusters with bids by:
- campaign IDs
- WB item numbersRequest limit per one seller account:
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 10 requests |
| Service | 1 s | 5 requests | 200 ms | 10 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 10 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
required | Array of objects <= 100 items |
Responses
Request samples
- Payload
{- "items": [
- {
- "advert_id": 1825035,
- "nm_id": 983512347
}
]
}Response samples
- 200
- 400
- 401
- 403
- 429
{- "bids": [
- {
- "advert_id": 1825035,
- "bid": 700,
- "bid_kopecks": 70000,
- "currency": "RUB",
- "nm_id": 983512347,
- "norm_query": "Фраза 1"
}, - {
- "advert_id": 1825035,
- "bid": 9000,
- "bid_kopecks": 25000,
- "currency": "RUB",
- "nm_id": 983512347,
- "norm_query": "Фраза 2"
}, - {
- "advert_id": 1825035,
- "bid": 9999,
- "bid_kopecks": 25000,
- "currency": "RUB",
- "nm_id": 983512347,
- "norm_query": "Фраза 3"
}
]
}Set Bids for Search Clusters in the Currency of the Seller Account{{ /api/advert/v1/normquery/bids }}
The method sets bids for search clusters in the currency of the seller account.
You can use this method only for campaigns with manual bids and cpm payment model — per impressions.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 2 requests | 500 ms | 4 requests |
| Service | 1 s | 2 requests | 500 ms | 4 requests |
Authorizations:
Request Body schema: application/jsonrequired
required | Array of objects <= 100 items |
Responses
Request samples
- Payload
{- "bids": [
- {
- "advertId": 0,
- "nmId": 0,
- "normQuery": "string",
- "bidMinorUnits": 0
}
]
}Response samples
- 200
- 400
- 401
- 403
- 429
{- "success": [
- {
- "advertId": 0,
- "nmId": 0,
- "normQuery": "string",
- "currency": "string"
}
], - "failed": [
- {
- "advertId": 0,
- "nmId": 0,
- "normQuery": "string",
- "reason": "string"
}
]
}Set Bids for Search Clusters{{ /adv/v0/normquery/bids }}
The method sets the bids for search clusters.
You can use this method only for campaigns with:
- custom bid
- a
cpmpayment model — per impressions
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 2 requests | 500 ms | 4 requests |
| Service | 1 s | 2 requests | 500 ms | 4 requests |
| Base with secret | 1 s | 2 requests | 500 ms | 4 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
required | Array of objects <= 100 items |
Responses
Request samples
- Payload
{- "bids": [
- {
- "advert_id": 1825035,
- "nm_id": 983512347,
- "norm_query": "Фраза 1",
- "bid": 1000
}
]
}Response samples
- 400
- 401
- 403
- 429
{- "detail": "invalid payment_type value",
- "origin": "camp-api-public-cache",
- "request_id": "7e5cb1f106cc6e85b5b29eb2e8815da2",
- "status": 400,
- "title": "invalid payload"
}Delete Bids from Search Clusters{{ /adv/v0/normquery/bids }}
The method deletes the bids from search clusters.
You can use this method only for campaigns with:
- custom bid
- a
cpmpayment model — per impressions
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 10 requests |
| Service | 1 s | 5 requests | 200 ms | 10 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 10 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
required | Array of objects <= 100 items |
Responses
Request samples
- Payload
{- "bids": [
- {
- "advert_id": 1825035,
- "nm_id": 983512347,
- "norm_query": "Фраза 1"
}
]
}Response samples
- 400
- 401
- 403
- 429
{- "detail": "invalid payment_type value",
- "origin": "camp-api-public-cache",
- "request_id": "7e5cb1f106cc6e85b5b29eb2e8815da2",
- "status": 400,
- "title": "invalid payload"
}List of Campaign Minus Phrases{{ /adv/v0/normquery/get-minus }}
The method returns a list of minus phrases by:
- campaign IDs
- WB item numbers
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 10 requests |
| Service | 1 s | 5 requests | 200 ms | 10 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 10 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
required | Array of objects <= 100 items |
Responses
Request samples
- Payload
{- "items": [
- {
- "advert_id": 1825035,
- "nm_id": 983512347
}
]
}Response samples
- 200
- 400
- 401
- 403
- 429
{- "items": [
- {
- "advert_id": 1825035,
- "nm_id": 983512347,
- "norm_queries": [
- "Фраза 1"
]
}
]
}Setting and Deleting Minus Phrases{{ /adv/v0/normquery/set-minus }}
The method sets and deletes the minus phrases in campaigns with standard and custom bid.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 10 requests |
| Service | 1 s | 5 requests | 200 ms | 10 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 10 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
| advert_id required | integer Campaign ID |
| nm_id required | integer WB item number |
| norm_queries required | Array of strings <= 1000 items |
Responses
Request samples
- Payload
{- "advert_id": 1825035,
- "nm_id": 983512347,
- "norm_queries": [
- "Фраза 1"
]
}Response samples
- 400
- 401
- 403
- 429
{- "detail": "invalid payment_type value",
- "origin": "camp-api-public-cache",
- "request_id": "7e5cb1f106cc6e85b5b29eb2e8815da2",
- "status": 400,
- "title": "invalid payload"
}Active and Inactive Search Cluster Lists{{ /adv/v0/normquery/list }}
Returns lists of active and inactive search clusters with at least 100 views.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 5 requests | 200 ms | 10 requests |
| Service | 1 s | 5 requests | 200 ms | 10 requests |
| Base with secret | 1 s | 5 requests | 200 ms | 10 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
required | Array of objects <= 100 items |
Responses
Request samples
- Payload
{- "items": [
- {
- "advertId": 123456789,
- "nmId": 987654321
}
]
}Response samples
- 200
- 400
- 401
- 403
- 429
{- "items": [
- {
- "advertId": 123456789,
- "nmId": 987654321,
- "normQueries": {
- "active": null,
- "excluded": [
- "бест трикотаж",
- "горы футболка для мужчин",
- "одежда для моря",
- "одежда на море",
- "футболка дельфин",
- "футболка мужская с принтом светлая",
- "футболка поло",
- "футболка поло мужская",
- "футболка с воротником мужские"
], - "archived": [
- "поло мужское",
- "поло мужское летнее"
]
}
}
]
}Balance{{ /adv/v1/balance }}
The method allows to get information about the seller net, balance and bonuses
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 1 request | 1 s | 5 requests |
| Service | 1 s | 1 request | 1 s | 5 requests |
| Base with secret | 1 s | 1 request | 1 s | 5 requests |
| Base | 1 h | 2 requests | 30 min | 1 request |
Authorizations:
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
{- "balance": 11083,
- "net": 0,
- "currency": "RUB",
- "bonus": 15187,
- "cashbacks": [
- {
- "sum": 10672,
- "percent": 50,
- "expiration_date": "2026-04-17T10:46:02.176174Z"
}
]
}Campaign Budget{{ /adv/v1/budget }}
The method allows to get information about the budget of a campaign.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 4 requests | 250 ms | 4 requests |
| Service | 1 s | 4 requests | 250 ms | 4 requests |
| Base with secret | 1 s | 4 requests | 250 ms | 4 requests |
| Base | 1 h | 4 requests | 15 min | 1 request |
Authorizations:
query Parameters
| id required | integer Example: id=1 Campaign ID |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
{- "cash": 0,
- "netting": 0,
- "total": 500,
- "currency": "RUB"
}Top-up of the Campaign Budget{{ /adv/v1/budget/deposit }}
The method tops up the campaign budget.
To launch the campaign after topping up the budget, use the Launch campaign method.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 1 request | 1 s | 5 requests |
| Service | 1 s | 1 request | 1 s | 5 requests |
| Base with secret | 1 s | 1 request | 1 s | 5 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
query Parameters
| id required | integer Example: id=1234567 Campaign ID |
Request Body schema: application/jsonrequired
| sum | integer Budget top-up amount in the base units of the seller account currency |
| cashback_sum | integer Top-up budget sum paid with promo bonuses.
|
| cashback_percent | integer The percentage of the top-up amount that can be paid with promo bonuses. You need to specify the value of the |
| type | integer Type of top-up source:
|
| return | boolean Response return flag ( |
Responses
Request samples
- Payload
{- "sum": 5000,
- "cashback_sum": 1000,
- "cashback_percent": 50,
- "type": 1,
- "return": true
}Response samples
- 200
- 400
- 401
- 403
- 429
Response when "return": true
{- "total": 7289,
- "currency": "RUB"
}Receiving Costs History{{ /adv/v1/upd }}
The method allows to get a costs history
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 1 request | 1 s | 5 requests |
| Service | 1 s | 1 request | 1 s | 5 requests |
| Base with secret | 1 s | 1 request | 1 s | 5 requests |
| Base | 1 h | 1 request | 1 h | 1 request |
Authorizations:
query Parameters
| from required | string <date> Example: from=2023-07-31 Beginning of the interval |
| to required | string <date> Example: to=2023-08-02 End of interval. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
[- {
- "updNum": 0,
- "updTime": "2023-07-31T12:12:54.060536+03:00",
- "updSum": 24,
- "advertId": 3355881,
- "campName": "лук лучок",
- "advertType": 6,
- "paymentType": "Баланс",
- "advertStatus": 9
}, - {
- "updNum": 0,
- "updTime": null,
- "updSum": 107,
- "advertId": 3366882,
- "campName": "золотая луковица",
- "advertType": 8,
- "paymentType": "Счет",
- "advertStatus": 11
}
]Receiving the History of Account Top-ups{{ /adv/v1/payments }}
The method allows you to get a history of top-ups.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 s | 1 request | 1 s | 5 requests |
| Service | 1 s | 1 request | 1 s | 5 requests |
| Base with secret | 1 s | 1 request | 1 s | 5 requests |
| Base | 1 h | 1 request | 1 h | 1 request |
Authorizations:
query Parameters
| from | string <date> Example: from=2023-07-31 Beginning of the interval |
| to | string <date> Example: to=2023-08-02 End of interval. |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
[- {
- "id": 1036666,
- "date": "2022-02-04T09:06:47.985843Z",
- "sum": 600,
- "type": 0,
- "statusId": 1,
- "currency": "RUB",
- "cardStatus": ""
}, - {
- "id": 55261296,
- "date": "2023-04-13T10:07:42",
- "sum": 1500,
- "type": 3,
- "statusId": 1,
- "currency": "RUB",
- "cardStatus": "succeeded"
}
]Search Clusters Statistics{{ /adv/v0/normquery/stats }}
The method returns statistics for search clusters over a specified period.
You can use this method only for campaigns with a cpm payment model — for impressions.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 min | 10 requests | 6 s | 20 requests |
| Service | 1 min | 10 requests | 6 s | 20 requests |
| Base with secret | 1 min | 10 requests | 6 s | 20 requests |
| Base | 1 h | 5 requests | 12 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
| from required | string <date> Period start date |
| to required | string <date> Period end date |
required | Array of objects <= 100 items |
Responses
Request samples
- Payload
{- "from": "2025-10-07",
- "to": "2025-10-08",
- "items": [
- {
- "advert_id": 1825035,
- "nm_id": 983512347
}
]
}Response samples
- 200
- 400
- 401
- 403
- 429
{- "stats": [
- {
- "advert_id": 1825035,
- "nm_id": 983512347,
- "stats": [
- {
- "atbs": 68,
- "avg_pos": 3.6,
- "clicks": 2090,
- "cpc": 471,
- "cpm": 813,
- "ctr": 107.23,
- "norm_query": "Фраза 1",
- "orders": 19,
- "views": 1949,
- "currency": "RUB"
}, - {
- "atbs": 68,
- "avg_pos": 3.6,
- "clicks": 2090,
- "cpc": 471,
- "cpm": 813,
- "ctr": 107.23,
- "norm_query": "Фраза 2",
- "orders": 19,
- "views": 1949,
- "currency": "RUB"
}, - {
- "atbs": 68,
- "avg_pos": 3.6,
- "clicks": 2090,
- "cpc": 471,
- "cpm": 813,
- "ctr": 107.23,
- "norm_query": "Фраза 3",
- "orders": 19,
- "views": 1949,
- "currency": "RUB"
}, - {
- "atbs": 36,
- "avg_pos": 3.9,
- "clicks": 1847,
- "cpc": 278,
- "cpm": 445,
- "ctr": 96.4,
- "norm_query": "Фраза 4",
- "orders": 28,
- "views": 1916,
- "currency": "RUB"
}, - {
- "atbs": 36,
- "avg_pos": 3.9,
- "clicks": 1847,
- "cpc": 278,
- "cpm": 445,
- "ctr": 96.4,
- "norm_query": "Фраза 5",
- "orders": 28,
- "views": 1916,
- "currency": "RUB"
}, - {
- "atbs": 79,
- "avg_pos": 2.2,
- "clicks": 2468,
- "cpc": 106,
- "cpm": 819,
- "ctr": 145.01,
- "norm_query": "Фраза 6",
- "orders": 14,
- "views": 1702,
- "currency": "RUB"
}, - {
- "atbs": 79,
- "avg_pos": 2.2,
- "clicks": 2468,
- "cpc": 106,
- "cpm": 819,
- "ctr": 145.01,
- "norm_query": "Фраза 7",
- "orders": 14,
- "views": 1702,
- "currency": "RUB"
}, - {
- "atbs": 67,
- "avg_pos": 9.9,
- "clicks": 1166,
- "cpc": 250,
- "cpm": 837,
- "ctr": 70.33,
- "norm_query": "Фраза 8",
- "orders": 26,
- "views": 1658,
- "currency": "RUB"
}, - {
- "atbs": 67,
- "avg_pos": 9.9,
- "clicks": 1166,
- "cpc": 250,
- "cpm": 837,
- "ctr": 70.33,
- "norm_query": "Фраза 9",
- "orders": 26,
- "views": 1658,
- "currency": "RUB"
}, - {
- "atbs": 46,
- "avg_pos": 2,
- "clicks": 2927,
- "cpc": 122,
- "cpm": 468,
- "ctr": 186.43,
- "norm_query": "Фраза 10",
- "orders": 23,
- "views": 1570,
- "currency": "RUB"
}, - {
- "atbs": 46,
- "avg_pos": 2,
- "clicks": 2927,
- "cpc": 122,
- "cpm": 468,
- "ctr": 186.43,
- "norm_query": "Фраза 11",
- "orders": 23,
- "views": 1570,
- "currency": "RUB"
}, - {
- "atbs": 79,
- "avg_pos": 7.1,
- "clicks": 2447,
- "cpc": 67,
- "cpm": 426,
- "ctr": 163.9,
- "norm_query": "Фраза 12",
- "orders": 13,
- "views": 1493,
- "currency": "RUB"
}, - {
- "atbs": 79,
- "avg_pos": 7.1,
- "clicks": 2447,
- "cpc": 67,
- "cpm": 426,
- "ctr": 163.9,
- "norm_query": "Фраза 13",
- "orders": 13,
- "views": 1493,
- "currency": "RUB"
}, - {
- "atbs": 61,
- "avg_pos": 6,
- "clicks": 1391,
- "cpc": 370,
- "cpm": 980,
- "ctr": 99.29,
- "norm_query": "Фраза 14",
- "orders": 27,
- "views": 1401,
- "currency": "RUB"
}, - {
- "atbs": 61,
- "avg_pos": 6,
- "clicks": 1391,
- "cpc": 370,
- "cpm": 980,
- "ctr": 99.29,
- "norm_query": "Фраза 15",
- "orders": 27,
- "views": 1401,
- "currency": "RUB"
}, - {
- "atbs": 26,
- "avg_pos": 6.9,
- "clicks": 1029,
- "cpc": 88,
- "cpm": 459,
- "ctr": 77.43,
- "norm_query": "Фраза 16",
- "orders": 3,
- "views": 1329
}, - {
- "atbs": 26,
- "avg_pos": 6.9,
- "clicks": 1029,
- "cpc": 88,
- "cpm": 459,
- "ctr": 77.43,
- "norm_query": "Фраза 17",
- "orders": 3,
- "views": 1329,
- "currency": "RUB"
}, - {
- "atbs": 67,
- "avg_pos": 3.8,
- "clicks": 1371,
- "cpc": 448,
- "cpm": 534,
- "ctr": 104.18,
- "norm_query": "Фраза 18",
- "orders": 3,
- "views": 1316,
- "currency": "RUB"
}, - {
- "atbs": 67,
- "avg_pos": 3.8,
- "clicks": 1371,
- "cpc": 448,
- "cpm": 534,
- "ctr": 104.18,
- "norm_query": "Фраза 19",
- "orders": 3,
- "views": 1316,
- "currency": "RUB"
}, - {
- "atbs": 18,
- "avg_pos": 10,
- "clicks": 2944,
- "cpc": 472,
- "cpm": 839,
- "ctr": 256,
- "norm_query": "Фраза 20",
- "orders": 4,
- "views": 1150,
- "currency": "RUB"
}, - {
- "atbs": 18,
- "avg_pos": 10,
- "clicks": 2944,
- "cpc": 472,
- "cpm": 839,
- "ctr": 256,
- "norm_query": "Фраза 21",
- "orders": 4,
- "views": 1150,
- "currency": "RUB"
}
]
}
]
}Campaigns Statistics{{ /adv/v3/fullstats }}
The method generates statistics for campaigns, regardless of their type.
The maximum period in a request is 31 days.
For campaigns in statuses 7, 9 and 11.
In the sandbox statistics for campaigns are available for the last 30 days. Data is generated only for campaigns in the 9 status, type 8, 9 times per day
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 min | 3 requests | 20 s | 1 request |
| Service | 1 min | 3 requests | 20 s | 1 request |
| Base with secret | 1 min | 3 requests | 20 s | 1 request |
| Base | 1 h | 1 request | 1 h | 1 request |
Authorizations:
query Parameters
| ids required | string Example: ids=22161678,28449281,28155229 Campaign IDs, maximum 50 values |
| beginDate required | string <date> Example: beginDate=2025-09-07 Start date for the interval |
| endDate required | string <date> Example: endDate=2025-09-08 End date for the interval |
Responses
Response samples
- 200
- 400
- 401
- 403
- 429
[- {
- "advertId": 22161678,
- "atbs": 9,
- "boosterStats": [
- {
- "avg_position": 24,
- "date": "2025-09-07",
- "nm": 221725278
}, - {
- "avg_position": 35,
- "date": "2025-09-08",
- "nm": 221725278
}
], - "canceled": 0,
- "clicks": 139,
- "cpc": 4.76,
- "cr": 0,
- "ctr": 10.12,
- "days": [
- {
- "apps": [
- {
- "appType": 1,
- "atbs": 0,
- "canceled": 0,
- "clicks": 1,
- "cpc": 10.19,
- "cr": 0,
- "ctr": 4.76,
- "nms": [
- {
- "atbs": 0,
- "canceled": 0,
- "clicks": 1,
- "cpc": 10.19,
- "cr": 0,
- "ctr": 4.76,
- "name": "постер 2",
- "nmId": 221725278,
- "orders": 0,
- "shks": 0,
- "sum": 10.19,
- "sum_price": 0,
- "views": 21
}
], - "orders": 0,
- "shks": 0,
- "sum": 10.19,
- "sum_price": 0,
- "views": 21
}, - {
- "appType": 32,
- "atbs": 1,
- "canceled": 0,
- "clicks": 54,
- "cpc": 4.26,
- "cr": 0,
- "ctr": 11.37,
- "nms": [
- {
- "atbs": 1,
- "canceled": 0,
- "clicks": 54,
- "cpc": 4.26,
- "cr": 0,
- "ctr": 11.37,
- "name": "постер 2",
- "nmId": 221725278,
- "orders": 0,
- "shks": 0,
- "sum": 230.08,
- "sum_price": 0,
- "views": 475
}
], - "orders": 0,
- "shks": 0,
- "sum": 230.08,
- "sum_price": 0,
- "views": 475
}, - {
- "appType": 64,
- "atbs": 1,
- "canceled": 0,
- "clicks": 20,
- "cpc": 6.91,
- "cr": 0,
- "ctr": 6.94,
- "nms": [
- {
- "atbs": 1,
- "canceled": 0,
- "clicks": 20,
- "cpc": 6.91,
- "cr": 0,
- "ctr": 6.94,
- "name": "постер 2",
- "nmId": 221725278,
- "orders": 0,
- "shks": 0,
- "sum": 138.23,
- "sum_price": 0,
- "views": 288
}
], - "orders": 0,
- "shks": 0,
- "sum": 138.23,
- "sum_price": 0,
- "views": 288
}
], - "atbs": 2,
- "canceled": 0,
- "clicks": 75,
- "cpc": 5.05,
- "cr": 0,
- "ctr": 9.57,
- "date": "2025-09-07T00:00:00Z",
- "orders": 0,
- "shks": 0,
- "sum": 378.49,
- "sum_price": 0,
- "views": 784
}, - {
- "apps": [
- {
- "appType": 32,
- "atbs": 5,
- "canceled": 0,
- "clicks": 45,
- "cpc": 3.58,
- "cr": 0,
- "ctr": 13.43,
- "nms": [
- {
- "atbs": 5,
- "canceled": 0,
- "clicks": 45,
- "cpc": 3.58,
- "cr": 0,
- "ctr": 13.43,
- "name": "постер 2",
- "nmId": 221725278,
- "orders": 0,
- "shks": 0,
- "sum": 161.02,
- "sum_price": 0,
- "views": 335
}
], - "orders": 0,
- "shks": 0,
- "sum": 161.02,
- "sum_price": 0,
- "views": 335
}, - {
- "appType": 64,
- "atbs": 2,
- "canceled": 0,
- "clicks": 19,
- "cpc": 6.05,
- "cr": 0,
- "ctr": 8.02,
- "nms": [
- {
- "atbs": 2,
- "canceled": 0,
- "clicks": 19,
- "cpc": 6.05,
- "cr": 0,
- "ctr": 8.02,
- "name": "постер 2",
- "nmId": 221725278,
- "orders": 0,
- "shks": 0,
- "sum": 114.95,
- "sum_price": 0,
- "views": 237
}
], - "orders": 0,
- "shks": 0,
- "sum": 114.95,
- "sum_price": 0,
- "views": 237
}, - {
- "appType": 1,
- "atbs": 0,
- "canceled": 0,
- "clicks": 0,
- "cpc": 0,
- "cr": 0,
- "ctr": 0,
- "nms": [
- {
- "atbs": 0,
- "canceled": 0,
- "clicks": 0,
- "cpc": 0,
- "cr": 0,
- "ctr": 0,
- "name": "постер 2",
- "nmId": 221725278,
- "orders": 0,
- "shks": 0,
- "sum": 6.79,
- "sum_price": 0,
- "views": 17
}
], - "orders": 0,
- "shks": 0,
- "sum": 6.79,
- "sum_price": 0,
- "views": 17
}
], - "atbs": 7,
- "canceled": 0,
- "clicks": 64,
- "cpc": 4.42,
- "cr": 0,
- "ctr": 10.87,
- "date": "2025-09-08T00:00:00Z",
- "orders": 0,
- "shks": 0,
- "sum": 282.76,
- "sum_price": 0,
- "views": 589
}
], - "orders": 0,
- "shks": 0,
- "sum": 661.25,
- "sum_price": 0,
- "views": 1373,
- "currency": "RUB"
}, - {
- "advertId": 28449281,
- "atbs": 1,
- "canceled": 0,
- "clicks": 9,
- "cpc": 35.94,
- "cr": 11.11,
- "ctr": 1.76,
- "days": [
- {
- "apps": [
- {
- "appType": 32,
- "atbs": 1,
- "canceled": 0,
- "clicks": 7,
- "cpc": 26.31,
- "cr": 14.29,
- "ctr": 2.41,
- "nms": [
- {
- "atbs": 1,
- "canceled": 0,
- "clicks": 5,
- "cpc": 33.02,
- "cr": 20,
- "ctr": 1.92,
- "name": "Футболка желтая",
- "nmId": 398309059,
- "orders": 1,
- "shks": 1,
- "sum": 165.1,
- "sum_price": 500,
- "views": 260
}, - {
- "atbs": 0,
- "canceled": 0,
- "clicks": 2,
- "cpc": 9.53,
- "cr": 0,
- "ctr": 6.67,
- "name": "Футболка салатовая",
- "nmId": 301957154,
- "orders": 0,
- "shks": 0,
- "sum": 19.05,
- "sum_price": 0,
- "views": 30
}
], - "orders": 1,
- "shks": 1,
- "sum": 184.15,
- "sum_price": 500,
- "views": 290
}, - {
- "appType": 64,
- "atbs": 0,
- "canceled": 0,
- "clicks": 2,
- "cpc": 62.87,
- "cr": 0,
- "ctr": 1.01,
- "nms": [
- {
- "atbs": 0,
- "canceled": 0,
- "clicks": 1,
- "cpc": 12.7,
- "cr": 0,
- "ctr": 5,
- "name": "Футболка салатовая",
- "nmId": 301957154,
- "orders": 0,
- "shks": 0,
- "sum": 12.7,
- "sum_price": 0,
- "views": 20
}, - {
- "atbs": 0,
- "canceled": 0,
- "clicks": 1,
- "cpc": 113.03,
- "cr": 0,
- "ctr": 0.56,
- "name": "Футболка желтая",
- "nmId": 398309059,
- "orders": 0,
- "shks": 0,
- "sum": 113.03,
- "sum_price": 0,
- "views": 178
}
], - "orders": 0,
- "shks": 0,
- "sum": 125.73,
- "sum_price": 0,
- "views": 198
}, - {
- "appType": 1,
- "atbs": 0,
- "canceled": 0,
- "clicks": 0,
- "cpc": 0,
- "cr": 0,
- "ctr": 0,
- "nms": [
- {
- "atbs": 0,
- "canceled": 0,
- "clicks": 0,
- "cpc": 0,
- "cr": 0,
- "ctr": 0,
- "name": "Футболка желтая",
- "nmId": 398309059,
- "orders": 0,
- "shks": 0,
- "sum": 13.59,
- "sum_price": 0,
- "views": 22
}
], - "orders": 0,
- "shks": 0,
- "sum": 13.59,
- "sum_price": 0,
- "views": 22
}
], - "atbs": 1,
- "canceled": 0,
- "clicks": 9,
- "cpc": 35.94,
- "cr": 11.11,
- "ctr": 1.76,
- "date": "2025-09-08T00:00:00Z",
- "orders": 1,
- "shks": 1,
- "sum": 323.47,
- "sum_price": 500,
- "views": 510
}
], - "orders": 1,
- "shks": 1,
- "sum": 323.47,
- "sum_price": 500,
- "views": 510,
- "currency": "RUB"
}
]Daily Search Clusters Statistics{{ /adv/v1/normquery/stats }}
Returns statistics (views, clicks, add-to-cart, orders, CTR, CPC, CPM, etc.) by search clusters for the specified period detailed by day.
You can use this method for campaigns with cpm — for impressions, and cpc — for clicks payment models.
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 1 min | 10 requests | 6 s | 20 requests |
| Service | 1 min | 10 requests | 6 s | 20 requests |
| Base with secret | 1 min | 10 requests | 6 s | 20 requests |
| Base | 1 h | 2 requests | 30 min | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
| from required | string <date> Period start date |
| to required | string <date> Period end date |
required | Array of objects <= 100 items |
Responses
Request samples
- Payload
{- "from": "2026-01-01",
- "to": "2026-01-30",
- "items": [
- {
- "advertId": 123456789,
- "nmId": 987654321
}
]
}Response samples
- 200
- 400
- 401
- 403
- 429
{- "items": [
- {
- "advertId": 123456789,
- "dailyStats": [
- {
- "date": "2026-01-27",
- "stat": {
- "atbs": 39,
- "avgPos": 3.3,
- "clicks": 75,
- "cpc": 1.44,
- "cpm": 562.5,
- "ctr": 39.06,
- "normQuery": "Поисковый кластер 0",
- "orders": 9,
- "shks": 5,
- "spend": 108,
- "views": 192
}
}, - {
- "date": "2026-01-27",
- "stat": {
- "atbs": 71,
- "avgPos": 7.9,
- "clicks": 56,
- "cpc": 4.38,
- "cpm": 1290.95,
- "ctr": 29.47,
- "normQuery": "румяна для лица vivienne sabo",
- "orders": 2,
- "shks": 44,
- "spend": 245.28,
- "views": 190
}
}, - {
- "date": "2026-01-27",
- "stat": {
- "atbs": 39,
- "avgPos": 3.3,
- "clicks": 75,
- "cpc": 1.44,
- "cpm": 562.5,
- "ctr": 39.06,
- "normQuery": "Поисковый кластер 2",
- "orders": 9,
- "shks": 345345,
- "spend": 108,
- "views": 192
}
}
], - "nmId": 987654321
}
]
}Using these methods, you can obtain information about promos and participate in them.
Promos List{{ /api/v1/calendar/promotions }}
Returns a promos list with dates and times of occurrence
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 6 s | 10 requests | 600 ms | 5 requests |
| Service | 6 s | 10 requests | 600 ms | 5 requests |
| Base with secret | 6 s | 10 requests | 600 ms | 5 requests |
| Base | 1 h | 1 request | 1 h | 1 request |
Authorizations:
query Parameters
| startDateTime required | string <date-time> Example: startDateTime=2023-09-01T00:00:00Z Period start, format |
| endDateTime required | string <date-time> Example: endDateTime=2024-08-01T23:59:59Z Period end, format |
| allPromo required | boolean Default: false Show promos:
|
| limit | integer <uint> [ 1 .. 1000 ] Example: limit=10 Number of requested promos |
| offset | integer <uint> >= 0 Example: offset=0 From which element to start outputting data |
Responses
Response samples
- 200
- 400
- 401
- 402
- 403
- 429
{- "data": {
- "promotions": [
- {
- "id": 123,
- "name": "скидки",
- "startDateTime": "2023-06-05T21:00:00Z",
- "endDateTime": "2023-06-05T21:00:00Z",
- "type": "regular"
}
]
}
}Promos Details{{ /api/v1/calendar/promotions/details }}
Returns detailed information about the selected promos
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 6 s | 10 requests | 600 ms | 5 requests |
| Service | 6 s | 10 requests | 600 ms | 5 requests |
| Base with secret | 6 s | 10 requests | 600 ms | 5 requests |
| Base | 1 h | 1 request | 1 h | 1 request |
Authorizations:
query Parameters
| promotionIDs required | Array of integers [ 1 .. 100 ] items unique Example: promotionIDs=1&promotionIDs=3&promotionIDs=64 IDs of the promos for which information should be returned |
Responses
Response samples
- 200
- 400
- 401
- 402
- 403
- 429
{- "data": {
- "promotions": [
- {
- "id": 123,
- "name": "ХИТЫ ГОДА",
- "description": "В акции принимают участие самые популярные товары 2023 года. Карточки товаров будут выделены плашкой «ХИТ ГОДА», чтобы покупатели замечали эти товары среди других. Также они будут размещены под баннерами на главной странице и примут участие в PUSH-уведомлениях. С ценами для вступления в акцию вы можете ознакомиться ниже.",
- "advantages": [
- "Плашка",
- "Баннер",
- "Топ выдачи товаров"
], - "startDateTime": "2023-06-05T21:00:00Z",
- "endDateTime": "2023-06-05T21:00:00Z",
- "inPromoActionLeftovers": 45,
- "inPromoActionTotal": 123,
- "notInPromoActionLeftovers": 3,
- "notInPromoActionTotal": 10,
- "participationPercentage": 10,
- "type": "auto",
- "exceptionProductsCount": 10,
- "ranging": [
- {
- "condition": "productsInPromotion",
- "participationRate": 10,
- "boost": 7
}, - {
- "condition": "calculateProducts",
- "participationRate": 20,
- "boost": 17
}, - {
- "condition": "allProducts",
- "participationRate": 35,
- "boost": 30
}
]
}
]
}
}List of Items for Participating in the Promo{{ /api/v1/calendar/promotions/nomenclatures }}
Returns a list of items suitable for participation in the promo.
Not applicable for auto promos
| Period | Limit | Interval | Burst |
|---|---|---|---|
| 6 s | 10 requests | 600 ms | 5 requests |
Authorizations:
query Parameters
| promotionID required | integer Example: promotionID=1 Promo ID |
| inAction required | boolean Default: false Example: inAction=true Participates in the promo:
|
| limit | integer <uint> [ 1 .. 1000 ] Example: limit=10 Number of requested items |
| offset | integer <uint> >= 0 Example: offset=0 From which element to start outputting data |
Responses
Response samples
- 200
- 400
- 401
- 402
- 403
- 422
- 429
{- "data": {
- "nomenclatures": [
- {
- "id": 162579635,
- "inAction": true,
- "price": 1500,
- "currencyCode": "RUB",
- "planPrice": 1000,
- "discount": 15,
- "planDiscount": 34
}
]
}
}Add Item to the Promo{{ /api/v1/calendar/promotions/upload }}
Creates a item upload for the promo.
The upload status can be checked using separate methods.
Not applicable for auto promos
| Type | Period | Limit | Interval | Burst |
|---|---|---|---|---|
| Personal | 6 s | 10 requests | 600 ms | 5 requests |
| Service | 6 s | 10 requests | 600 ms | 5 requests |
| Base with secret | 6 s | 10 requests | 600 ms | 5 requests |
| Base | 1 h | 1 request | 1 h | 1 request |
Authorizations:
Request Body schema: application/jsonrequired
object Request data |
Responses
Request samples
- Payload
{- "data": {
- "promotionID": 1,
- "uploadNow": true,
- "nomenclatures": [
- 75632091,
- 31322455,
- 642080796
]
}
}Response samples
- 200
- 400
- 401
- 402
- 403
- 422
- 429
{- "data": {
- "alreadyExists": false,
- "uploadID": 11
}
}