@whop/cli 0.14.1 → 0.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.js +20781 -7474
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/whop-accounts/SKILL.md +195 -15
- package/skills/whop-ad-campaigns/SKILL.md +193 -15
- package/skills/whop-ad-groups/SKILL.md +258 -16
- package/skills/whop-ads/SKILL.md +190 -14
- package/skills/whop-api-keys/SKILL.md +113 -13
- package/skills/whop-app-builds/SKILL.md +68 -8
- package/skills/whop-apps/SKILL.md +135 -12
- package/skills/whop-audiences/SKILL.md +71 -8
- package/skills/whop-bounties/SKILL.md +104 -9
- package/skills/whop-bounty-submissions/SKILL.md +82 -9
- package/skills/whop-cards/SKILL.md +122 -12
- package/skills/whop-checkout-configurations/SKILL.md +64 -8
- package/skills/whop-deposits/SKILL.md +13 -5
- package/skills/whop-disputes/SKILL.md +86 -9
- package/skills/whop-events/SKILL.md +90 -8
- package/skills/whop-exports/SKILL.md +329 -7
- package/skills/whop-ledgers/SKILL.md +38 -6
- package/skills/whop-media/SKILL.md +28 -7
- package/skills/whop-members/SKILL.md +51 -6
- package/skills/whop-memberships/SKILL.md +137 -13
- package/skills/whop-notifications/SKILL.md +91 -12
- package/skills/whop-partners/SKILL.md +102 -12
- package/skills/whop-payouts/SKILL.md +130 -9
- package/skills/whop-people/SKILL.md +50 -6
- package/skills/whop-permissions/SKILL.md +8 -5
- package/skills/whop-plans/SKILL.md +152 -12
- package/skills/whop-products/SKILL.md +141 -13
- package/skills/whop-resolution-center-cases/SKILL.md +222 -17
- package/skills/whop-shipments/SKILL.md +66 -8
- package/skills/whop-social-accounts/SKILL.md +112 -11
- package/skills/whop-stats/SKILL.md +50 -6
- package/skills/whop-swaps/SKILL.md +63 -8
- package/skills/whop-team-members/SKILL.md +80 -9
- package/skills/whop-transfers/SKILL.md +67 -8
- package/skills/whop-users/SKILL.md +271 -18
- package/skills/whop-verifications/SKILL.md +51 -9
|
@@ -9,19 +9,261 @@ An Ad Group sits inside an [ad campaign](https://docs.whop.com/api-reference/bet
|
|
|
9
9
|
|
|
10
10
|
Use the Ad Groups API to create ad groups in campaigns, list or retrieve targeting and delivery settings, update budgets or targeting, delete groups that should stop running, and pause or resume delivery. It can also search the ad platform's targeting taxonomy for options to target and estimate how many people a draft targeting spec can reach.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
|
19
|
-
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
24
|
-
| `
|
|
25
|
-
| `
|
|
26
|
-
|
|
27
|
-
|
|
12
|
+
# whop ad-groups create
|
|
13
|
+
|
|
14
|
+
Create an Ad Group
|
|
15
|
+
|
|
16
|
+
## Options
|
|
17
|
+
|
|
18
|
+
| Flag | Type | Required | Default | Description |
|
|
19
|
+
|------|------|----------|---------|-------------|
|
|
20
|
+
| `--ad_campaign_id` | `string` | yes | | The ad campaign to create the ad group in, prefixed `adcamp_`. |
|
|
21
|
+
| `--audiences` | `object` | no | | Saved audiences to deliver to or exclude. Can't be combined with demographics.automatic. |
|
|
22
|
+
| `--bid_type` | `string` | no | | How delivery bids are set in the ad auction. Target-based strategies use `desired_cost_per_result`. |
|
|
23
|
+
| `--budget_amount` | `number` | no | | This ad group's budget, in the ad account's currency. Omit when the budget is set on the campaign instead. |
|
|
24
|
+
| `--budget_type` | `string` | no | | Whether budget_amount is spent per day (`daily`) or over the ad group's full run (`lifetime`). |
|
|
25
|
+
| `--conversion_event` | `unknown` | no | | The pixel event optimized for. A standard event, or any custom pixel event name. |
|
|
26
|
+
| `--conversion_location` | `string` | no | | Where the outcome being optimized for occurs, such as a website visit, social-profile visit, messaging conversation, ad interaction, or lead-form submission. The lead form itself is set on the ad. |
|
|
27
|
+
| `--demographics` | `object` | no | | Age, gender, and automatic-audience targeting. |
|
|
28
|
+
| `--desired_cost_per_result` | `number` | no | | Cost per result to aim for (`average_target`) or never exceed (`maximum_target`). |
|
|
29
|
+
| `--detailed_targeting` | `object` | no | | Interest, behavior, and demographic targeting, using categories from the ad platform's targeting taxonomy. At most 100 entries per section. Can't be combined with demographics.automatic, and unavailable to campaigns with special_ad_categories. |
|
|
30
|
+
| `--devices` | `object` | no | | Device platforms and operating systems to target. |
|
|
31
|
+
| `--dynamic_creative` | `boolean` | no | | Let the ad platform automatically mix and match this ad group's creatives and copy to find the best-performing combinations. Set at creation; can't be changed afterward. |
|
|
32
|
+
| `--ends_at` | `string` | no | | When the ad group stops delivering, as an ISO 8601 timestamp. Omit to run until paused. |
|
|
33
|
+
| `--frequency_cap` | `object` | no | | Cap on how often one person sees ads from this ad group. Only available with `reach` optimization. |
|
|
34
|
+
| `--languages` | `array` | no | | Languages to target, as ISO 639 codes such as `en` or `es`. Empty or omitted targets all languages. |
|
|
35
|
+
| `--message_apps` | `array` | no | | Apps the conversation opens in. Required when conversion_location is `messaging`. |
|
|
36
|
+
| `--minimum_daily_spend` | `number` | no | | Minimum the ad group tries to spend each day. |
|
|
37
|
+
| `--optimization_goal` | `string` | no | | The result the ad group's delivery is optimized to get the most of. |
|
|
38
|
+
| `--placements` | `unknown` | no | | `automatic` to let the ad platform choose placements, or the list of platforms and positions to target. Omit a platform's positions to target all of them.
|
|
39
|
+
|
|
40
|
+
Valid positions per platform:
|
|
41
|
+
|
|
42
|
+
- `facebook`: `feed`, `right_hand_column`, `marketplace`, `search`, `profile_feed`, `notification`, `story`, `instream_video`, `facebook_reels`, `facebook_reels_overlay`, `biz_disco_feed`
|
|
43
|
+
- `instagram`: `stream`, `story`, `explore`, `explore_home`, `reels`, `profile_feed`, `profile_reels`, `ig_search`
|
|
44
|
+
- `messenger`: `story`
|
|
45
|
+
- `audience_network`: `classic`, `rewarded_video`
|
|
46
|
+
- `threads`: `threads_stream`
|
|
47
|
+
- `whatsapp`: `status` |
|
|
48
|
+
| `--regions` | `object` | no | | Locations to target and exclude. |
|
|
49
|
+
| `--starts_at` | `string` | no | | When the ad group starts delivering, as an ISO 8601 timestamp. Omit to start as soon as it's active. |
|
|
50
|
+
| `--status` | `string` | no | | Initial status (default: `active`). |
|
|
51
|
+
| `--title` | `string` | no | | The display name of the ad group. |
|
|
52
|
+
| `--idempotency-key` | `string` | no | | A unique key that makes this request safe to retry. See [Idempotent requests](https://docs.whop.com/developer/api/idempotency). |
|
|
53
|
+
|
|
54
|
+
> Confirm with the user before executing this destructive command.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
# whop ad-groups delete
|
|
59
|
+
|
|
60
|
+
Delete an Ad Group
|
|
61
|
+
|
|
62
|
+
## Arguments
|
|
63
|
+
|
|
64
|
+
| Name | Type | Required | Description |
|
|
65
|
+
|------|------|----------|-------------|
|
|
66
|
+
| `id` | `string` | yes | The ad group ID. |
|
|
67
|
+
|
|
68
|
+
> Confirm with the user before executing this destructive command.
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
# whop ad-groups duplicate
|
|
73
|
+
|
|
74
|
+
Duplicate an Ad Group
|
|
75
|
+
|
|
76
|
+
## Arguments
|
|
77
|
+
|
|
78
|
+
| Name | Type | Required | Description |
|
|
79
|
+
|------|------|----------|-------------|
|
|
80
|
+
| `id` | `string` | yes | The ad group ID. |
|
|
81
|
+
|
|
82
|
+
## Options
|
|
83
|
+
|
|
84
|
+
| Flag | Type | Required | Default | Description |
|
|
85
|
+
|------|------|----------|---------|-------------|
|
|
86
|
+
| `--count` | `number` | no | | Number of copies to create (1-10). Defaults to 1. |
|
|
87
|
+
| `--preserve_engagement` | `boolean` | no | | Whether the copied ads keep the original posts' engagement (likes, comments, shares). Defaults to false. |
|
|
88
|
+
| `--target_ad_campaign_id` | `string` | no | | Campaign to duplicate into. Defaults to the ad group's own campaign. |
|
|
89
|
+
| `--idempotency-key` | `string` | no | | A unique key that makes this request safe to retry. See [Idempotent requests](https://docs.whop.com/developer/api/idempotency). |
|
|
90
|
+
|
|
91
|
+
> Confirm with the user before executing this destructive command.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
# whop ad-groups estimate_reach
|
|
96
|
+
|
|
97
|
+
Estimate Ad Group Reach
|
|
98
|
+
|
|
99
|
+
## Options
|
|
100
|
+
|
|
101
|
+
| Flag | Type | Required | Default | Description |
|
|
102
|
+
|------|------|----------|---------|-------------|
|
|
103
|
+
| `--account_id` | `string` | no | | Account to estimate on behalf of. Defaults to the authenticated account. |
|
|
104
|
+
| `--audiences` | `object` | no | | Saved audiences to deliver to or exclude. Can't be combined with demographics.automatic. |
|
|
105
|
+
| `--demographics` | `object` | no | | Age, gender, and automatic-audience targeting. |
|
|
106
|
+
| `--detailed_targeting` | `object` | no | | Interest, behavior, and demographic targeting, using categories from the ad platform's targeting taxonomy. At most 100 entries per section. Can't be combined with demographics.automatic, and unavailable to campaigns with special_ad_categories. |
|
|
107
|
+
| `--devices` | `object` | no | | Device platforms and operating systems to target. |
|
|
108
|
+
| `--languages` | `array` | no | | Languages to target, as ISO 639 codes such as `en` or `es`. Empty or omitted targets all languages. |
|
|
109
|
+
| `--platform` | `string` | yes | | The ad network the estimate runs on. |
|
|
110
|
+
| `--regions` | `object` | no | | Locations to target and exclude. |
|
|
111
|
+
| `--idempotency-key` | `string` | no | | A unique key that makes this request safe to retry. See [Idempotent requests](https://docs.whop.com/developer/api/idempotency). |
|
|
112
|
+
|
|
113
|
+
> Confirm with the user before executing this destructive command.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
# whop ad-groups get
|
|
118
|
+
|
|
119
|
+
Retrieve an Ad Group
|
|
120
|
+
|
|
121
|
+
## Arguments
|
|
122
|
+
|
|
123
|
+
| Name | Type | Required | Description |
|
|
124
|
+
|------|------|----------|-------------|
|
|
125
|
+
| `id` | `string` | yes | The ad group ID. |
|
|
126
|
+
|
|
127
|
+
## Options
|
|
128
|
+
|
|
129
|
+
| Flag | Type | Required | Default | Description |
|
|
130
|
+
|------|------|----------|---------|-------------|
|
|
131
|
+
| `--stats_from` | `string` | no | | Start of the stats window. |
|
|
132
|
+
| `--stats_to` | `string` | no | | End of the stats window. |
|
|
133
|
+
| `--time_zone` | `string` | no | | IANA timezone the stats window is interpreted in. Defaults to UTC. |
|
|
134
|
+
| `--attribution_model` | `string` | no | | 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. |
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
# whop ad-groups list
|
|
139
|
+
|
|
140
|
+
List Ad Groups
|
|
141
|
+
|
|
142
|
+
## Options
|
|
143
|
+
|
|
144
|
+
| Flag | Type | Required | Default | Description |
|
|
145
|
+
|------|------|----------|---------|-------------|
|
|
146
|
+
| `--account_id` | `string` | no | | Account whose ad groups to list. Defaults to the authenticated account. |
|
|
147
|
+
| `--ad_campaign_id` | `string` | no | | Filter to ad groups in this campaign. |
|
|
148
|
+
| `--ad_campaign_ids` | `array` | no | | Filter to ad groups in these campaigns (max 100). Repeat the parameter for each id (ad_campaign_ids=a&ad_campaign_ids=b). |
|
|
149
|
+
| `--status` | `string` | no | | Filter to ad groups with this status. |
|
|
150
|
+
| `--query` | `string` | no | | Filter ad groups by a title or ID substring. |
|
|
151
|
+
| `--order` | `string` | no | | 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. |
|
|
152
|
+
| `--direction` | `string` | no | | The sort direction. Defaults to desc. |
|
|
153
|
+
| `--created_before` | `string` | no | | Only return ad groups created before this timestamp. |
|
|
154
|
+
| `--created_after` | `string` | no | | Only return ad groups created after this timestamp. |
|
|
155
|
+
| `--stats_from` | `string` | no | | Start of the stats window. Defaults to all-time. |
|
|
156
|
+
| `--stats_to` | `string` | no | | End of the stats window. Defaults to now. |
|
|
157
|
+
| `--time_zone` | `string` | no | | 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. |
|
|
158
|
+
| `--attribution_model` | `string` | no | | 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. |
|
|
159
|
+
| `--first` | `number` | no | `20` | The number of ad groups to return. |
|
|
160
|
+
| `--after` | `string` | no | | Cursor to fetch the page after (from page_info.end_cursor). |
|
|
161
|
+
| `--last` | `number` | no | | The number of ad groups to return from the end of the range. |
|
|
162
|
+
| `--before` | `string` | no | | Cursor to fetch the page before (from page_info.start_cursor). |
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
# whop ad-groups pause
|
|
167
|
+
|
|
168
|
+
Pause an Ad Group
|
|
169
|
+
|
|
170
|
+
## Arguments
|
|
171
|
+
|
|
172
|
+
| Name | Type | Required | Description |
|
|
173
|
+
|------|------|----------|-------------|
|
|
174
|
+
| `id` | `string` | yes | The ad group ID. |
|
|
175
|
+
|
|
176
|
+
## Options
|
|
177
|
+
|
|
178
|
+
| Flag | Type | Required | Default | Description |
|
|
179
|
+
|------|------|----------|---------|-------------|
|
|
180
|
+
| `--idempotency-key` | `string` | no | | A unique key that makes this request safe to retry. See [Idempotent requests](https://docs.whop.com/developer/api/idempotency). |
|
|
181
|
+
|
|
182
|
+
> Confirm with the user before executing this destructive command.
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
# whop ad-groups targeting_options
|
|
187
|
+
|
|
188
|
+
Search Targeting Options
|
|
189
|
+
|
|
190
|
+
## Options
|
|
191
|
+
|
|
192
|
+
| Flag | Type | Required | Default | Description |
|
|
193
|
+
|------|------|----------|---------|-------------|
|
|
194
|
+
| `--account_id` | `string` | no | | Account to search on behalf of. Defaults to the authenticated account. |
|
|
195
|
+
| `--platform` | `string` | yes | | The ad network whose targeting taxonomy to search. |
|
|
196
|
+
| `--query` | `string` | no | | The search term. Blank browses the fixed lists; interests and locations return nothing without one. |
|
|
197
|
+
| `--types` | `array` | no | | Kinds of targeting options to search. Defaults to all of them. |
|
|
198
|
+
| `--location_types` | `array` | no | | Narrow location results to these kinds of places. Only applies when `types` includes `locations`. |
|
|
199
|
+
| `--country` | `string` | no | | Narrow location results to one country, as an ISO 3166-1 code such as `US`. Only applies when `types` includes `locations`. |
|
|
200
|
+
| `--limit` | `number` | no | `25` | Maximum number of results per requested type. |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
# whop ad-groups unpause
|
|
205
|
+
|
|
206
|
+
Unpause an Ad Group
|
|
207
|
+
|
|
208
|
+
## Arguments
|
|
209
|
+
|
|
210
|
+
| Name | Type | Required | Description |
|
|
211
|
+
|------|------|----------|-------------|
|
|
212
|
+
| `id` | `string` | yes | The ad group ID. |
|
|
213
|
+
|
|
214
|
+
## Options
|
|
215
|
+
|
|
216
|
+
| Flag | Type | Required | Default | Description |
|
|
217
|
+
|------|------|----------|---------|-------------|
|
|
218
|
+
| `--idempotency-key` | `string` | no | | A unique key that makes this request safe to retry. See [Idempotent requests](https://docs.whop.com/developer/api/idempotency). |
|
|
219
|
+
|
|
220
|
+
> Confirm with the user before executing this destructive command.
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
# whop ad-groups update
|
|
225
|
+
|
|
226
|
+
Update an Ad Group
|
|
227
|
+
|
|
228
|
+
## Arguments
|
|
229
|
+
|
|
230
|
+
| Name | Type | Required | Description |
|
|
231
|
+
|------|------|----------|-------------|
|
|
232
|
+
| `id` | `string` | yes | The ad group ID. |
|
|
233
|
+
|
|
234
|
+
## Options
|
|
235
|
+
|
|
236
|
+
| Flag | Type | Required | Default | Description |
|
|
237
|
+
|------|------|----------|---------|-------------|
|
|
238
|
+
| `--audiences` | `object` | no | | Saved audiences to deliver to or exclude. Can't be combined with demographics.automatic. |
|
|
239
|
+
| `--bid_type` | `string` | no | | How delivery bids are set in the ad auction. Target-based strategies use `desired_cost_per_result`. |
|
|
240
|
+
| `--budget_amount` | `number` | no | | This ad group's budget, in the ad account's currency. Omit when the budget is set on the campaign instead. |
|
|
241
|
+
| `--budget_type` | `string` | no | | Whether budget_amount is spent per day (`daily`) or over the ad group's full run (`lifetime`). |
|
|
242
|
+
| `--conversion_event` | `unknown` | no | | The pixel event optimized for. A standard event, or any custom pixel event name. |
|
|
243
|
+
| `--conversion_location` | `string` | no | | Where the outcome being optimized for occurs, such as a website visit, social-profile visit, messaging conversation, ad interaction, or lead-form submission. The lead form itself is set on the ad. |
|
|
244
|
+
| `--demographics` | `object` | no | | Age, gender, and automatic-audience targeting. |
|
|
245
|
+
| `--desired_cost_per_result` | `number` | no | | Cost per result to aim for (`average_target`) or never exceed (`maximum_target`). |
|
|
246
|
+
| `--detailed_targeting` | `object` | no | | Interest, behavior, and demographic targeting, using categories from the ad platform's targeting taxonomy. At most 100 entries per section. Can't be combined with demographics.automatic, and unavailable to campaigns with special_ad_categories. |
|
|
247
|
+
| `--devices` | `object` | no | | Device platforms and operating systems to target. |
|
|
248
|
+
| `--ends_at` | `string` | no | | When the ad group stops delivering, as an ISO 8601 timestamp. Omit to run until paused. |
|
|
249
|
+
| `--frequency_cap` | `object` | no | | Cap on how often one person sees ads from this ad group. Only available with `reach` optimization. |
|
|
250
|
+
| `--languages` | `array` | no | | Languages to target, as ISO 639 codes such as `en` or `es`. Empty or omitted targets all languages. |
|
|
251
|
+
| `--message_apps` | `array` | no | | Apps the conversation opens in. Required when conversion_location is `messaging`. |
|
|
252
|
+
| `--minimum_daily_spend` | `number` | no | | Minimum the ad group tries to spend each day. |
|
|
253
|
+
| `--optimization_goal` | `string` | no | | The result the ad group's delivery is optimized to get the most of. |
|
|
254
|
+
| `--placements` | `unknown` | no | | `automatic` to let the ad platform choose placements, or the list of platforms and positions to target. Omit a platform's positions to target all of them.
|
|
255
|
+
|
|
256
|
+
Valid positions per platform:
|
|
257
|
+
|
|
258
|
+
- `facebook`: `feed`, `right_hand_column`, `marketplace`, `search`, `profile_feed`, `notification`, `story`, `instream_video`, `facebook_reels`, `facebook_reels_overlay`, `biz_disco_feed`
|
|
259
|
+
- `instagram`: `stream`, `story`, `explore`, `explore_home`, `reels`, `profile_feed`, `profile_reels`, `ig_search`
|
|
260
|
+
- `messenger`: `story`
|
|
261
|
+
- `audience_network`: `classic`, `rewarded_video`
|
|
262
|
+
- `threads`: `threads_stream`
|
|
263
|
+
- `whatsapp`: `status` |
|
|
264
|
+
| `--regions` | `object` | no | | Locations to target and exclude. |
|
|
265
|
+
| `--starts_at` | `string` | no | | When the ad group starts delivering, as an ISO 8601 timestamp. Omit to start as soon as it's active. |
|
|
266
|
+
| `--status` | `string` | no | | Initial status (default: `active`). |
|
|
267
|
+
| `--title` | `string` | no | | The display name of the ad group. |
|
|
268
|
+
|
|
269
|
+
> Confirm with the user before executing this destructive command.
|
package/skills/whop-ads/SKILL.md
CHANGED
|
@@ -9,20 +9,196 @@ An Ad is the individual creative unit delivered by an [ad group](https://docs.wh
|
|
|
9
9
|
|
|
10
10
|
Use the Ads API to list ads for an account, create ads inside ad groups, retrieve or update creative details, delete ads that should stop running, and pause or resume delivery.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
|
19
|
-
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
| `
|
|
24
|
-
|
|
25
|
-
|
|
12
|
+
# whop ads create
|
|
13
|
+
|
|
14
|
+
Create an Ad
|
|
15
|
+
|
|
16
|
+
## Options
|
|
17
|
+
|
|
18
|
+
| Flag | Type | Required | Default | Description |
|
|
19
|
+
|------|------|----------|---------|-------------|
|
|
20
|
+
| `--ad_group` | `object` | no | | An inline ad group to create (same shape as POST /ad_groups, including ad_campaign_id). Creates the ad group and the ad together. Provide this OR ad_group_id. |
|
|
21
|
+
| `--ad_group_id` | `string` | no | | The existing ad group to create the ad in. Provide this OR ad_group, not both. |
|
|
22
|
+
| `--call_to_action` | `string` | no | | The call-to-action button shown on the ad. |
|
|
23
|
+
| `--creatives` | `array` | no | | The ad's creative assets. Each entry is an uploaded file id with an optional format; omit format for the original asset. Two or more entries with no format become a carousel (2-10 attachments), in order, sharing the ad's copy. |
|
|
24
|
+
| `--descriptions` | `array` | no | | The description variants shown on the ad. |
|
|
25
|
+
| `--headlines` | `array` | no | | The headline variants shown on the ad. |
|
|
26
|
+
| `--lead_form` | `object` | no | | Instant lead form for the ad. Only allowed when the ad group's conversion_location is an instant-form destination (instant_forms, instant_forms_and_messenger, website_and_instant_forms). Mutually exclusive with lead_form_id. |
|
|
27
|
+
| `--lead_form_id` | `string` | no | | Use an existing instant form instead of creating one — the form's platform ID, from a form already on the ad's Facebook page. Only allowed when the ad group's conversion_location is an instant-form destination. Mutually exclusive with lead_form. |
|
|
28
|
+
| `--messaging_config` | `object` | no | | Click-to-message welcome copy: the greeting (message) and the ice-breaker prompt (keyword). |
|
|
29
|
+
| `--multi_advertiser_ads` | `boolean` | no | | Whether the ad can appear alongside other advertisers' ads in the same unit. Defaults to true. |
|
|
30
|
+
| `--post_id` | `string` | no | | Promote an existing post instead of uploading creatives — a Facebook post or Instagram media id. Mutually exclusive with creatives. Pair with post_source. |
|
|
31
|
+
| `--post_source` | `string` | no | | Identifies the network that owns `post_id`. The source is inferred from the ID shape when omitted. |
|
|
32
|
+
| `--primary_texts` | `array` | no | | The primary text variants shown in the ad body. |
|
|
33
|
+
| `--social_accounts` | `array` | no | | The social accounts the ad runs under — a connected Facebook page and, optionally, an Instagram profile. |
|
|
34
|
+
| `--title` | `string` | no | | The display name of the ad. |
|
|
35
|
+
| `--url` | `string` | no | | The URL the ad links to. |
|
|
36
|
+
| `--url_parameters` | `object` | no | | Query parameters appended to the destination URL, keyed by parameter name. |
|
|
37
|
+
| `--idempotency-key` | `string` | no | | A unique key that makes this request safe to retry. See [Idempotent requests](https://docs.whop.com/developer/api/idempotency). |
|
|
38
|
+
|
|
39
|
+
> Confirm with the user before executing this destructive command.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
# whop ads delete
|
|
44
|
+
|
|
45
|
+
Delete an Ad
|
|
46
|
+
|
|
47
|
+
## Arguments
|
|
48
|
+
|
|
49
|
+
| Name | Type | Required | Description |
|
|
50
|
+
|------|------|----------|-------------|
|
|
51
|
+
| `id` | `string` | yes | The ad ID. |
|
|
52
|
+
|
|
53
|
+
> Confirm with the user before executing this destructive command.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
# whop ads duplicate
|
|
58
|
+
|
|
59
|
+
Duplicate an Ad
|
|
60
|
+
|
|
61
|
+
## Arguments
|
|
62
|
+
|
|
63
|
+
| Name | Type | Required | Description |
|
|
64
|
+
|------|------|----------|-------------|
|
|
65
|
+
| `id` | `string` | yes | The ad ID. |
|
|
66
|
+
|
|
67
|
+
## Options
|
|
68
|
+
|
|
69
|
+
| Flag | Type | Required | Default | Description |
|
|
70
|
+
|------|------|----------|---------|-------------|
|
|
71
|
+
| `--count` | `number` | no | | Number of copies to create (1-10). Defaults to 1. |
|
|
72
|
+
| `--preserve_engagement` | `boolean` | no | | Whether the copies keep the original post's engagement (likes, comments, shares). Defaults to false. |
|
|
73
|
+
| `--target_ad_group_id` | `string` | no | | Ad group to duplicate into. Defaults to the ad's own ad group. |
|
|
74
|
+
| `--idempotency-key` | `string` | no | | A unique key that makes this request safe to retry. See [Idempotent requests](https://docs.whop.com/developer/api/idempotency). |
|
|
75
|
+
|
|
76
|
+
> Confirm with the user before executing this destructive command.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
# whop ads get
|
|
81
|
+
|
|
82
|
+
Retrieve an Ad
|
|
83
|
+
|
|
84
|
+
## Arguments
|
|
85
|
+
|
|
86
|
+
| Name | Type | Required | Description |
|
|
87
|
+
|------|------|----------|-------------|
|
|
88
|
+
| `id` | `string` | yes | The ad ID. |
|
|
89
|
+
|
|
90
|
+
## Options
|
|
91
|
+
|
|
92
|
+
| Flag | Type | Required | Default | Description |
|
|
93
|
+
|------|------|----------|---------|-------------|
|
|
94
|
+
| `--stats_from` | `string` | no | | Start of the stats window. |
|
|
95
|
+
| `--stats_to` | `string` | no | | End of the stats window. |
|
|
96
|
+
| `--time_zone` | `string` | no | | IANA timezone the stats window is interpreted in. Defaults to UTC. |
|
|
97
|
+
| `--attribution_model` | `string` | no | | 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. |
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
# whop ads list
|
|
102
|
+
|
|
103
|
+
List Ads
|
|
104
|
+
|
|
105
|
+
## Options
|
|
106
|
+
|
|
107
|
+
| Flag | Type | Required | Default | Description |
|
|
108
|
+
|------|------|----------|---------|-------------|
|
|
109
|
+
| `--account_id` | `string` | no | | The account the ads belong to. Defaults to the account-scoped key's own account. |
|
|
110
|
+
| `--ad_campaign_id` | `string` | no | | Only return ads in this ad campaign. |
|
|
111
|
+
| `--ad_campaign_ids` | `array` | no | | Only return ads in these ad campaigns (max 100). Repeat the parameter for each id (ad_campaign_ids=a&ad_campaign_ids=b). |
|
|
112
|
+
| `--ad_group_id` | `string` | no | | Only return ads in this ad group. |
|
|
113
|
+
| `--ad_group_ids` | `array` | no | | Only return ads in these ad groups (max 100). Repeat the parameter for each id (ad_group_ids=a&ad_group_ids=b). |
|
|
114
|
+
| `--status` | `string` | no | | Only return ads with this status. |
|
|
115
|
+
| `--query` | `string` | no | | Filter ads by a title or ID substring. |
|
|
116
|
+
| `--order` | `string` | no | | 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. |
|
|
117
|
+
| `--direction` | `string` | no | | The sort direction. Defaults to desc. |
|
|
118
|
+
| `--created_before` | `string` | no | | Only return ads created before this timestamp. |
|
|
119
|
+
| `--created_after` | `string` | no | | Only return ads created after this timestamp. |
|
|
120
|
+
| `--stats_from` | `string` | no | | Start of the stats window. Defaults to all-time. |
|
|
121
|
+
| `--stats_to` | `string` | no | | End of the stats window. Defaults to now. |
|
|
122
|
+
| `--time_zone` | `string` | no | | 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. |
|
|
123
|
+
| `--attribution_model` | `string` | no | | 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. |
|
|
124
|
+
| `--first` | `number` | no | `20` | The number of ads to return. |
|
|
125
|
+
| `--after` | `string` | no | | Cursor to fetch the page after (from page_info.end_cursor). |
|
|
126
|
+
| `--last` | `number` | no | | The number of ads to return from the end of the range. |
|
|
127
|
+
| `--before` | `string` | no | | Cursor to fetch the page before (from page_info.start_cursor). |
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
# whop ads pause
|
|
132
|
+
|
|
133
|
+
Pause an Ad
|
|
134
|
+
|
|
135
|
+
## Arguments
|
|
136
|
+
|
|
137
|
+
| Name | Type | Required | Description |
|
|
138
|
+
|------|------|----------|-------------|
|
|
139
|
+
| `id` | `string` | yes | The ad ID. |
|
|
140
|
+
|
|
141
|
+
## Options
|
|
142
|
+
|
|
143
|
+
| Flag | Type | Required | Default | Description |
|
|
144
|
+
|------|------|----------|---------|-------------|
|
|
145
|
+
| `--idempotency-key` | `string` | no | | A unique key that makes this request safe to retry. See [Idempotent requests](https://docs.whop.com/developer/api/idempotency). |
|
|
146
|
+
|
|
147
|
+
> Confirm with the user before executing this destructive command.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
# whop ads unpause
|
|
152
|
+
|
|
153
|
+
Unpause an Ad
|
|
154
|
+
|
|
155
|
+
## Arguments
|
|
156
|
+
|
|
157
|
+
| Name | Type | Required | Description |
|
|
158
|
+
|------|------|----------|-------------|
|
|
159
|
+
| `id` | `string` | yes | The ad ID. |
|
|
160
|
+
|
|
161
|
+
## Options
|
|
162
|
+
|
|
163
|
+
| Flag | Type | Required | Default | Description |
|
|
164
|
+
|------|------|----------|---------|-------------|
|
|
165
|
+
| `--idempotency-key` | `string` | no | | A unique key that makes this request safe to retry. See [Idempotent requests](https://docs.whop.com/developer/api/idempotency). |
|
|
166
|
+
|
|
167
|
+
> Confirm with the user before executing this destructive command.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
# whop ads update
|
|
172
|
+
|
|
173
|
+
Update an Ad
|
|
174
|
+
|
|
175
|
+
## Arguments
|
|
176
|
+
|
|
177
|
+
| Name | Type | Required | Description |
|
|
178
|
+
|------|------|----------|-------------|
|
|
179
|
+
| `id` | `string` | yes | The ad ID. |
|
|
180
|
+
|
|
181
|
+
## Options
|
|
182
|
+
|
|
183
|
+
| Flag | Type | Required | Default | Description |
|
|
184
|
+
|------|------|----------|---------|-------------|
|
|
185
|
+
| `--call_to_action` | `string` | no | | The call-to-action button shown on the ad. |
|
|
186
|
+
| `--creatives` | `array` | no | | The ad's creative assets. Each entry is an uploaded file id with an optional format; omit format for the original asset. Replaces a live ad's creative on the platform. Two or more entries with no format replace it with a carousel (2-10 attachments), in order, sharing the ad's copy. |
|
|
187
|
+
| `--descriptions` | `array` | no | | The description variants shown on the ad. |
|
|
188
|
+
| `--headlines` | `array` | no | | The headline variants shown on the ad. |
|
|
189
|
+
| `--lead_form` | `object` | no | | Instant lead form for the ad. Only allowed when the ad group's conversion_location is an instant-form destination (instant_forms, instant_forms_and_messenger, website_and_instant_forms). Mutually exclusive with lead_form_id. |
|
|
190
|
+
| `--lead_form_id` | `string` | no | | Use an existing instant form instead of creating one — the form's platform ID, from a form already on the ad's Facebook page. Only allowed when the ad group's conversion_location is an instant-form destination. Mutually exclusive with lead_form. Replaces a stored lead_form. |
|
|
191
|
+
| `--messaging_config` | `object` | no | | Click-to-message welcome copy: the greeting (message) and the ice-breaker prompt (keyword). |
|
|
192
|
+
| `--multi_advertiser_ads` | `boolean` | no | | Whether the ad can appear alongside other advertisers' ads in the same unit. Defaults to true. |
|
|
193
|
+
| `--post_id` | `string` | no | | Promote an existing post instead of uploading creatives — a Facebook post or Instagram media id. Mutually exclusive with creatives. Pair with post_source. |
|
|
194
|
+
| `--post_source` | `string` | no | | Identifies the network that owns `post_id`. The source is inferred from the ID shape when omitted. |
|
|
195
|
+
| `--primary_texts` | `array` | no | | The primary text variants shown in the ad body. |
|
|
196
|
+
| `--social_accounts` | `array` | no | | The social accounts the ad runs under — a connected Facebook page and, optionally, an Instagram profile. |
|
|
197
|
+
| `--title` | `string` | no | | The display name of the ad. |
|
|
198
|
+
| `--url` | `string` | no | | The URL the ad links to. |
|
|
199
|
+
| `--url_parameters` | `object` | no | | Query parameters appended to the destination URL, keyed by parameter name. |
|
|
200
|
+
|
|
201
|
+
> Confirm with the user before executing this destructive command.
|
|
26
202
|
|
|
27
203
|
## Launch playbook — from nothing to a live ad
|
|
28
204
|
|
|
@@ -9,16 +9,116 @@ An API Key is a programmatic credential owned by an account or app. Each key car
|
|
|
9
9
|
|
|
10
10
|
Use the API Keys API to list an account or app's keys, create a key (the full secret is returned once, on creation), inspect a key's effective grants, update its name or restrictions, rotate its secret, and revoke it. These endpoints require a user session — they cannot be called with an API key.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
|
19
|
-
|
|
20
|
-
| `
|
|
21
|
-
| `
|
|
22
|
-
| `
|
|
23
|
-
|
|
24
|
-
|
|
12
|
+
# whop api-keys create
|
|
13
|
+
|
|
14
|
+
Create API Key
|
|
15
|
+
|
|
16
|
+
## Options
|
|
17
|
+
|
|
18
|
+
| Flag | Type | Required | Default | Description |
|
|
19
|
+
|------|------|----------|---------|-------------|
|
|
20
|
+
| `--expires_at` | `unknown` | no | | When the API key should stop working, as an ISO 8601 timestamp. Omit (or pass `null` on update) for a key that never expires. |
|
|
21
|
+
| `--ip_allowlist` | `unknown` | no | | IPv4/IPv6 CIDR ranges allowed to use this key, for example `["203.0.113.0/24"]`. Empty or `null` allows any IP. |
|
|
22
|
+
| `--name` | `string` | yes | | A human-readable name for the API key, such as 'Production API Key'. |
|
|
23
|
+
| `--permissions` | `object` | yes | | The permissions policy for the API key: explicit permission statements, or a system role to inherit from. Statements without a `resources` array default to the owning account (Account API keys) or every key-addressable resource (App API keys). |
|
|
24
|
+
| `--resource_id` | `string` | yes | | The account (`biz_`) or app (`app_`) tag to create the API key for. |
|
|
25
|
+
| `--resource_type` | `string` | yes | | The type of resource that will own this API key. |
|
|
26
|
+
| `--idempotency-key` | `string` | no | | A unique key that makes this request safe to retry. See [Idempotent requests](https://docs.whop.com/developer/api/idempotency). |
|
|
27
|
+
|
|
28
|
+
> Confirm with the user before executing this destructive command.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
# whop api-keys delete
|
|
33
|
+
|
|
34
|
+
Delete API Key
|
|
35
|
+
|
|
36
|
+
## Arguments
|
|
37
|
+
|
|
38
|
+
| Name | Type | Required | Description |
|
|
39
|
+
|------|------|----------|-------------|
|
|
40
|
+
| `id` | `string` | yes | API key ID, prefixed `apik_`. |
|
|
41
|
+
|
|
42
|
+
> Confirm with the user before executing this destructive command.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
# whop api-keys get
|
|
47
|
+
|
|
48
|
+
Retrieve API Key
|
|
49
|
+
|
|
50
|
+
## Arguments
|
|
51
|
+
|
|
52
|
+
| Name | Type | Required | Description |
|
|
53
|
+
|------|------|----------|-------------|
|
|
54
|
+
| `id` | `string` | yes | API key ID, prefixed `apik_`. |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
# whop api-keys list
|
|
59
|
+
|
|
60
|
+
List API Keys
|
|
61
|
+
|
|
62
|
+
## Options
|
|
63
|
+
|
|
64
|
+
| Flag | Type | Required | Default | Description |
|
|
65
|
+
|------|------|----------|---------|-------------|
|
|
66
|
+
| `--resource_id` | `string` | yes | | The account (`biz_`) or app (`app_`) tag to list API keys for. |
|
|
67
|
+
| `--resource_type` | `string` | yes | | The type of resource that owns the API keys. |
|
|
68
|
+
| `--created_before` | `number` | no | | Only return API keys created before this ISO 8601 timestamp. |
|
|
69
|
+
| `--created_after` | `number` | no | | Only return API keys created after this ISO 8601 timestamp. |
|
|
70
|
+
| `--first` | `number` | no | | The number of API keys to return (default 20, max 100). |
|
|
71
|
+
| `--after` | `string` | no | | A cursor; returns API keys after this position. |
|
|
72
|
+
| `--last` | `number` | no | | The number of API keys to return from the end of the range. |
|
|
73
|
+
| `--before` | `string` | no | | A cursor; returns API keys before this position. |
|
|
74
|
+
| `--order` | `string` | no | | The field to sort API keys by. |
|
|
75
|
+
| `--direction` | `string` | no | | Sort direction. |
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
# whop api-keys permissions
|
|
80
|
+
|
|
81
|
+
List the Permission Catalog
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
# whop api-keys rotate
|
|
86
|
+
|
|
87
|
+
Rotate API Key
|
|
88
|
+
|
|
89
|
+
## Arguments
|
|
90
|
+
|
|
91
|
+
| Name | Type | Required | Description |
|
|
92
|
+
|------|------|----------|-------------|
|
|
93
|
+
| `id` | `string` | yes | API key ID, prefixed `apik_`. |
|
|
94
|
+
|
|
95
|
+
## Options
|
|
96
|
+
|
|
97
|
+
| Flag | Type | Required | Default | Description |
|
|
98
|
+
|------|------|----------|---------|-------------|
|
|
99
|
+
| `--idempotency-key` | `string` | no | | A unique key that makes this request safe to retry. See [Idempotent requests](https://docs.whop.com/developer/api/idempotency). |
|
|
100
|
+
|
|
101
|
+
> Confirm with the user before executing this destructive command.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
# whop api-keys update
|
|
106
|
+
|
|
107
|
+
Update API Key
|
|
108
|
+
|
|
109
|
+
## Arguments
|
|
110
|
+
|
|
111
|
+
| Name | Type | Required | Description |
|
|
112
|
+
|------|------|----------|-------------|
|
|
113
|
+
| `id` | `string` | yes | API key ID, prefixed `apik_`. |
|
|
114
|
+
|
|
115
|
+
## Options
|
|
116
|
+
|
|
117
|
+
| Flag | Type | Required | Default | Description |
|
|
118
|
+
|------|------|----------|---------|-------------|
|
|
119
|
+
| `--expires_at` | `unknown` | no | | When the API key should stop working, as an ISO 8601 timestamp. Omit (or pass `null` on update) for a key that never expires. |
|
|
120
|
+
| `--ip_allowlist` | `unknown` | no | | IPv4/IPv6 CIDR ranges allowed to use this key, for example `["203.0.113.0/24"]`. Empty or `null` allows any IP. |
|
|
121
|
+
| `--name` | `unknown` | no | | A new human-readable name for the API key. |
|
|
122
|
+
| `--permissions` | `object` | no | | The permissions policy for the API key: explicit permission statements, or a system role to inherit from. Statements without a `resources` array default to the owning account (Account API keys) or every key-addressable resource (App API keys). |
|
|
123
|
+
|
|
124
|
+
> Confirm with the user before executing this destructive command.
|