List Ad Groups
Lists ad groups for the account, newest first.
Query parameters
Account whose ad groups to list. Defaults to the authenticated account.
Filter to ad groups in this campaign.
Filter to ad groups in these campaigns (max 100). Repeat the parameter for each id (ad_campaign_ids=a&ad_campaign_ids=b).
[ "adcamp_xxxxxxxxxxxxxx" ]
Filter to ad groups with this status.
Filter ad groups by a title or ID substring.
The field to sort by. Defaults to created_at. Stat columns (spend, impressions, …) rank over the stats_from/stats_to window across the whole list, not just the current page. results, cost_per_result and return_on_ad_spend rank by the same Whop pixel-attributed values the response reports.
The sort direction. Defaults to desc.
Only return ad groups created before this timestamp.
Only return ad groups created after this timestamp.
Start of the stats window. Defaults to all-time.
End of the stats window. Defaults to now.
IANA timezone (e.g. America/New_York) the stats window is interpreted in. Bare stats_from/stats_to dates resolve to day boundaries on this clock. Defaults to UTC.
Attribution model the conversion stats count under (defaults to last_touch). Under both models a journey with any whop ad touch attributes to whop; the model picks which whop touch credits the entity and which non-whop source wins otherwise.
Number of results to return from the start of the range.
Return results after this cursor. Use page_info.end_cursor from the previous response to fetch the next page.
Number of results to return from the end of the range.
Return results before this cursor. Use page_info.start_cursor from the previous response to fetch the previous page.
Response
ad groups listed
Example response
{
"data": [
{
"ad_campaign": {
"id": "adcamp_xxxxxxxxxxxxxx"
},
"added_to_cart_value": 12650,
"added_to_carts": 165,
"audiences": {
"exclude": [
"adaud_xxxxxxxxxxxxxx"
],
"include": [
"adaud_xxxxxxxxxxxxxx"
]
},
"bid_type": "average_target",
"budget_amount": 60,
"budget_amount_local": 60,
"budget_currency": "usd",
"budget_type": "daily",
"click_through_rate": 0.025,
"clicks": 5500,
"completed_registration_value": 1650,
"completed_registrations": 55,
"contact_value": 2640,
"contacts": 88,
"conversion_event": "purchase",
"conversion_location": "website",
"cost_per_added_to_cart": 8,
"cost_per_click": 0.24,
"cost_per_completed_registration": 24,
"cost_per_contact": 15,
"cost_per_lead": 10,
"cost_per_mille": 6,
"cost_per_purchase": 30,
"cost_per_result": 40,
"cost_per_schedule": 22,
"cost_per_submitted_application": 120,
"cost_per_unique_click": 0.4,
"cost_per_viewed_content": 1.1,
"created_at": "2026-01-01T12:00:00.000Z",
"custom_conversions": 41,
"custom_event_counts": {
"gift_card_purchased": 5,
"quote_requested": 33
},
"custom_event_values": {
"gift_card_purchased": 750,
"quote_requested": 0
},
"delivery_status": "no_ads",
"demographics": {
"gender": "all",
"maximum_age": 64,
"minimum_age": 21
},
"desired_cost_per_result": 40,
"detailed_targeting": {
"behaviors": [
{
"behavior_type": "video",
"id": "6007101291578",
"name": "Recent vehicle purchase (30 days)"
}
],
"demographics": [
{
"id": "6002714398172",
"name": "Recently moved",
"type": "life_events"
}
],
"interests": [
{
"id": "6003193685204",
"name": "Car wash"
}
]
},
"devices": {
"operating_systems": [
{
"minimum_version": "18.0",
"os": "ios"
}
],
"platforms": [
"mobile"
]
},
"ends_at": "2026-01-01T12:00:00.000Z",
"frequency_cap": {
"maximum_impressions": 3,
"per_days": 7
},
"id": "adgrp_xxxxxxxxxxxxxx",
"impressions": 220000,
"issues": [
{
"id": "adiss_xxxxxxxxxxxxxx",
"message": "Your ad was rejected for unacceptable business practices. Edit the ad's content and resubmit.",
"resource_id": "ad_xxxxxxxxxxxxxx",
"resource_type": "ad"
}
],
"languages": [
"en"
],
"lead_value": 3960,
"leads": 132,
"link_clicks": 4400,
"message_apps": [
"instagram"
],
"minimum_daily_spend": 25,
"optimization_goal": "conversions",
"placements": [
{
"platform": "facebook",
"positions": [
"feed"
]
}
],
"platform": "meta",
"purchase_value": 7920,
"purchases": 44,
"regions": {
"exclude": {
"cities": [
{
"key": "2418046",
"name": "Austin"
}
],
"countries": [
"US"
],
"country_groups": [
"north_america"
],
"custom_locations": [
{
"distance_unit": "mile",
"latitude": 30.2672,
"longitude": -97.7431,
"name": "4180 Burnet Rd, Austin TX 78756",
"radius": 25
}
],
"regions": [
"US-TX"
],
"zips": [
"US:78756"
]
},
"include": {
"cities": [
{
"key": "2418046",
"name": "Austin"
}
],
"countries": [
"US"
],
"country_groups": [
"north_america"
],
"custom_locations": [
{
"distance_unit": "mile",
"latitude": 30.2672,
"longitude": -97.7431,
"name": "4180 Burnet Rd, Austin TX 78756",
"radius": 25
}
],
"regions": [
"US-TX"
],
"zips": [
"US:78756"
]
}
},
"result_event": "custom",
"result_event_name": "quote_requested",
"results": 33,
"return_on_ad_spend": 6,
"schedule_value": 5400,
"schedules": 60,
"spend": 1320,
"spend_currency": "usd",
"starts_at": "2026-01-01T12:00:00.000Z",
"status": "active",
"submitted_application_value": 1320,
"submitted_applications": 11,
"title": "Austin ceramic coating — repeat customers",
"unique_clicks": 3300,
"updated_at": "2026-01-01T12:00:00.000Z",
"viewed_content_value": 8400,
"viewed_contents": 1200
}
],
"page_info": {
"start_cursor": "WyJjdXJzb3IiLDFd"
}
}Changes
Changed in 10 of the 74 revisions of this API.133846
- ●
added the new
googleenum value to the//response property for the response statusresponse-property-enum-value-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ●
- ●
added the new
in_appealenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
- ○
added the optional property
//////to the response with the statusresponse-optional-property-added
- ○
added the optional property
//////to the response with the statusresponse-optional-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
- ○
added the new enum value
link_clicksto thequeryrequest parameterorderrequest-parameter-enum-value-added
- ○
the response property
//became required for the statusresponse-property-became-required
- ○
added the required property
//to the response with the statusresponse-required-property-added
This revision also has 2 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ○
- ○
added the optional property
/////to the response with the statusresponse-optional-property-added
- ○
added the optional property
/////to the response with the statusresponse-optional-property-added
- ○
the response property
//became required for the statusresponse-property-became-required
- ○
the response property
//became required for the statusresponse-property-became-required
- ○
the response property
//became required for the statusresponse-property-became-required
- ○
the response property
//became required for the statusresponse-property-became-required
- ○
the response property
//became required for the statusresponse-property-became-required
- ○
the response property
//became required for the statusresponse-property-became-required
- ○
- ●
added the new
messaging_conversationenum value to the//response property for the response statusresponse-property-enum-value-added
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ●
- ●
added the new
education_majorsenum value to the/////response property for the response statusresponse-property-enum-value-added
- ●
added the new
education_schoolsenum value to the/////response property for the response statusresponse-property-enum-value-added
- ●
added the new
work_employersenum value to the/////response property for the response statusresponse-property-enum-value-added
- ●
added the new
work_positionsenum value to the/////response property for the response statusresponse-property-enum-value-added
- ●
- ●
added the new
audience_networkenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
facebookenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
instagramenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
messengerenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
threadsenum value to the////response property for the response statusresponse-property-enum-value-added
- ●
added the new
whatsappenum value to the////response property for the response statusresponse-property-enum-value-added
- ○
added the new optional
queryrequest parameterad_campaign_idsnew-optional-request-parameter
This revision also has 4 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ●
- ▲
the
queryrequest parameterstatuswas restricted to a list of enum valuesrequest-parameter-became-enum
- ▲
the response property
//became optional for the statusresponse-property-became-optional
- ▲
the response property
//became optional for the statusresponse-property-became-optional
- ▲
the response property
//became optional for the statusresponse-property-became-optional
- ▲
the response property
//became optional for the statusresponse-property-became-optional
- ▲
the response property
//became optional for the statusresponse-property-became-optional
- ▲
the response property
//became optional for the statusresponse-property-became-optional
- ▲
the response property
//became optional for the statusresponse-property-became-optional
- ▲
the response property
//became optional for the statusresponse-property-became-optional
- ▲
the response property
//became optional for the statusresponse-property-became-optional
- ▲
the response property
//became optional for the statusresponse-property-became-optional
- ▲
added
subschema #2to the//response propertyoneOflist for the response statusresponse-property-one-of-added
- ▲
the
//response's property type changed fromobjectnullto no type for statusresponse-property-type-changed
- ●
added the new
ad_recall_liftenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
conversationsenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
conversionsenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
duplicatingenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
engagementenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
event_responsesenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
impressionsenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
instagramenum value to the///response property for the response statusresponse-property-enum-value-added
- ●
added the new
instagram_and_facebookenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
instagram_profileenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
landing_page_viewsenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
lead_generationenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
link_clicksenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
messengerenum value to the///response property for the response statusresponse-property-enum-value-added
- ●
added the new
page_likesenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
profile_and_page_engagementenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
quality_leadenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
reachenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
reminders_setenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
social_profileenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
two_second_viewsenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
undefinedenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
valueenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
video_viewsenum value to the//response property for the response statusresponse-property-enum-value-added
- ●
added the new
whatsappenum value to the///response property for the response statusresponse-property-enum-value-added
- ○
added the new optional
queryrequest parameterattribution_modelnew-optional-request-parameter
- ○
added the new enum value
activeto thequeryrequest parameterstatusrequest-parameter-enum-value-added
- ○
added the new enum value
duplicatingto thequeryrequest parameterstatusrequest-parameter-enum-value-added
- ○
added the new enum value
pausedto thequeryrequest parameterstatusrequest-parameter-enum-value-added
- ○
added the new enum value
rejectedto thequeryrequest parameterstatusrequest-parameter-enum-value-added
- ○
added the optional property
//to the response with the statusresponse-optional-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
////to the response with the statusresponse-required-property-added
- ○
added the required property
////to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
///to the response with the statusresponse-required-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ▲
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
added the required property
//to the response with the statusresponse-required-property-added
- ○
Of the 74 revisions, 1 has no diff computed.