Skip to main content
GET
JavaScript

Authorizations

Authorization
string
header
required

A company API key, company scoped JWT, app API key, or user OAuth token. You must prepend your key/token with the word 'Bearer', which will look like Bearer ***************************

Headers

Api-Version-Date
string

Pins the request to a dated API version.

Example:

"2026-07-18"

Path Parameters

id
string
required

The ad group ID.

Query Parameters

stats_from
string

Start of the stats window.

stats_to
string

End of the stats window.

time_zone
string

IANA timezone the stats window is interpreted in. Defaults to UTC.

Response

ad group retrieved

ad_campaign
object
required

The ad campaign this ad group belongs to.

added_to_cart_value
number
required

USD value attributed to add-to-cart events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.

added_to_carts
number
required

Whop pixel-attributed add-to-cart events, last-click.

audiences
object
required

Saved audiences this ad group delivers to or excludes.

bid_type
enum<string> | null
required

How delivery bids in the ad auction: minimum_cost gets the most results for the budget, average_target keeps the average cost per result near desired_cost_per_result, and maximum_target never bids above it.

Available options:
minimum_cost,
average_target,
maximum_target,
null
Example:

"minimum_cost"

budget_amount
number | null
required

This ad group's budget, in the ad account's currency. null when the budget is set on the campaign instead.

budget_type
enum<string> | null
required

Whether budget_amount is spent per day (daily) or over the ad group's full run (lifetime).

Available options:
daily,
lifetime,
null
Example:

"daily"

click_through_rate
number
required

Clicks divided by impressions, between 0 and 1.

clicks
number
required

The number of clicks.

completed_registration_value
number
required

USD value attributed to complete-registration events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.

completed_registrations
number
required

Whop pixel-attributed complete-registration events, last-click.

contact_value
number
required

USD value attributed to contact events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.

contacts
number
required

Whop pixel-attributed contact events, last-click.

conversion_event
required

The pixel event optimized for. A standard event, or any custom pixel event name.

Available options:
purchase,
add_to_cart,
initiated_checkout,
add_payment_info,
complete_registration,
lead,
content_view,
search,
contact,
customize_product,
donate,
find_location,
schedule,
start_trial,
submit_application,
subscribe
conversion_location
enum<string> | null
required

Where the result you're optimizing for happens: website (your site), profile (your social media profile), messaging (a direct-message conversation), on_ad (engagement with the ad itself), or a lead form (instant_forms, instant_forms_and_messenger, website_and_instant_forms).

Available options:
website,
profile,
messaging,
on_ad,
instant_forms,
instant_forms_and_messenger,
website_and_instant_forms,
null
Example:

"website"

cost_per_added_to_cart
number | null
required

Spend divided by attributed add-to-cart events; null when they are not the goal and none are attributed.

cost_per_click
number
required

Spend divided by clicks; 0 when there are no clicks.

cost_per_completed_registration
number | null
required

Spend divided by attributed complete-registration events; null when they are not the goal and none are attributed.

cost_per_contact
number | null
required

Spend divided by attributed contact events; null when contacts are not the goal and none are attributed.

cost_per_lead
number | null
required

Spend divided by attributed leads; null when leads are not a goal and none are attributed.

cost_per_mille
number
required

Spend per 1,000 impressions; 0 when there are no impressions.

cost_per_purchase
number | null
required

Spend divided by attributed purchases; null when purchases are not a goal and none are attributed.

cost_per_result
number | null
required

Spend divided by Whop pixel-attributed results; null when nothing Whop-attributable is being optimized for.

cost_per_schedule
number | null
required

Spend divided by attributed schedule events; null when schedules are not the goal and none are attributed.

cost_per_submitted_application
number | null
required

Spend divided by attributed submit-application events; null when they are not the goal and none are attributed.

cost_per_viewed_content
number | null
required

Spend divided by attributed view-content events; null when they are not the goal and none are attributed.

created_at
string
required

When the ad group was created, as an ISO 8601 timestamp.

custom_conversions
number
required

Whop pixel-attributed custom (merchant-defined) conversion events, last-click, across all custom event names.

custom_event_counts
object
required

Whop pixel-attributed custom conversions, keyed by your event name with its last-click count as the value. Empty when no named custom events are attributed. Custom events fired without a name are counted in custom_conversions but omitted here, so these values sum to at most custom_conversions.

custom_event_values
object
required

Conversion value attributed to each custom event, keyed by event name like custom_event_counts. Sums the value passed to whop.track, normalized to USD; events fired without a value contribute 0.

delivery_status
enum<string>
required

Whether ads in this ad group are delivering right now, and if not, why. When several states apply at once, the highest-precedence one is returned.

