@whop/cli 0.31.0 → 0.32.0
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 +3 -3
- package/dist/index.js +303 -1017
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/whop/SKILL.md +2 -2
package/dist/index.js
CHANGED
|
@@ -14152,7 +14152,7 @@ var native_spec_default = {
|
|
|
14152
14152
|
termsOfService: "https://whop.com/tos-developer-api/",
|
|
14153
14153
|
title: "Whop API",
|
|
14154
14154
|
version: "1.0.0",
|
|
14155
|
-
"x-api-version-date": "2026-10-29-
|
|
14155
|
+
"x-api-version-date": "2026-10-29-8"
|
|
14156
14156
|
},
|
|
14157
14157
|
servers: [
|
|
14158
14158
|
{
|
|
@@ -14391,11 +14391,6 @@ var native_spec_default = {
|
|
|
14391
14391
|
name: "Ad Pixels",
|
|
14392
14392
|
"x-whop-summary": "Your own pixels that receive conversions from campaigns you claimed."
|
|
14393
14393
|
},
|
|
14394
|
-
{
|
|
14395
|
-
description: "A conversion value rule changes the conversion values Whop sends to ad networks while Whop keeps recording the accurate values. Each rule belongs to an account and applies one value adjustment to a set of targets (the account, an ad campaign, an ad group, or an ad) and events. Every selected event applies to every selected target, and the most specific rule applies.\n\nUse the Ad Conversion Value Rules API to create, edit, pause, resume, and delete rules, and to find the rules that cover a campaign, ad group, or ad. Each write succeeds or fails as one transaction, and each conversion send uses the rules saved at that moment.\n",
|
|
14396
|
-
name: "Ad Conversion Value Rules",
|
|
14397
|
-
"x-whop-summary": "Modify how conversion events are delivered to ad networks."
|
|
14398
|
-
},
|
|
14399
14394
|
{
|
|
14400
14395
|
description: "Stats represent aggregated activity for an account over time. They help you understand revenue, transactions, disputes, members, referrals, and advertising performance across reporting periods like days, weeks, or months.\n\nUse the Stats API to list the metrics you can chart and retrieve one as a time series over a date range, or list reports and retrieve aggregates that are not bucketed over time, such as platform-wide payment trends.\n",
|
|
14401
14396
|
name: "Stats",
|
|
@@ -14531,6 +14526,7 @@ var native_spec_default = {
|
|
|
14531
14526
|
"Payouts",
|
|
14532
14527
|
"Ledgers",
|
|
14533
14528
|
"Cards",
|
|
14529
|
+
"Capital",
|
|
14534
14530
|
"Cashback Rules",
|
|
14535
14531
|
"Swaps",
|
|
14536
14532
|
"Trades",
|
|
@@ -14568,14 +14564,7 @@ var native_spec_default = {
|
|
|
14568
14564
|
{
|
|
14569
14565
|
description: "Run and measure ad campaigns from your integration.",
|
|
14570
14566
|
name: "Ads",
|
|
14571
|
-
tags: [
|
|
14572
|
-
"Ad Campaigns",
|
|
14573
|
-
"Ad Groups",
|
|
14574
|
-
"Ads",
|
|
14575
|
-
"Audiences",
|
|
14576
|
-
"Ad Pixels",
|
|
14577
|
-
"Ad Conversion Value Rules"
|
|
14578
|
-
]
|
|
14567
|
+
tags: ["Ad Campaigns", "Ad Groups", "Ads", "Audiences", "Ad Pixels"]
|
|
14579
14568
|
},
|
|
14580
14569
|
{
|
|
14581
14570
|
description: "Who visits, what converts, and how an account is performing.",
|
|
@@ -20483,704 +20472,6 @@ var native_spec_default = {
|
|
|
20483
20472
|
]
|
|
20484
20473
|
}
|
|
20485
20474
|
},
|
|
20486
|
-
"/ad_conversion_value_rules": {
|
|
20487
|
-
get: {
|
|
20488
|
-
description: "Lists the conversion value rules you can read.",
|
|
20489
|
-
operationId: "list",
|
|
20490
|
-
parameters: [
|
|
20491
|
-
{
|
|
20492
|
-
$ref: "#/components/parameters/ApiVersionDate"
|
|
20493
|
-
},
|
|
20494
|
-
{
|
|
20495
|
-
description: "Only rules belonging to this account, prefixed `biz_`.",
|
|
20496
|
-
in: "query",
|
|
20497
|
-
name: "account_id",
|
|
20498
|
-
required: false,
|
|
20499
|
-
schema: {
|
|
20500
|
-
type: "string"
|
|
20501
|
-
}
|
|
20502
|
-
},
|
|
20503
|
-
{
|
|
20504
|
-
in: "query",
|
|
20505
|
-
name: "status",
|
|
20506
|
-
required: false,
|
|
20507
|
-
schema: {
|
|
20508
|
-
enum: ["active", "paused"],
|
|
20509
|
-
type: "string"
|
|
20510
|
-
}
|
|
20511
|
-
},
|
|
20512
|
-
{
|
|
20513
|
-
in: "query",
|
|
20514
|
-
name: "platform",
|
|
20515
|
-
required: false,
|
|
20516
|
-
schema: {
|
|
20517
|
-
enum: ["tiktok", "meta", "google"],
|
|
20518
|
-
type: "string"
|
|
20519
|
-
}
|
|
20520
|
-
},
|
|
20521
|
-
{
|
|
20522
|
-
description: "Campaign, ad group, or ad ID. Return rules covering this item, its ancestors, or its descendants.",
|
|
20523
|
-
in: "query",
|
|
20524
|
-
name: "resource_id",
|
|
20525
|
-
required: false,
|
|
20526
|
-
schema: {
|
|
20527
|
-
type: "string"
|
|
20528
|
-
}
|
|
20529
|
-
},
|
|
20530
|
-
{
|
|
20531
|
-
description: "Number of results to return from the start of the range.",
|
|
20532
|
-
in: "query",
|
|
20533
|
-
name: "first",
|
|
20534
|
-
required: false,
|
|
20535
|
-
schema: {
|
|
20536
|
-
default: 20,
|
|
20537
|
-
maximum: 100,
|
|
20538
|
-
type: "integer"
|
|
20539
|
-
}
|
|
20540
|
-
},
|
|
20541
|
-
{
|
|
20542
|
-
description: "Return results after this cursor. Use `page_info.end_cursor` from the previous response to fetch the next page.",
|
|
20543
|
-
in: "query",
|
|
20544
|
-
name: "after",
|
|
20545
|
-
required: false,
|
|
20546
|
-
schema: {
|
|
20547
|
-
type: "string"
|
|
20548
|
-
}
|
|
20549
|
-
},
|
|
20550
|
-
{
|
|
20551
|
-
description: "Number of results to return from the end of the range.",
|
|
20552
|
-
in: "query",
|
|
20553
|
-
name: "last",
|
|
20554
|
-
required: false,
|
|
20555
|
-
schema: {
|
|
20556
|
-
maximum: 100,
|
|
20557
|
-
type: "integer"
|
|
20558
|
-
}
|
|
20559
|
-
},
|
|
20560
|
-
{
|
|
20561
|
-
description: "Return results before this cursor. Use `page_info.start_cursor` from the previous response to fetch the previous page.",
|
|
20562
|
-
in: "query",
|
|
20563
|
-
name: "before",
|
|
20564
|
-
required: false,
|
|
20565
|
-
schema: {
|
|
20566
|
-
type: "string"
|
|
20567
|
-
}
|
|
20568
|
-
},
|
|
20569
|
-
{
|
|
20570
|
-
in: "query",
|
|
20571
|
-
name: "order",
|
|
20572
|
-
required: false,
|
|
20573
|
-
schema: {
|
|
20574
|
-
enum: ["created_at"],
|
|
20575
|
-
type: "string"
|
|
20576
|
-
}
|
|
20577
|
-
},
|
|
20578
|
-
{
|
|
20579
|
-
in: "query",
|
|
20580
|
-
name: "direction",
|
|
20581
|
-
required: false,
|
|
20582
|
-
schema: {
|
|
20583
|
-
enum: ["asc", "desc"],
|
|
20584
|
-
type: "string"
|
|
20585
|
-
}
|
|
20586
|
-
}
|
|
20587
|
-
],
|
|
20588
|
-
responses: {
|
|
20589
|
-
"200": {
|
|
20590
|
-
content: {
|
|
20591
|
-
"application/json": {
|
|
20592
|
-
schema: {
|
|
20593
|
-
properties: {
|
|
20594
|
-
data: {
|
|
20595
|
-
items: {
|
|
20596
|
-
$ref: "#/components/schemas/AdConversionValueRule"
|
|
20597
|
-
},
|
|
20598
|
-
type: "array"
|
|
20599
|
-
},
|
|
20600
|
-
page_info: {
|
|
20601
|
-
properties: {
|
|
20602
|
-
end_cursor: {
|
|
20603
|
-
example: null,
|
|
20604
|
-
nullable: true,
|
|
20605
|
-
type: "string"
|
|
20606
|
-
},
|
|
20607
|
-
has_next_page: {
|
|
20608
|
-
example: false,
|
|
20609
|
-
type: "boolean"
|
|
20610
|
-
},
|
|
20611
|
-
has_previous_page: {
|
|
20612
|
-
example: false,
|
|
20613
|
-
type: "boolean"
|
|
20614
|
-
},
|
|
20615
|
-
start_cursor: {
|
|
20616
|
-
example: null,
|
|
20617
|
-
nullable: true,
|
|
20618
|
-
type: "string"
|
|
20619
|
-
}
|
|
20620
|
-
},
|
|
20621
|
-
required: [
|
|
20622
|
-
"start_cursor",
|
|
20623
|
-
"end_cursor",
|
|
20624
|
-
"has_next_page",
|
|
20625
|
-
"has_previous_page"
|
|
20626
|
-
],
|
|
20627
|
-
type: "object"
|
|
20628
|
-
}
|
|
20629
|
-
},
|
|
20630
|
-
required: ["data", "page_info"],
|
|
20631
|
-
type: "object"
|
|
20632
|
-
}
|
|
20633
|
-
}
|
|
20634
|
-
},
|
|
20635
|
-
description: "Rules"
|
|
20636
|
-
}
|
|
20637
|
-
},
|
|
20638
|
-
security: [
|
|
20639
|
-
{
|
|
20640
|
-
bearerAuth: ["ad_campaign:basic:read"]
|
|
20641
|
-
}
|
|
20642
|
-
],
|
|
20643
|
-
summary: "List conversion value rules",
|
|
20644
|
-
tags: ["Ad Conversion Value Rules"],
|
|
20645
|
-
"x-mint": {
|
|
20646
|
-
metadata: {
|
|
20647
|
-
title: "List Conversion Value Rules",
|
|
20648
|
-
sidebarTitle: "List Conversion Value Rules"
|
|
20649
|
-
}
|
|
20650
|
-
}
|
|
20651
|
-
},
|
|
20652
|
-
post: {
|
|
20653
|
-
description: "Creates one rule covering every selected target and event combination. Active rules cannot overlap for the same target and event. Customer prices and Whop revenue stay unchanged.",
|
|
20654
|
-
operationId: "create",
|
|
20655
|
-
parameters: [
|
|
20656
|
-
{
|
|
20657
|
-
$ref: "#/components/parameters/ApiVersionDate"
|
|
20658
|
-
},
|
|
20659
|
-
{
|
|
20660
|
-
$ref: "#/components/parameters/IdempotencyKey"
|
|
20661
|
-
}
|
|
20662
|
-
],
|
|
20663
|
-
requestBody: {
|
|
20664
|
-
content: {
|
|
20665
|
-
"application/json": {
|
|
20666
|
-
schema: {
|
|
20667
|
-
properties: {
|
|
20668
|
-
account_id: {
|
|
20669
|
-
description: "Business that owns the rule.",
|
|
20670
|
-
example: "biz_xxxxxxxxxxxxxx",
|
|
20671
|
-
type: "string"
|
|
20672
|
-
},
|
|
20673
|
-
adjustment_type: {
|
|
20674
|
-
enum: ["fixed", "percentage"],
|
|
20675
|
-
example: "fixed",
|
|
20676
|
-
type: "string"
|
|
20677
|
-
},
|
|
20678
|
-
events: {
|
|
20679
|
-
description: "Events adjusted on every selected target. A network that doesn't support a named custom event leaves it out.",
|
|
20680
|
-
items: {
|
|
20681
|
-
properties: {
|
|
20682
|
-
custom_name: {
|
|
20683
|
-
description: "Exact custom event name. Required for custom events; `null` for standard events.",
|
|
20684
|
-
nullable: true,
|
|
20685
|
-
type: "string"
|
|
20686
|
-
},
|
|
20687
|
-
event_name: {
|
|
20688
|
-
enum: [
|
|
20689
|
-
"purchase",
|
|
20690
|
-
"subscribe",
|
|
20691
|
-
"start_trial",
|
|
20692
|
-
"lead",
|
|
20693
|
-
"complete_registration",
|
|
20694
|
-
"submit_application",
|
|
20695
|
-
"schedule",
|
|
20696
|
-
"contact",
|
|
20697
|
-
"view_content",
|
|
20698
|
-
"add_to_cart",
|
|
20699
|
-
"custom"
|
|
20700
|
-
],
|
|
20701
|
-
example: "lead",
|
|
20702
|
-
type: "string"
|
|
20703
|
-
}
|
|
20704
|
-
},
|
|
20705
|
-
required: ["event_name"],
|
|
20706
|
-
type: "object"
|
|
20707
|
-
},
|
|
20708
|
-
maxItems: 100,
|
|
20709
|
-
minItems: 1,
|
|
20710
|
-
type: "array"
|
|
20711
|
-
},
|
|
20712
|
-
fixed_value: {
|
|
20713
|
-
nullable: true,
|
|
20714
|
-
properties: {
|
|
20715
|
-
amount: {
|
|
20716
|
-
description: "Decimal amount with at most 2 decimal places. Fixed values must be greater than 0 and at most 99999999.99.",
|
|
20717
|
-
example: "60.00",
|
|
20718
|
-
pattern: "^-?(?:[0-9]+(?:\\.[0-9]{1,2})?|\\.[0-9]{1,2})$",
|
|
20719
|
-
type: "string"
|
|
20720
|
-
},
|
|
20721
|
-
currency: {
|
|
20722
|
-
example: "usd",
|
|
20723
|
-
type: "string"
|
|
20724
|
-
}
|
|
20725
|
-
},
|
|
20726
|
-
required: ["amount", "currency"],
|
|
20727
|
-
type: "object"
|
|
20728
|
-
},
|
|
20729
|
-
metadata: {
|
|
20730
|
-
additionalProperties: {
|
|
20731
|
-
type: "string"
|
|
20732
|
-
},
|
|
20733
|
-
type: "object"
|
|
20734
|
-
},
|
|
20735
|
-
percentage_change: {
|
|
20736
|
-
description: "Signed percent change from negative 100 to 10000. The sent value cannot go below zero.",
|
|
20737
|
-
maximum: 1e4,
|
|
20738
|
-
minimum: -100,
|
|
20739
|
-
multipleOf: 0.01,
|
|
20740
|
-
nullable: true,
|
|
20741
|
-
type: "number"
|
|
20742
|
-
},
|
|
20743
|
-
replace_rule_ids: {
|
|
20744
|
-
description: "Exact IDs of active rules whose overlapping selections will be replaced. Other selections keep their values; remaining selections may split into separate rules. Broader rules remain as fallbacks for other items. Rules left with no selections are paused. Stale or incomplete conflict selections fail.",
|
|
20745
|
-
items: {
|
|
20746
|
-
type: "string"
|
|
20747
|
-
},
|
|
20748
|
-
maxItems: 1e3,
|
|
20749
|
-
type: "array",
|
|
20750
|
-
uniqueItems: true
|
|
20751
|
-
},
|
|
20752
|
-
status: {
|
|
20753
|
-
description: "Initial rule status. Defaults to active.",
|
|
20754
|
-
enum: ["active", "paused"],
|
|
20755
|
-
example: "active",
|
|
20756
|
-
type: "string"
|
|
20757
|
-
},
|
|
20758
|
-
targets: {
|
|
20759
|
-
description: "Targets sharing one scope. Each target covers every network Whop runs it on, and every selected event applies to every target. At most 500 target, network, and event combinations.",
|
|
20760
|
-
items: {
|
|
20761
|
-
properties: {
|
|
20762
|
-
resource_id: {
|
|
20763
|
-
description: "Campaign, ad group, or ad ID. Null for a business target.",
|
|
20764
|
-
nullable: true,
|
|
20765
|
-
type: "string"
|
|
20766
|
-
},
|
|
20767
|
-
scope: {
|
|
20768
|
-
enum: ["business", "campaign", "ad_group", "ad"],
|
|
20769
|
-
example: "business",
|
|
20770
|
-
type: "string"
|
|
20771
|
-
}
|
|
20772
|
-
},
|
|
20773
|
-
required: ["scope"],
|
|
20774
|
-
type: "object"
|
|
20775
|
-
},
|
|
20776
|
-
maxItems: 100,
|
|
20777
|
-
minItems: 1,
|
|
20778
|
-
type: "array"
|
|
20779
|
-
}
|
|
20780
|
-
},
|
|
20781
|
-
required: [
|
|
20782
|
-
"account_id",
|
|
20783
|
-
"adjustment_type",
|
|
20784
|
-
"targets",
|
|
20785
|
-
"events"
|
|
20786
|
-
],
|
|
20787
|
-
type: "object"
|
|
20788
|
-
}
|
|
20789
|
-
}
|
|
20790
|
-
}
|
|
20791
|
-
},
|
|
20792
|
-
responses: {
|
|
20793
|
-
"201": {
|
|
20794
|
-
content: {
|
|
20795
|
-
"application/json": {
|
|
20796
|
-
schema: {
|
|
20797
|
-
$ref: "#/components/schemas/AdConversionValueRule"
|
|
20798
|
-
}
|
|
20799
|
-
}
|
|
20800
|
-
},
|
|
20801
|
-
description: "Created"
|
|
20802
|
-
},
|
|
20803
|
-
"401": {
|
|
20804
|
-
description: "Unauthorized"
|
|
20805
|
-
},
|
|
20806
|
-
"403": {
|
|
20807
|
-
description: "Forbidden"
|
|
20808
|
-
},
|
|
20809
|
-
"409": {
|
|
20810
|
-
$ref: "#/components/responses/Conflict"
|
|
20811
|
-
}
|
|
20812
|
-
},
|
|
20813
|
-
security: [
|
|
20814
|
-
{
|
|
20815
|
-
bearerAuth: ["ad_campaign:update"]
|
|
20816
|
-
}
|
|
20817
|
-
],
|
|
20818
|
-
summary: "Create a conversion value rule",
|
|
20819
|
-
tags: ["Ad Conversion Value Rules"],
|
|
20820
|
-
"x-mint": {
|
|
20821
|
-
metadata: {
|
|
20822
|
-
title: "Create a Conversion Value Rule",
|
|
20823
|
-
sidebarTitle: "Create a Conversion Value Rule"
|
|
20824
|
-
}
|
|
20825
|
-
}
|
|
20826
|
-
}
|
|
20827
|
-
},
|
|
20828
|
-
"/ad_conversion_value_rules/{id}": {
|
|
20829
|
-
delete: {
|
|
20830
|
-
description: "Deletes a rule and deactivates all its coverage. The rule's stored settings are preserved.",
|
|
20831
|
-
operationId: "delete",
|
|
20832
|
-
responses: {
|
|
20833
|
-
"200": {
|
|
20834
|
-
content: {
|
|
20835
|
-
"application/json": {
|
|
20836
|
-
schema: {
|
|
20837
|
-
properties: {
|
|
20838
|
-
deleted: {
|
|
20839
|
-
example: true,
|
|
20840
|
-
type: "boolean"
|
|
20841
|
-
},
|
|
20842
|
-
id: {
|
|
20843
|
-
example: "adcvr_xxxxxxxxxxxxxx",
|
|
20844
|
-
type: "string"
|
|
20845
|
-
}
|
|
20846
|
-
},
|
|
20847
|
-
required: ["id", "deleted"],
|
|
20848
|
-
type: "object"
|
|
20849
|
-
}
|
|
20850
|
-
}
|
|
20851
|
-
},
|
|
20852
|
-
description: "Deleted"
|
|
20853
|
-
}
|
|
20854
|
-
},
|
|
20855
|
-
security: [
|
|
20856
|
-
{
|
|
20857
|
-
bearerAuth: ["ad_campaign:update"]
|
|
20858
|
-
}
|
|
20859
|
-
],
|
|
20860
|
-
summary: "Delete a conversion value rule",
|
|
20861
|
-
tags: ["Ad Conversion Value Rules"],
|
|
20862
|
-
"x-mint": {
|
|
20863
|
-
metadata: {
|
|
20864
|
-
title: "Delete a Conversion Value Rule",
|
|
20865
|
-
sidebarTitle: "Delete a Conversion Value Rule"
|
|
20866
|
-
}
|
|
20867
|
-
},
|
|
20868
|
-
parameters: [
|
|
20869
|
-
{
|
|
20870
|
-
$ref: "#/components/parameters/ApiVersionDate"
|
|
20871
|
-
},
|
|
20872
|
-
{
|
|
20873
|
-
description: "Conversion value rule ID, prefixed `adcvr_`.",
|
|
20874
|
-
in: "path",
|
|
20875
|
-
name: "id",
|
|
20876
|
-
required: true,
|
|
20877
|
-
schema: {
|
|
20878
|
-
type: "string"
|
|
20879
|
-
}
|
|
20880
|
-
}
|
|
20881
|
-
]
|
|
20882
|
-
},
|
|
20883
|
-
get: {
|
|
20884
|
-
description: "Retrieves a conversion value rule with its targets, events, and value adjustment.",
|
|
20885
|
-
operationId: "get",
|
|
20886
|
-
responses: {
|
|
20887
|
-
"200": {
|
|
20888
|
-
content: {
|
|
20889
|
-
"application/json": {
|
|
20890
|
-
schema: {
|
|
20891
|
-
$ref: "#/components/schemas/AdConversionValueRule"
|
|
20892
|
-
}
|
|
20893
|
-
}
|
|
20894
|
-
},
|
|
20895
|
-
description: "Rule"
|
|
20896
|
-
}
|
|
20897
|
-
},
|
|
20898
|
-
security: [
|
|
20899
|
-
{
|
|
20900
|
-
bearerAuth: ["ad_campaign:basic:read"]
|
|
20901
|
-
}
|
|
20902
|
-
],
|
|
20903
|
-
summary: "Retrieve a conversion value rule",
|
|
20904
|
-
tags: ["Ad Conversion Value Rules"],
|
|
20905
|
-
"x-mint": {
|
|
20906
|
-
metadata: {
|
|
20907
|
-
title: "Retrieve a Conversion Value Rule",
|
|
20908
|
-
sidebarTitle: "Retrieve a Conversion Value Rule"
|
|
20909
|
-
}
|
|
20910
|
-
},
|
|
20911
|
-
parameters: [
|
|
20912
|
-
{
|
|
20913
|
-
$ref: "#/components/parameters/ApiVersionDate"
|
|
20914
|
-
},
|
|
20915
|
-
{
|
|
20916
|
-
description: "Conversion value rule ID, prefixed `adcvr_`.",
|
|
20917
|
-
in: "path",
|
|
20918
|
-
name: "id",
|
|
20919
|
-
required: true,
|
|
20920
|
-
schema: {
|
|
20921
|
-
type: "string"
|
|
20922
|
-
}
|
|
20923
|
-
}
|
|
20924
|
-
]
|
|
20925
|
-
},
|
|
20926
|
-
patch: {
|
|
20927
|
-
description: "Edits a rule without changing its status. Supplied `targets` or `events` replace that selection in full, and omitted fields stay unchanged. All changes succeed or fail together.",
|
|
20928
|
-
operationId: "update",
|
|
20929
|
-
parameters: [
|
|
20930
|
-
{
|
|
20931
|
-
$ref: "#/components/parameters/ApiVersionDate"
|
|
20932
|
-
},
|
|
20933
|
-
{
|
|
20934
|
-
description: "Conversion value rule ID, prefixed `adcvr_`.",
|
|
20935
|
-
in: "path",
|
|
20936
|
-
name: "id",
|
|
20937
|
-
required: true,
|
|
20938
|
-
schema: {
|
|
20939
|
-
type: "string"
|
|
20940
|
-
}
|
|
20941
|
-
}
|
|
20942
|
-
],
|
|
20943
|
-
requestBody: {
|
|
20944
|
-
content: {
|
|
20945
|
-
"application/json": {
|
|
20946
|
-
schema: {
|
|
20947
|
-
properties: {
|
|
20948
|
-
adjustment_type: {
|
|
20949
|
-
enum: ["fixed", "percentage"],
|
|
20950
|
-
example: "fixed",
|
|
20951
|
-
type: "string"
|
|
20952
|
-
},
|
|
20953
|
-
events: {
|
|
20954
|
-
description: "Events adjusted on every selected target. A network that doesn't support a named custom event leaves it out.",
|
|
20955
|
-
items: {
|
|
20956
|
-
properties: {
|
|
20957
|
-
custom_name: {
|
|
20958
|
-
description: "Exact custom event name. Required for custom events; `null` for standard events.",
|
|
20959
|
-
nullable: true,
|
|
20960
|
-
type: "string"
|
|
20961
|
-
},
|
|
20962
|
-
event_name: {
|
|
20963
|
-
enum: [
|
|
20964
|
-
"purchase",
|
|
20965
|
-
"subscribe",
|
|
20966
|
-
"start_trial",
|
|
20967
|
-
"lead",
|
|
20968
|
-
"complete_registration",
|
|
20969
|
-
"submit_application",
|
|
20970
|
-
"schedule",
|
|
20971
|
-
"contact",
|
|
20972
|
-
"view_content",
|
|
20973
|
-
"add_to_cart",
|
|
20974
|
-
"custom"
|
|
20975
|
-
],
|
|
20976
|
-
example: "lead",
|
|
20977
|
-
type: "string"
|
|
20978
|
-
}
|
|
20979
|
-
},
|
|
20980
|
-
required: ["event_name"],
|
|
20981
|
-
type: "object"
|
|
20982
|
-
},
|
|
20983
|
-
maxItems: 100,
|
|
20984
|
-
minItems: 1,
|
|
20985
|
-
type: "array"
|
|
20986
|
-
},
|
|
20987
|
-
fixed_value: {
|
|
20988
|
-
nullable: true,
|
|
20989
|
-
properties: {
|
|
20990
|
-
amount: {
|
|
20991
|
-
description: "Decimal amount with at most 2 decimal places. Fixed values must be greater than 0 and at most 99999999.99.",
|
|
20992
|
-
example: "60.00",
|
|
20993
|
-
pattern: "^-?(?:[0-9]+(?:\\.[0-9]{1,2})?|\\.[0-9]{1,2})$",
|
|
20994
|
-
type: "string"
|
|
20995
|
-
},
|
|
20996
|
-
currency: {
|
|
20997
|
-
example: "usd",
|
|
20998
|
-
type: "string"
|
|
20999
|
-
}
|
|
21000
|
-
},
|
|
21001
|
-
required: ["amount", "currency"],
|
|
21002
|
-
type: "object"
|
|
21003
|
-
},
|
|
21004
|
-
metadata: {
|
|
21005
|
-
additionalProperties: {
|
|
21006
|
-
type: "string"
|
|
21007
|
-
},
|
|
21008
|
-
type: "object"
|
|
21009
|
-
},
|
|
21010
|
-
percentage_change: {
|
|
21011
|
-
description: "Signed percent change from negative 100 to 10000. The sent value cannot go below zero.",
|
|
21012
|
-
maximum: 1e4,
|
|
21013
|
-
minimum: -100,
|
|
21014
|
-
multipleOf: 0.01,
|
|
21015
|
-
nullable: true,
|
|
21016
|
-
type: "number"
|
|
21017
|
-
},
|
|
21018
|
-
replace_rule_ids: {
|
|
21019
|
-
description: "Exact IDs of active rules whose overlapping selections will be replaced. Other selections keep their values; remaining selections may split into separate rules. Broader rules remain as fallbacks for other items. Rules left with no selections are paused. Stale or incomplete conflict selections fail.",
|
|
21020
|
-
items: {
|
|
21021
|
-
type: "string"
|
|
21022
|
-
},
|
|
21023
|
-
maxItems: 1e3,
|
|
21024
|
-
type: "array",
|
|
21025
|
-
uniqueItems: true
|
|
21026
|
-
},
|
|
21027
|
-
targets: {
|
|
21028
|
-
description: "Targets sharing one scope. Each target covers every network Whop runs it on, and every selected event applies to every target. At most 500 target, network, and event combinations.",
|
|
21029
|
-
items: {
|
|
21030
|
-
properties: {
|
|
21031
|
-
resource_id: {
|
|
21032
|
-
description: "Campaign, ad group, or ad ID. Null for a business target.",
|
|
21033
|
-
nullable: true,
|
|
21034
|
-
type: "string"
|
|
21035
|
-
},
|
|
21036
|
-
scope: {
|
|
21037
|
-
enum: ["business", "campaign", "ad_group", "ad"],
|
|
21038
|
-
example: "business",
|
|
21039
|
-
type: "string"
|
|
21040
|
-
}
|
|
21041
|
-
},
|
|
21042
|
-
required: ["scope"],
|
|
21043
|
-
type: "object"
|
|
21044
|
-
},
|
|
21045
|
-
maxItems: 100,
|
|
21046
|
-
minItems: 1,
|
|
21047
|
-
type: "array"
|
|
21048
|
-
}
|
|
21049
|
-
},
|
|
21050
|
-
type: "object"
|
|
21051
|
-
}
|
|
21052
|
-
}
|
|
21053
|
-
}
|
|
21054
|
-
},
|
|
21055
|
-
responses: {
|
|
21056
|
-
"200": {
|
|
21057
|
-
content: {
|
|
21058
|
-
"application/json": {
|
|
21059
|
-
schema: {
|
|
21060
|
-
$ref: "#/components/schemas/AdConversionValueRule"
|
|
21061
|
-
}
|
|
21062
|
-
}
|
|
21063
|
-
},
|
|
21064
|
-
description: "Updated"
|
|
21065
|
-
}
|
|
21066
|
-
},
|
|
21067
|
-
security: [
|
|
21068
|
-
{
|
|
21069
|
-
bearerAuth: ["ad_campaign:update"]
|
|
21070
|
-
}
|
|
21071
|
-
],
|
|
21072
|
-
summary: "Update a conversion value rule",
|
|
21073
|
-
tags: ["Ad Conversion Value Rules"],
|
|
21074
|
-
"x-mint": {
|
|
21075
|
-
metadata: {
|
|
21076
|
-
title: "Update a Conversion Value Rule",
|
|
21077
|
-
sidebarTitle: "Update a Conversion Value Rule"
|
|
21078
|
-
}
|
|
21079
|
-
}
|
|
21080
|
-
}
|
|
21081
|
-
},
|
|
21082
|
-
"/ad_conversion_value_rules/{id}/pause": {
|
|
21083
|
-
post: {
|
|
21084
|
-
description: "Pauses the rule across all selected targets and events.",
|
|
21085
|
-
operationId: "pause",
|
|
21086
|
-
parameters: [
|
|
21087
|
-
{
|
|
21088
|
-
$ref: "#/components/parameters/ApiVersionDate"
|
|
21089
|
-
},
|
|
21090
|
-
{
|
|
21091
|
-
description: "Conversion value rule ID, prefixed `adcvr_`.",
|
|
21092
|
-
in: "path",
|
|
21093
|
-
name: "id",
|
|
21094
|
-
required: true,
|
|
21095
|
-
schema: {
|
|
21096
|
-
type: "string"
|
|
21097
|
-
}
|
|
21098
|
-
},
|
|
21099
|
-
{
|
|
21100
|
-
$ref: "#/components/parameters/IdempotencyKey"
|
|
21101
|
-
}
|
|
21102
|
-
],
|
|
21103
|
-
responses: {
|
|
21104
|
-
"200": {
|
|
21105
|
-
content: {
|
|
21106
|
-
"application/json": {
|
|
21107
|
-
schema: {
|
|
21108
|
-
$ref: "#/components/schemas/AdConversionValueRule"
|
|
21109
|
-
}
|
|
21110
|
-
}
|
|
21111
|
-
},
|
|
21112
|
-
description: "Rule"
|
|
21113
|
-
},
|
|
21114
|
-
"409": {
|
|
21115
|
-
$ref: "#/components/responses/Conflict"
|
|
21116
|
-
}
|
|
21117
|
-
},
|
|
21118
|
-
security: [
|
|
21119
|
-
{
|
|
21120
|
-
bearerAuth: ["ad_campaign:update"]
|
|
21121
|
-
}
|
|
21122
|
-
],
|
|
21123
|
-
summary: "Pause a conversion value rule",
|
|
21124
|
-
tags: ["Ad Conversion Value Rules"],
|
|
21125
|
-
"x-mint": {
|
|
21126
|
-
metadata: {
|
|
21127
|
-
title: "Pause a Conversion Value Rule",
|
|
21128
|
-
sidebarTitle: "Pause a Conversion Value Rule"
|
|
21129
|
-
}
|
|
21130
|
-
}
|
|
21131
|
-
}
|
|
21132
|
-
},
|
|
21133
|
-
"/ad_conversion_value_rules/{id}/unpause": {
|
|
21134
|
-
post: {
|
|
21135
|
-
description: "Resumes the rule and automatically replaces overlapping selections in the same transaction. Other selections keep their values, and broader rules remain as defaults. Rules with no remaining selections are paused. Resuming an already-active rule makes no changes.",
|
|
21136
|
-
operationId: "unpause",
|
|
21137
|
-
parameters: [
|
|
21138
|
-
{
|
|
21139
|
-
$ref: "#/components/parameters/ApiVersionDate"
|
|
21140
|
-
},
|
|
21141
|
-
{
|
|
21142
|
-
description: "Conversion value rule ID, prefixed `adcvr_`.",
|
|
21143
|
-
in: "path",
|
|
21144
|
-
name: "id",
|
|
21145
|
-
required: true,
|
|
21146
|
-
schema: {
|
|
21147
|
-
type: "string"
|
|
21148
|
-
}
|
|
21149
|
-
},
|
|
21150
|
-
{
|
|
21151
|
-
$ref: "#/components/parameters/IdempotencyKey"
|
|
21152
|
-
}
|
|
21153
|
-
],
|
|
21154
|
-
responses: {
|
|
21155
|
-
"200": {
|
|
21156
|
-
content: {
|
|
21157
|
-
"application/json": {
|
|
21158
|
-
schema: {
|
|
21159
|
-
$ref: "#/components/schemas/AdConversionValueRule"
|
|
21160
|
-
}
|
|
21161
|
-
}
|
|
21162
|
-
},
|
|
21163
|
-
description: "Rule"
|
|
21164
|
-
},
|
|
21165
|
-
"409": {
|
|
21166
|
-
$ref: "#/components/responses/Conflict"
|
|
21167
|
-
}
|
|
21168
|
-
},
|
|
21169
|
-
security: [
|
|
21170
|
-
{
|
|
21171
|
-
bearerAuth: ["ad_campaign:update"]
|
|
21172
|
-
}
|
|
21173
|
-
],
|
|
21174
|
-
summary: "Unpause a conversion value rule",
|
|
21175
|
-
tags: ["Ad Conversion Value Rules"],
|
|
21176
|
-
"x-mint": {
|
|
21177
|
-
metadata: {
|
|
21178
|
-
title: "Unpause a Conversion Value Rule",
|
|
21179
|
-
sidebarTitle: "Unpause a Conversion Value Rule"
|
|
21180
|
-
}
|
|
21181
|
-
}
|
|
21182
|
-
}
|
|
21183
|
-
},
|
|
21184
20475
|
"/ad_groups": {
|
|
21185
20476
|
get: {
|
|
21186
20477
|
description: "Lists ad groups for the account, newest first.",
|
|
@@ -22922,7 +22213,7 @@ var native_spec_default = {
|
|
|
22922
22213
|
},
|
|
22923
22214
|
"/ad_stats": {
|
|
22924
22215
|
post: {
|
|
22925
|
-
description: "Records a runner's stats for one of their ads in one hour, and pays them for the spend. Send the ad's totals so far for an hour that started in the last 24 hours; they replace what the ad held for that hour, and its ad group's and campaign's hours are rebuilt from their ads. The spend can go up but never down. Reporting on a campaign starts with the hour of its first recorded report; earlier hours are refused.
|
|
22216
|
+
description: "Records a runner's stats for one of their ads in one hour, and pays them for the spend. Send the ad's totals so far for an hour that started in the last 24 hours; they replace what the ad held for that hour, and its ad group's and campaign's hours are rebuilt from their ads. The spend can go up but never down. Reporting on a campaign starts with the hour of its first recorded report; earlier hours are refused. The spend is recorded and paid exactly as sent, with no markup added, so send it with the runner's markup already applied. Takes the runner's Whop session, a user API key, or a user OAuth token with `ad_campaign:update`. A token without that scope gets a 403, and anyone not holding the ad's campaign gets a 404.",
|
|
22926
22217
|
operationId: "report-stats",
|
|
22927
22218
|
parameters: [
|
|
22928
22219
|
{
|
|
@@ -22959,7 +22250,7 @@ var native_spec_default = {
|
|
|
22959
22250
|
type: ["integer", "string"]
|
|
22960
22251
|
},
|
|
22961
22252
|
spend: {
|
|
22962
|
-
description: "USD
|
|
22253
|
+
description: "The USD to be paid for the ad's hour so far, to the cent: what the ad spent plus any markup, such as 105.00 for 100.00 spent with a 5% markup.",
|
|
22963
22254
|
example: 75.5,
|
|
22964
22255
|
type: ["number", "string"]
|
|
22965
22256
|
}
|
|
@@ -22990,7 +22281,7 @@ var native_spec_default = {
|
|
|
22990
22281
|
}
|
|
22991
22282
|
}
|
|
22992
22283
|
},
|
|
22993
|
-
description: "
|
|
22284
|
+
description: "more clicks than impressions"
|
|
22994
22285
|
},
|
|
22995
22286
|
"401": {
|
|
22996
22287
|
$ref: "#/components/responses/Unauthorized",
|
|
@@ -33190,7 +32481,7 @@ var native_spec_default = {
|
|
|
33190
32481
|
},
|
|
33191
32482
|
"404": {
|
|
33192
32483
|
$ref: "#/components/responses/NotFound",
|
|
33193
|
-
description: "
|
|
32484
|
+
description: "no such dispute alert"
|
|
33194
32485
|
}
|
|
33195
32486
|
},
|
|
33196
32487
|
security: [
|
|
@@ -39579,9 +38870,8 @@ var native_spec_default = {
|
|
|
39579
38870
|
type: "string"
|
|
39580
38871
|
},
|
|
39581
38872
|
platform: {
|
|
39582
|
-
description: "The platform to connect the external account on. Use `
|
|
38873
|
+
description: "The platform to connect the external account on. Use `tiktok` to connect the authenticated user\u2019s TikTok profile, `linkedin` for their LinkedIn profile, `youtube` for their YouTube channel, or `x` for their X profile. Use `snapchat` for Snapchat Public Profiles. Use `quickbooks` to connect the account\u2019s QuickBooks Online company: pass `account_id`, omit `scopes`, and the user picks the company in QuickBooks.",
|
|
39583
38874
|
enum: [
|
|
39584
|
-
"meta_business",
|
|
39585
38875
|
"tiktok",
|
|
39586
38876
|
"linkedin",
|
|
39587
38877
|
"youtube",
|
|
@@ -39589,7 +38879,7 @@ var native_spec_default = {
|
|
|
39589
38879
|
"snapchat",
|
|
39590
38880
|
"quickbooks"
|
|
39591
38881
|
],
|
|
39592
|
-
example: "
|
|
38882
|
+
example: "snapchat",
|
|
39593
38883
|
type: "string"
|
|
39594
38884
|
},
|
|
39595
38885
|
redirect_url: {
|
|
@@ -39598,7 +38888,7 @@ var native_spec_default = {
|
|
|
39598
38888
|
type: "string"
|
|
39599
38889
|
},
|
|
39600
38890
|
scopes: {
|
|
39601
|
-
description: "The connection purpose. For `
|
|
38891
|
+
description: "The connection purpose. For `snapchat`, `advertise` is required and connects company advertising assets. For `linkedin`, `tiktok`, `youtube`, and `x`, omit scopes to connect the authenticated user\u2019s profile. For `quickbooks`, omit scopes; the connection belongs to the account in `account_id`. Profile connections still request the platform permissions needed to read the profile.",
|
|
39602
38892
|
items: {
|
|
39603
38893
|
enum: ["advertise"],
|
|
39604
38894
|
example: "advertise",
|
|
@@ -39622,7 +38912,7 @@ var native_spec_default = {
|
|
|
39622
38912
|
properties: {
|
|
39623
38913
|
authorize_url: {
|
|
39624
38914
|
description: "The OAuth authorization URL to redirect the user to.",
|
|
39625
|
-
example: "https://
|
|
38915
|
+
example: "https://accounts.snapchat.com/login/oauth2/authorize",
|
|
39626
38916
|
type: "string"
|
|
39627
38917
|
}
|
|
39628
38918
|
},
|
|
@@ -53856,7 +53146,7 @@ var native_spec_default = {
|
|
|
53856
53146
|
type: ["string", "null"]
|
|
53857
53147
|
},
|
|
53858
53148
|
email: {
|
|
53859
|
-
description: "The buyer's email, resolving or creating the user the payment belongs to. With `confirmation_token` it overrides the email the token carries, and is ignored when the token was created by a signed-in buyer; with a `card_present` `payment_method` it names a buyer the point of sale already knows, otherwise the sale belongs to a guest until a buyer is attached; with a `paypal` `payment_method` it names the buyer and
|
|
53149
|
+
description: "The buyer's email, resolving or creating the user the payment belongs to. With `confirmation_token` it overrides the email the token carries, and is ignored when the token was created by a signed-in buyer; with a `card_present` `payment_method` it names a buyer the point of sale already knows, otherwise the sale belongs to a guest until a buyer is attached; with a `paypal` `payment_method` it names the buyer, and when it and `member_id` are both omitted the buyer is the PayPal account that approves the payment. Ignored with `member_id`.",
|
|
53860
53150
|
example: "dana@shinetime.example",
|
|
53861
53151
|
type: ["string", "null"]
|
|
53862
53152
|
},
|
|
@@ -54151,7 +53441,7 @@ var native_spec_default = {
|
|
|
54151
53441
|
type: "array"
|
|
54152
53442
|
},
|
|
54153
53443
|
member_id: {
|
|
54154
|
-
description: "The member to charge, prefixed `mber_`. Required with `payment_method_id` unless `confirmation_token` is provided. With a `paypal` `payment_method` it names the buyer instead of `email`, and must belong to a user.",
|
|
53444
|
+
description: "The member to charge, prefixed `mber_`. Required with `payment_method_id` unless `confirmation_token` is provided. With a `paypal` `payment_method` it names the buyer instead of `email`, and must belong to a user; omit both to take the buyer from the PayPal account that approves.",
|
|
54155
53445
|
example: "mber_xxxxxxxxxxxxxx",
|
|
54156
53446
|
type: ["string", "null"]
|
|
54157
53447
|
},
|
|
@@ -54186,6 +53476,17 @@ var native_spec_default = {
|
|
|
54186
53476
|
required: ["platform"],
|
|
54187
53477
|
type: "object"
|
|
54188
53478
|
},
|
|
53479
|
+
paypal: {
|
|
53480
|
+
description: "Options for a `paypal` payment method.",
|
|
53481
|
+
properties: {
|
|
53482
|
+
request_shipping: {
|
|
53483
|
+
description: "Has PayPal ask the buyer for a shipping address. Tax is recalculated for each address the buyer picks before they approve, so the total they approve is the total charged, and the address they confirm is returned on the payment as `shipping_address`. Cannot be combined with `shipping_address`. Defaults to false.",
|
|
53484
|
+
example: true,
|
|
53485
|
+
type: "boolean"
|
|
53486
|
+
}
|
|
53487
|
+
},
|
|
53488
|
+
type: "object"
|
|
53489
|
+
},
|
|
54189
53490
|
type: {
|
|
54190
53491
|
description: "The kind of payment method; the member named after it carries its details.",
|
|
54191
53492
|
enum: ["card_present", "paypal"],
|
|
@@ -66656,9 +65957,8 @@ var native_spec_default = {
|
|
|
66656
65957
|
type: "string"
|
|
66657
65958
|
},
|
|
66658
65959
|
platform: {
|
|
66659
|
-
description: "The platform to connect the external account on. Use `
|
|
65960
|
+
description: "The platform to connect the external account on. Use `tiktok` to connect the authenticated user\u2019s TikTok profile, `linkedin` for their LinkedIn profile, `youtube` for their YouTube channel, or `x` for their X profile. Use `snapchat` for Snapchat Public Profiles. Use `quickbooks` to connect the account\u2019s QuickBooks Online company: pass `account_id`, omit `scopes`, and the user picks the company in QuickBooks.",
|
|
66660
65961
|
enum: [
|
|
66661
|
-
"meta_business",
|
|
66662
65962
|
"tiktok",
|
|
66663
65963
|
"linkedin",
|
|
66664
65964
|
"youtube",
|
|
@@ -66666,7 +65966,7 @@ var native_spec_default = {
|
|
|
66666
65966
|
"snapchat",
|
|
66667
65967
|
"quickbooks"
|
|
66668
65968
|
],
|
|
66669
|
-
example: "
|
|
65969
|
+
example: "snapchat",
|
|
66670
65970
|
type: "string"
|
|
66671
65971
|
},
|
|
66672
65972
|
redirect_url: {
|
|
@@ -66675,7 +65975,7 @@ var native_spec_default = {
|
|
|
66675
65975
|
type: "string"
|
|
66676
65976
|
},
|
|
66677
65977
|
scopes: {
|
|
66678
|
-
description: "The connection purpose. For `
|
|
65978
|
+
description: "The connection purpose. For `snapchat`, `advertise` is required and connects company advertising assets. For `linkedin`, `tiktok`, `youtube`, and `x`, omit scopes to connect the authenticated user\u2019s profile. For `quickbooks`, omit scopes; the connection belongs to the account in `account_id`. Profile connections still request the platform permissions needed to read the profile.",
|
|
66679
65979
|
items: {
|
|
66680
65980
|
enum: ["advertise"],
|
|
66681
65981
|
example: "advertise",
|
|
@@ -66698,7 +65998,7 @@ var native_spec_default = {
|
|
|
66698
65998
|
schema: {
|
|
66699
65999
|
properties: {
|
|
66700
66000
|
authorize_url: {
|
|
66701
|
-
example: "https://
|
|
66001
|
+
example: "https://accounts.snapchat.com/login/oauth2/authorize",
|
|
66702
66002
|
type: "string"
|
|
66703
66003
|
}
|
|
66704
66004
|
},
|
|
@@ -72267,7 +71567,7 @@ var native_spec_default = {
|
|
|
72267
71567
|
requested_scopes: {
|
|
72268
71568
|
description: "The permissions the app is asking for, for example `member:basic:read`. `GET /api_keys/permissions` names and describes each one. Granting adds to whatever the user already granted this app rather than replacing it.",
|
|
72269
71569
|
items: {
|
|
72270
|
-
example: "
|
|
71570
|
+
example: "openid",
|
|
72271
71571
|
type: "string"
|
|
72272
71572
|
},
|
|
72273
71573
|
type: "array"
|
|
@@ -78960,7 +78260,7 @@ var native_spec_default = {
|
|
|
78960
78260
|
properties: {
|
|
78961
78261
|
api_version_date: {
|
|
78962
78262
|
description: "The dated API version (Api-Version-Date) to pin this webhook's payloads to. Omit to leave the webhook unpinned, tracking the current payload shape.",
|
|
78963
|
-
example: "2026-10-29-
|
|
78263
|
+
example: "2026-10-29-8",
|
|
78964
78264
|
type: ["string", "null"]
|
|
78965
78265
|
},
|
|
78966
78266
|
child_resource_events: {
|
|
@@ -79336,7 +78636,7 @@ var native_spec_default = {
|
|
|
79336
78636
|
properties: {
|
|
79337
78637
|
api_version_date: {
|
|
79338
78638
|
description: "The dated API version (Api-Version-Date) to pin this webhook's payloads to. Only valid for `v1` webhooks. Omit to leave the current pin unchanged, or pass `null` to unpin and track the current payload shape.",
|
|
79339
|
-
example: "2026-10-29-
|
|
78639
|
+
example: "2026-10-29-8",
|
|
79340
78640
|
type: ["string", "null"]
|
|
79341
78641
|
},
|
|
79342
78642
|
child_resource_events: {
|
|
@@ -80225,7 +79525,7 @@ var native_spec_default = {
|
|
|
80225
79525
|
example: {
|
|
80226
79526
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
80227
79527
|
api_version: "v1",
|
|
80228
|
-
api_version_date: "2026-10-29-
|
|
79528
|
+
api_version_date: "2026-10-29-8",
|
|
80229
79529
|
data: {
|
|
80230
79530
|
ads_spend_usd: null,
|
|
80231
79531
|
balances: [],
|
|
@@ -80546,7 +79846,7 @@ var native_spec_default = {
|
|
|
80546
79846
|
example: {
|
|
80547
79847
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
80548
79848
|
api_version: "v1",
|
|
80549
|
-
api_version_date: "2026-10-29-
|
|
79849
|
+
api_version_date: "2026-10-29-8",
|
|
80550
79850
|
data: {
|
|
80551
79851
|
ads_spend_usd: null,
|
|
80552
79852
|
balances: [],
|
|
@@ -80867,7 +80167,7 @@ var native_spec_default = {
|
|
|
80867
80167
|
example: {
|
|
80868
80168
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
80869
80169
|
api_version: "v1",
|
|
80870
|
-
api_version_date: "2026-10-29-
|
|
80170
|
+
api_version_date: "2026-10-29-8",
|
|
80871
80171
|
data: {
|
|
80872
80172
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
80873
80173
|
disabled_at: "2026-01-01T12:00:00.000Z",
|
|
@@ -80997,7 +80297,7 @@ var native_spec_default = {
|
|
|
80997
80297
|
example: {
|
|
80998
80298
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
80999
80299
|
api_version: "v1",
|
|
81000
|
-
api_version_date: "2026-10-29-
|
|
80300
|
+
api_version_date: "2026-10-29-8",
|
|
81001
80301
|
data: {
|
|
81002
80302
|
ads_spend_usd: null,
|
|
81003
80303
|
balances: [],
|
|
@@ -81318,7 +80618,7 @@ var native_spec_default = {
|
|
|
81318
80618
|
example: {
|
|
81319
80619
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
81320
80620
|
api_version: "v1",
|
|
81321
|
-
api_version_date: "2026-10-29-
|
|
80621
|
+
api_version_date: "2026-10-29-8",
|
|
81322
80622
|
data: {
|
|
81323
80623
|
ad_campaign: {
|
|
81324
80624
|
id: "adcamp_xxxxxxxxxxxxxx"
|
|
@@ -81453,14 +80753,14 @@ var native_spec_default = {
|
|
|
81453
80753
|
descriptions: {
|
|
81454
80754
|
items: {
|
|
81455
80755
|
$ref: "#/components/schemas/AdText",
|
|
81456
|
-
description: "The description shown on the ad.
|
|
80756
|
+
description: "The description shown on the ad."
|
|
81457
80757
|
},
|
|
81458
80758
|
type: "array"
|
|
81459
80759
|
},
|
|
81460
80760
|
headlines: {
|
|
81461
80761
|
items: {
|
|
81462
80762
|
$ref: "#/components/schemas/AdText",
|
|
81463
|
-
description: "The headline shown on the ad.
|
|
80763
|
+
description: "The headline shown on the ad."
|
|
81464
80764
|
},
|
|
81465
80765
|
type: "array"
|
|
81466
80766
|
},
|
|
@@ -81479,7 +80779,7 @@ var native_spec_default = {
|
|
|
81479
80779
|
primary_texts: {
|
|
81480
80780
|
items: {
|
|
81481
80781
|
$ref: "#/components/schemas/AdText",
|
|
81482
|
-
description: "The primary text shown in the ad body.
|
|
80782
|
+
description: "The primary text shown in the ad body. Several entries make text variations."
|
|
81483
80783
|
},
|
|
81484
80784
|
type: "array"
|
|
81485
80785
|
},
|
|
@@ -81618,7 +80918,7 @@ var native_spec_default = {
|
|
|
81618
80918
|
example: {
|
|
81619
80919
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
81620
80920
|
api_version: "v1",
|
|
81621
|
-
api_version_date: "2026-10-29-
|
|
80921
|
+
api_version_date: "2026-10-29-8",
|
|
81622
80922
|
data: {
|
|
81623
80923
|
bid_type: null,
|
|
81624
80924
|
budget_amount: 50,
|
|
@@ -81716,6 +81016,7 @@ var native_spec_default = {
|
|
|
81716
81016
|
description: "Whether the campaign's ads are delivering right now, and if not, why. Content review is in_review; a campaign waiting to start is processing. Account billing failures set payment_failed without changing the configured status. Successful payment retry clears that block and recalculates delivery. When several states apply at once, the highest-precedence one is returned.",
|
|
81717
81017
|
enum: [
|
|
81718
81018
|
"payment_failed",
|
|
81019
|
+
"waiting_for_ein",
|
|
81719
81020
|
"in_appeal",
|
|
81720
81021
|
"all_ads_rejected",
|
|
81721
81022
|
"draft",
|
|
@@ -81930,7 +81231,7 @@ var native_spec_default = {
|
|
|
81930
81231
|
example: {
|
|
81931
81232
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
81932
81233
|
api_version: "v1",
|
|
81933
|
-
api_version_date: "2026-10-29-
|
|
81234
|
+
api_version_date: "2026-10-29-8",
|
|
81934
81235
|
data: {
|
|
81935
81236
|
bid_type: null,
|
|
81936
81237
|
budget_amount: 50,
|
|
@@ -82031,6 +81332,7 @@ var native_spec_default = {
|
|
|
82031
81332
|
description: "Whether the campaign's ads are delivering right now, and if not, why. Content review is in_review; a campaign waiting to start is processing. Account billing failures set payment_failed without changing the configured status. Successful payment retry clears that block and recalculates delivery. When several states apply at once, the highest-precedence one is returned.",
|
|
82032
81333
|
enum: [
|
|
82033
81334
|
"payment_failed",
|
|
81335
|
+
"waiting_for_ein",
|
|
82034
81336
|
"in_appeal",
|
|
82035
81337
|
"all_ads_rejected",
|
|
82036
81338
|
"draft",
|
|
@@ -82242,7 +81544,7 @@ var native_spec_default = {
|
|
|
82242
81544
|
example: {
|
|
82243
81545
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
82244
81546
|
api_version: "v1",
|
|
82245
|
-
api_version_date: "2026-10-29-
|
|
81547
|
+
api_version_date: "2026-10-29-8",
|
|
82246
81548
|
data: {
|
|
82247
81549
|
ad_campaign: {
|
|
82248
81550
|
id: "adcamp_xxxxxxxxxxxxxx"
|
|
@@ -82605,7 +81907,7 @@ var native_spec_default = {
|
|
|
82605
81907
|
example: {
|
|
82606
81908
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
82607
81909
|
api_version: "v1",
|
|
82608
|
-
api_version_date: "2026-10-29-
|
|
81910
|
+
api_version_date: "2026-10-29-8",
|
|
82609
81911
|
data: {
|
|
82610
81912
|
account: {
|
|
82611
81913
|
id: "biz_xxxxxxxxxxxxx2",
|
|
@@ -82742,7 +82044,7 @@ var native_spec_default = {
|
|
|
82742
82044
|
example: {
|
|
82743
82045
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
82744
82046
|
api_version: "v1",
|
|
82745
|
-
api_version_date: "2026-10-29-
|
|
82047
|
+
api_version_date: "2026-10-29-8",
|
|
82746
82048
|
data: {
|
|
82747
82049
|
account: {
|
|
82748
82050
|
id: "biz_xxxxxxxxxxxxx2",
|
|
@@ -82879,7 +82181,7 @@ var native_spec_default = {
|
|
|
82879
82181
|
example: {
|
|
82880
82182
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
82881
82183
|
api_version: "v1",
|
|
82882
|
-
api_version_date: "2026-10-29-
|
|
82184
|
+
api_version_date: "2026-10-29-8",
|
|
82883
82185
|
data: {
|
|
82884
82186
|
billing: null,
|
|
82885
82187
|
canceled_at: null,
|
|
@@ -83202,7 +82504,7 @@ var native_spec_default = {
|
|
|
83202
82504
|
example: {
|
|
83203
82505
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
83204
82506
|
api_version: "v1",
|
|
83205
|
-
api_version_date: "2026-10-29-
|
|
82507
|
+
api_version_date: "2026-10-29-8",
|
|
83206
82508
|
data: {
|
|
83207
82509
|
billing: null,
|
|
83208
82510
|
canceled_at: null,
|
|
@@ -83525,7 +82827,7 @@ var native_spec_default = {
|
|
|
83525
82827
|
example: {
|
|
83526
82828
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
83527
82829
|
api_version: "v1",
|
|
83528
|
-
api_version_date: "2026-10-29-
|
|
82830
|
+
api_version_date: "2026-10-29-8",
|
|
83529
82831
|
data: {
|
|
83530
82832
|
billing: null,
|
|
83531
82833
|
canceled_at: null,
|
|
@@ -83848,7 +83150,7 @@ var native_spec_default = {
|
|
|
83848
83150
|
example: {
|
|
83849
83151
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
83850
83152
|
api_version: "v1",
|
|
83851
|
-
api_version_date: "2026-10-29-
|
|
83153
|
+
api_version_date: "2026-10-29-8",
|
|
83852
83154
|
data: {
|
|
83853
83155
|
billing: null,
|
|
83854
83156
|
canceled_at: null,
|
|
@@ -84171,7 +83473,7 @@ var native_spec_default = {
|
|
|
84171
83473
|
example: {
|
|
84172
83474
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
84173
83475
|
api_version: "v1",
|
|
84174
|
-
api_version_date: "2026-10-29-
|
|
83476
|
+
api_version_date: "2026-10-29-8",
|
|
84175
83477
|
data: {
|
|
84176
83478
|
hosted_url: null,
|
|
84177
83479
|
id: "ciac_xxxxxxxxxxxxxx",
|
|
@@ -84321,7 +83623,7 @@ var native_spec_default = {
|
|
|
84321
83623
|
example: {
|
|
84322
83624
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
84323
83625
|
api_version: "v1",
|
|
84324
|
-
api_version_date: "2026-10-29-
|
|
83626
|
+
api_version_date: "2026-10-29-8",
|
|
84325
83627
|
data: {
|
|
84326
83628
|
hosted_url: null,
|
|
84327
83629
|
id: "ciac_xxxxxxxxxxxxxx",
|
|
@@ -84471,7 +83773,7 @@ var native_spec_default = {
|
|
|
84471
83773
|
example: {
|
|
84472
83774
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
84473
83775
|
api_version: "v1",
|
|
84474
|
-
api_version_date: "2026-10-29-
|
|
83776
|
+
api_version_date: "2026-10-29-8",
|
|
84475
83777
|
data: {
|
|
84476
83778
|
hosted_url: null,
|
|
84477
83779
|
id: "ciac_xxxxxxxxxxxxxx",
|
|
@@ -84621,7 +83923,7 @@ var native_spec_default = {
|
|
|
84621
83923
|
example: {
|
|
84622
83924
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
84623
83925
|
api_version: "v1",
|
|
84624
|
-
api_version_date: "2026-10-29-
|
|
83926
|
+
api_version_date: "2026-10-29-8",
|
|
84625
83927
|
data: {
|
|
84626
83928
|
hosted_url: null,
|
|
84627
83929
|
id: "ciac_xxxxxxxxxxxxxx",
|
|
@@ -84771,7 +84073,7 @@ var native_spec_default = {
|
|
|
84771
84073
|
example: {
|
|
84772
84074
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
84773
84075
|
api_version: "v1",
|
|
84774
|
-
api_version_date: "2026-10-29-
|
|
84076
|
+
api_version_date: "2026-10-29-8",
|
|
84775
84077
|
data: {
|
|
84776
84078
|
card_id: "icrd_xxxxxxxxxxxxxx",
|
|
84777
84079
|
cardholder_id: null,
|
|
@@ -84902,7 +84204,7 @@ var native_spec_default = {
|
|
|
84902
84204
|
example: {
|
|
84903
84205
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
84904
84206
|
api_version: "v1",
|
|
84905
|
-
api_version_date: "2026-10-29-
|
|
84207
|
+
api_version_date: "2026-10-29-8",
|
|
84906
84208
|
data: {
|
|
84907
84209
|
card_id: "icrd_xxxxxxxxxxxxxx",
|
|
84908
84210
|
cardholder_id: null,
|
|
@@ -85033,7 +84335,7 @@ var native_spec_default = {
|
|
|
85033
84335
|
example: {
|
|
85034
84336
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
85035
84337
|
api_version: "v1",
|
|
85036
|
-
api_version_date: "2026-10-29-
|
|
84338
|
+
api_version_date: "2026-10-29-8",
|
|
85037
84339
|
data: {
|
|
85038
84340
|
card_id: "icrd_xxxxxxxxxxxxxx",
|
|
85039
84341
|
cardholder_id: null,
|
|
@@ -85164,7 +84466,7 @@ var native_spec_default = {
|
|
|
85164
84466
|
example: {
|
|
85165
84467
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
85166
84468
|
api_version: "v1",
|
|
85167
|
-
api_version_date: "2026-10-29-
|
|
84469
|
+
api_version_date: "2026-10-29-8",
|
|
85168
84470
|
data: {
|
|
85169
84471
|
card_id: "icrd_xxxxxxxxxxxxxx",
|
|
85170
84472
|
cardholder_id: null,
|
|
@@ -85295,7 +84597,7 @@ var native_spec_default = {
|
|
|
85295
84597
|
example: {
|
|
85296
84598
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
85297
84599
|
api_version: "v1",
|
|
85298
|
-
api_version_date: "2026-10-29-
|
|
84600
|
+
api_version_date: "2026-10-29-8",
|
|
85299
84601
|
data: {
|
|
85300
84602
|
card_id: "icrd_xxxxxxxxxxxxxx",
|
|
85301
84603
|
cardholder_id: null,
|
|
@@ -85426,7 +84728,7 @@ var native_spec_default = {
|
|
|
85426
84728
|
example: {
|
|
85427
84729
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
85428
84730
|
api_version: "v1",
|
|
85429
|
-
api_version_date: "2026-10-29-
|
|
84731
|
+
api_version_date: "2026-10-29-8",
|
|
85430
84732
|
data: {
|
|
85431
84733
|
amount: "75000000000",
|
|
85432
84734
|
available_at: null,
|
|
@@ -85558,7 +84860,7 @@ var native_spec_default = {
|
|
|
85558
84860
|
example: {
|
|
85559
84861
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
85560
84862
|
api_version: "v1",
|
|
85561
|
-
api_version_date: "2026-10-29-
|
|
84863
|
+
api_version_date: "2026-10-29-8",
|
|
85562
84864
|
data: {
|
|
85563
84865
|
acceptable: true,
|
|
85564
84866
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -85739,7 +85041,7 @@ var native_spec_default = {
|
|
|
85739
85041
|
example: {
|
|
85740
85042
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
85741
85043
|
api_version: "v1",
|
|
85742
|
-
api_version_date: "2026-10-29-
|
|
85044
|
+
api_version_date: "2026-10-29-8",
|
|
85743
85045
|
data: {
|
|
85744
85046
|
acceptable: false,
|
|
85745
85047
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -85920,7 +85222,7 @@ var native_spec_default = {
|
|
|
85920
85222
|
example: {
|
|
85921
85223
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
85922
85224
|
api_version: "v1",
|
|
85923
|
-
api_version_date: "2026-10-29-
|
|
85225
|
+
api_version_date: "2026-10-29-8",
|
|
85924
85226
|
data: {
|
|
85925
85227
|
account_id: null,
|
|
85926
85228
|
amount: 25,
|
|
@@ -86052,7 +85354,7 @@ var native_spec_default = {
|
|
|
86052
85354
|
example: {
|
|
86053
85355
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
86054
85356
|
api_version: "v1",
|
|
86055
|
-
api_version_date: "2026-10-29-
|
|
85357
|
+
api_version_date: "2026-10-29-8",
|
|
86056
85358
|
data: {
|
|
86057
85359
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
86058
85360
|
apple_pay: null,
|
|
@@ -86187,7 +85489,7 @@ var native_spec_default = {
|
|
|
86187
85489
|
example: {
|
|
86188
85490
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
86189
85491
|
api_version: "v1",
|
|
86190
|
-
api_version_date: "2026-10-29-
|
|
85492
|
+
api_version_date: "2026-10-29-8",
|
|
86191
85493
|
data: {
|
|
86192
85494
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
86193
85495
|
apple_pay: null,
|
|
@@ -86322,7 +85624,7 @@ var native_spec_default = {
|
|
|
86322
85624
|
example: {
|
|
86323
85625
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
86324
85626
|
api_version: "v1",
|
|
86325
|
-
api_version_date: "2026-10-29-
|
|
85627
|
+
api_version_date: "2026-10-29-8",
|
|
86326
85628
|
data: {
|
|
86327
85629
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
86328
85630
|
apple_pay: null,
|
|
@@ -86457,7 +85759,7 @@ var native_spec_default = {
|
|
|
86457
85759
|
example: {
|
|
86458
85760
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
86459
85761
|
api_version: "v1",
|
|
86460
|
-
api_version_date: "2026-10-29-
|
|
85762
|
+
api_version_date: "2026-10-29-8",
|
|
86461
85763
|
data: {
|
|
86462
85764
|
created_at: "2026-01-01T12:00:00.000Z",
|
|
86463
85765
|
download_url: "https://s3.amazonaws.com/uploads/exports/members-export.csv",
|
|
@@ -86578,7 +85880,7 @@ var native_spec_default = {
|
|
|
86578
85880
|
example: {
|
|
86579
85881
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
86580
85882
|
api_version: "v1",
|
|
86581
|
-
api_version_date: "2026-10-29-
|
|
85883
|
+
api_version_date: "2026-10-29-8",
|
|
86582
85884
|
data: {
|
|
86583
85885
|
created_at: "2026-01-01T12:00:00.000Z",
|
|
86584
85886
|
download_url: null,
|
|
@@ -86699,7 +86001,7 @@ var native_spec_default = {
|
|
|
86699
86001
|
example: {
|
|
86700
86002
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
86701
86003
|
api_version: "v1",
|
|
86702
|
-
api_version_date: "2026-10-29-
|
|
86004
|
+
api_version_date: "2026-10-29-8",
|
|
86703
86005
|
data: {
|
|
86704
86006
|
amount: "512345000000",
|
|
86705
86007
|
available_at: "2026-01-01T12:00:00.000Z",
|
|
@@ -86836,7 +86138,7 @@ var native_spec_default = {
|
|
|
86836
86138
|
example: {
|
|
86837
86139
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
86838
86140
|
api_version: "v1",
|
|
86839
|
-
api_version_date: "2026-10-29-
|
|
86141
|
+
api_version_date: "2026-10-29-8",
|
|
86840
86142
|
data: {
|
|
86841
86143
|
id: "idpf_xxxxxxxxxxxxxx"
|
|
86842
86144
|
},
|
|
@@ -86958,7 +86260,7 @@ var native_spec_default = {
|
|
|
86958
86260
|
example: {
|
|
86959
86261
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
86960
86262
|
api_version: "v1",
|
|
86961
|
-
api_version_date: "2026-10-29-
|
|
86263
|
+
api_version_date: "2026-10-29-8",
|
|
86962
86264
|
data: {
|
|
86963
86265
|
access_level: "customer",
|
|
86964
86266
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -87105,7 +86407,7 @@ var native_spec_default = {
|
|
|
87105
86407
|
example: {
|
|
87106
86408
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
87107
86409
|
api_version: "v1",
|
|
87108
|
-
api_version_date: "2026-10-29-
|
|
86410
|
+
api_version_date: "2026-10-29-8",
|
|
87109
86411
|
data: {
|
|
87110
86412
|
access_level: "customer",
|
|
87111
86413
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -87252,7 +86554,7 @@ var native_spec_default = {
|
|
|
87252
86554
|
example: {
|
|
87253
86555
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
87254
86556
|
api_version: "v1",
|
|
87255
|
-
api_version_date: "2026-10-29-
|
|
86557
|
+
api_version_date: "2026-10-29-8",
|
|
87256
86558
|
data: {
|
|
87257
86559
|
account: {
|
|
87258
86560
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -87418,7 +86720,7 @@ var native_spec_default = {
|
|
|
87418
86720
|
example: {
|
|
87419
86721
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
87420
86722
|
api_version: "v1",
|
|
87421
|
-
api_version_date: "2026-10-29-
|
|
86723
|
+
api_version_date: "2026-10-29-8",
|
|
87422
86724
|
data: {
|
|
87423
86725
|
account: {
|
|
87424
86726
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -87590,7 +86892,7 @@ var native_spec_default = {
|
|
|
87590
86892
|
example: {
|
|
87591
86893
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
87592
86894
|
api_version: "v1",
|
|
87593
|
-
api_version_date: "2026-10-29-
|
|
86895
|
+
api_version_date: "2026-10-29-8",
|
|
87594
86896
|
data: {
|
|
87595
86897
|
account: {
|
|
87596
86898
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -87756,7 +87058,7 @@ var native_spec_default = {
|
|
|
87756
87058
|
example: {
|
|
87757
87059
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
87758
87060
|
api_version: "v1",
|
|
87759
|
-
api_version_date: "2026-10-29-
|
|
87061
|
+
api_version_date: "2026-10-29-8",
|
|
87760
87062
|
data: {
|
|
87761
87063
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
87762
87064
|
amount_after_fees: {
|
|
@@ -88042,7 +87344,7 @@ var native_spec_default = {
|
|
|
88042
87344
|
example: {
|
|
88043
87345
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
88044
87346
|
api_version: "v1",
|
|
88045
|
-
api_version_date: "2026-10-29-
|
|
87347
|
+
api_version_date: "2026-10-29-8",
|
|
88046
87348
|
data: {
|
|
88047
87349
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
88048
87350
|
amount_after_fees: {
|
|
@@ -88328,7 +87630,7 @@ var native_spec_default = {
|
|
|
88328
87630
|
example: {
|
|
88329
87631
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
88330
87632
|
api_version: "v1",
|
|
88331
|
-
api_version_date: "2026-10-29-
|
|
87633
|
+
api_version_date: "2026-10-29-8",
|
|
88332
87634
|
data: {
|
|
88333
87635
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
88334
87636
|
amount_after_fees: {
|
|
@@ -88614,7 +87916,7 @@ var native_spec_default = {
|
|
|
88614
87916
|
example: {
|
|
88615
87917
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
88616
87918
|
api_version: "v1",
|
|
88617
|
-
api_version_date: "2026-10-29-
|
|
87919
|
+
api_version_date: "2026-10-29-8",
|
|
88618
87920
|
data: {
|
|
88619
87921
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
88620
87922
|
amount_after_fees: {
|
|
@@ -88900,7 +88202,7 @@ var native_spec_default = {
|
|
|
88900
88202
|
example: {
|
|
88901
88203
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
88902
88204
|
api_version: "v1",
|
|
88903
|
-
api_version_date: "2026-10-29-
|
|
88205
|
+
api_version_date: "2026-10-29-8",
|
|
88904
88206
|
data: {
|
|
88905
88207
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
88906
88208
|
amount_after_fees: {
|
|
@@ -89180,7 +88482,7 @@ var native_spec_default = {
|
|
|
89180
88482
|
example: {
|
|
89181
88483
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
89182
88484
|
api_version: "v1",
|
|
89183
|
-
api_version_date: "2026-10-29-
|
|
88485
|
+
api_version_date: "2026-10-29-8",
|
|
89184
88486
|
data: {
|
|
89185
88487
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
89186
88488
|
amount_after_fees: {
|
|
@@ -89472,7 +88774,7 @@ var native_spec_default = {
|
|
|
89472
88774
|
example: {
|
|
89473
88775
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
89474
88776
|
api_version: "v1",
|
|
89475
|
-
api_version_date: "2026-10-29-
|
|
88777
|
+
api_version_date: "2026-10-29-8",
|
|
89476
88778
|
data: {
|
|
89477
88779
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
89478
88780
|
amount_after_fees: {
|
|
@@ -89758,7 +89060,7 @@ var native_spec_default = {
|
|
|
89758
89060
|
example: {
|
|
89759
89061
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
89760
89062
|
api_version: "v1",
|
|
89761
|
-
api_version_date: "2026-10-29-
|
|
89063
|
+
api_version_date: "2026-10-29-8",
|
|
89762
89064
|
data: {
|
|
89763
89065
|
amount: "10.0",
|
|
89764
89066
|
cancelable: false,
|
|
@@ -90153,7 +89455,7 @@ var native_spec_default = {
|
|
|
90153
89455
|
example: {
|
|
90154
89456
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
90155
89457
|
api_version: "v1",
|
|
90156
|
-
api_version_date: "2026-10-29-
|
|
89458
|
+
api_version_date: "2026-10-29-8",
|
|
90157
89459
|
data: {
|
|
90158
89460
|
amount: "10.0",
|
|
90159
89461
|
cancelable: false,
|
|
@@ -90545,7 +89847,7 @@ var native_spec_default = {
|
|
|
90545
89847
|
example: {
|
|
90546
89848
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
90547
89849
|
api_version: "v1",
|
|
90548
|
-
api_version_date: "2026-10-29-
|
|
89850
|
+
api_version_date: "2026-10-29-8",
|
|
90549
89851
|
data: {
|
|
90550
89852
|
amount: "10.0",
|
|
90551
89853
|
cancelable: false,
|
|
@@ -90933,7 +90235,7 @@ var native_spec_default = {
|
|
|
90933
90235
|
example: {
|
|
90934
90236
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
90935
90237
|
api_version: "v1",
|
|
90936
|
-
api_version_date: "2026-10-29-
|
|
90238
|
+
api_version_date: "2026-10-29-8",
|
|
90937
90239
|
data: {
|
|
90938
90240
|
account_reference: "4483",
|
|
90939
90241
|
bank_verification_state: null,
|
|
@@ -91416,7 +90718,7 @@ var native_spec_default = {
|
|
|
91416
90718
|
example: {
|
|
91417
90719
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
91418
90720
|
api_version: "v1",
|
|
91419
|
-
api_version_date: "2026-10-29-
|
|
90721
|
+
api_version_date: "2026-10-29-8",
|
|
91420
90722
|
data: {
|
|
91421
90723
|
account: {
|
|
91422
90724
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -91720,7 +91022,7 @@ var native_spec_default = {
|
|
|
91720
91022
|
example: {
|
|
91721
91023
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
91722
91024
|
api_version: "v1",
|
|
91723
|
-
api_version_date: "2026-10-29-
|
|
91025
|
+
api_version_date: "2026-10-29-8",
|
|
91724
91026
|
data: {
|
|
91725
91027
|
account: {
|
|
91726
91028
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -92024,7 +91326,7 @@ var native_spec_default = {
|
|
|
92024
91326
|
example: {
|
|
92025
91327
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
92026
91328
|
api_version: "v1",
|
|
92027
|
-
api_version_date: "2026-10-29-
|
|
91329
|
+
api_version_date: "2026-10-29-8",
|
|
92028
91330
|
data: {
|
|
92029
91331
|
account: {
|
|
92030
91332
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -92328,7 +91630,7 @@ var native_spec_default = {
|
|
|
92328
91630
|
example: {
|
|
92329
91631
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
92330
91632
|
api_version: "v1",
|
|
92331
|
-
api_version_date: "2026-10-29-
|
|
91633
|
+
api_version_date: "2026-10-29-8",
|
|
92332
91634
|
data: {
|
|
92333
91635
|
account: {
|
|
92334
91636
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -92480,7 +91782,7 @@ var native_spec_default = {
|
|
|
92480
91782
|
example: {
|
|
92481
91783
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
92482
91784
|
api_version: "v1",
|
|
92483
|
-
api_version_date: "2026-10-29-
|
|
91785
|
+
api_version_date: "2026-10-29-8",
|
|
92484
91786
|
data: {
|
|
92485
91787
|
account: {
|
|
92486
91788
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -92632,7 +91934,7 @@ var native_spec_default = {
|
|
|
92632
91934
|
example: {
|
|
92633
91935
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
92634
91936
|
api_version: "v1",
|
|
92635
|
-
api_version_date: "2026-10-29-
|
|
91937
|
+
api_version_date: "2026-10-29-8",
|
|
92636
91938
|
data: {
|
|
92637
91939
|
account: {
|
|
92638
91940
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -92784,7 +92086,7 @@ var native_spec_default = {
|
|
|
92784
92086
|
example: {
|
|
92785
92087
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
92786
92088
|
api_version: "v1",
|
|
92787
|
-
api_version_date: "2026-10-29-
|
|
92089
|
+
api_version_date: "2026-10-29-8",
|
|
92788
92090
|
data: {
|
|
92789
92091
|
account: {
|
|
92790
92092
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -92936,7 +92238,7 @@ var native_spec_default = {
|
|
|
92936
92238
|
example: {
|
|
92937
92239
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
92938
92240
|
api_version: "v1",
|
|
92939
|
-
api_version_date: "2026-10-29-
|
|
92241
|
+
api_version_date: "2026-10-29-8",
|
|
92940
92242
|
data: {
|
|
92941
92243
|
account: {
|
|
92942
92244
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -93088,7 +92390,7 @@ var native_spec_default = {
|
|
|
93088
92390
|
example: {
|
|
93089
92391
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
93090
92392
|
api_version: "v1",
|
|
93091
|
-
api_version_date: "2026-10-29-
|
|
92393
|
+
api_version_date: "2026-10-29-8",
|
|
93092
92394
|
data: {
|
|
93093
92395
|
account: {
|
|
93094
92396
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -93248,7 +92550,7 @@ var native_spec_default = {
|
|
|
93248
92550
|
example: {
|
|
93249
92551
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
93250
92552
|
api_version: "v1",
|
|
93251
|
-
api_version_date: "2026-10-29-
|
|
92553
|
+
api_version_date: "2026-10-29-8",
|
|
93252
92554
|
data: {
|
|
93253
92555
|
account: {
|
|
93254
92556
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -93408,7 +92710,7 @@ var native_spec_default = {
|
|
|
93408
92710
|
example: {
|
|
93409
92711
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
93410
92712
|
api_version: "v1",
|
|
93411
|
-
api_version_date: "2026-10-29-
|
|
92713
|
+
api_version_date: "2026-10-29-8",
|
|
93412
92714
|
data: {
|
|
93413
92715
|
account: {
|
|
93414
92716
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -93568,7 +92870,7 @@ var native_spec_default = {
|
|
|
93568
92870
|
example: {
|
|
93569
92871
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
93570
92872
|
api_version: "v1",
|
|
93571
|
-
api_version_date: "2026-10-29-
|
|
92873
|
+
api_version_date: "2026-10-29-8",
|
|
93572
92874
|
data: {
|
|
93573
92875
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
93574
92876
|
checkout_configuration_id: null,
|
|
@@ -93709,7 +93011,7 @@ var native_spec_default = {
|
|
|
93709
93011
|
example: {
|
|
93710
93012
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
93711
93013
|
api_version: "v1",
|
|
93712
|
-
api_version_date: "2026-10-29-
|
|
93014
|
+
api_version_date: "2026-10-29-8",
|
|
93713
93015
|
data: {
|
|
93714
93016
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
93715
93017
|
checkout_configuration_id: null,
|
|
@@ -93853,7 +93155,7 @@ var native_spec_default = {
|
|
|
93853
93155
|
example: {
|
|
93854
93156
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
93855
93157
|
api_version: "v1",
|
|
93856
|
-
api_version_date: "2026-10-29-
|
|
93158
|
+
api_version_date: "2026-10-29-8",
|
|
93857
93159
|
data: {
|
|
93858
93160
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
93859
93161
|
checkout_configuration_id: null,
|
|
@@ -94032,7 +93334,7 @@ var native_spec_default = {
|
|
|
94032
93334
|
example: {
|
|
94033
93335
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
94034
93336
|
api_version: "v1",
|
|
94035
|
-
api_version_date: "2026-10-29-
|
|
93337
|
+
api_version_date: "2026-10-29-8",
|
|
94036
93338
|
data: {
|
|
94037
93339
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
94038
93340
|
carrier: "ups",
|
|
@@ -94156,7 +93458,7 @@ var native_spec_default = {
|
|
|
94156
93458
|
example: {
|
|
94157
93459
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
94158
93460
|
api_version: "v1",
|
|
94159
|
-
api_version_date: "2026-10-29-
|
|
93461
|
+
api_version_date: "2026-10-29-8",
|
|
94160
93462
|
data: {
|
|
94161
93463
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
94162
93464
|
carrier: "ups",
|
|
@@ -94280,7 +93582,7 @@ var native_spec_default = {
|
|
|
94280
93582
|
example: {
|
|
94281
93583
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
94282
93584
|
api_version: "v1",
|
|
94283
|
-
api_version_date: "2026-10-29-
|
|
93585
|
+
api_version_date: "2026-10-29-8",
|
|
94284
93586
|
data: {
|
|
94285
93587
|
account: {
|
|
94286
93588
|
id: "biz_xxxxxxxxxxxxxx",
|
|
@@ -94512,7 +93814,7 @@ var native_spec_default = {
|
|
|
94512
93814
|
example: {
|
|
94513
93815
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
94514
93816
|
api_version: "v1",
|
|
94515
|
-
api_version_date: "2026-10-29-
|
|
93817
|
+
api_version_date: "2026-10-29-8",
|
|
94516
93818
|
data: {
|
|
94517
93819
|
amount: {
|
|
94518
93820
|
amount: "250.00",
|
|
@@ -94835,7 +94137,7 @@ var native_spec_default = {
|
|
|
94835
94137
|
example: {
|
|
94836
94138
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
94837
94139
|
api_version: "v1",
|
|
94838
|
-
api_version_date: "2026-10-29-
|
|
94140
|
+
api_version_date: "2026-10-29-8",
|
|
94839
94141
|
data: {
|
|
94840
94142
|
amount: {
|
|
94841
94143
|
amount: "250.00",
|
|
@@ -95158,7 +94460,7 @@ var native_spec_default = {
|
|
|
95158
94460
|
example: {
|
|
95159
94461
|
account_id: "biz_xxxxxxxxxxxxxx",
|
|
95160
94462
|
api_version: "v1",
|
|
95161
|
-
api_version_date: "2026-10-29-
|
|
94463
|
+
api_version_date: "2026-10-29-8",
|
|
95162
94464
|
data: {
|
|
95163
94465
|
amount: null,
|
|
95164
94466
|
created_at: "2026-01-01T12:00:00.000Z",
|
|
@@ -95437,7 +94739,7 @@ var native_spec_default = {
|
|
|
95437
94739
|
name: "Api-Version-Date",
|
|
95438
94740
|
required: false,
|
|
95439
94741
|
schema: {
|
|
95440
|
-
example: "2026-10-29-
|
|
94742
|
+
example: "2026-10-29-8",
|
|
95441
94743
|
type: "string"
|
|
95442
94744
|
}
|
|
95443
94745
|
},
|
|
@@ -100381,6 +99683,29 @@ var native_spec_default = {
|
|
|
100381
99683
|
example: 1,
|
|
100382
99684
|
type: "integer"
|
|
100383
99685
|
},
|
|
99686
|
+
levels: {
|
|
99687
|
+
items: {
|
|
99688
|
+
$ref: "#/components/schemas/AccountProcessingOfferLevel",
|
|
99689
|
+
description: "Every level from `0` through `10`, with the monthly qualifying spend it takes and its card processing percentage in each card region."
|
|
99690
|
+
},
|
|
99691
|
+
type: "array"
|
|
99692
|
+
},
|
|
99693
|
+
monthly_ads_spend: {
|
|
99694
|
+
$ref: "#/components/schemas/Money",
|
|
99695
|
+
description: "Charged Whop Ads spend this calendar month across every account the owner owns, in USD."
|
|
99696
|
+
},
|
|
99697
|
+
monthly_card_spend: {
|
|
99698
|
+
$ref: "#/components/schemas/Money",
|
|
99699
|
+
description: "Effective Whop Card spend this calendar month across every account the owner owns, in USD."
|
|
99700
|
+
},
|
|
99701
|
+
monthly_qualifying_spend: {
|
|
99702
|
+
$ref: "#/components/schemas/Money",
|
|
99703
|
+
description: "Qualifying spend this calendar month across every account the owner owns, in USD: Whop Ads spend, Whop Card spend, and a tenth of perpetual trading volume."
|
|
99704
|
+
},
|
|
99705
|
+
monthly_trading_volume: {
|
|
99706
|
+
$ref: "#/components/schemas/Money",
|
|
99707
|
+
description: "Perpetual trading notional volume this calendar month across every account the owner owns, in USD."
|
|
99708
|
+
},
|
|
100384
99709
|
points: {
|
|
100385
99710
|
description: "Points earned this month across every account the owner owns.",
|
|
100386
99711
|
example: 41e3,
|
|
@@ -100395,6 +99720,11 @@ var native_spec_default = {
|
|
|
100395
99720
|
example: 59e3,
|
|
100396
99721
|
type: ["integer", "null"]
|
|
100397
99722
|
},
|
|
99723
|
+
processing_rate_percentage: {
|
|
99724
|
+
description: "The standard US and Canada card processing percentage at `current`, before any account's custom rate.",
|
|
99725
|
+
example: 2.6,
|
|
99726
|
+
type: "number"
|
|
99727
|
+
},
|
|
100398
99728
|
resets_at: {
|
|
100399
99729
|
description: "When this month's points reset to zero, as an ISO 8601 timestamp.",
|
|
100400
99730
|
example: "2026-01-01T12:00:00.000Z",
|
|
@@ -100407,6 +99737,12 @@ var native_spec_default = {
|
|
|
100407
99737
|
"points_by_source",
|
|
100408
99738
|
"points_to_next",
|
|
100409
99739
|
"resets_at",
|
|
99740
|
+
"processing_rate_percentage",
|
|
99741
|
+
"monthly_qualifying_spend",
|
|
99742
|
+
"monthly_ads_spend",
|
|
99743
|
+
"monthly_card_spend",
|
|
99744
|
+
"monthly_trading_volume",
|
|
99745
|
+
"levels",
|
|
100410
99746
|
"boosted"
|
|
100411
99747
|
],
|
|
100412
99748
|
type: "object"
|
|
@@ -100682,6 +100018,61 @@ var native_spec_default = {
|
|
|
100682
100018
|
],
|
|
100683
100019
|
type: "object"
|
|
100684
100020
|
},
|
|
100021
|
+
AccountProcessingOfferLevel: {
|
|
100022
|
+
properties: {
|
|
100023
|
+
level: {
|
|
100024
|
+
description: "The processing level.",
|
|
100025
|
+
example: 0,
|
|
100026
|
+
type: "integer"
|
|
100027
|
+
},
|
|
100028
|
+
minimum_spend: {
|
|
100029
|
+
$ref: "#/components/schemas/Money",
|
|
100030
|
+
description: "The monthly qualifying spend required to reach this level."
|
|
100031
|
+
},
|
|
100032
|
+
processing_rate_percentage: {
|
|
100033
|
+
description: "The standard US and Canada card processing percentage at this level, regardless of the account's custom rate.",
|
|
100034
|
+
example: 2.7,
|
|
100035
|
+
type: "number"
|
|
100036
|
+
},
|
|
100037
|
+
regional_rates: {
|
|
100038
|
+
items: {
|
|
100039
|
+
$ref: "#/components/schemas/AccountProcessingOfferRegionalRate",
|
|
100040
|
+
description: "The card processing percentage at this level for each card region, starting with US and Canada."
|
|
100041
|
+
},
|
|
100042
|
+
type: "array"
|
|
100043
|
+
}
|
|
100044
|
+
},
|
|
100045
|
+
required: [
|
|
100046
|
+
"level",
|
|
100047
|
+
"minimum_spend",
|
|
100048
|
+
"processing_rate_percentage",
|
|
100049
|
+
"regional_rates"
|
|
100050
|
+
],
|
|
100051
|
+
type: "object"
|
|
100052
|
+
},
|
|
100053
|
+
AccountProcessingOfferRegionalRate: {
|
|
100054
|
+
properties: {
|
|
100055
|
+
processing_rate_percentage: {
|
|
100056
|
+
description: "The standard card processing percentage at this level for cards from this region, regardless of the account's custom rate.",
|
|
100057
|
+
example: 1.7,
|
|
100058
|
+
type: "number"
|
|
100059
|
+
},
|
|
100060
|
+
region: {
|
|
100061
|
+
description: "The card region this fee applies to.",
|
|
100062
|
+
enum: [
|
|
100063
|
+
"us_and_canada",
|
|
100064
|
+
"europe_uk_and_australia",
|
|
100065
|
+
"latin_america",
|
|
100066
|
+
"peru",
|
|
100067
|
+
"brazil"
|
|
100068
|
+
],
|
|
100069
|
+
example: "europe_uk_and_australia",
|
|
100070
|
+
type: "string"
|
|
100071
|
+
}
|
|
100072
|
+
},
|
|
100073
|
+
required: ["region", "processing_rate_percentage"],
|
|
100074
|
+
type: "object"
|
|
100075
|
+
},
|
|
100685
100076
|
AccountRecommendedAction: {
|
|
100686
100077
|
properties: {
|
|
100687
100078
|
action: {
|
|
@@ -101512,7 +100903,7 @@ var native_spec_default = {
|
|
|
101512
100903
|
descriptions: {
|
|
101513
100904
|
items: {
|
|
101514
100905
|
$ref: "#/components/schemas/AdText",
|
|
101515
|
-
description: "The description shown on the ad.
|
|
100906
|
+
description: "The description shown on the ad."
|
|
101516
100907
|
},
|
|
101517
100908
|
type: "array"
|
|
101518
100909
|
},
|
|
@@ -101524,7 +100915,7 @@ var native_spec_default = {
|
|
|
101524
100915
|
headlines: {
|
|
101525
100916
|
items: {
|
|
101526
100917
|
$ref: "#/components/schemas/AdText",
|
|
101527
|
-
description: "The headline shown on the ad.
|
|
100918
|
+
description: "The headline shown on the ad."
|
|
101528
100919
|
},
|
|
101529
100920
|
type: "array"
|
|
101530
100921
|
},
|
|
@@ -101563,7 +100954,7 @@ var native_spec_default = {
|
|
|
101563
100954
|
primary_texts: {
|
|
101564
100955
|
items: {
|
|
101565
100956
|
$ref: "#/components/schemas/AdText",
|
|
101566
|
-
description: "The primary text shown in the ad body.
|
|
100957
|
+
description: "The primary text shown in the ad body. Several entries make text variations."
|
|
101567
100958
|
},
|
|
101568
100959
|
type: "array"
|
|
101569
100960
|
},
|
|
@@ -101928,6 +101319,7 @@ var native_spec_default = {
|
|
|
101928
101319
|
description: "Whether the campaign's ads are delivering right now, and if not, why. Content review is in_review; a campaign waiting to start is processing. Account billing failures set payment_failed without changing the configured status. Successful payment retry clears that block and recalculates delivery. When several states apply at once, the highest-precedence one is returned.",
|
|
101929
101320
|
enum: [
|
|
101930
101321
|
"payment_failed",
|
|
101322
|
+
"waiting_for_ein",
|
|
101931
101323
|
"in_appeal",
|
|
101932
101324
|
"all_ads_rejected",
|
|
101933
101325
|
"draft",
|
|
@@ -102219,142 +101611,6 @@ var native_spec_default = {
|
|
|
102219
101611
|
],
|
|
102220
101612
|
type: "object"
|
|
102221
101613
|
},
|
|
102222
|
-
AdConversionValueRule: {
|
|
102223
|
-
properties: {
|
|
102224
|
-
account_id: {
|
|
102225
|
-
description: "Business that owns this shared, editable rule.",
|
|
102226
|
-
example: "biz_xxxxxxxxxxxxxx",
|
|
102227
|
-
type: "string"
|
|
102228
|
-
},
|
|
102229
|
-
adjustment_type: {
|
|
102230
|
-
description: "Set a fixed amount or change the original value by a signed percentage.",
|
|
102231
|
-
enum: ["fixed", "percentage"],
|
|
102232
|
-
example: "fixed",
|
|
102233
|
-
type: "string"
|
|
102234
|
-
},
|
|
102235
|
-
created_at: {
|
|
102236
|
-
description: "When the rule was created, as an ISO 8601 timestamp.",
|
|
102237
|
-
example: "2026-01-01T12:00:00.000Z",
|
|
102238
|
-
type: "string"
|
|
102239
|
-
},
|
|
102240
|
-
events: {
|
|
102241
|
-
items: {
|
|
102242
|
-
$ref: "#/components/schemas/AdConversionValueRuleEvent",
|
|
102243
|
-
description: "Events adjusted on every selected target."
|
|
102244
|
-
},
|
|
102245
|
-
type: "array"
|
|
102246
|
-
},
|
|
102247
|
-
fixed_value: {
|
|
102248
|
-
description: "Amount sent for a fixed rule. Null for a percentage rule.",
|
|
102249
|
-
oneOf: [
|
|
102250
|
-
{
|
|
102251
|
-
$ref: "#/components/schemas/Money"
|
|
102252
|
-
},
|
|
102253
|
-
{
|
|
102254
|
-
type: "null"
|
|
102255
|
-
}
|
|
102256
|
-
]
|
|
102257
|
-
},
|
|
102258
|
-
id: {
|
|
102259
|
-
description: "Conversion value rule ID, prefixed adcvr_.",
|
|
102260
|
-
example: "adcvr_xxxxxxxxxxxxxx",
|
|
102261
|
-
type: "string"
|
|
102262
|
-
},
|
|
102263
|
-
metadata: {
|
|
102264
|
-
description: "Free-form string keys and values for the caller.",
|
|
102265
|
-
example: {},
|
|
102266
|
-
type: "object"
|
|
102267
|
-
},
|
|
102268
|
-
percentage_change: {
|
|
102269
|
-
description: "Signed percent change: 20 increases by 20%, negative 20 decreases by 20%. The sent value cannot go below zero. Null for a fixed rule.",
|
|
102270
|
-
example: null,
|
|
102271
|
-
type: ["number", "null"]
|
|
102272
|
-
},
|
|
102273
|
-
status: {
|
|
102274
|
-
description: "Whether this rule is active or paused.",
|
|
102275
|
-
enum: ["active", "paused"],
|
|
102276
|
-
example: "active",
|
|
102277
|
-
type: "string"
|
|
102278
|
-
},
|
|
102279
|
-
targets: {
|
|
102280
|
-
items: {
|
|
102281
|
-
$ref: "#/components/schemas/AdConversionValueRuleTarget",
|
|
102282
|
-
description: "Targets covered by this rule. Every selected event applies to every target."
|
|
102283
|
-
},
|
|
102284
|
-
type: "array"
|
|
102285
|
-
},
|
|
102286
|
-
updated_at: {
|
|
102287
|
-
description: "When the rule was edited, as an ISO 8601 timestamp.",
|
|
102288
|
-
example: "2026-01-01T12:00:00.000Z",
|
|
102289
|
-
type: "string"
|
|
102290
|
-
}
|
|
102291
|
-
},
|
|
102292
|
-
required: [
|
|
102293
|
-
"id",
|
|
102294
|
-
"account_id",
|
|
102295
|
-
"status",
|
|
102296
|
-
"targets",
|
|
102297
|
-
"events",
|
|
102298
|
-
"adjustment_type",
|
|
102299
|
-
"fixed_value",
|
|
102300
|
-
"percentage_change",
|
|
102301
|
-
"metadata",
|
|
102302
|
-
"created_at",
|
|
102303
|
-
"updated_at"
|
|
102304
|
-
],
|
|
102305
|
-
type: "object"
|
|
102306
|
-
},
|
|
102307
|
-
AdConversionValueRuleEvent: {
|
|
102308
|
-
properties: {
|
|
102309
|
-
custom_name: {
|
|
102310
|
-
description: "Exact custom event name. Null for standard events.",
|
|
102311
|
-
example: null,
|
|
102312
|
-
type: ["string", "null"]
|
|
102313
|
-
},
|
|
102314
|
-
event_name: {
|
|
102315
|
-
description: "Event to adjust. Purchase includes Whop purchases and external purchase events.",
|
|
102316
|
-
enum: [
|
|
102317
|
-
"purchase",
|
|
102318
|
-
"subscribe",
|
|
102319
|
-
"start_trial",
|
|
102320
|
-
"lead",
|
|
102321
|
-
"complete_registration",
|
|
102322
|
-
"submit_application",
|
|
102323
|
-
"schedule",
|
|
102324
|
-
"contact",
|
|
102325
|
-
"view_content",
|
|
102326
|
-
"add_to_cart",
|
|
102327
|
-
"custom"
|
|
102328
|
-
],
|
|
102329
|
-
example: "lead",
|
|
102330
|
-
type: "string"
|
|
102331
|
-
}
|
|
102332
|
-
},
|
|
102333
|
-
required: ["event_name", "custom_name"],
|
|
102334
|
-
type: "object"
|
|
102335
|
-
},
|
|
102336
|
-
AdConversionValueRuleTarget: {
|
|
102337
|
-
properties: {
|
|
102338
|
-
resource_id: {
|
|
102339
|
-
description: "Selected campaign, ad group, or ad ID. Null for a business target.",
|
|
102340
|
-
example: null,
|
|
102341
|
-
type: ["string", "null"]
|
|
102342
|
-
},
|
|
102343
|
-
resource_title: {
|
|
102344
|
-
description: "Name of the selected item. Null when it is no longer available.",
|
|
102345
|
-
example: "Shine Time Auto Detailing",
|
|
102346
|
-
type: ["string", "null"]
|
|
102347
|
-
},
|
|
102348
|
-
scope: {
|
|
102349
|
-
description: "Business, campaign, ad group, or ad covered by this target.",
|
|
102350
|
-
enum: ["business", "campaign", "ad_group", "ad"],
|
|
102351
|
-
example: "business",
|
|
102352
|
-
type: "string"
|
|
102353
|
-
}
|
|
102354
|
-
},
|
|
102355
|
-
required: ["scope", "resource_id", "resource_title"],
|
|
102356
|
-
type: "object"
|
|
102357
|
-
},
|
|
102358
101614
|
AdCreative: {
|
|
102359
101615
|
properties: {
|
|
102360
101616
|
crop: {
|
|
@@ -102380,7 +101636,7 @@ var native_spec_default = {
|
|
|
102380
101636
|
type: "string"
|
|
102381
101637
|
},
|
|
102382
101638
|
language: {
|
|
102383
|
-
description: "
|
|
101639
|
+
description: "Always `null`. Translations are no longer available.",
|
|
102384
101640
|
example: null,
|
|
102385
101641
|
type: ["string", "null"]
|
|
102386
101642
|
},
|
|
@@ -103083,7 +102339,7 @@ var native_spec_default = {
|
|
|
103083
102339
|
AdGroupDemographics: {
|
|
103084
102340
|
properties: {
|
|
103085
102341
|
automatic: {
|
|
103086
|
-
description: "Whether automatic audience targeting is on. When `true`, delivery can reach beyond the ages
|
|
102342
|
+
description: "Whether automatic audience targeting is on. When `true`, delivery can reach beyond the ages and genders you set, treating them as suggestions.",
|
|
103087
102343
|
example: false,
|
|
103088
102344
|
type: "boolean"
|
|
103089
102345
|
},
|
|
@@ -103111,7 +102367,7 @@ var native_spec_default = {
|
|
|
103111
102367
|
description: "Age, gender, and automatic-audience targeting.",
|
|
103112
102368
|
properties: {
|
|
103113
102369
|
automatic: {
|
|
103114
|
-
description: "Turn on automatic audience targeting: delivery can reach beyond the ages
|
|
102370
|
+
description: "Turn on automatic audience targeting: delivery can reach beyond the ages and genders you set, treating them as suggestions.",
|
|
103115
102371
|
example: false,
|
|
103116
102372
|
type: "boolean"
|
|
103117
102373
|
},
|
|
@@ -103608,8 +102864,8 @@ var native_spec_default = {
|
|
|
103608
102864
|
AdText: {
|
|
103609
102865
|
properties: {
|
|
103610
102866
|
language: {
|
|
103611
|
-
description: "
|
|
103612
|
-
example:
|
|
102867
|
+
description: "Always `null`. Translations are no longer available.",
|
|
102868
|
+
example: null,
|
|
103613
102869
|
type: ["string", "null"]
|
|
103614
102870
|
},
|
|
103615
102871
|
text: {
|
|
@@ -103707,9 +102963,11 @@ var native_spec_default = {
|
|
|
103707
102963
|
"2026-10-29-1",
|
|
103708
102964
|
"2026-10-29-2",
|
|
103709
102965
|
"2026-10-29-3",
|
|
103710
|
-
"2026-10-29-4"
|
|
102966
|
+
"2026-10-29-4",
|
|
102967
|
+
"2026-10-29-5",
|
|
102968
|
+
"2026-10-29-8"
|
|
103711
102969
|
],
|
|
103712
|
-
example: "2026-10-29-
|
|
102970
|
+
example: "2026-10-29-8",
|
|
103713
102971
|
type: "string"
|
|
103714
102972
|
},
|
|
103715
102973
|
created_at: {
|
|
@@ -104803,7 +104061,7 @@ var native_spec_default = {
|
|
|
104803
104061
|
},
|
|
104804
104062
|
name: {
|
|
104805
104063
|
description: "Human-readable name of the action.",
|
|
104806
|
-
example: "
|
|
104064
|
+
example: "Read business information",
|
|
104807
104065
|
type: "string"
|
|
104808
104066
|
}
|
|
104809
104067
|
},
|
|
@@ -104853,7 +104111,7 @@ var native_spec_default = {
|
|
|
104853
104111
|
type: "string"
|
|
104854
104112
|
},
|
|
104855
104113
|
error_message: {
|
|
104856
|
-
description: "
|
|
104114
|
+
description: "Why a `pending` audience hasn't started, or why a `partial` or `failed` one isn't fully built. `null` when there is nothing to report.",
|
|
104857
104115
|
example: "412 of 1,000 rows had no email or phone number, so the list could not be matched.",
|
|
104858
104116
|
type: ["string", "null"]
|
|
104859
104117
|
},
|
|
@@ -104932,7 +104190,7 @@ var native_spec_default = {
|
|
|
104932
104190
|
type: "string"
|
|
104933
104191
|
},
|
|
104934
104192
|
status: {
|
|
104935
|
-
description: "Current state of audience creation. `syncing` means Whop is sending matched rows to connected ad accounts. When status is `partial` or `failed`, `error_message` explains what went wrong.",
|
|
104193
|
+
description: "Current state of audience creation. `syncing` means Whop is sending matched rows to connected ad accounts. When a `pending` audience is waiting on something, such as an ad account to upload to, `error_message` says what. When status is `partial` or `failed`, `error_message` explains what went wrong.",
|
|
104936
104194
|
enum: [
|
|
104937
104195
|
"pending",
|
|
104938
104196
|
"processing",
|
|
@@ -109033,7 +108291,7 @@ var native_spec_default = {
|
|
|
109033
108291
|
properties: {
|
|
109034
108292
|
error: {
|
|
109035
108293
|
description: "Why this external account currently can't be used for advertising \u2014 a failed share or a Meta-side restriction. Null when the account is healthy.",
|
|
109036
|
-
example: "You don't have permission to share this account
|
|
108294
|
+
example: "You don't have permission to share this account with Whop. Contact Whop support for help.",
|
|
109037
108295
|
type: ["string", "null"]
|
|
109038
108296
|
},
|
|
109039
108297
|
external_id: {
|
|
@@ -112870,6 +112128,29 @@ var native_spec_default = {
|
|
|
112870
112128
|
example: 1,
|
|
112871
112129
|
type: "integer"
|
|
112872
112130
|
},
|
|
112131
|
+
levels: {
|
|
112132
|
+
items: {
|
|
112133
|
+
$ref: "#/components/schemas/AccountProcessingOfferLevel",
|
|
112134
|
+
description: "Every level from `0` through `10`, with the monthly qualifying spend it takes and its card processing percentage in each card region."
|
|
112135
|
+
},
|
|
112136
|
+
type: "array"
|
|
112137
|
+
},
|
|
112138
|
+
monthly_ads_spend: {
|
|
112139
|
+
$ref: "#/components/schemas/Money",
|
|
112140
|
+
description: "Charged Whop Ads spend this calendar month across every account the owner owns, in USD."
|
|
112141
|
+
},
|
|
112142
|
+
monthly_card_spend: {
|
|
112143
|
+
$ref: "#/components/schemas/Money",
|
|
112144
|
+
description: "Effective Whop Card spend this calendar month across every account the owner owns, in USD."
|
|
112145
|
+
},
|
|
112146
|
+
monthly_qualifying_spend: {
|
|
112147
|
+
$ref: "#/components/schemas/Money",
|
|
112148
|
+
description: "Qualifying spend this calendar month across every account the owner owns, in USD: Whop Ads spend, Whop Card spend, and a tenth of perpetual trading volume."
|
|
112149
|
+
},
|
|
112150
|
+
monthly_trading_volume: {
|
|
112151
|
+
$ref: "#/components/schemas/Money",
|
|
112152
|
+
description: "Perpetual trading notional volume this calendar month across every account the owner owns, in USD."
|
|
112153
|
+
},
|
|
112873
112154
|
points: {
|
|
112874
112155
|
description: "Points earned this month across every account the owner owns.",
|
|
112875
112156
|
example: 41e3,
|
|
@@ -112884,6 +112165,11 @@ var native_spec_default = {
|
|
|
112884
112165
|
example: 59e3,
|
|
112885
112166
|
type: ["integer", "null"]
|
|
112886
112167
|
},
|
|
112168
|
+
processing_rate_percentage: {
|
|
112169
|
+
description: "The standard US and Canada card processing percentage at `current`, before any account's custom rate.",
|
|
112170
|
+
example: 2.6,
|
|
112171
|
+
type: "number"
|
|
112172
|
+
},
|
|
112887
112173
|
resets_at: {
|
|
112888
112174
|
description: "When this month's points reset to zero, as an ISO 8601 timestamp.",
|
|
112889
112175
|
example: "2026-01-01T12:00:00.000Z",
|
|
@@ -112895,7 +112181,13 @@ var native_spec_default = {
|
|
|
112895
112181
|
"points",
|
|
112896
112182
|
"points_by_source",
|
|
112897
112183
|
"points_to_next",
|
|
112898
|
-
"resets_at"
|
|
112184
|
+
"resets_at",
|
|
112185
|
+
"processing_rate_percentage",
|
|
112186
|
+
"monthly_qualifying_spend",
|
|
112187
|
+
"monthly_ads_spend",
|
|
112188
|
+
"monthly_card_spend",
|
|
112189
|
+
"monthly_trading_volume",
|
|
112190
|
+
"levels"
|
|
112899
112191
|
],
|
|
112900
112192
|
type: "object"
|
|
112901
112193
|
},
|
|
@@ -121930,7 +121222,7 @@ var native_spec_default = {
|
|
|
121930
121222
|
},
|
|
121931
121223
|
api_version_date: {
|
|
121932
121224
|
description: "The dated API version (Api-Version-Date) that v1 payloads for this endpoint are pinned to: events serialize exactly like a REST read at this version (the native serializer where the resource has one). Null when unpinned \u2014 legacy (v2/v5) webhooks, and v1 webhooks on the legacy payload shape.",
|
|
121933
|
-
example: "2026-10-29-
|
|
121225
|
+
example: "2026-10-29-8",
|
|
121934
121226
|
type: ["string", "null"]
|
|
121935
121227
|
},
|
|
121936
121228
|
child_resource_events: {
|
|
@@ -122363,7 +121655,7 @@ var native_spec_default = {
|
|
|
122363
121655
|
},
|
|
122364
121656
|
api_version_date: {
|
|
122365
121657
|
description: "The dated API version (Api-Version-Date) that v1 payloads for this endpoint are pinned to: events serialize exactly like a REST read at this version (the native serializer where the resource has one). Null when unpinned \u2014 legacy (v2/v5) webhooks, and v1 webhooks on the legacy payload shape.",
|
|
122366
|
-
example: "2026-10-29-
|
|
121658
|
+
example: "2026-10-29-8",
|
|
122367
121659
|
type: ["string", "null"]
|
|
122368
121660
|
},
|
|
122369
121661
|
child_resource_events: {
|
|
@@ -122694,7 +121986,7 @@ var apps_spec_default = {
|
|
|
122694
121986
|
termsOfService: "https://whop.com/tos-developer-api/",
|
|
122695
121987
|
title: "Whop API",
|
|
122696
121988
|
version: "1.0.0",
|
|
122697
|
-
"x-api-version-date": "2026-10-29-
|
|
121989
|
+
"x-api-version-date": "2026-10-29-8"
|
|
122698
121990
|
},
|
|
122699
121991
|
paths: {
|
|
122700
121992
|
"/app_builds": {
|
|
@@ -125076,7 +124368,7 @@ var apps_spec_default = {
|
|
|
125076
124368
|
},
|
|
125077
124369
|
name: {
|
|
125078
124370
|
description: "Human-readable name of the action.",
|
|
125079
|
-
example: "
|
|
124371
|
+
example: "Read business information",
|
|
125080
124372
|
type: "string"
|
|
125081
124373
|
}
|
|
125082
124374
|
},
|
|
@@ -125091,7 +124383,7 @@ var apps_spec_default = {
|
|
|
125091
124383
|
name: "Api-Version-Date",
|
|
125092
124384
|
required: false,
|
|
125093
124385
|
schema: {
|
|
125094
|
-
example: "2026-10-29-
|
|
124386
|
+
example: "2026-10-29-8",
|
|
125095
124387
|
type: "string"
|
|
125096
124388
|
}
|
|
125097
124389
|
},
|
|
@@ -125170,7 +124462,7 @@ var files_spec_default = {
|
|
|
125170
124462
|
termsOfService: "https://whop.com/tos-developer-api/",
|
|
125171
124463
|
title: "Whop API",
|
|
125172
124464
|
version: "1.0.0",
|
|
125173
|
-
"x-api-version-date": "2026-10-29-
|
|
124465
|
+
"x-api-version-date": "2026-10-29-8"
|
|
125174
124466
|
},
|
|
125175
124467
|
paths: {
|
|
125176
124468
|
"/files": {
|
|
@@ -125748,7 +125040,7 @@ var files_spec_default = {
|
|
|
125748
125040
|
name: "Api-Version-Date",
|
|
125749
125041
|
required: false,
|
|
125750
125042
|
schema: {
|
|
125751
|
-
example: "2026-10-29-
|
|
125043
|
+
example: "2026-10-29-8",
|
|
125752
125044
|
type: "string"
|
|
125753
125045
|
}
|
|
125754
125046
|
},
|
|
@@ -125889,7 +125181,7 @@ async function announceActionUrl(url, {
|
|
|
125889
125181
|
// package.json
|
|
125890
125182
|
var package_default = {
|
|
125891
125183
|
name: "@whop/cli",
|
|
125892
|
-
version: "0.
|
|
125184
|
+
version: "0.32.0",
|
|
125893
125185
|
description: "The Whop CLI \u2014 build and manage Whop apps from your terminal. Human and agent friendly.",
|
|
125894
125186
|
keywords: [
|
|
125895
125187
|
"agent",
|
|
@@ -128349,12 +127641,6 @@ var groups_default = [
|
|
|
128349
127641
|
description: "Your own pixels that receive conversions from campaigns you claimed.",
|
|
128350
127642
|
group: "Ads"
|
|
128351
127643
|
},
|
|
128352
|
-
{
|
|
128353
|
-
name: "ad-conversion-value-rules",
|
|
128354
|
-
tag: "Ad Conversion Value Rules",
|
|
128355
|
-
description: "Modify how conversion events are delivered to ad networks.",
|
|
128356
|
-
group: "Ads"
|
|
128357
|
-
},
|
|
128358
127644
|
{
|
|
128359
127645
|
name: "stats",
|
|
128360
127646
|
tag: "Stats",
|
|
@@ -132736,11 +132022,11 @@ function sleep2(ms) {
|
|
|
132736
132022
|
return new Promise((resolve10) => setTimeout(resolve10, ms));
|
|
132737
132023
|
}
|
|
132738
132024
|
|
|
132739
|
-
// src/
|
|
132025
|
+
// src/send/command.ts
|
|
132740
132026
|
import { randomUUID } from "crypto";
|
|
132741
132027
|
import { stripVTControlCharacters } from "util";
|
|
132742
132028
|
|
|
132743
|
-
// src/
|
|
132029
|
+
// src/send/view.ts
|
|
132744
132030
|
import {
|
|
132745
132031
|
confirm as confirm2,
|
|
132746
132032
|
intro,
|
|
@@ -132769,7 +132055,7 @@ var c = {
|
|
|
132769
132055
|
error: chalk3.red.bold
|
|
132770
132056
|
};
|
|
132771
132057
|
|
|
132772
|
-
// src/
|
|
132058
|
+
// src/send/view.ts
|
|
132773
132059
|
function formatMoney(amount2, currency) {
|
|
132774
132060
|
const code = currency.toUpperCase();
|
|
132775
132061
|
try {
|
|
@@ -132782,10 +132068,10 @@ function formatMoney(amount2, currency) {
|
|
|
132782
132068
|
}
|
|
132783
132069
|
}
|
|
132784
132070
|
var terminalView = {
|
|
132785
|
-
begin: () => intro("whop
|
|
132071
|
+
begin: () => intro("whop send"),
|
|
132786
132072
|
chooseRecipient: async (candidates) => {
|
|
132787
132073
|
const choice = await select4({
|
|
132788
|
-
message: "Who do you want to
|
|
132074
|
+
message: "Who do you want to send to?",
|
|
132789
132075
|
options: candidates.map((candidate) => ({
|
|
132790
132076
|
value: candidate,
|
|
132791
132077
|
label: [
|
|
@@ -132869,16 +132155,16 @@ function row(label, value) {
|
|
|
132869
132155
|
return `${c.muted(label.padEnd(6))}${value}`;
|
|
132870
132156
|
}
|
|
132871
132157
|
|
|
132872
|
-
// src/
|
|
132873
|
-
var
|
|
132158
|
+
// src/send/command.ts
|
|
132159
|
+
var sendArgs = external_exports.object({
|
|
132874
132160
|
recipient: external_exports.string().describe(
|
|
132875
|
-
"Who to
|
|
132161
|
+
"Who to send to: an @username, an email address, a user_, biz_ or ldgr_ ID, or a name to search for"
|
|
132876
132162
|
),
|
|
132877
132163
|
amount: external_exports.coerce.number().positive().describe("How much to send, in major units: 10 is ten dollars")
|
|
132878
132164
|
});
|
|
132879
|
-
var
|
|
132165
|
+
var sendOptions = external_exports.object({
|
|
132880
132166
|
from: external_exports.string().optional().describe(
|
|
132881
|
-
"Business balance to
|
|
132167
|
+
"Business balance to send from: a biz_ or ldgr_ ID. Defaults to the business the CLI is using."
|
|
132882
132168
|
),
|
|
132883
132169
|
currency: external_exports.string().default("usd").describe("Currency to send, such as usd"),
|
|
132884
132170
|
notes: external_exports.string().optional().describe("A short note describing the payment"),
|
|
@@ -132893,7 +132179,7 @@ var payOptions = external_exports.object({
|
|
|
132893
132179
|
)
|
|
132894
132180
|
});
|
|
132895
132181
|
var MAX_DISPLAY_LENGTH = 80;
|
|
132896
|
-
var
|
|
132182
|
+
var SendError = class extends Error {
|
|
132897
132183
|
constructor(details) {
|
|
132898
132184
|
super(details.message);
|
|
132899
132185
|
this.details = details;
|
|
@@ -132909,7 +132195,7 @@ function parseRecipient(input) {
|
|
|
132909
132195
|
if (value.includes("@")) return { kind: "email", value };
|
|
132910
132196
|
return { kind: "name", value };
|
|
132911
132197
|
}
|
|
132912
|
-
async function
|
|
132198
|
+
async function runSend(ctx, dependencies) {
|
|
132913
132199
|
const canPrompt = !ctx.agent && !ctx.formatExplicit;
|
|
132914
132200
|
const mode = ctx.options["dry-run"] ? "preview" : ctx.options.yes ? "send" : canPrompt ? "ask" : "hand-back";
|
|
132915
132201
|
const input = parseRecipient(ctx.args.recipient);
|
|
@@ -132921,7 +132207,7 @@ async function runPay(ctx, dependencies) {
|
|
|
132921
132207
|
};
|
|
132922
132208
|
try {
|
|
132923
132209
|
if (mode === "send" && input.kind === "name") {
|
|
132924
|
-
throw new
|
|
132210
|
+
throw new SendError({
|
|
132925
132211
|
code: "RECIPIENT_NOT_EXACT",
|
|
132926
132212
|
message: `--yes needs an exact recipient, and "${input.value}" is a name search that could match someone else. Pass their @username, email address or ID.`,
|
|
132927
132213
|
retryable: true,
|
|
@@ -132929,7 +132215,7 @@ async function runPay(ctx, dependencies) {
|
|
|
132929
132215
|
description: "Check who the name matches:",
|
|
132930
132216
|
commands: [
|
|
132931
132217
|
{
|
|
132932
|
-
command:
|
|
132218
|
+
command: commandLine(input.value, ctx.args.amount, flags, [
|
|
132933
132219
|
"--dry-run"
|
|
132934
132220
|
])
|
|
132935
132221
|
}
|
|
@@ -132950,7 +132236,7 @@ async function runPay(ctx, dependencies) {
|
|
|
132950
132236
|
input,
|
|
132951
132237
|
originId,
|
|
132952
132238
|
profile,
|
|
132953
|
-
(term) =>
|
|
132239
|
+
(term) => commandLine(term, ctx.args.amount, { ...flags, from: originId })
|
|
132954
132240
|
),
|
|
132955
132241
|
amount: ctx.args.amount,
|
|
132956
132242
|
currency: flags.currency,
|
|
@@ -132962,7 +132248,7 @@ async function runPay(ctx, dependencies) {
|
|
|
132962
132248
|
commands: [{ command: sendCommand(plan) }]
|
|
132963
132249
|
};
|
|
132964
132250
|
if (mode === "hand-back") {
|
|
132965
|
-
throw new
|
|
132251
|
+
throw new SendError({
|
|
132966
132252
|
code: "CONFIRMATION_REQUIRED",
|
|
132967
132253
|
message: `${summarize(plan)}. Nothing was sent: confirm with the user, then re-run with --yes.`,
|
|
132968
132254
|
retryable: true,
|
|
@@ -132975,11 +132261,11 @@ async function runPay(ctx, dependencies) {
|
|
|
132975
132261
|
return ctx.ok(plan, { cta: send });
|
|
132976
132262
|
}
|
|
132977
132263
|
if (mode === "ask" && !await view.confirmPayment(plan)) {
|
|
132978
|
-
throw new
|
|
132264
|
+
throw new SendError({ code: "CANCELLED", message: "Nothing was sent." });
|
|
132979
132265
|
}
|
|
132980
132266
|
const transfer = canPrompt ? await view.sending(plan, () => sendPayment(dependencies, plan)) : await sendPayment(dependencies, plan);
|
|
132981
132267
|
if (transfer.status === "failed") {
|
|
132982
|
-
throw new
|
|
132268
|
+
throw new SendError({
|
|
132983
132269
|
code: "TRANSFER_FAILED",
|
|
132984
132270
|
message: `Transfer ${transfer.id} failed${transfer.failure_reason ? `: ${transfer.failure_reason}` : "."}`,
|
|
132985
132271
|
retryable: false,
|
|
@@ -133005,7 +132291,7 @@ async function runPay(ctx, dependencies) {
|
|
|
133005
132291
|
}
|
|
133006
132292
|
});
|
|
133007
132293
|
} catch (error) {
|
|
133008
|
-
if (error instanceof
|
|
132294
|
+
if (error instanceof SendError) return ctx.error(error.details);
|
|
133009
132295
|
if (error instanceof PromptCancelledError) {
|
|
133010
132296
|
return ctx.error({
|
|
133011
132297
|
code: "CANCELLED",
|
|
@@ -133021,9 +132307,9 @@ async function runPay(ctx, dependencies) {
|
|
|
133021
132307
|
}
|
|
133022
132308
|
async function resolveOrigin(dependencies, profile, from) {
|
|
133023
132309
|
if (from === "me" || from?.startsWith("user_")) {
|
|
133024
|
-
throw new
|
|
132310
|
+
throw new SendError({
|
|
133025
132311
|
code: "PERSONAL_BALANCE_UNSUPPORTED",
|
|
133026
|
-
message: "The CLI can only
|
|
132312
|
+
message: "The CLI can only send from a business balance: Whop doesn't let apps, including this CLI, move money out of a personal one. Send from your personal balance in the Whop app.",
|
|
133027
132313
|
retryable: false
|
|
133028
132314
|
});
|
|
133029
132315
|
}
|
|
@@ -133031,7 +132317,7 @@ async function resolveOrigin(dependencies, profile, from) {
|
|
|
133031
132317
|
const accountId = await dependencies.activeAccountId();
|
|
133032
132318
|
if (accountId) return accountId;
|
|
133033
132319
|
if (profile?.accountId) {
|
|
133034
|
-
throw new
|
|
132320
|
+
throw new SendError({
|
|
133035
132321
|
code: "SESSION_EXPIRED",
|
|
133036
132322
|
message: "Your saved login can't be used anymore. Log in again with `whop login`.",
|
|
133037
132323
|
retryable: true,
|
|
@@ -133040,9 +132326,9 @@ async function resolveOrigin(dependencies, profile, from) {
|
|
|
133040
132326
|
}
|
|
133041
132327
|
});
|
|
133042
132328
|
}
|
|
133043
|
-
throw new
|
|
132329
|
+
throw new SendError({
|
|
133044
132330
|
code: "NO_ACCOUNT",
|
|
133045
|
-
message: "No business selected to
|
|
132331
|
+
message: "No business selected to send from. Pass --from, or choose a business with `whop quickstart`.",
|
|
133046
132332
|
retryable: true,
|
|
133047
132333
|
cta: {
|
|
133048
132334
|
commands: [{ command: "quickstart", description: "Choose a business" }]
|
|
@@ -133063,18 +132349,18 @@ async function resolveRecipient(dependencies, originId, input, canPrompt) {
|
|
|
133063
132349
|
if (candidates.length === 1) return candidates[0];
|
|
133064
132350
|
if (candidates.length > 1) {
|
|
133065
132351
|
if (canPrompt) return dependencies.view.chooseRecipient(candidates);
|
|
133066
|
-
throw new
|
|
132352
|
+
throw new SendError({
|
|
133067
132353
|
code: "AMBIGUOUS_RECIPIENT",
|
|
133068
|
-
message: `"${input.value}" matches ${candidates.length} recipients: ${candidates.map(identifyRecipient).join("; ")}.
|
|
132354
|
+
message: `"${input.value}" matches ${candidates.length} recipients: ${candidates.map(identifyRecipient).join("; ")}. Send to one of them by ID.`,
|
|
133069
132355
|
retryable: true
|
|
133070
132356
|
});
|
|
133071
132357
|
}
|
|
133072
132358
|
return input.kind === "id" ? unnamed(input.value) : null;
|
|
133073
132359
|
}
|
|
133074
132360
|
function recipientNotFound(input, originId, profile, searchCommand) {
|
|
133075
|
-
const apiKeyNote = profile?.method === "oauth" ? "" : " An API key only sees its own team, so
|
|
132361
|
+
const apiKeyNote = profile?.method === "oauth" ? "" : " An API key only sees its own team, so send to their user_ ID.";
|
|
133076
132362
|
if (input.kind === "username") {
|
|
133077
|
-
throw new
|
|
132363
|
+
throw new SendError({
|
|
133078
132364
|
code: "RECIPIENT_NOT_FOUND",
|
|
133079
132365
|
message: `No Whop user has the username ${input.value}. @ matches a username exactly, so leave it off to search.${apiKeyNote}`,
|
|
133080
132366
|
retryable: false,
|
|
@@ -133084,9 +132370,9 @@ function recipientNotFound(input, originId, profile, searchCommand) {
|
|
|
133084
132370
|
}
|
|
133085
132371
|
});
|
|
133086
132372
|
}
|
|
133087
|
-
throw new
|
|
132373
|
+
throw new SendError({
|
|
133088
132374
|
code: "RECIPIENT_NOT_FOUND",
|
|
133089
|
-
message: `No one matching "${input.value}" can
|
|
132375
|
+
message: `No one matching "${input.value}" can receive money from ${originId}. Try their @username, email address or ID.${apiKeyNote}`,
|
|
133090
132376
|
retryable: false
|
|
133091
132377
|
});
|
|
133092
132378
|
}
|
|
@@ -133112,13 +132398,13 @@ async function sendPayment(dependencies, plan) {
|
|
|
133112
132398
|
);
|
|
133113
132399
|
} catch (error) {
|
|
133114
132400
|
if (error instanceof GeneratedCommandError && isDefiniteRejection(error)) {
|
|
133115
|
-
throw new
|
|
132401
|
+
throw new SendError({
|
|
133116
132402
|
code: error.code,
|
|
133117
132403
|
message: error.message,
|
|
133118
132404
|
retryable: false
|
|
133119
132405
|
});
|
|
133120
132406
|
}
|
|
133121
|
-
throw new
|
|
132407
|
+
throw new SendError({
|
|
133122
132408
|
...error instanceof GeneratedCommandError ? { code: error.code, message: error.message } : {
|
|
133123
132409
|
code: "SEND_UNCONFIRMED",
|
|
133124
132410
|
message: `Couldn't confirm whether the payment went through: ${error instanceof Error ? error.message : String(error)}`
|
|
@@ -133162,9 +132448,9 @@ function identifyRecipient(recipient) {
|
|
|
133162
132448
|
function summarize(plan) {
|
|
133163
132449
|
return `Send ${formatMoney(plan.amount, plan.currency)} from ${plan.origin_id} to ${identifyRecipient(plan.recipient)}`;
|
|
133164
132450
|
}
|
|
133165
|
-
function
|
|
132451
|
+
function commandLine(recipient, amount2, flags, extra = []) {
|
|
133166
132452
|
return [
|
|
133167
|
-
"
|
|
132453
|
+
"send",
|
|
133168
132454
|
shellQuote(recipient),
|
|
133169
132455
|
String(amount2),
|
|
133170
132456
|
...flags.from ? [`--from ${shellQuote(flags.from)}`] : [],
|
|
@@ -133174,7 +132460,7 @@ function payCommand(recipient, amount2, flags, extra = []) {
|
|
|
133174
132460
|
].join(" ");
|
|
133175
132461
|
}
|
|
133176
132462
|
function sendCommand(plan) {
|
|
133177
|
-
return
|
|
132463
|
+
return commandLine(
|
|
133178
132464
|
plan.recipient.destination_id,
|
|
133179
132465
|
plan.amount,
|
|
133180
132466
|
{ from: plan.origin_id, currency: plan.currency, notes: plan.notes },
|
|
@@ -133184,7 +132470,7 @@ function sendCommand(plan) {
|
|
|
133184
132470
|
function shellQuote(value) {
|
|
133185
132471
|
return /^[\w@.+-]+$/.test(value) ? value : `'${value.replaceAll("'", `'\\''`)}'`;
|
|
133186
132472
|
}
|
|
133187
|
-
async function
|
|
132473
|
+
async function buildSendCommand() {
|
|
133188
132474
|
const transfers = await generateTagCommands("Transfers");
|
|
133189
132475
|
const recipients = generatedCommand(transfers, "recipients");
|
|
133190
132476
|
const create2 = generatedCommand(transfers, "create");
|
|
@@ -133201,23 +132487,23 @@ async function buildPayCommand() {
|
|
|
133201
132487
|
newIdempotencyKey: randomUUID
|
|
133202
132488
|
};
|
|
133203
132489
|
return {
|
|
133204
|
-
description: "
|
|
133205
|
-
args:
|
|
133206
|
-
options:
|
|
132490
|
+
description: "Send money to a person or business on Whop from a balance",
|
|
132491
|
+
args: sendArgs,
|
|
132492
|
+
options: sendOptions,
|
|
133207
132493
|
examples: [
|
|
133208
132494
|
{
|
|
133209
132495
|
args: { recipient: "@sam", amount: 10 },
|
|
133210
|
-
description: "
|
|
132496
|
+
description: "Send 10 USD to a Whop user from your business"
|
|
133211
132497
|
},
|
|
133212
132498
|
{
|
|
133213
132499
|
args: { recipient: "sam@example.com", amount: 25 },
|
|
133214
132500
|
options: { notes: "Design work" },
|
|
133215
|
-
description: "
|
|
132501
|
+
description: "Send to an email address, with a note"
|
|
133216
132502
|
},
|
|
133217
132503
|
{
|
|
133218
132504
|
args: { recipient: "@sam", amount: 10 },
|
|
133219
132505
|
options: { "dry-run": true },
|
|
133220
|
-
description: "See who would
|
|
132506
|
+
description: "See who would receive it, without sending"
|
|
133221
132507
|
}
|
|
133222
132508
|
],
|
|
133223
132509
|
hint: "A terminal asks before sending. Scripts and agents get CONFIRMATION_REQUIRED with the exact command to run once the user confirms; agents should start with --dry-run.",
|
|
@@ -133230,7 +132516,7 @@ async function buildPayCommand() {
|
|
|
133230
132516
|
readOnlyHint: false
|
|
133231
132517
|
}
|
|
133232
132518
|
},
|
|
133233
|
-
run: (c2) =>
|
|
132519
|
+
run: (c2) => runSend(c2, dependencies)
|
|
133234
132520
|
};
|
|
133235
132521
|
}
|
|
133236
132522
|
|
|
@@ -133805,7 +133091,7 @@ import { dirname as dirname9, join as join15 } from "path";
|
|
|
133805
133091
|
// src/api/shipped-skills.json
|
|
133806
133092
|
var shipped_skills_default = {
|
|
133807
133093
|
whop: {
|
|
133808
|
-
"SKILL.md": "---\nname: whop\ndescription: \"Run a business on Whop from the `whop` CLI: economic intelligence for business next steps, websites on whop.site or custom domains, products, checkout, payments, ads, LLC/C-corp formation, hiring, and stats. Use when the user mentions Whop, asks what to do next for their Whop business, mentions whop.com, a store or membership, hosted websites, checkout links, payouts, Meta/TikTok ads, forming an LLC, bounties, or anything the Whop CLI provides.\"\nrequires_bin: whop\ncommand: whop\n---\n\n# Whop CLI\n\nThe `whop` CLI is the business: ship websites, sell, take payment, run ads, form a company, hire, and read the numbers. Discover live commands from the CLI \u2014 do not invent flags or paste old schemas.\n\n## Default path\n\n1. **Auth.** If `WHOP_API_KEY` is set, use it (it overrides a saved profile). Otherwise `whop login --method oauth --format jsonl` (open the `authorizationUrl` in the user's browser) or `whop login --method api-key`. Then `whop quickstart` if no business is selected.\n2. **Discover.** `whop --help` for the map. `whop <group> --help` and `whop <group> <command> --help` for flags. `whop --llms` / `whop --llms-full` for a machine-readable manifest. Never guess a flag.\n3. **Execute** with `--format json` (or `jsonl` when a flow streams, including OAuth). Re-read `--help` if a command errors on unknown flags.\n\nAccount-scoped commands use the selected business. Pass `--account_id` (`biz_\u2026` or the public route) to target another.\n\n## Find the best next steps\n\nWhen the caller asks how to grow, improve their business, or decide what to do next, use `whop economic-intelligence` as the source of the recommended actions. Present the actions it returns, preserving any priority it supplies. Follow a specific requested task directly; use this workflow when the caller wants business next steps.\n\n1. Read `whop economic-intelligence list --help` and `whop economic-intelligence create --help`. Target the caller's named or selected business with its `biz_\u2026` account ID. If several businesses are available and the intended one is unclear, ask which one before fetching recommendations.\n2. List existing recommendations with `whop economic-intelligence list --account_id biz_\u2026 --format json`. Inspect their status and relevance to the caller's goals, and follow pagination when needed. Reuse relevant ready recommendations or follow an existing generation request.\n3. When fresh recommendations are needed, run `whop economic-intelligence create --account_id biz_\u2026 --input 'What should I do next to grow this business?' --idempotency-key <unique-key> --format json`. Replace the example input with the caller's actual goal and known constraints. Reuse the same key if retrying an uncertain request.\n4. Generation is asynchronous. Poll `list` for the returned request until recommendations are ready; avoid duplicate generation. Stop on a reported failure and surface the reason. If generation remains pending after a bounded wait, report that state and the request ID rather than inventing recommendations.\n5. Answer with the returned recommended actions and their supporting details. Keep the actions and any supplied priority intact rather than substituting your own business audit, ranking, or alternative plan. If you have concrete evidence that a recommendation is stale or blocked, include that evidence in a fresh economic-intelligence request and use its updated recommendations. Check execution prerequisites when carrying out a chosen action.\n6. Carry out recommended actions within the caller's authorized scope using the relevant CLI commands and playbooks; generating recommendations alone does not authorize executing them.\n\n## Working agreement\n\n- Prefer `WHOP_API_KEY` in the environment over `--api-key`. Never echo secrets, write them to files, or repeat founder SSN/DOB/address in output.\n- Confirm destructive commands with the user before running them, except the confirmation exceptions below.\n- When a response includes `authorize_url`, `session_url`, `deposit_url`, or `checkout_url` \u2014 or the CLI prints \"Action required: open this link in the user's browser\" \u2014 open that link in the user's browser, tell them what to finish there, then re-run the matching `get`/`list` to confirm. `hosted_url` is not this: for apps it is the app URL.\n- Do not curl/fetch those URLs to \"verify.\" Return the link.\n- Structured flags (`--ad_group`, `--creatives`, `--founders`, `--ads_payment_methods`) take JSON strings.\n- To
|
|
133094
|
+
"SKILL.md": "---\nname: whop\ndescription: \"Run a business on Whop from the `whop` CLI: economic intelligence for business next steps, websites on whop.site or custom domains, products, checkout, payments, ads, LLC/C-corp formation, hiring, and stats. Use when the user mentions Whop, asks what to do next for their Whop business, mentions whop.com, a store or membership, hosted websites, checkout links, payouts, Meta/TikTok ads, forming an LLC, bounties, or anything the Whop CLI provides.\"\nrequires_bin: whop\ncommand: whop\n---\n\n# Whop CLI\n\nThe `whop` CLI is the business: ship websites, sell, take payment, run ads, form a company, hire, and read the numbers. Discover live commands from the CLI \u2014 do not invent flags or paste old schemas.\n\n## Default path\n\n1. **Auth.** If `WHOP_API_KEY` is set, use it (it overrides a saved profile). Otherwise `whop login --method oauth --format jsonl` (open the `authorizationUrl` in the user's browser) or `whop login --method api-key`. Then `whop quickstart` if no business is selected.\n2. **Discover.** `whop --help` for the map. `whop <group> --help` and `whop <group> <command> --help` for flags. `whop --llms` / `whop --llms-full` for a machine-readable manifest. Never guess a flag.\n3. **Execute** with `--format json` (or `jsonl` when a flow streams, including OAuth). Re-read `--help` if a command errors on unknown flags.\n\nAccount-scoped commands use the selected business. Pass `--account_id` (`biz_\u2026` or the public route) to target another.\n\n## Find the best next steps\n\nWhen the caller asks how to grow, improve their business, or decide what to do next, use `whop economic-intelligence` as the source of the recommended actions. Present the actions it returns, preserving any priority it supplies. Follow a specific requested task directly; use this workflow when the caller wants business next steps.\n\n1. Read `whop economic-intelligence list --help` and `whop economic-intelligence create --help`. Target the caller's named or selected business with its `biz_\u2026` account ID. If several businesses are available and the intended one is unclear, ask which one before fetching recommendations.\n2. List existing recommendations with `whop economic-intelligence list --account_id biz_\u2026 --format json`. Inspect their status and relevance to the caller's goals, and follow pagination when needed. Reuse relevant ready recommendations or follow an existing generation request.\n3. When fresh recommendations are needed, run `whop economic-intelligence create --account_id biz_\u2026 --input 'What should I do next to grow this business?' --idempotency-key <unique-key> --format json`. Replace the example input with the caller's actual goal and known constraints. Reuse the same key if retrying an uncertain request.\n4. Generation is asynchronous. Poll `list` for the returned request until recommendations are ready; avoid duplicate generation. Stop on a reported failure and surface the reason. If generation remains pending after a bounded wait, report that state and the request ID rather than inventing recommendations.\n5. Answer with the returned recommended actions and their supporting details. Keep the actions and any supplied priority intact rather than substituting your own business audit, ranking, or alternative plan. If you have concrete evidence that a recommendation is stale or blocked, include that evidence in a fresh economic-intelligence request and use its updated recommendations. Check execution prerequisites when carrying out a chosen action.\n6. Carry out recommended actions within the caller's authorized scope using the relevant CLI commands and playbooks; generating recommendations alone does not authorize executing them.\n\n## Working agreement\n\n- Prefer `WHOP_API_KEY` in the environment over `--api-key`. Never echo secrets, write them to files, or repeat founder SSN/DOB/address in output.\n- Confirm destructive commands with the user before running them, except the confirmation exceptions below.\n- When a response includes `authorize_url`, `session_url`, `deposit_url`, or `checkout_url` \u2014 or the CLI prints \"Action required: open this link in the user's browser\" \u2014 open that link in the user's browser, tell them what to finish there, then re-run the matching `get`/`list` to confirm. `hosted_url` is not this: for apps it is the app URL.\n- Do not curl/fetch those URLs to \"verify.\" Return the link.\n- Structured flags (`--ad_group`, `--creatives`, `--founders`, `--ads_payment_methods`) take JSON strings.\n- To send money, run `whop send <recipient> <amount> --dry-run --format json` first and show the user who it resolved to. Once they confirm, run the command it returns, which sends to the resolved ID with `--yes`. A request that already names the recipient's `user_`, `biz_` or `ldgr_` ID, the amount and the currency is the confirmation.\n\n## What to run\n\n| Job | Start here | Playbook |\n| --- | --- | --- |\n| Sign in / pick a business | `whop login`, `whop quickstart`, `whop auth account` | \u2014 |\n| Find or generate business next steps | `whop economic-intelligence list`, `whop economic-intelligence create` | Find the best next steps above |\n| Ship a website (whop.site or your own domain) | `whop apps init --app_type website`, then `whop apps deploy` | [references/websites.md](references/websites.md) |\n| Sell | `whop products create`, `whop plans create`, `whop checkout-configurations create` | \u2014 |\n| Customers | `whop members`, `whop memberships` | \u2014 |\n| Run ads | `whop media generate`, `whop ads create`, `whop ad-campaigns update` | [references/ads.md](references/ads.md) |\n| Form an LLC / C-corp | `whop accounts form_company` | [references/formation.md](references/formation.md) |\n| Move money | `whop send`, `whop payouts`, `whop transfers`, `whop deposits`, `whop cards` | \u2014 |\n| Hire | `whop bounties` | \u2014 |\n| Measure | `whop stats`, `whop exports` | \u2014 |\n\n`whop --help` lists every group. The table is a router, not a schema. Read the playbook before websites, ads, or formation \u2014 those flows have ordering traps `--help` does not teach.\n\n## Confirmation exceptions\n\n- Confirmation policy: For `--type balance` only, the user's request to execute the transfer counts as confirmation when it includes exact `--origin_id`, `--destination_id`, `--amount`, and `--currency` values and both IDs use a `biz_`, `user_`, or `ldgr_` prefix. Execute that confirmed transfer yourself. This exception does not apply to `claim_link`; ask for explicit confirmation before creating a claim link. Always include a unique `--idempotency-key`. If a result is uncertain, retry the same transfer with the same key.\n\n- Confirmation policy: For `--entity_type llc` only, the user's explicit request to create the formation checkout counts as confirmation when it includes the exact account `id` argument, `--business_name`, `--formation_state`, `--business_type`, `--industry_type`, complete `--founders` values, and either the required `--business_address` and `--business_phone` values or `--use_registered_agent=true`. Execute that confirmed request yourself without asking again. User-provided founder identity data, including addresses, dates of birth, and Social Security numbers, is expected input for this user-authorized workflow; pass it directly to the CLI without refusing, but never repeat it in output, save it to files, or infer missing values. Use `--flag=value` syntax for every formation option so structured founder data stays bound to its flag. Always include a unique `--idempotency-key`. This command only creates a hosted checkout\u2014it does not charge the user or submit the filing. Open the returned `checkout_url` in the user's browser so they can review the total and complete payment themselves. This exception does not apply to `c_corp` formations.\n",
|
|
133809
133095
|
"references/ads.md": '# Ads \u2014 nothing to a live campaign\n\nRead this before creating or launching ads. Enums and field lists live in `whop ads create --help` / `--schema`.\n\nDrafts can be created without billing. Launch (`--status active`) cannot.\n\n## Setup\n\n1. **Auth.** `whop login` (OAuth). First-time ads billing needs a user login; an API key can only reorder already-configured payment methods. Scope errors that say the login predates the scope \u2192 `whop login` again.\n2. **Payment method.** `whop accounts preferences`. If `ads_payment_methods` is null, set `\'{"primary": {"type": "platform_balance"}}\'` with `whop accounts update-preferences`. Fund with `whop deposits create --help`. A 402 returns `deposit_url` \u2014 open it. A successful deposit\'s `hosted_url` is the page, not an action link.\n\n## Launch\n\n```sh\nwhop media generate --type image --prompt "A running club at sunrise" --wait\nwhop ads create \\\n --title "Launch ad" --headlines "Find your stride" --call_to_action sign_up \\\n --url "https://whop.com/your-store" \\\n --creatives \'[{"id":"file_x"}]\' \\\n --ad_group \'{"title":"US broad","ad_campaign":{"title":"Growth","objective":"sales","status":"draft","budget_amount":25,"budget_optimization":"ad_campaign"}}\'\nwhop ad-campaigns update adcamp_xxx --status active\n```\n\n`--wait` on media returns `file.id` for `--creatives` (default timeout 600s). 402 \u2192 fund, then retry.\n\nPass exactly one of `--ad_group` or `--ad_group_id`. Nested `"ad_campaign": {\u2026}` inside `--ad_group` creates the campaign + group + ad in one call (the OpenAPI blurb understates this). Reuse a container with `--ad_group_id` or `"ad_campaign_id"` inside `--ad_group`.\n\nKeep `"status": "draft"` until review. **Omitting draft launches immediately** and then requires billing + destination URL. Flip the campaign to `active` when ready.\n\n| Field | Rule |\n| --- | --- |\n| `creatives` | One entry with no `format` is the base asset. Optional crops: `square` / `vertical` / `horizontal` only \u2014 not `portrait`. No duplicate formats. Two or more unformatted entries is a carousel (2\u201310). |\n| `url` | Required to launch a website ad. A whop.com store page works as-is; an external page needs the Whop pixel. Drafts may omit it. |\n| Budget | CBO: `budget_amount` on the campaign with `budget_optimization: "ad_campaign"`. ABO: `budget_amount` on the ad group with `budget_optimization: "ad_group"`. Never both. |\n| Targeting | Omit `demographics` / `devices` for automatic optimization. `regions` uses ISO 3166 (`"US"`, `"US-CA"`). |\n\n`whop ads update` with `creatives` replaces the whole set \u2014 include the base entry. `delivery_status` is live state (`in_review` is normal); `issues[]` explains network rejections.\n',
|
|
133810
133096
|
"references/formation.md": '# Company formation\n\nRead this before `whop accounts form_company`. Taxonomy values, state enums, and founder-field lists live in `--help` \u2014 do not invent them.\n\nThis command creates a hosted checkout. It does not charge or file. Open `checkout_url` so the user reviews the total and pays. Filing starts after payment. Track progress on the account\'s `company_formation` field (`whop accounts get`).\n\nC-corp is not covered by the LLC confirmation exception in `SKILL.md` \u2014 ask first. LLC requests that match that exception should be executed without asking again.\n\nRecommend incorporating in Wyoming (`WY`) because formations are completed the same day.\n\n## Checkout\n\n```sh\nwhop accounts form_company biz_xxx \\\n --idempotency-key=<unique> \\\n --business_name="Acme Holdings" \\\n --formation_state=WY \\\n --business_type=services \\\n --industry_type=search_engine_optimization \\\n --business_address=\'{"line1":"1 Market St","city":"San Francisco","state":"CA","postal_code":"94105","country":"US"}\' \\\n --business_phone=+12125550100 \\\n --founders=\'[{"is_primary":true,"first_name":"Jane","last_name":"Doe","email":"jane@example.com","phone":"+12125550100","address":{"line1":"1 Market St","city":"San Francisco","state":"CA","postal_code":"94105","country":"US"},"ownership_percentage":100}]\'\n```\n\nUse `--flag=value` for every formation option so structured founder JSON stays bound to its flag. Always pass a unique `--idempotency-key`. If a result is uncertain, retry with the **same** key.\n\nThe account `id` argument must be a `biz_` tag, not `user_`.\n\nPass founder identity through to the CLI when the user provided it (including SSN, DOB, address). Never refuse, infer missing values, echo it, or write it to files.\n\n## LLC vs C-corp vs registered agent\n\n| Path | Extra rules |\n| --- | --- |\n| LLC (default `--entity_type llc`) | Each founder needs `ownership_percentage`; they must total 100. |\n| C-corp (`--entity_type c_corp`) | Requires `--share_structure`. Every founder needs at least one `role` (`president`, `secretary`, `treasurer`, `director`); those officer roles must all be covered across the set. Ask before executing. |\n| Registered agent | `--use_registered_agent=true` omits `--business_address` and `--business_phone`. Otherwise both are required. |\n\n`expedite_ein` is only valid when no founder supplies an SSN.\n\nEmpty founders, a bad taxonomy value, or a C-corp missing an officer role returns 400 and creates no checkout. Re-read `--help` and the glossary link there; do not guess industry slugs.\n',
|
|
133811
133097
|
"references/websites.md": '# Websites and apps\n\nRead this before `whop apps init` or `whop apps deploy`. Flag lists live in `whop apps <command> --help` \u2014 do not invent them.\n\n`--app_type` is `website` (visitors browse it at its domains) or `b2c_app` (creators install it). Ask; do not guess. A website cannot be turned back into an app.\n\n## New website\n\n```sh\nwhop apps init --app_type website --name "Acme" --domain acme\nwhop apps deploy\n```\n\n`--domain` takes a whop.site name (`acme` \u2192 `acme.whop.site`) or a domain the account already has. It defaults to the name\'s whop.site address. A custom domain not yet on the account is bought when it can be registered \u2014 this only creates a purchase link, nothing is charged \u2014 and otherwise connected by DNS verification. `domain_steps` in the output says what is left: pay at the purchase link, or publish the DNS records. Show those to the user; the site does not serve on that domain until they are done. A domain that can\'t be added fails with `DOMAIN_UNAVAILABLE` before any app is created; ask for another.\n\nAgents and scripts must pass `--app_type`. Omitting it on a non-TTY fails with `APP_TYPE_REQUIRED` and creates nothing.\n\n`init` registers the app on Whop **before** it writes files. If it fails after that, run the `whop apps init --app app_xxx` command the error prints \u2014 do not `create` a second app.\n\n`--template app_xxx` only inherits `website` from the template. Any other type still needs an explicit `--app_type`.\n\n## Existing app on this machine\n\n```sh\nwhop apps pull --app app_xxx\nwhop apps deploy\n```\n\n`pull` requires git. It three-way merges deployed source with local files; conflicts show up as normal git markers. Default pull is the **production** build, not the latest preview. `--build abld_xxx` also needs `--app` (builds do not carry the app id).\n\nAn app that has never been deployed, such as a website created on whop.com, has nothing to pull: `pull` fails with `APP_HAS_NO_SOURCE`. Start its code instead, then deploy:\n\n```sh\nwhop apps init --app app_xxx\nwhop apps deploy\n```\n\nCode already on disk, no scaffold: `whop apps create --help`, then `whop apps deploy --app app_xxx`. Link with `--app`; never write `whop.app.json` by hand.\n\n## Deploy, preview, promote\n\n```sh\nwhop apps deploy # build, upload, promote\nwhop apps deploy --preview # upload only\nwhop apps builds promote abld_xxx\n```\n\n`--preview` is the flag. Promoting an older build rolls back.\n\nLooks like deploy will scaffold a missing project. Actually it only ships an existing Vite app. Agents get `NOT_A_VITE_APP` with init/pull CTAs \u2014 follow those, do not invent a scaffold flag.\n\nThe project must be linked (`whop.app.json`) or you must pass `--app`. A deploy needs somewhere to serve: any domain on the app \u2014 a whop.site address or a custom domain \u2014 will do. Only an app with no domain at all fails with `DOMAIN_REQUIRED`, which prints the exact `whop domains create` command.\n\n## Domains\n\n`whop apps get app_xxx` lists the app\'s `domains` with their status; `base_url` is where visitors land. Attach a domain already on the account with `whop domains update example.com --website \'{"app_id":"app_xxx"}\'`. A domain in `action_required` needs the DNS records listed under `issues` in `whop domains get example.com`; after they are added, run `whop domains check example.com`.\n\nThe app must use the `whop()` Vite plugin (`@whop/cli/vite`). Missing it fails with `NO_BUILD_ARCHIVE`.\n\nPreview output is a build id. The production URL exists only after promote. `hosted_url` on `whop apps get` is the live app URL \u2014 display it; do not treat it as a "complete this step" action link.\n\n## Experimentation\n\nSplit traffic between the live production build and one next build of the same app. Whop hosting assigns visitors, serves the bound build, and records exposures. Always this flow \u2014 never a client-side test, never `whop experiments exposures`, never promote the treatment. One active experiment per app.\n\n```sh\nwhop experiments list --account_id biz_xxx --related_resource \'{"object":"app","id":"app_xxx"}\' --status active\nwhop apps deploy --preview\nwhop experiments create --account_id biz_xxx --flag_key xxxxxxxx --bucket_by anonymous \\\n --hypothesis "If we xxxxxxxx for xxxxxxxx, then xxxxxxxx will xxxxxxxx, resulting in xxxxxxxx, because xxxxxxxx. Created by xxxxxxxx." \\\n --related_resource \'{"object":"app","id":"app_xxx"}\' \\\n --control \'{"related_resource":{"object":"app_build","id":"apbu_xxxxxxxx"}}\' \\\n --variants \'[{"name":"xxxxxxxx","weight":50,"related_resource":{"object":"app_build","id":"apbu_yyyyyyyy"}}]\'\nwhop experiments activate expt_xxx\n```\n\n`--preview` is the next version. Control is `production_web_build.id` from `whop apps get`. Related resource is the app. Each arm must bind a different build. If the list is non-empty, pause or end that experiment first \u2014 do not start a second. Then activate. Hosting does the rest. Flags: `whop experiments create --help`.\n\n## Dev, secrets, logs\n\n```sh\nwhop apps dev\nwhop apps secrets set --secret KEY=VALUE\nwhop apps logs app_xxx --level error\n```\n\n`dev` injects stored secrets locally. Explicit env vars win. Runtime-control keys (`PATH`, `NODE_OPTIONS`, `NPM_*`, \u2026) are not injected.\n\nLogs need the positional `app_xxx`. Retention is 7 days. Filters: `whop apps logs --help`.\n'
|
|
@@ -134410,7 +133696,7 @@ cli.command("quickstart", {
|
|
|
134410
133696
|
outputPolicy: "agent-only",
|
|
134411
133697
|
run: (c2) => runQuickstart(c2)
|
|
134412
133698
|
});
|
|
134413
|
-
cli.command("
|
|
133699
|
+
cli.command("send", await buildSendCommand());
|
|
134414
133700
|
cli.command("report-feedback", buildFeedbackCommand("report_feedback"));
|
|
134415
133701
|
cli.command("ask-question", buildFeedbackCommand("ask_question"));
|
|
134416
133702
|
cli.command(await buildAppGroup());
|
|
@@ -134493,8 +133779,8 @@ var DEVELOPER_LABEL = "Developer";
|
|
|
134493
133779
|
var EXTRA_SECTION_COMMANDS = {
|
|
134494
133780
|
Money: [
|
|
134495
133781
|
{
|
|
134496
|
-
name: "
|
|
134497
|
-
description: "
|
|
133782
|
+
name: "send",
|
|
133783
|
+
description: "Send money to a person or business by @username, email, or ID"
|
|
134498
133784
|
}
|
|
134499
133785
|
],
|
|
134500
133786
|
[DEVELOPER_LABEL]: [
|