Change 1 to 50 campaigns, offers or landers of one kind in one transaction, each as its PATCH would and held to the sequence you read it at: every one is made, or none is, and an item already as you set it is left (changed false). validate_only runs every check and makes nothing
POST
/v1/buyer/catalog/bulk
const url = 'https://example.com/v1/buyer/catalog/bulk';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"campaigns":[{"changes":{"bot_action":"flag","connection_id":1,"cost_amount":{"amount_micros":1,"currency":"example"},"cost_bps":1,"cost_model":"from_token","count_impressions":true,"expected_sequence":1,"flow_id":1,"name":"example","path":{"id":1,"landers":[{"id":1,"weight":1}],"name":"example","offers":[{"id":1,"weight":1}],"paused":true,"redirect_mode":"http","steps":[{"landers":[{"id":1,"weight":1}],"name":"example"}],"weight":1},"redirect_mode":"http","status":"active","tags":["example"],"url":"example","validate_only":true},"expected_sequence":1,"id":1}],"landers":[{"changes":{"direct":true,"expected_sequence":1,"name":"example","offers_count":1,"protection":{"enabled":true,"window_seconds":1},"status":"active","tags":["example"],"url":"example","validate_only":true},"expected_sequence":1,"id":1}],"offers":[{"changes":{"country":"example","daily_cap":1,"direct":true,"expected_sequence":1,"fallback_offer_id":1,"name":"example","network_id":1,"payout":{"amount_micros":1,"currency":"example"},"payout_mode":"postback","status":"active","tags":["example"],"url":"example","validate_only":true},"expected_sequence":1,"id":1}],"validate_only":true}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/v1/buyer/catalog/bulk \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "campaigns": [ { "changes": { "bot_action": "flag", "connection_id": 1, "cost_amount": { "amount_micros": 1, "currency": "example" }, "cost_bps": 1, "cost_model": "from_token", "count_impressions": true, "expected_sequence": 1, "flow_id": 1, "name": "example", "path": { "id": 1, "landers": [ { "id": 1, "weight": 1 } ], "name": "example", "offers": [ { "id": 1, "weight": 1 } ], "paused": true, "redirect_mode": "http", "steps": [ { "landers": [ { "id": 1, "weight": 1 } ], "name": "example" } ], "weight": 1 }, "redirect_mode": "http", "status": "active", "tags": [ "example" ], "url": "example", "validate_only": true }, "expected_sequence": 1, "id": 1 } ], "landers": [ { "changes": { "direct": true, "expected_sequence": 1, "name": "example", "offers_count": 1, "protection": { "enabled": true, "window_seconds": 1 }, "status": "active", "tags": [ "example" ], "url": "example", "validate_only": true }, "expected_sequence": 1, "id": 1 } ], "offers": [ { "changes": { "country": "example", "daily_cap": 1, "direct": true, "expected_sequence": 1, "fallback_offer_id": 1, "name": "example", "network_id": 1, "payout": { "amount_micros": 1, "currency": "example" }, "payout_mode": "postback", "status": "active", "tags": [ "example" ], "url": "example", "validate_only": true }, "expected_sequence": 1, "id": 1 } ], "validate_only": true }'Who: a workspace’s buyer, or its key. API keys with the buyer:write scope.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
campaigns
Array<object>
object
changes
required
object
bot_action
string | null
connection_id
integer format: int64
cost_amount
cost_bps
integer | null format: int32
cost_model
string | null
count_impressions
boolean | null
expected_sequence
integer | null format: int64
flow_id
integer | null format: int64
name
string | null
path
Any of:
object
id
integer format: int64
landers
required
Array<object>
object
id
required
integer format: int64
weight
required
integer format: int32
name
required
string
offers
required
Array<object>
object
id
required
integer format: int64
weight
required
integer format: int32
paused
required
boolean
redirect_mode
string
steps
Array<object>
object
landers
required
Array<object>
object
id
required
integer format: int64
weight
required
integer format: int32
name
required
string
weight
required
integer format: int32
null
redirect_mode
string | null
status
string | null
tags
Array<string> | null
url
string | null
validate_only
boolean
expected_sequence
required
integer format: int64
id
required
integer format: int64
landers
Array<object>
object
changes
required
object
direct
boolean | null
expected_sequence
integer | null format: int64
name
string | null
offers_count
integer | null format: int32
protection
status
string | null
tags
Array<string> | null
url
string | null
validate_only
boolean
expected_sequence
required
integer format: int64
id
required
integer format: int64
offers
Array<object>
object
changes
required
object
country
string | null
daily_cap
integer | null format: int64
direct
boolean | null
expected_sequence
integer | null format: int64
fallback_offer_id
integer | null format: int64
name
string | null
network_id
integer | null format: int64
payout_mode
string | null
status
string | null
tags
Array<string> | null
url
string | null
validate_only
boolean
expected_sequence
required
integer format: int64
id
required
integer format: int64
validate_only
boolean
Responses
Section titled “Responses”OK
Media typeapplication/json
object
campaigns
required
Array<object>
object
changed
required
boolean
item
required
object
bot_action
required
string | null
connection
required
object
id
required
integer format: int64
name
string
cost_amount
required
cost_bps
required
integer format: int32
cost_model
required
string | null
count_impressions
required
boolean
count_impressions_since
required
string | null format: date-time
created_at
required
string format: date-time
id
required
integer format: int64
name
required
string
path
required
Any of:
object
id
required
integer format: int64
landers
required
Array<object>
object
id
required
integer format: int64
weight
required
integer format: int32
name
required
string
offers
required
Array<object>
object
id
required
integer format: int64
weight
required
integer format: int32
paused
required
boolean
redirect_mode
required
string | null
steps
required
Array<object>
object
landers
required
Array<object>
object
id
required
integer format: int64
weight
required
integer format: int32
name
required
string
weight
required
integer format: int32
null
redirect_mode
required
string | null
sequence
required
integer format: int64
status
required
string | null
tags
required
Array<string>
updated_at
required
string format: date-time
url
required
string | null
url_key
required
string
workspace_id
required
integer format: int64
landers
required
Array<object>
object
changed
required
boolean
item
required
object
created_at
required
string format: date-time
direct
required
boolean
id
required
integer format: int64
name
required
string
offers_count
required
integer format: int32
origin
required
string
page_id
required
integer format: int64
protection
required
object
enabled
required
boolean
window_seconds
required
integer format: int64
sequence
required
integer format: int64
status
required
string | null
tags
required
Array<string>
updated_at
required
string format: date-time
url
required
string
workspace_id
required
integer format: int64
offers
required
Array<object>
object
changed
required
boolean
item
required
object
country
required
string
created_at
required
string format: date-time
daily_cap
required
integer format: int64
direct
required
boolean
id
required
integer format: int64
import_key
required
string
name
required
string
network
required
object
id
required
integer format: int64
name
string
origin
required
string
payout
required
payout_mode
required
string | null
sequence
required
integer format: int64
status
required
string | null
tags
required
Array<string>
updated_at
required
string format: date-time
url
required
string
workspace_id
required
integer format: int64
Example
{ "campaigns": [ { "item": { "bot_action": "flag", "cost_model": "from_token", "path": { "redirect_mode": "http" }, "redirect_mode": "http", "status": "active" } } ], "landers": [ { "item": { "status": "active" } } ], "offers": [ { "item": { "payout_mode": "postback", "status": "active" } } ]}default
Section titled “default”An error, as go-commons apperr maps it
Media typeapplication/json
object
error
required
object
code
required
string
fields
object
key
additional properties
string
message
required
string
Example generated
{ "error": { "code": "example", "fields": { "additionalProperty": "example" }, "message": "example" }}