Available options:
all_ads_rejected,
rejected,
draft,
no_ads,
campaign_paused,
paused,
processing,
issues,
scheduled,
completed,
ads_off,
learning_limited,
learning,
active
Example:

"all_ads_rejected"

demographics
object
required

Age, gender, and automatic-audience targeting.

desired_cost_per_result
number | null
required

Cost per result to aim for (average_target) or never exceed (maximum_target). null for minimum_cost bidding.

detailed_targeting
object
required

Interest, behavior, and demographic targeting, using categories from the ad platform's targeting taxonomy. Can't be combined with automatic audience targeting, and unavailable to campaigns with special_ad_categories.

devices
object
required

Device platforms and operating systems targeted.

dynamic_creative
boolean
required

Whether the ad platform automatically mixes and matches this ad group's creatives and copy to find the best-performing combinations.

ends_at
string | null
required

When the ad group stops delivering, as an ISO 8601 timestamp. null when it runs until paused.

frequency
number | null
required

Platform-reported impressions divided by reach.

frequency_cap
object | null
required

Cap on how often one person sees ads from this ad group. Only available with reach optimization; null when uncapped.

id
string
required

Unique identifier for the ad group, prefixed adgrp_.

impressions
number
required

The number of impressions.

issues
object[]
required
languages
string[]
required

Languages targeted, as ISO 639 codes such as en or es. A region-specific locale with no ISO code appears as its numeric platform locale key. Empty targets all languages.

lead_value
number
required

USD value attributed to lead events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.

leads
number
required

Whop pixel-attributed leads, last-click.

message_apps
enum<string>[]
required

Apps the conversation opens in when conversion_location is messaging. Empty for other conversion locations.

Available options:
messenger,
instagram,
whatsapp
minimum_daily_spend
number | null
required

Minimum the ad group tries to spend each day. null when no floor is set.

optimization_goal
enum<string> | null
required

The result the ad group's delivery is optimized to get the most of.

Available options:
conversions,
link_clicks,
landing_page_views,
reach,
impressions,
engagement,
conversations,
video_views,
two_second_views,
page_likes,
social_profile,
ad_recall_lift,
event_responses,
reminders_set,
lead_generation,
quality_lead,
value,
profile_and_page_engagement,
null
Example:

"conversions"

placements
object[]
required
purchase_value
number
required

USD value of pixel-attributed purchases.

purchases
number
required

Whop pixel-attributed purchases, last-click.

reach
number
required

The number of unique people who saw this.

regions
object
required

Locations targeted and excluded.

result_event
enum<string> | null
required

The Whop pixel conversion event whose attributed count represents results — the optimization goal, or the highest-volume attributed event for campaigns that budget per ad group. Null when the goal isn't a Whop-attributed event.

Available options:
purchase,
lead,
schedule,
submit_application,
contact,
complete_registration,
view_content,
add_to_cart,
custom,
null
Example:

"purchase"

result_event_name
string | null
required

The merchant-defined event name when result_event is custom; null for the standard events.

results
number | null
required

The Whop pixel-attributed count behind result_event. When a campaign's ad groups optimize different goals there is no single result_event (it is null), and this is instead the sum of each ad group's own attributed results. Null when nothing Whop-attributable is being optimized for.

return_on_ad_spend
number
required

Purchase value divided by spend, both in USD (a currency-neutral ratio); 0 when there is no spend.

schedule_value
number
required

USD value attributed to schedule events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.

schedules
number
required

Whop pixel-attributed schedule events, last-click.

spend
number
required

The amount charged, in spend_currency.

spend_currency
string | null
required

The ISO 4217 currency code of all monetary metrics.

starts_at
string | null
required

When the ad group starts delivering, as an ISO 8601 timestamp. null when it starts as soon as it's active.

status
enum<string>
required

Whether the ad group is enabled. active and paused are set by you; rejected means it failed ad review.

Available options:
active,
paused,
rejected
Example:

"active"

submitted_application_value
number
required

USD value attributed to submit-application events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.

submitted_applications
number
required

Whop pixel-attributed submit-application events, last-click.

title
string | null
required

Display name of the ad group.

unique_click_through_rate
number | null
required

Unique clicks divided by impressions, between 0 and 1.

unique_clicks
number
required

The number of unique clicks.

updated_at
string
required

When the ad group was last updated, as an ISO 8601 timestamp.

viewed_content_value
number
required

USD value attributed to view-content events. Sums the value sent with each event, normalized to USD; events without a value contribute 0.

viewed_contents
number
required

Whop pixel-attributed view-content events, last-click.