Skip to main content
Ad groups live under a campaign. Each ad group carries the context hints that steer where its ads serve and the max bid the auction may pay, and it holds one or more ads that all share a single creative type. You can create ad groups inline when you create a campaign (see Campaigns), or add them to an existing campaign with the endpoints below.
All paths are relative to the base URL https://api.thrad.ai/v1. Authenticate every request with Authorization: Bearer ak_.... See Authentication for how to create your key.

The ad group object

string
Unique identifier for the ad group (a UUID).
string
The parent campaign’s id.
string
Display name for the ad group.
string[]
The hints that tell Thrad which conversations this ad group’s ads are relevant to. Returned as an array of strings.
string
One of active or paused. Ad groups have no distinct archived state on Thrad, so /archive deactivates the ad group and it reads back as paused. Change status only with the dedicated /activate, /pause, and /archive actions — status sent in an update body is rejected.
object
Bidding settings for the ad group.
string
ISO 8601 timestamp (UTC) when the ad group was created.
string
ISO 8601 timestamp (UTC) when the ad group was last updated.

List ad groups

GET /v1/ad_groups Returns the ad groups for one campaign, most recent first. campaign_id is required — listing across all campaigns is not supported.
string
required
The campaign whose ad groups to list.
integer
default:"20"
Number of ad groups to return, 1–500.
string
default:"desc"
Sort direction by creation time: asc or desc.
string
Cursor for the previous page. Pass a prior response’s first_id. Mutually exclusive with after.
string
Cursor for the next page. Pass a prior response’s last_id. Mutually exclusive with before.

Create an ad group

POST /v1/ad_groups Adds an ad group to an existing campaign. The ad group must include at least one ad, and all ads in the ad group must share one creative type (all card, or all poll).
string
required
The campaign to add this ad group to.
string
required
Display name for the ad group. Max 255 characters.
string[]
required
Hints that steer where the ad group’s ads serve. Each array entry is one hint. Must be a non-empty array.
object
required
Bidding settings for the ad group.
array
required
The ads in this ad group. At least one is required, and all ads must share one creative type.

Retrieve an ad group

GET /v1/ad_groups/{id}
string
required
The ad group’s id.

Update an ad group

POST /v1/ad_groups/{id} Patch the mutable fields. Only the fields you send are changed.
string
required
The ad group’s id.
string
New display name.
string[]
Replacement set of context hints.
object
Bidding settings. Send max_bid_micros to change the max bid.
status is not accepted in the update body. Sending it returns 400 use_status_action — use the /activate, /pause, and /archive actions below.

Activate, pause, or archive an ad group

These are the only way to change an ad group’s status. Each returns the updated ad group object.
string
required
The ad group’s id.
Status actions require the parent campaign to be approved. If the parent campaign is still pending approval, the action returns 400 campaign_pending_status_locked; if it has been completed or blocked, it returns 400 campaign_terminal.
Thrad ad groups have no separate archived state, so /archive deactivates the ad group and it reads back with status: "paused" — the same result as /pause. Use /activate to bring it back.

Errors

Errors use the bare error shape: