OpenAPI 3.1.02026-08-143874115.7 MB

a84d4905fdbb

Ads

List Ads

Lists the ads for an account, with stats over the requested window.

get/ads

Query parameters

account_idstring

The account the ads belong to. Defaults to the account-scoped key's own account.

ad_campaign_idstring

Only return ads in this ad campaign.

ad_campaign_idsstring[]

Only return ads in these ad campaigns (max 100). Repeat the parameter for each id (ad_campaign_ids=a&ad_campaign_ids=b).

[
  "adcamp_xxxxxxxxxxxxxx"
]
ad_group_idstring

Only return ads in this ad group.

ad_group_idsstring[]

Only return ads in these ad groups (max 100). Repeat the parameter for each id (ad_group_ids=a&ad_group_ids=b).

[
  "adgrp_xxxxxxxxxxxxxx"
]
status'active' | 'paused' | 'in_review' | 'rejected'

Only return ads with this status.

querystring

Filter ads by a title or ID substring.

order'created_at' | 'updated_at' | 'spend' | 'impressions' | 'reach' | 'clicks' | 'unique_clicks' | 'frequency' | 'click_through_rate' | 'results' | 'cost_per_mille' | 'cost_per_click' | 'cost_per_result' | 'return_on_ad_spend'

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.

direction'asc' | 'desc'

The sort direction. Defaults to desc.

created_beforestring

Only return ads created before this timestamp.

created_afterstring

Only return ads created after this timestamp.

stats_fromstring

Start of the stats window. Defaults to all-time.

stats_tostring

End of the stats window. Defaults to now.

time_zonestring

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'last_touch' | 'first_touch'

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.

firstinteger

The number of ads to return.

afterstring

Cursor to fetch the page after (from page_info.end_cursor).

lastinteger

The number of ads to return from the end of the range.

beforestring

Cursor to fetch the page before (from page_info.start_cursor).

Response

ads listed

Example response

{
  "data": [
    {
      "ad_campaign": {
        "id": "adcamp_xxxxxxxxxxxxxx"
      },
      "ad_group": {
        "id": "adcamp_xxxxxxxxxxxxxx"
      },
      "added_to_cart_value": 1850,
      "added_to_carts": 74,
      "call_to_action": "learn_more",
      "click_through_rate": 0.0261,
      "clicks": 1337,
      "completed_registration_value": 95,
      "completed_registrations": 19,
      "contact_value": 175,
      "contacts": 27,
      "cost_per_added_to_cart": 6.515675675675676,
      "cost_per_click": 0.36,
      "cost_per_completed_registration": 25.37684210526316,
      "cost_per_contact": 17.85777777777778,
      "cost_per_lead": 3.984793388429752,
      "cost_per_mille": 9.42,
      "cost_per_purchase": 12.68842105263158,
      "cost_per_result": 7.653333333333333,
      "cost_per_schedule": 10.48173913043478,
      "cost_per_submitted_application": 40.18,
      "cost_per_unique_click": 0.48,
      "cost_per_viewed_content": 0.2253084112149533,
      "created_at": "2026-01-01T12:00:00.000Z",
      "creatives": [
        {
          "crop": {
            "height": 1000,
            "width": 1000,
            "x": 40
          },
          "format": "vertical",
          "id": "file_xxxxxxxxxxxxxx",
          "media_type": "image",
          "url": "https://assets-2-rough.whop.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
        }
      ],
      "custom_conversions": 63,
      "custom_event_counts": {
        "booked_detail": 63
      },
      "custom_event_values": {
        "booked_detail": 4820
      },
      "delivery_status": "paused",
      "descriptions": [
        "Paint correction included"
      ],
      "headlines": [
        "Austin's mobile detailers"
      ],
      "id": "ad_xxxxxxxxxxxxxx",
      "impressions": 51204,
      "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"
        }
      ],
      "lead_form": {
        "completion": {
          "button_text": "See our work",
          "description": "We book coatings two days out, so pick a slot when we ring.",
          "headline": "Thanks — we will call you today",
          "url": "https://shinetime.example/gallery"
        },
        "disclaimer": {
          "body": "Ceramic coating requires the vehicle for two days.",
          "checkboxes": [
            {
              "key": "consent_1",
              "required": true,
              "text": "I agree"
            }
          ],
          "title": "Before you submit"
        },
        "form_type": "higher_intent",
        "intro": {
          "description": "Tell us about your vehicle and we will send a fixed price.",
          "headline": "Get a ceramic coating quote"
        },
        "name": "Ceramic coating quote requests",
        "phone_verification": true,
        "privacy_policy": {
          "link_text": "Shine Time privacy policy",
          "url": "https://shinetime.example/privacy"
        },
        "questions": [
          {
            "format": "multiple_choice",
            "label": "What vehicle are we detailing?",
            "options": [
              {
                "key": "ceramic_coating",
                "logic": {
                  "action": "go_to_question",
                  "target_question_index": 3
                },
                "value": "Ceramic coating"
              }
            ],
            "type": "custom"
          }
        ]
      },
      "lead_form_id": "1037724182084885",
      "lead_value": 1180,
      "leads": 121,
      "messaging_config": {
        "keyword": "Book an interior deep clean",
        "message": "Hi! Tell us your vehicle and ZIP and we will send an interior deep clean quote."
      },
      "multi_advertiser_ads": true,
      "post_id": "xxxxxxxxxxxxxxxx_98765",
      "post_source": "facebook",
      "post_thumbnail_url": "https://assets-2-rough.whop.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "primary_texts": [
        "Book a two-day ceramic coating and keep the shine for three years."
      ],
      "purchase_value": 9462,
      "purchases": 38,
      "result_event": "custom",
      "result_event_name": "booked_detail",
      "results": 63,
      "return_on_ad_spend": 19.62419113987058,
      "schedule_value": 640,
      "schedules": 46,
      "social_accounts": [
        {
          "id": "adcamp_xxxxxxxxxxxxxx"
        }
      ],
      "spend": 482.16,
      "spend_currency": "usd",
      "status": "paused",
      "submitted_application_value": 300,
      "submitted_applications": 12,
      "title": "Ceramic coating — new ad group",
      "unique_clicks": 1012,
      "updated_at": "2026-01-01T12:00:00.000Z",
      "url": "https://shinetime.example/ceramic-coating",
      "url_parameters": {},
      "viewed_contents": 2140
    }
  ],
  "page_info": {
    "end_cursor": "WyJjdXJzb3IiLDFd",
    "start_cursor": "WyJjdXJzb3IiLDFd"
  }
}