@whop/cli 0.20.0 → 0.21.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/dist/index.js CHANGED
@@ -14140,7 +14140,7 @@ var native_spec_default = {
14140
14140
  termsOfService: "https://whop.com/tos-developer-api/",
14141
14141
  title: "Whop API",
14142
14142
  version: "1.0.0",
14143
- "x-api-version-date": "2026-09-24"
14143
+ "x-api-version-date": "2026-09-25"
14144
14144
  },
14145
14145
  servers: [
14146
14146
  {
@@ -14154,7 +14154,7 @@ var native_spec_default = {
14154
14154
  ],
14155
14155
  tags: [
14156
14156
  {
14157
- description: "An Account represents a person or business on Whop that can have its own profile, wallet, and account-scoped settings. Use accounts for customers, creators, merchants, sellers, or connected businesses your integration supports.\n\nUse the Accounts API to create accounts, list accounts visible to your credentials, retrieve or update an account, suspend a connected account managed by your platform, and retrieve the account associated with the current API key.\n",
14157
+ description: "An Account represents a person or business on Whop that can have its own profile, wallet, and account-scoped settings. Use accounts for customers, creators, merchants, sellers, or connected businesses your integration supports.\n\nUse the Accounts API to create accounts, list accounts visible to your credentials, retrieve or update an account, suspend or delete a connected account managed by your platform, and retrieve the account associated with the current API key.\n",
14158
14158
  name: "Accounts",
14159
14159
  "x-whop-summary": "A business on Whop: profile, wallet, capabilities, settings."
14160
14160
  },
@@ -14264,7 +14264,7 @@ var native_spec_default = {
14264
14264
  "x-whop-summary": "Configure platform-sponsored card cashback."
14265
14265
  },
14266
14266
  {
14267
- description: "Transfers move value between identities on Whop. They are used for account-to-account money movement, user payouts inside Whop, crypto transfers, and claim links depending on the destination type.\n\nUse the Transfers API to create a transfer, list previous transfers, and retrieve a transfer by ID when reconciling money movement between accounts or users.\n",
14267
+ description: "Transfers move value between identities on Whop. They are used for account-to-account money movement, user payouts inside Whop, crypto transfers, and claim links depending on the destination type.\n\nUse the Transfers API to create a transfer, list previous transfers, and retrieve a transfer by ID when reconciling money movement between accounts or users.\n\nSubscribe to `transfer.completed` and `transfer.failed` for outcomes instead of polling. Each participating account can subscribe to these events. `transfer.created` is also emitted on success, not when processing starts. A failed transfer can be retried under the same ID and later succeed; retrieve the transfer to reconcile its current status.\n\nA successful balance transfer credits the recipient's available balance unless a release date applies. Transfers funded from pending balance retain a release date and credit pending balance; applicable recipient reserves or fraud holds can keep funds unavailable. `succeeded` confirms the transfer completed, not that all funds are withdrawable.\n",
14268
14268
  name: "Transfers",
14269
14269
  "x-whop-summary": "Move funds between Whop accounts and users."
14270
14270
  },
@@ -14278,6 +14278,11 @@ var native_spec_default = {
14278
14278
  name: "Swaps",
14279
14279
  "x-whop-summary": "Convert a balance between currencies."
14280
14280
  },
14281
+ {
14282
+ description: "A Trade records an order batch, cancellation, or leverage change submitted to a trading provider from an account or user's Whop-managed wallet. Its `status` tracks the submission, not whether orders filled.\n\nUse the Trades API to place limit or market orders with optional take-profit and stop-loss protection, cancel a submitted batch, set leverage, and list or retrieve past submissions. Read live margin, positions, and open orders by passing `include_trading=true` to Retrieve Account or Retrieve User with `id=me`. Whop's builder fee is added to each order. Hyperliquid perpetuals are currently supported; email support@whop.com to request access.\n",
14283
+ name: "Trades",
14284
+ "x-whop-summary": "Submit and track perpetual trades."
14285
+ },
14281
14286
  {
14282
14287
  description: "A Product is a digital good or service sold on Whop. Products may contain plans for pricing and/or experiences for content delivery.\n\nUse the Products API to search the public marketplace, list an account's products, retrieve a product, and create, update, or delete products.\n",
14283
14288
  name: "Products",
@@ -14318,9 +14323,9 @@ var native_spec_default = {
14318
14323
  "x-whop-summary": "Track the delivery of an order by its carrier tracking number."
14319
14324
  },
14320
14325
  {
14321
- description: "A Partner Referral Request records a partner's request for a business to attribute them as its referring partner. Manual requests start pending and require a business owner's acceptance before attribution takes effect.\n\nEnrolled, verified Whop partners can create, view, and cancel their requests. Business owners can accept or decline incoming requests. List requests by business, partner, request type, or status.\n\nAuthenticate with your Whop login or an account API key created by that account's current owner. Account API keys act as their account owner when creating or cancelling requests; that owner must be enrolled, verified, and not suspended. Keys can view their owner's sent requests and incoming requests for the key's account, and can accept or decline requests only for that account. API keys require the corresponding `partner:referral_request:read`, `partner:referral_request:create`, `partner:referral_request:accept`, `partner:referral_request:decline`, or `partner:referral_request:cancel` permission.\n",
14326
+ description: "Partner Referral Requests let partners create referral links and request attribution for an existing business or enrolled partner, with manual requests requiring recipient approval.\n",
14322
14327
  name: "Partner Referral Requests",
14323
- "x-whop-summary": "Request business attribution and manage owner approval."
14328
+ "x-whop-summary": "Request business or partner attribution and manage approval."
14324
14329
  },
14325
14330
  {
14326
14331
  description: "Get started at [whop.com/network](https://whop.com/network). A Partner is a user who refers people and businesses to Whop. The partner profile includes enrollment, active direct business referral counts, and default payout terms.\n\nRetrieve your profile with `/partners/{id}`. Use `/partner_referral_requests` to create and manage referral links and their rewards. You can also enroll in the partner program, review referred users and businesses, track earnings, and see the partner leaderboard.\n",
@@ -14469,7 +14474,7 @@ var native_spec_default = {
14469
14474
  "Transfers",
14470
14475
  "Deposits",
14471
14476
  "Swaps",
14472
- "Trading"
14477
+ "Trades"
14473
14478
  ]
14474
14479
  },
14475
14480
  {
@@ -16524,20 +16529,37 @@ var native_spec_default = {
16524
16529
  example: null,
16525
16530
  type: ["string", "null"]
16526
16531
  },
16532
+ economic_intelligence_fee_percentage: {
16533
+ description: "Percentage of volume charged while Economic Intelligence is on, such as `1.5` for 1.5%. `null` when Economic Intelligence is off.",
16534
+ example: null,
16535
+ type: ["number", "null"]
16536
+ },
16527
16537
  economic_intelligence_offers: {
16528
- description: "Durations the account can choose from to turn on Economic Intelligence, each with its fee. `null` while Economic Intelligence is on or during a free trial.",
16538
+ description: "Durations the account can choose from to turn on Economic Intelligence, each with its fee. `null` while Economic Intelligence is on or the account is still on the Economic Intelligence waitlist.",
16529
16539
  items: {
16530
16540
  properties: {
16531
- duration_days: {
16532
- description: "How many days Economic Intelligence stays on. Pass this value as `economic_intelligence_duration_days` to turn it on.",
16533
- example: 90,
16541
+ duration: {
16542
+ description: "What period of time Economic Intelligence stays on.",
16543
+ example: 7,
16534
16544
  type: "integer"
16535
16545
  },
16546
+ duration_unit: {
16547
+ description: "The unit of time the duration is in (hours or days)",
16548
+ enum: ["hours", "days"],
16549
+ example: "days",
16550
+ type: "string"
16551
+ },
16536
16552
  fee_percentage: {
16537
16553
  description: "Percentage of volume charged while Economic Intelligence is on, such as `1.5` for 1.5%.",
16538
- example: 1.25,
16554
+ example: 1,
16539
16555
  type: "number"
16540
16556
  },
16557
+ key: {
16558
+ description: "The unique identifier for this duration. Pass this value as `economic_intelligence_duration_key` to turn it on.",
16559
+ enum: ["7_days", "1_day", "1_hour"],
16560
+ example: "7_days",
16561
+ type: "string"
16562
+ },
16541
16563
  recommended: {
16542
16564
  description: "Whether Whop recommends this duration. Exactly one offer is recommended.",
16543
16565
  example: false,
@@ -16545,13 +16567,21 @@ var native_spec_default = {
16545
16567
  }
16546
16568
  },
16547
16569
  required: [
16548
- "duration_days",
16570
+ "key",
16571
+ "duration",
16572
+ "duration_unit",
16549
16573
  "fee_percentage",
16550
16574
  "recommended"
16551
16575
  ],
16552
16576
  type: "object"
16553
16577
  },
16554
16578
  type: ["array", "null"]
16579
+ },
16580
+ subscription_failure_behavior: {
16581
+ description: "What happens to a subscription once every retry of a renewal payment has failed. `cancel` (the default) cancels it. `none` leaves it past due and keeps billing it each period; access follows the account's past-due access setting.",
16582
+ enum: ["cancel", "none"],
16583
+ example: "cancel",
16584
+ type: "string"
16555
16585
  }
16556
16586
  },
16557
16587
  required: [
@@ -16566,7 +16596,9 @@ var native_spec_default = {
16566
16596
  "dispute_fighter_enabled",
16567
16597
  "economic_intelligence",
16568
16598
  "economic_intelligence_ends_at",
16569
- "economic_intelligence_offers"
16599
+ "economic_intelligence_fee_percentage",
16600
+ "economic_intelligence_offers",
16601
+ "subscription_failure_behavior"
16570
16602
  ],
16571
16603
  type: "object"
16572
16604
  }
@@ -16612,7 +16644,7 @@ var native_spec_default = {
16612
16644
  ]
16613
16645
  },
16614
16646
  patch: {
16615
- description: "Updates the account's preferences. Each top-level key present in the body is replaced as a whole; omitted keys are left untouched.\n\nRequired scopes depend on the preferences being updated:\n\n| Preferences | Required scope |\n| --- | --- |\n| `ads_payment_methods`, `ads_reporting_currency`, `ads_scheduling_timezone`, `ads_triple_whale_integration`, `ads_certifications` | `ad_campaign:create` |\n| `cards_auto_top_up`, `cards_notifications` | `payout:account:update` |\n| `dispute_fighter_enabled` | `payment:dispute` |\n| `economic_intelligence_duration_days` | `company:update` |\n\nWhen updating preferences from multiple rows, all corresponding scopes are required for the account.\n",
16647
+ description: "Updates the account's preferences. Each top-level key present in the body is replaced as a whole; omitted keys are left untouched.\n\nRequired scopes depend on the preferences being updated:\n\n| Preferences | Required scope |\n| --- | --- |\n| `ads_payment_methods`, `ads_reporting_currency`, `ads_scheduling_timezone`, `ads_triple_whale_integration`, `ads_certifications` | `ad_campaign:create` |\n| `cards_auto_top_up`, `cards_notifications` | `payout:account:update` |\n| `dispute_fighter_enabled` | `payment:dispute` |\n| `economic_intelligence_duration_key` | `company:update` |\n\nWhen updating preferences from multiple rows, all corresponding scopes are required for the account.\n",
16616
16648
  operationId: "update-preferences",
16617
16649
  parameters: [
16618
16650
  {
@@ -16736,11 +16768,17 @@ var native_spec_default = {
16736
16768
  example: true,
16737
16769
  type: "boolean"
16738
16770
  },
16739
- economic_intelligence_duration_days: {
16740
- description: "Turns on Economic Intelligence for this many days, at the fee listed for that duration in `economic_intelligence_offers`. It can't be changed or turned off until `economic_intelligence_ends_at`, and it can't be turned on during a free trial. Requires the `company:update` scope on your API key.",
16741
- enum: [7, 30, 90],
16742
- example: 90,
16743
- type: "integer"
16771
+ economic_intelligence_duration_key: {
16772
+ description: "Turns on Economic Intelligence for the duration with this `key` in `economic_intelligence_offers`, at that duration's fee. It can't be changed or turned off until `economic_intelligence_ends_at`, and it can only be turned on once the account is off the Economic Intelligence waitlist. Requires the `company:update` scope on your API key.",
16773
+ enum: ["7_days", "1_day", "1_hour"],
16774
+ example: "7_days",
16775
+ type: "string"
16776
+ },
16777
+ subscription_failure_behavior: {
16778
+ description: "What happens to a subscription once every retry of a renewal payment has failed. `cancel` (the default) cancels it. `none` leaves it past due and keeps billing it each period; access follows the account's past-due access setting. Requires company:manage_checkout permission.",
16779
+ enum: ["cancel", "none"],
16780
+ example: "none",
16781
+ type: "string"
16744
16782
  }
16745
16783
  },
16746
16784
  type: "object"
@@ -17038,20 +17076,37 @@ var native_spec_default = {
17038
17076
  example: "2026-01-01T12:00:00.000Z",
17039
17077
  type: ["string", "null"]
17040
17078
  },
17079
+ economic_intelligence_fee_percentage: {
17080
+ description: "Percentage of volume charged while Economic Intelligence is on, such as `1.5` for 1.5%. `null` when Economic Intelligence is off.",
17081
+ example: 1.5,
17082
+ type: ["number", "null"]
17083
+ },
17041
17084
  economic_intelligence_offers: {
17042
- description: "Durations the account can choose from to turn on Economic Intelligence, each with its fee. `null` while Economic Intelligence is on or during a free trial.",
17085
+ description: "Durations the account can choose from to turn on Economic Intelligence, each with its fee. `null` while Economic Intelligence is on or the account is still on the Economic Intelligence waitlist.",
17043
17086
  items: {
17044
17087
  properties: {
17045
- duration_days: {
17046
- description: "How many days Economic Intelligence stays on. Pass this value as `economic_intelligence_duration_days` to turn it on.",
17047
- example: 90,
17088
+ duration: {
17089
+ description: "What period of time Economic Intelligence stays on.",
17090
+ example: 7,
17048
17091
  type: "integer"
17049
17092
  },
17093
+ duration_unit: {
17094
+ description: "The unit of time the duration is in (hours or days)",
17095
+ enum: ["hours", "days"],
17096
+ example: "days",
17097
+ type: "string"
17098
+ },
17050
17099
  fee_percentage: {
17051
17100
  description: "Percentage of volume charged while Economic Intelligence is on, such as `1.5` for 1.5%.",
17052
- example: 1.25,
17101
+ example: 1,
17053
17102
  type: "number"
17054
17103
  },
17104
+ key: {
17105
+ description: "The unique identifier for this duration. Pass this value as `economic_intelligence_duration_key` to turn it on.",
17106
+ enum: ["7_days", "1_day", "1_hour"],
17107
+ example: "7_days",
17108
+ type: "string"
17109
+ },
17055
17110
  recommended: {
17056
17111
  description: "Whether Whop recommends this duration. Exactly one offer is recommended.",
17057
17112
  example: false,
@@ -17059,13 +17114,21 @@ var native_spec_default = {
17059
17114
  }
17060
17115
  },
17061
17116
  required: [
17062
- "duration_days",
17117
+ "key",
17118
+ "duration",
17119
+ "duration_unit",
17063
17120
  "fee_percentage",
17064
17121
  "recommended"
17065
17122
  ],
17066
17123
  type: "object"
17067
17124
  },
17068
17125
  type: ["array", "null"]
17126
+ },
17127
+ subscription_failure_behavior: {
17128
+ description: "What happens to a subscription once every retry of a renewal payment has failed. `cancel` (the default) cancels it. `none` leaves it past due and keeps billing it each period; access follows the account's past-due access setting.",
17129
+ enum: ["cancel", "none"],
17130
+ example: "cancel",
17131
+ type: "string"
17069
17132
  }
17070
17133
  },
17071
17134
  required: [
@@ -17080,7 +17143,9 @@ var native_spec_default = {
17080
17143
  "dispute_fighter_enabled",
17081
17144
  "economic_intelligence",
17082
17145
  "economic_intelligence_ends_at",
17083
- "economic_intelligence_offers"
17146
+ "economic_intelligence_fee_percentage",
17147
+ "economic_intelligence_offers",
17148
+ "subscription_failure_behavior"
17084
17149
  ],
17085
17150
  type: "object"
17086
17151
  }
@@ -17218,6 +17283,73 @@ var native_spec_default = {
17218
17283
  }
17219
17284
  },
17220
17285
  "/accounts/{id}": {
17286
+ delete: {
17287
+ description: "Deletes a connected account directly owned by the authenticated platform account. The account must have no settled, pending, or reserved balance in any currency and no active, trialing, or past-due memberships. The account stops resolving immediately, and its products, plans, and team access are removed in the background; payment history is retained. Deletion cannot be undone through the API. This cannot delete the platform account itself or an account owned by another platform.",
17288
+ operationId: "delete",
17289
+ parameters: [
17290
+ {
17291
+ $ref: "#/components/parameters/ApiVersionDate"
17292
+ },
17293
+ {
17294
+ description: "Connected account ID, prefixed `biz_`.",
17295
+ in: "path",
17296
+ name: "id",
17297
+ required: true,
17298
+ schema: {
17299
+ type: "string"
17300
+ }
17301
+ }
17302
+ ],
17303
+ responses: {
17304
+ "200": {
17305
+ content: {
17306
+ "application/json": {
17307
+ schema: {
17308
+ properties: {
17309
+ deleted: {
17310
+ description: "Always true.",
17311
+ example: true,
17312
+ type: "boolean"
17313
+ },
17314
+ id: {
17315
+ description: "ID of the deleted connected account.",
17316
+ example: "biz_xxxxxxxxxxxxxx",
17317
+ type: "string"
17318
+ }
17319
+ },
17320
+ required: ["id", "deleted"],
17321
+ type: "object"
17322
+ }
17323
+ }
17324
+ },
17325
+ description: "Connected account deleted."
17326
+ },
17327
+ "400": {
17328
+ $ref: "#/components/responses/InvalidParameters",
17329
+ description: "Connected account still has active memberships or a balance."
17330
+ },
17331
+ "401": {
17332
+ $ref: "#/components/responses/Unauthorized",
17333
+ description: "Authentication required."
17334
+ },
17335
+ "403": {
17336
+ $ref: "#/components/responses/Forbidden",
17337
+ description: "API key lacks the child-account deletion scope."
17338
+ },
17339
+ "404": {
17340
+ $ref: "#/components/responses/NotFound",
17341
+ description: "Connected account not found."
17342
+ }
17343
+ },
17344
+ security: [
17345
+ {
17346
+ accountApiKeyOrAccountUserTokenAuth: ["company:delete_child"]
17347
+ }
17348
+ ],
17349
+ summary: "Delete a Connected Account",
17350
+ tags: ["Accounts"],
17351
+ "x-whop-credentials": ["account_api_key", "account_user_token"]
17352
+ },
17221
17353
  get: {
17222
17354
  description: "Retrieves a single account by ID or public route when it is visible to the credential, including its crypto wallet. The reserved id `me` retrieves the account associated with the current Account API key; user tokens have no single account, so they must address one by ID or route.",
17223
17355
  operationId: "get",
@@ -22165,6 +22297,10 @@ var native_spec_default = {
22165
22297
  description: "Uploaded file ID, prefixed `file_`.",
22166
22298
  example: "file_xxxxxxxxxxxxxx",
22167
22299
  type: "string"
22300
+ },
22301
+ language: {
22302
+ description: "ISO 639 code of the language this image or video is shown for, such as `es`. Required on every entry of an ad with `translations`, where the ad's own creative uses `translations.source_language`. Another language's creative is the same type as the ad's own, with no format. Leave it out on an ad without translations.",
22303
+ type: "string"
22168
22304
  }
22169
22305
  },
22170
22306
  type: "object"
@@ -22172,10 +22308,22 @@ var native_spec_default = {
22172
22308
  type: "array"
22173
22309
  },
22174
22310
  descriptions: {
22175
- description: "The description variants shown on the ad.",
22311
+ description: "The description shown on the ad. Entries without a language are the ad's own copy; add one entry per other language on a Meta ad with `translations`.",
22176
22312
  items: {
22177
- example: "Two-stage paint correction included",
22178
- type: "string"
22313
+ properties: {
22314
+ language: {
22315
+ description: "ISO 639 code of the language this text is in, such as `es`. Required on every entry of an ad with `translations`, where the ad's own copy uses `translations.source_language`. Leave it out on an ad without translations.",
22316
+ nullable: true,
22317
+ type: "string"
22318
+ },
22319
+ text: {
22320
+ description: "The text shown to viewers.",
22321
+ example: "Two-stage paint correction included",
22322
+ type: "string"
22323
+ }
22324
+ },
22325
+ required: ["text"],
22326
+ type: "object"
22179
22327
  },
22180
22328
  type: "array"
22181
22329
  },
@@ -22185,10 +22333,22 @@ var native_spec_default = {
22185
22333
  type: "string"
22186
22334
  },
22187
22335
  headlines: {
22188
- description: "The headline variants shown on the ad.",
22336
+ description: "The headline shown on the ad. Entries without a language are the ad's own copy; add one entry per other language on a Meta ad with `translations`.",
22189
22337
  items: {
22190
- example: "Showroom shine, guaranteed",
22191
- type: "string"
22338
+ properties: {
22339
+ language: {
22340
+ description: "ISO 639 code of the language this text is in, such as `es`. Required on every entry of an ad with `translations`, where the ad's own copy uses `translations.source_language`. Leave it out on an ad without translations.",
22341
+ nullable: true,
22342
+ type: "string"
22343
+ },
22344
+ text: {
22345
+ description: "The text shown to viewers.",
22346
+ example: "Showroom shine, guaranteed",
22347
+ type: "string"
22348
+ }
22349
+ },
22350
+ required: ["text"],
22351
+ type: "object"
22192
22352
  },
22193
22353
  type: "array"
22194
22354
  },
@@ -22443,10 +22603,22 @@ var native_spec_default = {
22443
22603
  type: "string"
22444
22604
  },
22445
22605
  primary_texts: {
22446
- description: "The primary text variants shown in the ad body.",
22606
+ description: "The primary text shown in the ad body. Entries without a language are the ad's own copy (several make text variations); add one entry per other language on a Meta ad with `translations`.",
22447
22607
  items: {
22448
- example: "Three-year ceramic coating, booked online in under a minute.",
22449
- type: "string"
22608
+ properties: {
22609
+ language: {
22610
+ description: "ISO 639 code of the language this text is in, such as `es`. Required on every entry of an ad with `translations`, where the ad's own copy uses `translations.source_language`. Leave it out on an ad without translations.",
22611
+ nullable: true,
22612
+ type: "string"
22613
+ },
22614
+ text: {
22615
+ description: "The text shown to viewers.",
22616
+ example: "Three-year ceramic coating, booked online in under a minute.",
22617
+ type: "string"
22618
+ }
22619
+ },
22620
+ required: ["text"],
22621
+ type: "object"
22450
22622
  },
22451
22623
  type: "array"
22452
22624
  },
@@ -22469,6 +22641,27 @@ var native_spec_default = {
22469
22641
  example: "Interior deep clean \u2014 DM us",
22470
22642
  type: "string"
22471
22643
  },
22644
+ translations: {
22645
+ description: "Shows a Meta ad in other languages. Each viewer sees the version for their language; everyone else sees the ad's own copy. Tag every copy and creatives entry with its language: the ad's own with `source_language`, and give every other language a `primary_texts` and `headlines` entry (a `descriptions` entry and a `creatives` entry are optional), or list it in `automatic_languages`. Needs a website destination, one image or video, and exactly one primary text and headline of the ad's own (and at most one description), with no Dynamic Creative or crops. Replaced as a whole when sent, so send `automatic_languages` with `source_language`. null turns translations off and deletes their media. Meta-only.",
22646
+ nullable: true,
22647
+ properties: {
22648
+ automatic_languages: {
22649
+ description: "ISO 639 codes Meta translates the ad's own copy into automatically. English copy translates into `es`, `fr`, `de`, `pt`, `it`, `ar`, `nl`, `ms`, `sv`, `id`, `pl`, `hi`, `da`, `tr`, `fil`, and `ro`; `de`, `ar`, `he`, `es`, `ja`, `no`, `fr`, `nl`, and `sv` copy translate into `en`.",
22650
+ items: {
22651
+ example: "fr",
22652
+ type: "string"
22653
+ },
22654
+ type: "array"
22655
+ },
22656
+ source_language: {
22657
+ description: "ISO 639 code the ad's own copy is written in, such as `en`.",
22658
+ example: "en",
22659
+ type: "string"
22660
+ }
22661
+ },
22662
+ required: ["source_language"],
22663
+ type: "object"
22664
+ },
22472
22665
  url: {
22473
22666
  description: "The URL the ad links to. Query parameters are merged into url_parameters, so the stored URL is always bare.",
22474
22667
  example: "https://shinetime.example/ceramic-coating",
@@ -22772,6 +22965,10 @@ var native_spec_default = {
22772
22965
  description: "Uploaded file ID, prefixed `file_`.",
22773
22966
  example: "file_xxxxxxxxxxxxxx",
22774
22967
  type: "string"
22968
+ },
22969
+ language: {
22970
+ description: "ISO 639 code of the language this image or video is shown for, such as `es`. Required on every entry of an ad with `translations`, where the ad's own creative uses `translations.source_language`. Another language's creative is the same type as the ad's own, with no format. Leave it out on an ad without translations.",
22971
+ type: "string"
22775
22972
  }
22776
22973
  },
22777
22974
  type: "object"
@@ -22779,10 +22976,22 @@ var native_spec_default = {
22779
22976
  type: "array"
22780
22977
  },
22781
22978
  descriptions: {
22782
- description: "The description variants shown on the ad.",
22979
+ description: "The description shown on the ad. Entries without a language are the ad's own copy; add one entry per other language on a Meta ad with `translations`.",
22783
22980
  items: {
22784
- example: "Paint correction included",
22785
- type: "string"
22981
+ properties: {
22982
+ language: {
22983
+ description: "ISO 639 code of the language this text is in, such as `es`. Required on every entry of an ad with `translations`, where the ad's own copy uses `translations.source_language`. Leave it out on an ad without translations.",
22984
+ nullable: true,
22985
+ type: "string"
22986
+ },
22987
+ text: {
22988
+ description: "The text shown to viewers.",
22989
+ example: "Paint correction included",
22990
+ type: "string"
22991
+ }
22992
+ },
22993
+ required: ["text"],
22994
+ type: "object"
22786
22995
  },
22787
22996
  type: "array"
22788
22997
  },
@@ -22792,10 +23001,23 @@ var native_spec_default = {
22792
23001
  type: "string"
22793
23002
  },
22794
23003
  headlines: {
22795
- description: "The headline variants shown on the ad.",
23004
+ description: "The headline shown on the ad. Entries without a language are the ad's own copy; add one entry per other language on a Meta ad with `translations`.",
22796
23005
  items: {
22797
- example: "Austin's mobile detailers",
22798
- type: "string"
23006
+ properties: {
23007
+ language: {
23008
+ description: "ISO 639 code of the language this text is in, such as `es`. Required on every entry of an ad with `translations`, where the ad's own copy uses `translations.source_language`. Leave it out on an ad without translations.",
23009
+ example: "es",
23010
+ nullable: true,
23011
+ type: "string"
23012
+ },
23013
+ text: {
23014
+ description: "The text shown to viewers.",
23015
+ example: "Austin's mobile detailers",
23016
+ type: "string"
23017
+ }
23018
+ },
23019
+ required: ["text"],
23020
+ type: "object"
22799
23021
  },
22800
23022
  type: "array"
22801
23023
  },
@@ -23050,10 +23272,23 @@ var native_spec_default = {
23050
23272
  type: "string"
23051
23273
  },
23052
23274
  primary_texts: {
23053
- description: "The primary text variants shown in the ad body.",
23275
+ description: "The primary text shown in the ad body. Entries without a language are the ad's own copy (several make text variations); add one entry per other language on a Meta ad with `translations`.",
23054
23276
  items: {
23055
- example: "Book a two-day ceramic coating and keep the shine for three years.",
23056
- type: "string"
23277
+ properties: {
23278
+ language: {
23279
+ description: "ISO 639 code of the language this text is in, such as `es`. Required on every entry of an ad with `translations`, where the ad's own copy uses `translations.source_language`. Leave it out on an ad without translations.",
23280
+ example: "es",
23281
+ nullable: true,
23282
+ type: "string"
23283
+ },
23284
+ text: {
23285
+ description: "The text shown to viewers.",
23286
+ example: "Book a two-day ceramic coating and keep the shine for three years.",
23287
+ type: "string"
23288
+ }
23289
+ },
23290
+ required: ["text"],
23291
+ type: "object"
23057
23292
  },
23058
23293
  type: "array"
23059
23294
  },
@@ -23076,6 +23311,27 @@ var native_spec_default = {
23076
23311
  example: "Ceramic coating \u2014 spring hook v2",
23077
23312
  type: "string"
23078
23313
  },
23314
+ translations: {
23315
+ description: "Shows a Meta ad in other languages. Each viewer sees the version for their language; everyone else sees the ad's own copy. Tag every copy and creatives entry with its language: the ad's own with `source_language`, and give every other language a `primary_texts` and `headlines` entry (a `descriptions` entry and a `creatives` entry are optional), or list it in `automatic_languages`. Needs a website destination, one image or video, and exactly one primary text and headline of the ad's own (and at most one description), with no Dynamic Creative or crops. Replaced as a whole when sent, so send `automatic_languages` with `source_language`. null turns translations off and deletes their media. Meta-only.",
23316
+ nullable: true,
23317
+ properties: {
23318
+ automatic_languages: {
23319
+ description: "ISO 639 codes Meta translates the ad's own copy into automatically. English copy translates into `es`, `fr`, `de`, `pt`, `it`, `ar`, `nl`, `ms`, `sv`, `id`, `pl`, `hi`, `da`, `tr`, `fil`, and `ro`; `de`, `ar`, `he`, `es`, `ja`, `no`, `fr`, `nl`, and `sv` copy translate into `en`.",
23320
+ items: {
23321
+ example: "fr",
23322
+ type: "string"
23323
+ },
23324
+ type: "array"
23325
+ },
23326
+ source_language: {
23327
+ description: "ISO 639 code the ad's own copy is written in, such as `en`.",
23328
+ example: "en",
23329
+ type: "string"
23330
+ }
23331
+ },
23332
+ required: ["source_language"],
23333
+ type: "object"
23334
+ },
23079
23335
  url: {
23080
23336
  description: "The URL the ad links to. Query parameters are merged into url_parameters, so the stored URL is always bare.",
23081
23337
  example: "https://shinetime.example/ceramic-coating",
@@ -31230,7 +31486,7 @@ var native_spec_default = {
31230
31486
  }
31231
31487
  },
31232
31488
  {
31233
- description: "Only disputes in these statuses. Repeat the parameter to pass several \u2014 one paginated list covers all of them. Covers both chargebacks and inquiries at each stage. A `needs_response` dispute whose evidence deadline has passed reports and filters as `under_review` instead.",
31489
+ description: "Only disputes in these statuses. Repeat the parameter to pass several \u2014 one paginated list covers all of them. Inquiries match only the `warning_` statuses. A `needs_response` dispute whose evidence deadline has passed reports and filters as `under_review` instead.",
31234
31490
  in: "query",
31235
31491
  name: "status",
31236
31492
  required: false,
@@ -31238,10 +31494,13 @@ var native_spec_default = {
31238
31494
  items: {
31239
31495
  enum: [
31240
31496
  "needs_response",
31497
+ "warning_needs_response",
31241
31498
  "under_review",
31499
+ "warning_under_review",
31242
31500
  "won",
31243
31501
  "lost",
31244
- "closed"
31502
+ "closed",
31503
+ "warning_closed"
31245
31504
  ],
31246
31505
  example: "needs_response",
31247
31506
  type: "string"
@@ -31397,10 +31656,13 @@ var native_spec_default = {
31397
31656
  items: {
31398
31657
  enum: [
31399
31658
  "needs_response",
31659
+ "warning_needs_response",
31400
31660
  "under_review",
31661
+ "warning_under_review",
31401
31662
  "won",
31402
31663
  "lost",
31403
- "closed"
31664
+ "closed",
31665
+ "warning_closed"
31404
31666
  ],
31405
31667
  example: "needs_response",
31406
31668
  type: "string"
@@ -31474,6 +31736,18 @@ var native_spec_default = {
31474
31736
  example: 0,
31475
31737
  type: "integer"
31476
31738
  },
31739
+ warning_closed: {
31740
+ example: 0,
31741
+ type: "integer"
31742
+ },
31743
+ warning_needs_response: {
31744
+ example: 0,
31745
+ type: "integer"
31746
+ },
31747
+ warning_under_review: {
31748
+ example: 0,
31749
+ type: "integer"
31750
+ },
31477
31751
  won: {
31478
31752
  example: 0,
31479
31753
  type: "integer"
@@ -31481,10 +31755,13 @@ var native_spec_default = {
31481
31755
  },
31482
31756
  required: [
31483
31757
  "needs_response",
31758
+ "warning_needs_response",
31484
31759
  "under_review",
31760
+ "warning_under_review",
31485
31761
  "won",
31486
31762
  "lost",
31487
- "closed"
31763
+ "closed",
31764
+ "warning_closed"
31488
31765
  ],
31489
31766
  type: "object"
31490
31767
  }
@@ -35600,7 +35877,7 @@ var native_spec_default = {
35600
35877
  type: "array"
35601
35878
  },
35602
35879
  filters: {
35603
- description: "Resource-specific filters. For native REST resources (`payouts`, `transfers`, `products`) these are the resource's own list query params; for dashboard tables they mirror the dashboard table filters.\n\n<details>\n<summary>Filters by resource (25)</summary>\n\n<details>\n<summary>ad_campaigns (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/ad_campaigns`.\n\n- `created_after` `string` \u2014 Only return campaigns created after this timestamp.\n- `created_before` `string` \u2014 Only return campaigns created before this timestamp.\n- `query` `string` \u2014 Filter campaigns by a title or ID substring.\n- `status` `string` \u2014 Only return campaigns with this status. One of `draft`, `active`, `paused`, `payment_failed`.\n\n</details>\n<details>\n<summary>ad_groups (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/ad_groups`.\n\n- `ad_campaign_id` `string` \u2014 Filter to ad groups in this campaign.\n- `ad_campaign_ids` `string[]` \u2014 Filter to ad groups in these campaigns (max 100). Repeat the parameter for each id (ad_campaign_ids=a&ad_campaign_ids=b).\n- `created_after` `string` \u2014 Only return ad groups created after this timestamp.\n- `created_before` `string` \u2014 Only return ad groups created before this timestamp.\n- `query` `string` \u2014 Filter ad groups by a title or ID substring.\n- `status` `string` \u2014 Filter to ad groups with this status. One of `active`, `paused`, `rejected`, `duplicating`.\n\n</details>\n<details>\n<summary>ads (8)</summary>\n\nMirrors the filtering query params of `GET /api/v1/ads`.\n\n- `ad_campaign_id` `string` \u2014 Only return ads in this ad campaign.\n- `ad_campaign_ids` `string[]` \u2014 Only return ads in these ad campaigns (max 100). Repeat the parameter for each id (ad_campaign_ids=a&ad_campaign_ids=b).\n- `ad_group_id` `string` \u2014 Only return ads in this ad group.\n- `ad_group_ids` `string[]` \u2014 Only return ads in these ad groups (max 100). Repeat the parameter for each id (ad_group_ids=a&ad_group_ids=b).\n- `created_after` `string` \u2014 Only return ads created after this timestamp.\n- `created_before` `string` \u2014 Only return ads created before this timestamp.\n- `query` `string` \u2014 Filter ads by a title or ID substring.\n- `status` `string` \u2014 Only return ads with this status. One of `active`, `paused`, `in_review`, `rejected`.\n\n</details>\n<details>\n<summary>apps (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/apps`.\n\n- `app_type` `string` \u2014 Filter apps by the type of end-user they are built for. Apps of type `website` are left out unless you ask for them by name. One of `b2b_app`, `b2c_app`, `company_app`, `component`, `website`.\n- `query` `string` \u2014 A search string matched against app names.\n- `recommended` `boolean` \u2014 Only return apps Whop recommends (or, with `false`, only those it does not), independently of verification status.\n- `verified` `boolean` \u2014 Only return apps whose Whop verification status matches this value. Omit this filter to include every verification status the caller can see.\n- `verified_apps_only` `boolean` \u2014 Legacy compatibility filter. Use `verified` for field equality. `true` returns verified apps; clients pinned before `2026-08-25-2` retain the earlier public website discovery behavior.\n- `view_type` `string` \u2014 Only return apps supporting this view type, such as `dashboard` or `hub`. One of `hub`, `discover`, `dash`, `dashboard`, `analytics`, `skills`, `openapi`.\n\n</details>\n<details>\n<summary>audiences (3)</summary>\n\nMirrors the filtering query params of `GET /api/v1/audiences`.\n\n- `audience_id` `string` \u2014 Audience ID, prefixed `adaud_`, used to filter the response to one audience.\n- `audience_type` `string` \u2014 Filter by custom or lookalike audiences. One of `custom`, `lookalike`.\n- `source_type` `string` \u2014 Filter by uploaded customer lists, Whop People filters, or social engagement. One of `csv_upload`, `people_filter`, `engagement`.\n\n</details>\n<details>\n<summary>bounties (8)</summary>\n\nMirrors the filtering query params of `GET /api/v1/bounties`.\n\n- `business_goal_type` `string` \u2014 Filter by the poster's declared goal. Bounties created before the goal taxonomy carry no goal and never match this filter. One of `clipping`, `post_engagement`, `owned_account_growth`, `ugc_content`, `local_activation`, `data_capture`, `other`.\n- `country` `string` \u2014 Only bounties workable from this country, as an ISO 3166-1 alpha-2 code. Bounties with no country targeting are workable worldwide and always match.\n- `created_after` `string` \u2014 Only bounties created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only bounties created before this ISO 8601 timestamp.\n- `experience_id` `string` \u2014 Only bounties posted to this forum experience, prefixed `exp_`. An unknown experience, or one outside the caller's scope, matches nothing.\n- `query` `string` \u2014 Substring match on the bounty title or ID.\n- `status` `string` \u2014 Filter by lifecycle state. One of `scheduled`, `open`, `closed`, `completed`, `canceled`.\n- `user_id` `string` \u2014 List the bounties this user participated in (`user_` tag). Must be the authenticated user.\n\n</details>\n<details>\n<summary>bounty_submissions (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/bounty_submissions`.\n\n- `bounty_id` `string` \u2014 Only submissions on this bounty (`bnty_` tag).\n- `created_after` `string` \u2014 Only submissions created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only submissions created before this ISO 8601 timestamp.\n- `status` `string` \u2014 Filter by lifecycle state. One of `in_progress`, `submitted`, `approved`, `denied`.\n\n</details>\n<details>\n<summary>card_transactions (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/card_transactions`.\n\n- `card_id` `string[]` \u2014 Return only transactions charged to these cards, each prefixed `icrd_`.\n- `cardholder_id` `string[]` \u2014 Return only transactions on cards assigned to these users, each prefixed `user_`.\n- `created_after` `string` \u2014 Return only transactions authorized at or after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Return only transactions authorized at or before this ISO 8601 timestamp.\n- `status` `string` \u2014 Return only transactions with this status. One of `pending`, `completed`, `reversed`, `declined`.\n- `transaction_ids` `string[]` \u2014 Return only these card transactions, each prefixed `citx_`. Repeat the parameter, or pass one comma-separated value.\n\n</details>\n<details>\n<summary>checkout_configurations (3)</summary>\n\nMirrors the filtering query params of `GET /api/v1/checkout_configurations`.\n\n- `created_after` `string` \u2014 Only return checkout configurations created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only return checkout configurations created before this ISO 8601 timestamp.\n- `plan_id` `string` \u2014 Only return checkout configurations for this plan ID, prefixed `plan_`.\n\n</details>\n<details>\n<summary>disputes (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/disputes`.\n\n- `created_after` `string` \u2014 Only disputes opened after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only disputes opened before this ISO 8601 timestamp.\n- `currency` `string` \u2014 Only disputes in this three-letter ISO currency.\n- `status` `string[]` \u2014 Only disputes in these statuses. Repeat the parameter to pass several \u2014 one paginated list covers all of them. Covers both chargebacks and inquiries at each stage. A `needs_response` dispute whose evidence deadline has passed reports and filters as `under_review` instead.\n\n</details>\n<details>\n<summary>events (14)</summary>\n\nMirrors the filtering query params of `GET /api/v1/events`.\n\n- `attribution_model` `string` \u2014 Attribution model for the source filter (defaults to last_touch). One of `last_touch`, `first_touch`.\n- `browser` `string` \u2014 Browser families to filter by, comma-separated (e.g. Chrome, Mobile Safari).\n- `city` `string` \u2014 Cities to filter by, comma-separated.\n- `country` `string` \u2014 Country codes to filter by, comma-separated.\n- `device` `string` \u2014 Device families to filter by, comma-separated (e.g. iPhone, Mac).\n- `event` `string` \u2014 Full event names to filter by, comma-separated (payment.completed, pixel.lead, pixel.page, pixel.custom:<name>) \u2014 the same vocabulary the events / people metrics use.\n- `from` `string` \u2014 Start of the time range as an ISO 8601 timestamp. Required when identifier is omitted.\n- `hostname` `string` \u2014 Page hostnames to filter by, comma-separated.\n- `identifier` `string` \u2014 Any hard identifier of the person: a person ID (prsn_*), user ID, email, phone number, or a tracking cookie value (wuid, anonymous ID, fbp/fbc/ttp/ga). Omit to list recent events for the account.\n- `os` `string` \u2014 Operating system families to filter by, comma-separated (e.g. iOS, Windows).\n- `page` `string` \u2014 Page paths to filter by, comma-separated.\n- `source` `string` \u2014 Canonical source path, exact or with a trailing :* prefix (whop:<campaign>:*, ext:meta:*, referrer:<domain>, direct, unknown). Selects conversions credited to this source.\n- `to` `string` \u2014 End of the time range as an ISO 8601 timestamp. Required when identifier is omitted; otherwise defaults to now.\n- `utm_source` `string` \u2014 utm_source values to filter by, comma-separated.\n\n</details>\n<details>\n<summary>financial-activity (12)</summary>\n\nMirrors the filtering query params of `GET /api/v1/financial_activity`.\n\n- `activity_id` `string` \u2014 Optional ledger activity ID (for example `line_3`). Returns at most that one activity.\n- `available_after` `string` \u2014 Only include balance credits and debits available on or after this `YYYY-MM-DD` date (UTC), distinct from posted_at. Requires currency.\n- `available_before` `string` \u2014 Only include balance credits and debits available on or before this `YYYY-MM-DD` date (UTC). Set equal to available_after for a single day. Requires currency.\n- `currency` `string` \u2014 Optional currency code filter, for example `usd`.\n- `exclude_internal_movements` `boolean` \u2014 Whether to exclude balance reservations and balanced movements between the account's own balances.\n- `include_owned_accounts` `boolean` \u2014 When true, aggregates the authenticated user's personal ledger with the businesses they own (owner role with balance read) into one feed. Requires user_id to be the authenticated user; cannot be combined with account_id or the settlement-date filters. Each returned row includes the owning `account`.\n- `include_resource` `boolean` \u2014 Whether to include the `resource` field in the response or not. Consider passing `false` if you need a fast response without as many rich details.\n- `line_types` `string[]` \u2014 Optional ledger line categories to include. Some categories (for example `onchain_deposit`, which covers inbound crypto deposits such as MoonPay onramps) are only returned when explicitly requested here.\n- `posted_after` `string` \u2014 Only include rows posted after this ISO 8601 timestamp.\n- `posted_before` `string` \u2014 Only include rows posted before this ISO 8601 timestamp.\n- `resource_id` `string` \u2014 Optional prefixed resource ID. Returns activity associated with that resource.\n- `user_id` `string` \u2014 The owning user ID (a user_ identifier). Provide this or account_id.\n\n</details>\n<details>\n<summary>members (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/members`.\n\n- `access_level` `string` \u2014 Filter by what the member can reach on the account. One of `no_access`, `admin`, `customer`.\n- `created_after` `string` \u2014 Only members who joined after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only members who joined before this ISO 8601 timestamp.\n- `query` `string` \u2014 Search members by name or username. An exact email address also matches when the credential holds the member:email:read scope.\n- `status` `string` \u2014 Filter by whether the member is still part of the account. One of `joined`, `left`.\n- `user_ids` `string[]` \u2014 Only return members whose users match these `user_` identifiers.\n\n</details>\n<details>\n<summary>memberships (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/memberships`.\n\n- `created_after` `string` \u2014 Only memberships created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only memberships created before this ISO 8601 timestamp.\n- `plan_id` `string` \u2014 Filter to memberships of this plan (`plan_` tag). Repeat as plan_ids[] for several.\n- `product_id` `string` \u2014 Filter to memberships of this product (`prod_` tag). Repeat as product_ids[] for several.\n- `status` `string` \u2014 Filter by billing state. `canceling` matches active memberships set to cancel at period end; `paused` matches memberships with payment collection paused. One of `active`, `trialing`, `past_due`, `completed`, `canceled`, `expired`, `canceling`, `paused`.\n- `user_id` `string` \u2014 Narrow to one user's memberships (`user_` tag, or `me` for the caller). A user outside the caller's visible set returns an empty list.\n\n</details>\n<details>\n<summary>payouts (7)</summary>\n\nMirrors the filtering query params of `GET /api/v1/payouts`.\n\n- `created_after` `string` \u2014 Only payouts created at or after this ISO 8601 time (inclusive).\n- `created_before` `string` \u2014 Only payouts created before this ISO 8601 time (exclusive).\n- `currency` `string` \u2014 Optional currency code filter, for example `usd`.\n- `payout_method_id` `string` \u2014 Filter to payouts sent to one saved payout method (a pytk_ identifier). An unknown id matches nothing.\n- `source` `string` \u2014 Filter by how the payout was created. Payouts created before source tracking or through internal tooling carry no source and never match. One of `api`, `dashboard`, `automatic`.\n- `status` `string` \u2014 Filter to payouts whose `status` reads this word, matching exactly what this version displays \u2014 `reversed` finds settled payouts the bank later returned. Requires Api-Version-Date 2026-08-21 or later. One of `requested`, `in_review`, `processing`, `completed`, `reversed`, `canceled`, `failed`, `denied`.\n- `user_id` `string` \u2014 The owning user ID (a user_ identifier). Provide this or account_id.\n\n</details>\n<details>\n<summary>people (39)</summary>\n\nMirrors the filtering query params of `GET /api/v1/people`.\n\n- `aov_gt` `number` \u2014 Select people whose lifetime aov is greater than this value. LTV and AOV are in USD.\n- `aov_gte` `number` \u2014 Select people whose lifetime aov is at least this value. LTV and AOV are in USD.\n- `aov_lt` `number` \u2014 Select people whose lifetime aov is less than this value. LTV and AOV are in USD.\n- `aov_lte` `number` \u2014 Select people whose lifetime aov is at most this value. LTV and AOV are in USD.\n- `attribution_model` `string` \u2014 Attribution model the source filter matches against (defaults to last_touch). One of `last_touch`, `first_touch`.\n- `audience_id` `string` \u2014 Only include people in this audience. An audience that keeps itself up to date resolves to the People filters that define it, so this always reflects who matches now; uploaded lists and point-in-time snapshots match their recorded members.\n- `contactable` `boolean` \u2014 true for people who have an email address or phone number \u2014 the ones an ad platform can match.\n- `country` `string` \u2014 Only include people with activity from this ISO 3166-1 alpha-2 country code.\n- `custom_event` `string` \u2014 Only include people who fired this custom pixel event.\n- `email` `string` \u2014 Only include the person linked to this email address.\n- `event_count_gt` `number` \u2014 Select people whose lifetime event_count is greater than this value. LTV and AOV are in USD.\n- `event_count_gte` `number` \u2014 Select people whose lifetime event_count is at least this value. LTV and AOV are in USD.\n- `event_count_lt` `number` \u2014 Select people whose lifetime event_count is less than this value. LTV and AOV are in USD.\n- `event_count_lte` `number` \u2014 Select people whose lifetime event_count is at most this value. LTV and AOV are in USD.\n- `event_from` `string` \u2014 The inclusive start of the matching activity window.\n- `event_name` `string[]` \u2014 Only include people who fired any of these events, e.g. payment.completed or page.checkout.view.\n- `event_to` `string` \u2014 The inclusive end of the matching activity window, for both stats drilldowns and saved audiences.\n- `event_within_days` `integer` \u2014 Match activity within a rolling number of days. Cannot be combined with event_from/event_to.\n- `first_seen_after` `string` \u2014 Only include people first seen at or after this ISO 8601 timestamp.\n- `first_seen_before` `string` \u2014 Only include people first seen before this ISO 8601 timestamp.\n- `first_seen_within_days` `integer` \u2014 Only include people first seen within this many days, as a rolling window.\n- `from` `string` \u2014 Inclusive activity-window start. Alias for event_from.\n- `has_purchased` `boolean` \u2014 true for customers only, false for people who have never purchased.\n- `last_seen_after` `string` \u2014 Only include people last seen at or after this ISO 8601 timestamp.\n- `last_seen_before` `string` \u2014 Only include people last seen before this ISO 8601 timestamp.\n- `last_seen_within_days` `integer` \u2014 Only include people last seen within this many days, as a rolling window.\n- `ltv_gt` `number` \u2014 Select people whose lifetime ltv is greater than this value. LTV and AOV are in USD.\n- `ltv_gte` `number` \u2014 Select people whose lifetime ltv is at least this value. LTV and AOV are in USD.\n- `ltv_lt` `number` \u2014 Select people whose lifetime ltv is less than this value. LTV and AOV are in USD.\n- `ltv_lte` `number` \u2014 Select people whose lifetime ltv is at most this value. LTV and AOV are in USD.\n- `phone` `string` \u2014 Only include the person linked to this phone number.\n- `purchase_count_gt` `number` \u2014 Select people whose lifetime purchase_count is greater than this value. LTV and AOV are in USD.\n- `purchase_count_gte` `number` \u2014 Select people whose lifetime purchase_count is at least this value. LTV and AOV are in USD.\n- `purchase_count_lt` `number` \u2014 Select people whose lifetime purchase_count is less than this value. LTV and AOV are in USD.\n- `purchase_count_lte` `number` \u2014 Select people whose lifetime purchase_count is at most this value. LTV and AOV are in USD.\n- `query` `string` \u2014 Search people by name, email, phone, or whop user ID (case-insensitive substring match).\n- `source` `string[]` \u2014 Only include people acquired from any of these sources \u2014 canonical paths (whop:<campaign>:<group>:<ad>, ext:<platform>:..., referrer:<domain>, direct, other), exact or with a trailing :* prefix. The same vocabulary the events / people metrics use.\n- `to` `string` \u2014 Inclusive activity-window end. Alias for event_to.\n- `user_id` `string` \u2014 Only include the person linked to this whop user ID.\n\n</details>\n<details>\n<summary>plans (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/plans`.\n\n- `created_after` `string` \u2014 Only return plans created after this timestamp.\n- `created_before` `string` \u2014 Only return plans created before this timestamp.\n- `plan_types` `string[]` \u2014 Filter to only plans matching these billing types.\n- `product_ids` `string[]` \u2014 Filter to only plans belonging to these product identifiers. When `account_id` is omitted, this is required and the response is publicly readable: only visible, non-invoice plans are returned.\n- `release_methods` `string[]` \u2014 Filter to only plans matching these release methods.\n- `visibilities` `string[]` \u2014 Filter to only plans matching these visibility states.\n\n</details>\n<details>\n<summary>products (10)</summary>\n\nMirrors the filtering query params of `GET /api/v1/products`.\n\n- `access_pass_types` `string[]` \u2014 Filter to only products matching these types.\n- `created_after` `string` \u2014 Only return products created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only return products created before this ISO 8601 timestamp.\n- `labels` `string[]` \u2014 Filter to only products carrying all of these labels. Labels are matched lowercased.\n- `marketplace_category_route` `string` \u2014 Only return marketplace products assigned to this category route, such as `trading`.\n- `plan_types` `string[]` \u2014 Filter to products with a buyable plan of these billing models, such as `one_time` or `renewal`.\n- `price_maximum` `number` \u2014 Only return products whose advertised buyable plan has a displayed price of at most this amount. Recurring plans use renewal price.\n- `price_minimum` `number` \u2014 Only return products whose advertised buyable plan has a displayed price of at least this amount. Recurring plans use renewal price.\n- `query` `string` \u2014 Ranked search against product title and headline. Omit to browse by recency.\n- `visibilities` `string[]` \u2014 Filter to only products matching these visibility states. Ignored on the public marketplace list, which only returns visible products.\n\n</details>\n<details>\n<summary>promo_codes (5)</summary>\n\nMirrors the filtering query params of `GET /api/v1/promo_codes`.\n\n- `created_after` `string` \u2014 Only promo codes created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only promo codes created before this ISO 8601 timestamp.\n- `plan_ids` `string[]` \u2014 Only promo codes scoped to these plan IDs.\n- `product_ids` `string[]` \u2014 Only promo codes scoped to these product IDs.\n- `status` `string` \u2014 Promo-code status. `expired` groups inactive and archived codes. One of `active`, `inactive`, `archived`, `expired`.\n\n</details>\n<details>\n<summary>resolution_center_cases (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/resolution_center_cases`.\n\n- `created_after` `string` \u2014 Only cases created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only cases created before this ISO 8601 timestamp.\n- `outcome` `string[]` \u2014 Only closed cases that ended these ways. Repeat the parameter to pass several.\n- `reason` `string[]` \u2014 Only cases opened for these reasons. Repeat the parameter to pass several.\n- `status` `string[]` \u2014 Only cases in these statuses. Repeat the parameter to pass several \u2014 one paginated list covers all of them.\n- `user_id` `string` \u2014 Only cases opened by this customer \u2014 a `user_` tag, or `me` for the calling user. It narrows what you can already read, so `me` lists the cases you opened without the ones on accounts you are a team member of.\n\n</details>\n<details>\n<summary>shipments (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/shipments`.\n\n- `created_after` `string` \u2014 Return shipments created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Return shipments created before this ISO 8601 timestamp.\n- `payment_id` `string[]` \u2014 Only shipments fulfilling these payments, each prefixed `pay_`. Repeat the parameter to pass several, up to 100 per request \u2014 one paginated list covers all of them.\n- `status` `string` \u2014 Filter to shipments with this delivery status. One of `unknown`, `pre_transit`, `in_transit`, `out_for_delivery`, `delivered`, `available_for_pickup`, `return_to_sender`, `failure`, `cancelled`, `error`.\n\n</details>\n<details>\n<summary>social_accounts (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/social_accounts`.\n\n- `platform` `string` \u2014 Only return social accounts for the platform that is specified. One of `x`, `instagram`, `youtube`, `tiktok`, `facebook`, `discord`, `telegram`, `linkedin`, `snapchat`.\n- `scopes` `string[]` \u2014 Only return social accounts that have these scopes.\n- `user_id` `string` \u2014 The User that the social accounts are connected to. Provide either this or account_id.\n- `verified` `boolean` \u2014 Only return social accounts that are verified on the platform.\n\n</details>\n<details>\n<summary>team_members (5)</summary>\n\nMirrors the filtering query params of `GET /api/v1/team_members`.\n\n- `created_after` `string` \u2014 Only return members added after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only return members added before this ISO 8601 timestamp.\n- `role` `string` \u2014 Only return members with this role. `custom` matches members on a dashboard-managed custom role. One of `owner`, `admin`, `partner`, `sales_manager`, `moderator`, `advertiser`, `app_manager`, `support`, `manager`, `workforce`, `custom`.\n- `status` `string` \u2014 Only return members with this status: `joined` (accepted members) or `pending` (pending invites). Both are returned by default. One of `joined`, `pending`.\n- `user_id` `string` \u2014 Only return the membership for this user ID, prefixed `user_`.\n\n</details>\n<details>\n<summary>transfers (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/transfers`.\n\n- `created_after` `string` \u2014 Only transfers created strictly after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only transfers created strictly before this ISO 8601 timestamp.\n- `destination_id` `string` \u2014 Filter to transfers received by this account. Provide this or origin_id.\n- `origin_id` `string` \u2014 Filter to transfers sent from this account. Provide this or destination_id.\n\n</details>\n<details>\n<summary>webhooks (3)</summary>\n\nMirrors the filtering query params of `GET /api/v1/webhooks`.\n\n- `app_id` `string` \u2014 Only return webhooks attached to this app. Omit to list the account's own webhooks.\n- `has_failures` `boolean` \u2014 Only return webhooks whose endpoint is currently failing \u2014 every delivery since the current failure streak began has been rejected. Clears as soon as a delivery succeeds.\n- `include_app_webhooks` `boolean` \u2014 Also return webhooks attached to the account's apps, not just the account's own. Cannot be combined with `app_id`.\n\n</details>\n</details>",
35880
+ description: "Resource-specific filters. For native REST resources (`payouts`, `transfers`, `products`) these are the resource's own list query params; for dashboard tables they mirror the dashboard table filters.\n\n<details>\n<summary>Filters by resource (25)</summary>\n\n<details>\n<summary>ad_campaigns (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/ad_campaigns`.\n\n- `created_after` `string` \u2014 Only return campaigns created after this timestamp.\n- `created_before` `string` \u2014 Only return campaigns created before this timestamp.\n- `query` `string` \u2014 Filter campaigns by a title or ID substring.\n- `status` `string` \u2014 Only return campaigns with this status. One of `draft`, `active`, `paused`, `payment_failed`.\n\n</details>\n<details>\n<summary>ad_groups (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/ad_groups`.\n\n- `ad_campaign_id` `string` \u2014 Filter to ad groups in this campaign.\n- `ad_campaign_ids` `string[]` \u2014 Filter to ad groups in these campaigns (max 100). Repeat the parameter for each id (ad_campaign_ids=a&ad_campaign_ids=b).\n- `created_after` `string` \u2014 Only return ad groups created after this timestamp.\n- `created_before` `string` \u2014 Only return ad groups created before this timestamp.\n- `query` `string` \u2014 Filter ad groups by a title or ID substring.\n- `status` `string` \u2014 Filter to ad groups with this status. One of `active`, `paused`, `rejected`, `duplicating`.\n\n</details>\n<details>\n<summary>ads (8)</summary>\n\nMirrors the filtering query params of `GET /api/v1/ads`.\n\n- `ad_campaign_id` `string` \u2014 Only return ads in this ad campaign.\n- `ad_campaign_ids` `string[]` \u2014 Only return ads in these ad campaigns (max 100). Repeat the parameter for each id (ad_campaign_ids=a&ad_campaign_ids=b).\n- `ad_group_id` `string` \u2014 Only return ads in this ad group.\n- `ad_group_ids` `string[]` \u2014 Only return ads in these ad groups (max 100). Repeat the parameter for each id (ad_group_ids=a&ad_group_ids=b).\n- `created_after` `string` \u2014 Only return ads created after this timestamp.\n- `created_before` `string` \u2014 Only return ads created before this timestamp.\n- `query` `string` \u2014 Filter ads by a title or ID substring.\n- `status` `string` \u2014 Only return ads with this status. One of `active`, `paused`, `in_review`, `rejected`.\n\n</details>\n<details>\n<summary>apps (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/apps`.\n\n- `app_type` `string` \u2014 Filter apps by the type of end-user they are built for. Apps of type `website` are left out unless you ask for them by name. One of `b2b_app`, `b2c_app`, `company_app`, `component`, `website`.\n- `query` `string` \u2014 A search string matched against app names.\n- `recommended` `boolean` \u2014 Only return apps Whop recommends (or, with `false`, only those it does not), independently of verification status.\n- `verified` `boolean` \u2014 Only return apps whose Whop verification status matches this value. Omit this filter to include every verification status the caller can see.\n- `verified_apps_only` `boolean` \u2014 Legacy compatibility filter. Use `verified` for field equality. `true` returns verified apps; clients pinned before `2026-08-25-2` retain the earlier public website discovery behavior.\n- `view_type` `string` \u2014 Only return apps supporting this view type, such as `dashboard` or `hub`. One of `hub`, `discover`, `dash`, `dashboard`, `analytics`, `skills`, `openapi`.\n\n</details>\n<details>\n<summary>audiences (3)</summary>\n\nMirrors the filtering query params of `GET /api/v1/audiences`.\n\n- `audience_id` `string` \u2014 Audience ID, prefixed `adaud_`, used to filter the response to one audience.\n- `audience_type` `string` \u2014 Filter by custom or lookalike audiences. One of `custom`, `lookalike`.\n- `source_type` `string` \u2014 Filter by uploaded customer lists, Whop People filters, or social engagement. One of `csv_upload`, `people_filter`, `engagement`.\n\n</details>\n<details>\n<summary>bounties (8)</summary>\n\nMirrors the filtering query params of `GET /api/v1/bounties`.\n\n- `business_goal_type` `string` \u2014 Filter by the poster's declared goal. Bounties created before the goal taxonomy carry no goal and never match this filter. One of `clipping`, `post_engagement`, `owned_account_growth`, `ugc_content`, `local_activation`, `data_capture`, `other`.\n- `country` `string` \u2014 Only bounties workable from this country, as an ISO 3166-1 alpha-2 code. Bounties with no country targeting are workable worldwide and always match.\n- `created_after` `string` \u2014 Only bounties created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only bounties created before this ISO 8601 timestamp.\n- `experience_id` `string` \u2014 Only bounties posted to this forum experience, prefixed `exp_`. An unknown experience, or one outside the caller's scope, matches nothing.\n- `query` `string` \u2014 Substring match on the bounty title or ID.\n- `status` `string` \u2014 Filter by lifecycle state. One of `scheduled`, `open`, `closed`, `completed`, `canceled`.\n- `user_id` `string` \u2014 List the bounties this user participated in (`user_` tag). Must be the authenticated user.\n\n</details>\n<details>\n<summary>bounty_submissions (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/bounty_submissions`.\n\n- `bounty_id` `string` \u2014 Only submissions on this bounty (`bnty_` tag).\n- `created_after` `string` \u2014 Only submissions created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only submissions created before this ISO 8601 timestamp.\n- `status` `string` \u2014 Filter by lifecycle state. One of `in_progress`, `submitted`, `approved`, `denied`.\n\n</details>\n<details>\n<summary>card_transactions (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/card_transactions`.\n\n- `card_id` `string[]` \u2014 Return only transactions charged to these cards, each prefixed `icrd_`.\n- `cardholder_id` `string[]` \u2014 Return only transactions on cards assigned to these users, each prefixed `user_`.\n- `created_after` `string` \u2014 Return only transactions authorized at or after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Return only transactions authorized at or before this ISO 8601 timestamp.\n- `status` `string` \u2014 Return only transactions with this status. One of `pending`, `completed`, `reversed`, `declined`.\n- `transaction_ids` `string[]` \u2014 Return only these card transactions, each prefixed `citx_`. Repeat the parameter, or pass one comma-separated value.\n\n</details>\n<details>\n<summary>checkout_configurations (3)</summary>\n\nMirrors the filtering query params of `GET /api/v1/checkout_configurations`.\n\n- `created_after` `string` \u2014 Only return checkout configurations created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only return checkout configurations created before this ISO 8601 timestamp.\n- `plan_id` `string` \u2014 Only return checkout configurations for this plan ID, prefixed `plan_`.\n\n</details>\n<details>\n<summary>disputes (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/disputes`.\n\n- `created_after` `string` \u2014 Only disputes opened after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only disputes opened before this ISO 8601 timestamp.\n- `currency` `string` \u2014 Only disputes in this three-letter ISO currency.\n- `status` `string[]` \u2014 Only disputes in these statuses. Repeat the parameter to pass several \u2014 one paginated list covers all of them. Inquiries match only the `warning_` statuses. A `needs_response` dispute whose evidence deadline has passed reports and filters as `under_review` instead.\n\n</details>\n<details>\n<summary>events (14)</summary>\n\nMirrors the filtering query params of `GET /api/v1/events`.\n\n- `attribution_model` `string` \u2014 Attribution model for the source filter (defaults to last_touch). One of `last_touch`, `first_touch`.\n- `browser` `string` \u2014 Browser families to filter by, comma-separated (e.g. Chrome, Mobile Safari).\n- `city` `string` \u2014 Cities to filter by, comma-separated.\n- `country` `string` \u2014 Country codes to filter by, comma-separated.\n- `device` `string` \u2014 Device families to filter by, comma-separated (e.g. iPhone, Mac).\n- `event` `string` \u2014 Full event names to filter by, comma-separated (payment.completed, pixel.lead, pixel.page, pixel.custom:<name>) \u2014 the same vocabulary the events / people metrics use.\n- `from` `string` \u2014 Start of the time range as an ISO 8601 timestamp. Required when identifier is omitted.\n- `hostname` `string` \u2014 Page hostnames to filter by, comma-separated.\n- `identifier` `string` \u2014 Any hard identifier of the person: a person ID (prsn_*), user ID, email, phone number, or a tracking cookie value (wuid, anonymous ID, fbp/fbc/ttp/ga). Omit to list recent events for the account.\n- `os` `string` \u2014 Operating system families to filter by, comma-separated (e.g. iOS, Windows).\n- `page` `string` \u2014 Page paths to filter by, comma-separated.\n- `source` `string` \u2014 Canonical source path, exact or with a trailing :* prefix (whop:<campaign>:*, ext:meta:*, referrer:<domain>, direct, unknown). Selects conversions credited to this source.\n- `to` `string` \u2014 End of the time range as an ISO 8601 timestamp. Required when identifier is omitted; otherwise defaults to now.\n- `utm_source` `string` \u2014 utm_source values to filter by, comma-separated.\n\n</details>\n<details>\n<summary>financial-activity (12)</summary>\n\nMirrors the filtering query params of `GET /api/v1/financial_activity`.\n\n- `activity_id` `string` \u2014 Optional ledger activity ID (for example `line_3`). Returns at most that one activity.\n- `available_after` `string` \u2014 Only include balance credits and debits available on or after this `YYYY-MM-DD` date (UTC), distinct from posted_at. Requires currency.\n- `available_before` `string` \u2014 Only include balance credits and debits available on or before this `YYYY-MM-DD` date (UTC). Set equal to available_after for a single day. Requires currency.\n- `currency` `string` \u2014 Optional currency code filter, for example `usd`.\n- `exclude_internal_movements` `boolean` \u2014 Whether to exclude balance reservations and balanced movements between the account's own balances.\n- `include_owned_accounts` `boolean` \u2014 When true, aggregates the authenticated user's personal ledger with the businesses they own (owner role with balance read) into one feed. Requires user_id to be the authenticated user; cannot be combined with account_id or the settlement-date filters. Each returned row includes the owning `account`.\n- `include_resource` `boolean` \u2014 Whether to include the `resource` field in the response or not. Consider passing `false` if you need a fast response without as many rich details.\n- `line_types` `string[]` \u2014 Optional ledger line categories to include. Some categories (for example `onchain_deposit`, which covers inbound crypto deposits such as MoonPay onramps) are only returned when explicitly requested here.\n- `posted_after` `string` \u2014 Only include rows posted after this ISO 8601 timestamp.\n- `posted_before` `string` \u2014 Only include rows posted before this ISO 8601 timestamp.\n- `resource_id` `string` \u2014 Optional prefixed resource ID. Returns activity associated with that resource.\n- `user_id` `string` \u2014 The owning user ID (a user_ identifier). Provide this or account_id.\n\n</details>\n<details>\n<summary>members (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/members`.\n\n- `access_level` `string` \u2014 Filter by what the member can reach on the account. One of `no_access`, `admin`, `customer`.\n- `created_after` `string` \u2014 Only members who joined after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only members who joined before this ISO 8601 timestamp.\n- `query` `string` \u2014 Search members by name or username. An exact email address also matches when the credential holds the member:email:read scope.\n- `status` `string` \u2014 Filter by whether the member is still part of the account. One of `joined`, `left`.\n- `user_ids` `string[]` \u2014 Only return members whose users match these `user_` identifiers.\n\n</details>\n<details>\n<summary>memberships (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/memberships`.\n\n- `created_after` `string` \u2014 Only memberships created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only memberships created before this ISO 8601 timestamp.\n- `plan_id` `string` \u2014 Filter to memberships of this plan (`plan_` tag). Repeat as plan_ids[] for several.\n- `product_id` `string` \u2014 Filter to memberships of this product (`prod_` tag). Repeat as product_ids[] for several.\n- `status` `string` \u2014 Filter by billing state. `canceling` matches active memberships set to cancel at period end; `paused` matches memberships with payment collection paused. One of `active`, `trialing`, `past_due`, `completed`, `canceled`, `expired`, `canceling`, `paused`.\n- `user_id` `string` \u2014 Narrow to one user's memberships (`user_` tag, or `me` for the caller). A user outside the caller's visible set returns an empty list.\n\n</details>\n<details>\n<summary>payouts (7)</summary>\n\nMirrors the filtering query params of `GET /api/v1/payouts`.\n\n- `created_after` `string` \u2014 Only payouts created at or after this ISO 8601 time (inclusive).\n- `created_before` `string` \u2014 Only payouts created before this ISO 8601 time (exclusive).\n- `currency` `string` \u2014 Optional currency code filter, for example `usd`.\n- `payout_method_id` `string` \u2014 Filter to payouts sent to one saved payout method (a pytk_ identifier). An unknown id matches nothing.\n- `source` `string` \u2014 Filter by how the payout was created. Payouts created before source tracking or through internal tooling carry no source and never match. One of `api`, `dashboard`, `automatic`.\n- `status` `string` \u2014 Filter to payouts whose `status` reads this word, matching exactly what this version displays \u2014 `reversed` finds settled payouts the bank later returned. Requires Api-Version-Date 2026-08-21 or later. One of `requested`, `in_review`, `processing`, `completed`, `reversed`, `canceled`, `failed`, `denied`.\n- `user_id` `string` \u2014 The owning user ID (a user_ identifier). Provide this or account_id.\n\n</details>\n<details>\n<summary>people (39)</summary>\n\nMirrors the filtering query params of `GET /api/v1/people`.\n\n- `aov_gt` `number` \u2014 Select people whose lifetime aov is greater than this value. LTV and AOV are in USD.\n- `aov_gte` `number` \u2014 Select people whose lifetime aov is at least this value. LTV and AOV are in USD.\n- `aov_lt` `number` \u2014 Select people whose lifetime aov is less than this value. LTV and AOV are in USD.\n- `aov_lte` `number` \u2014 Select people whose lifetime aov is at most this value. LTV and AOV are in USD.\n- `attribution_model` `string` \u2014 Attribution model the source filter matches against (defaults to last_touch). One of `last_touch`, `first_touch`.\n- `audience_id` `string` \u2014 Only include people in this audience. An audience that keeps itself up to date resolves to the People filters that define it, so this always reflects who matches now; uploaded lists and point-in-time snapshots match their recorded members.\n- `contactable` `boolean` \u2014 true for people who have an email address or phone number \u2014 the ones an ad platform can match.\n- `country` `string` \u2014 Only include people with activity from this ISO 3166-1 alpha-2 country code.\n- `custom_event` `string` \u2014 Only include people who fired this custom pixel event.\n- `email` `string` \u2014 Only include the person linked to this email address.\n- `event_count_gt` `number` \u2014 Select people whose lifetime event_count is greater than this value. LTV and AOV are in USD.\n- `event_count_gte` `number` \u2014 Select people whose lifetime event_count is at least this value. LTV and AOV are in USD.\n- `event_count_lt` `number` \u2014 Select people whose lifetime event_count is less than this value. LTV and AOV are in USD.\n- `event_count_lte` `number` \u2014 Select people whose lifetime event_count is at most this value. LTV and AOV are in USD.\n- `event_from` `string` \u2014 The inclusive start of the matching activity window.\n- `event_name` `string[]` \u2014 Only include people who fired any of these events, e.g. payment.completed or page.checkout.view.\n- `event_to` `string` \u2014 The inclusive end of the matching activity window, for both stats drilldowns and saved audiences.\n- `event_within_days` `integer` \u2014 Match activity within a rolling number of days. Cannot be combined with event_from/event_to.\n- `first_seen_after` `string` \u2014 Only include people first seen at or after this ISO 8601 timestamp.\n- `first_seen_before` `string` \u2014 Only include people first seen before this ISO 8601 timestamp.\n- `first_seen_within_days` `integer` \u2014 Only include people first seen within this many days, as a rolling window.\n- `from` `string` \u2014 Inclusive activity-window start. Alias for event_from.\n- `has_purchased` `boolean` \u2014 true for customers only, false for people who have never purchased.\n- `last_seen_after` `string` \u2014 Only include people last seen at or after this ISO 8601 timestamp.\n- `last_seen_before` `string` \u2014 Only include people last seen before this ISO 8601 timestamp.\n- `last_seen_within_days` `integer` \u2014 Only include people last seen within this many days, as a rolling window.\n- `ltv_gt` `number` \u2014 Select people whose lifetime ltv is greater than this value. LTV and AOV are in USD.\n- `ltv_gte` `number` \u2014 Select people whose lifetime ltv is at least this value. LTV and AOV are in USD.\n- `ltv_lt` `number` \u2014 Select people whose lifetime ltv is less than this value. LTV and AOV are in USD.\n- `ltv_lte` `number` \u2014 Select people whose lifetime ltv is at most this value. LTV and AOV are in USD.\n- `phone` `string` \u2014 Only include the person linked to this phone number.\n- `purchase_count_gt` `number` \u2014 Select people whose lifetime purchase_count is greater than this value. LTV and AOV are in USD.\n- `purchase_count_gte` `number` \u2014 Select people whose lifetime purchase_count is at least this value. LTV and AOV are in USD.\n- `purchase_count_lt` `number` \u2014 Select people whose lifetime purchase_count is less than this value. LTV and AOV are in USD.\n- `purchase_count_lte` `number` \u2014 Select people whose lifetime purchase_count is at most this value. LTV and AOV are in USD.\n- `query` `string` \u2014 Search people by name, email, phone, or whop user ID (case-insensitive substring match).\n- `source` `string[]` \u2014 Only include people acquired from any of these sources \u2014 canonical paths (whop:<campaign>:<group>:<ad>, ext:<platform>:..., referrer:<domain>, direct, other), exact or with a trailing :* prefix. The same vocabulary the events / people metrics use.\n- `to` `string` \u2014 Inclusive activity-window end. Alias for event_to.\n- `user_id` `string` \u2014 Only include the person linked to this whop user ID.\n\n</details>\n<details>\n<summary>plans (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/plans`.\n\n- `created_after` `string` \u2014 Only return plans created after this timestamp.\n- `created_before` `string` \u2014 Only return plans created before this timestamp.\n- `plan_types` `string[]` \u2014 Filter to only plans matching these billing types.\n- `product_ids` `string[]` \u2014 Filter to only plans belonging to these product identifiers. When `account_id` is omitted, this is required and the response is publicly readable: only visible, non-invoice plans are returned.\n- `release_methods` `string[]` \u2014 Filter to only plans matching these release methods.\n- `visibilities` `string[]` \u2014 Filter to only plans matching these visibility states.\n\n</details>\n<details>\n<summary>products (10)</summary>\n\nMirrors the filtering query params of `GET /api/v1/products`.\n\n- `access_pass_types` `string[]` \u2014 Filter to only products matching these types.\n- `created_after` `string` \u2014 Only return products created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only return products created before this ISO 8601 timestamp.\n- `labels` `string[]` \u2014 Filter to only products carrying all of these labels. Labels are matched lowercased.\n- `marketplace_category_route` `string` \u2014 Only return marketplace products assigned to this category route, such as `trading`.\n- `plan_types` `string[]` \u2014 Filter to products with a buyable plan of these billing models, such as `one_time` or `renewal`.\n- `price_maximum` `number` \u2014 Only return products whose advertised buyable plan has a displayed price of at most this amount. Recurring plans use renewal price.\n- `price_minimum` `number` \u2014 Only return products whose advertised buyable plan has a displayed price of at least this amount. Recurring plans use renewal price.\n- `query` `string` \u2014 Ranked search against product title and headline. Omit to browse by recency.\n- `visibilities` `string[]` \u2014 Filter to only products matching these visibility states. Ignored on the public marketplace list, which only returns visible products.\n\n</details>\n<details>\n<summary>promo_codes (5)</summary>\n\nMirrors the filtering query params of `GET /api/v1/promo_codes`.\n\n- `created_after` `string` \u2014 Only promo codes created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only promo codes created before this ISO 8601 timestamp.\n- `plan_ids` `string[]` \u2014 Only promo codes scoped to these plan IDs.\n- `product_ids` `string[]` \u2014 Only promo codes scoped to these product IDs.\n- `status` `string` \u2014 Promo-code status. `expired` groups inactive and archived codes. One of `active`, `inactive`, `archived`, `expired`.\n\n</details>\n<details>\n<summary>resolution_center_cases (6)</summary>\n\nMirrors the filtering query params of `GET /api/v1/resolution_center_cases`.\n\n- `created_after` `string` \u2014 Only cases created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only cases created before this ISO 8601 timestamp.\n- `outcome` `string[]` \u2014 Only closed cases that ended these ways. Repeat the parameter to pass several.\n- `reason` `string[]` \u2014 Only cases opened for these reasons. Repeat the parameter to pass several.\n- `status` `string[]` \u2014 Only cases in these statuses. Repeat the parameter to pass several \u2014 one paginated list covers all of them.\n- `user_id` `string` \u2014 Only cases opened by this customer \u2014 a `user_` tag, or `me` for the calling user. It narrows what you can already read, so `me` lists the cases you opened without the ones on accounts you are a team member of.\n\n</details>\n<details>\n<summary>shipments (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/shipments`.\n\n- `created_after` `string` \u2014 Return shipments created after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Return shipments created before this ISO 8601 timestamp.\n- `payment_id` `string[]` \u2014 Only shipments fulfilling these payments, each prefixed `pay_`. Repeat the parameter to pass several, up to 100 per request \u2014 one paginated list covers all of them.\n- `status` `string` \u2014 Filter to shipments with this delivery status. One of `unknown`, `pre_transit`, `in_transit`, `out_for_delivery`, `delivered`, `available_for_pickup`, `return_to_sender`, `failure`, `cancelled`, `error`.\n\n</details>\n<details>\n<summary>social_accounts (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/social_accounts`.\n\n- `platform` `string` \u2014 Only return social accounts for the platform that is specified. One of `x`, `instagram`, `youtube`, `tiktok`, `facebook`, `discord`, `telegram`, `linkedin`, `snapchat`.\n- `scopes` `string[]` \u2014 Only return social accounts that have these scopes.\n- `user_id` `string` \u2014 The User that the social accounts are connected to. Provide either this or account_id.\n- `verified` `boolean` \u2014 Only return social accounts that are verified on the platform.\n\n</details>\n<details>\n<summary>team_members (5)</summary>\n\nMirrors the filtering query params of `GET /api/v1/team_members`.\n\n- `created_after` `string` \u2014 Only return members added after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only return members added before this ISO 8601 timestamp.\n- `role` `string` \u2014 Only return members with this role. `custom` matches members on a dashboard-managed custom role. One of `owner`, `admin`, `partner`, `sales_manager`, `moderator`, `advertiser`, `app_manager`, `support`, `manager`, `workforce`, `custom`.\n- `status` `string` \u2014 Only return members with this status: `joined` (accepted members) or `pending` (pending invites). Both are returned by default. One of `joined`, `pending`.\n- `user_id` `string` \u2014 Only return the membership for this user ID, prefixed `user_`.\n\n</details>\n<details>\n<summary>transfers (4)</summary>\n\nMirrors the filtering query params of `GET /api/v1/transfers`.\n\n- `created_after` `string` \u2014 Only transfers created strictly after this ISO 8601 timestamp.\n- `created_before` `string` \u2014 Only transfers created strictly before this ISO 8601 timestamp.\n- `destination_id` `string` \u2014 Filter to transfers received by this account. Provide this or origin_id.\n- `origin_id` `string` \u2014 Filter to transfers sent from this account. Provide this or destination_id.\n\n</details>\n<details>\n<summary>webhooks (3)</summary>\n\nMirrors the filtering query params of `GET /api/v1/webhooks`.\n\n- `app_id` `string` \u2014 Only return webhooks attached to this app. Omit to list the account's own webhooks.\n- `has_failures` `boolean` \u2014 Only return webhooks whose endpoint is currently failing \u2014 every delivery since the current failure streak began has been rejected. Clears as soon as a delivery succeeds.\n- `include_app_webhooks` `boolean` \u2014 Also return webhooks attached to the account's apps, not just the account's own. Cannot be combined with `app_id`.\n\n</details>\n</details>",
35604
35881
  example: {
35605
35882
  include_resource: false,
35606
35883
  posted_after: "2026-01-01T12:00:00.000Z",
@@ -36526,6 +36803,9 @@ var native_spec_default = {
36526
36803
  "platform_balance_transfer_incoming",
36527
36804
  "platform_balance_transfer_outgoing",
36528
36805
  "platform_covered_dispute",
36806
+ "platform_credits_granted",
36807
+ "platform_credits_payment",
36808
+ "platform_credits_payment_refund",
36529
36809
  "platform_earning",
36530
36810
  "platform_markup_fee",
36531
36811
  "platform_markup_fee_payout",
@@ -36952,6 +37232,9 @@ var native_spec_default = {
36952
37232
  "platform_balance_transfer_incoming",
36953
37233
  "platform_balance_transfer_outgoing",
36954
37234
  "platform_covered_dispute",
37235
+ "platform_credits_granted",
37236
+ "platform_credits_payment",
37237
+ "platform_credits_payment_refund",
36955
37238
  "platform_earning",
36956
37239
  "platform_markup_fee",
36957
37240
  "platform_markup_fee_payout",
@@ -37155,6 +37438,7 @@ var native_spec_default = {
37155
37438
  "operational_costs",
37156
37439
  "other",
37157
37440
  "payments",
37441
+ "platform_credits",
37158
37442
  "refunds",
37159
37443
  "reserves",
37160
37444
  "transfers",
@@ -37336,6 +37620,9 @@ var native_spec_default = {
37336
37620
  "platform_balance_transfer_incoming",
37337
37621
  "platform_balance_transfer_outgoing",
37338
37622
  "platform_covered_dispute",
37623
+ "platform_credits_granted",
37624
+ "platform_credits_payment",
37625
+ "platform_credits_payment_refund",
37339
37626
  "platform_earning",
37340
37627
  "platform_earning_settlement",
37341
37628
  "platform_earning_unreconciled_clearing",
@@ -40105,7 +40392,7 @@ var native_spec_default = {
40105
40392
  },
40106
40393
  "/partner_referral_requests": {
40107
40394
  get: {
40108
- description: "Lists requests sent by an eligible partner and requests for accounts where the authenticated user currently holds the owner role. Enrolled, non-suspended partners can read their links without verification; reading their sent manual requests requires verification. Filters narrow that combined view. Use a Whop login session or an account API key with `partner:referral_request:read`. The key must have been created by the account's current owner. Account API keys return their owner's sent requests and incoming requests for the key's account.",
40395
+ description: "Lists your referral links and attribution requests, including incoming requests for you or businesses you own, with filters for recipient, partner, type, and status.",
40109
40396
  operationId: "list",
40110
40397
  parameters: [
40111
40398
  {
@@ -40120,6 +40407,15 @@ var native_spec_default = {
40120
40407
  type: "string"
40121
40408
  }
40122
40409
  },
40410
+ {
40411
+ description: "Only requests received by this user ID, prefixed `user_`.",
40412
+ in: "query",
40413
+ name: "target_user_id",
40414
+ required: false,
40415
+ schema: {
40416
+ type: "string"
40417
+ }
40418
+ },
40123
40419
  {
40124
40420
  description: "Only requests sent by this partner's user ID, prefixed `user_`.",
40125
40421
  in: "query",
@@ -40287,7 +40583,7 @@ var native_spec_default = {
40287
40583
  }
40288
40584
  },
40289
40585
  post: {
40290
- description: "Creates a pending manual request for an existing business as the authenticated, enrolled, verified Whop partner. Provide exactly one of account_id or account_url. Whop business and product links resolve to their business. A business owner must accept before attribution changes. An existing pending manual request from the same partner returns 200; a new request returns 201. Alternatively, send request_type=link without a code, business, or redemption limit to get your oldest saved referral link, or create one with a randomly generated code when none exists. Provide a custom code or redemption limit to create a new link; omitted codes are generated randomly. Only authorized staff may configure rewards or select another partner. Link creation requires partner enrollment and a non-suspended account, but not verification. Use a Whop login session or an account API key with `partner:referral_request:create`. The key must have been created by the account's current owner and acts as that owner.",
40586
+ description: "Creates a referral link or sends a verified partner's attribution request to an existing business or enrolled partner for approval.",
40291
40587
  operationId: "create",
40292
40588
  parameters: [
40293
40589
  {
@@ -40324,6 +40620,26 @@ var native_spec_default = {
40324
40620
  required: ["account_url"],
40325
40621
  type: "object"
40326
40622
  },
40623
+ {
40624
+ properties: {
40625
+ target_user_id: {
40626
+ description: "Enrolled partner to request attribution for, prefixed `user_`.",
40627
+ type: "string"
40628
+ }
40629
+ },
40630
+ required: ["target_user_id"],
40631
+ type: "object"
40632
+ },
40633
+ {
40634
+ properties: {
40635
+ target_username: {
40636
+ description: "Username of the user to request attribution for, with or without a leading @.",
40637
+ type: "string"
40638
+ }
40639
+ },
40640
+ required: ["target_username"],
40641
+ type: "object"
40642
+ },
40327
40643
  {
40328
40644
  additionalProperties: false,
40329
40645
  description: "Create your own referral link with an optional custom code and redemption limit. Without configuration, returns your oldest saved link or creates one with a random code. Only authorized staff can configure rewards or select another partner.",
@@ -40423,7 +40739,7 @@ var native_spec_default = {
40423
40739
  },
40424
40740
  "/partner_referral_requests/{id}": {
40425
40741
  get: {
40426
- description: "Retrieves a request visible to its eligible sender or a current owner of the receiving account. Enrolled, non-suspended partners can read their links without verification. Use a Whop login session or an account API key with `partner:referral_request:read`. The key must have been created by the account's current owner. Account API keys can retrieve their owner's sent requests and incoming requests for the key's account.",
40742
+ description: "Retrieves a referral link or attribution request by ID, including its partner, recipient, approval status, and referral code when present.",
40427
40743
  operationId: "get",
40428
40744
  responses: {
40429
40745
  "200": {
@@ -40481,7 +40797,7 @@ var native_spec_default = {
40481
40797
  },
40482
40798
  "/partner_referral_requests/{id}/accept": {
40483
40799
  post: {
40484
- description: "Accepts a pending manual request as a current business owner and attributes the business to the verified requesting partner. Existing active attribution blocks acceptance. Repeating acceptance returns the accepted request. Use a Whop login session or an account API key with `partner:referral_request:accept`. The key must have been created by the account's current owner. Account API keys can respond only to requests for the key's account.",
40800
+ description: "Accepts a pending attribution request as the receiving user or business owner, assigning the requesting partner as that user's or business's referrer.",
40485
40801
  operationId: "accept",
40486
40802
  parameters: [
40487
40803
  {
@@ -40546,7 +40862,7 @@ var native_spec_default = {
40546
40862
  },
40547
40863
  "/partner_referral_requests/{id}/cancel": {
40548
40864
  post: {
40549
- description: "Cancels a pending manual request as its eligible requesting partner. Repeating cancellation returns the cancelled request. Use a Whop login session or an account API key with `partner:referral_request:cancel`. The key must have been created by the account's current owner. Account API keys cancel requests as their account owner.",
40865
+ description: "Cancels a pending attribution request you sent so the recipient can no longer accept it, and returns the cancelled request.",
40550
40866
  operationId: "cancel",
40551
40867
  parameters: [
40552
40868
  {
@@ -40611,7 +40927,7 @@ var native_spec_default = {
40611
40927
  },
40612
40928
  "/partner_referral_requests/{id}/decline": {
40613
40929
  post: {
40614
- description: "Denies a pending manual request as a current business owner. Repeating denial returns the denied request. Use a Whop login session or an account API key with `partner:referral_request:decline`. The key must have been created by the account's current owner. Account API keys can respond only to requests for the key's account.",
40930
+ description: "Declines a pending attribution request for you or a business you own, marking it as denied without assigning the requesting partner as a referrer.",
40615
40931
  operationId: "decline",
40616
40932
  parameters: [
40617
40933
  {
@@ -44767,7 +45083,7 @@ var native_spec_default = {
44767
45083
  type: ["object", "null"]
44768
45084
  },
44769
45085
  statement_descriptor: {
44770
- description: "Overrides the text on the buyer's card statement for this payment only. Takes precedence over the product's and account's custom descriptors, and changes neither. Must start with `WHOP*`, be 5-22 characters, contain at least one letter, and use only Latin letters, numbers, spaces, underscores, hyphens, or asterisks.",
45086
+ description: "Overrides the text on the buyer's card statement for this payment only. Takes precedence over the product's and account's custom descriptors, and changes neither. Must start with `WHOP*` unless the business processes as the merchant of record. For businesses processing as the merchant of record, omit the `WHOP*` prefix; the descriptor appears as provided. Must be 5-22 characters, contain at least one letter, and use only Latin letters, numbers, spaces, underscores, hyphens, or asterisks.",
44771
45087
  example: "WHOP*SHINETIME",
44772
45088
  type: ["string", "null"]
44773
45089
  }
@@ -56050,7 +56366,7 @@ var native_spec_default = {
56050
56366
  },
56051
56367
  "/social_accounts/connect": {
56052
56368
  post: {
56053
- description: "Starts an OAuth connection flow and returns an authorize_url where the user can connect a social account. LinkedIn connects the authenticated user\u2019s profile and must be completed in a browser signed in as that same Whop user.",
56369
+ description: "Starts an OAuth connection flow and returns an authorize_url where the user can connect a social account. LinkedIn supports personal profiles only, with scopes omitted. TikTok connects the authenticated user\u2019s profile when scopes are omitted or company advertising assets with advertise. Meta Business and Snapchat support advertising connections only and require advertise. Personal profile connections must be completed in a browser signed in as the initiating Whop user.",
56054
56370
  operationId: "connect",
56055
56371
  parameters: [
56056
56372
  {
@@ -56066,7 +56382,7 @@ var native_spec_default = {
56066
56382
  schema: {
56067
56383
  properties: {
56068
56384
  account_id: {
56069
- description: "The Account (biz_ identifier) to connect the social account for. An account-scoped API key may omit this to default to its own account. Omit for LinkedIn connections.",
56385
+ description: "The Account (biz_ identifier) to connect the social account for. An account-scoped API key may omit this to default to its own account. Omit for user profile connections.",
56070
56386
  example: "biz_xxxxxxxxxxxxxx",
56071
56387
  type: "string"
56072
56388
  },
@@ -56082,7 +56398,7 @@ var native_spec_default = {
56082
56398
  type: "string"
56083
56399
  },
56084
56400
  scopes: {
56085
- description: "Capabilities to grant for the connected social account. `advertise` is required for `meta_business`, `tiktok`, and `snapchat` connections \u2014 it is not conditional on whether you intend to run ads, and omitting it fails the request. Omit scopes for LinkedIn connections.",
56401
+ description: "The connection purpose. For `meta_business` and `snapchat`, `advertise` is required and connects company advertising assets. For `linkedin`, omit scopes to connect the authenticated user\u2019s profile; advertising is not supported. For `tiktok`, omit scopes to connect the authenticated user\u2019s profile, or pass `advertise` to connect company advertising assets. Profile connections still request the platform permissions needed to read the profile.",
56086
56402
  items: {
56087
56403
  enum: ["advertise"],
56088
56404
  example: "advertise",
@@ -58713,67 +59029,68 @@ var native_spec_default = {
58713
59029
  ]
58714
59030
  }
58715
59031
  },
58716
- "/transfers": {
59032
+ "/trades": {
58717
59033
  get: {
58718
- description: "Lists an account's transfers.",
59034
+ description: "Lists trades you can access, newest first. User credentials see their own trades and those of accounts they belong to, including connected accounts; account credentials see their account and its connected accounts. These are submission records, not fill or position history.",
58719
59035
  operationId: "list",
58720
59036
  parameters: [
58721
59037
  {
58722
59038
  $ref: "#/components/parameters/ApiVersionDate"
58723
59039
  },
58724
59040
  {
58725
- description: "Filter to transfers sent from this account. Provide this or destination_id.",
58726
- in: "query",
58727
- name: "origin_id",
58728
- required: false,
58729
- schema: {
58730
- type: "string"
58731
- }
58732
- },
58733
- {
58734
- description: "Filter to transfers received by this account. Provide this or origin_id.",
59041
+ description: "Only return trades for this account or user, prefixed `biz_` or `user_`.",
58735
59042
  in: "query",
58736
- name: "destination_id",
59043
+ name: "account_id",
58737
59044
  required: false,
58738
59045
  schema: {
58739
59046
  type: "string"
58740
59047
  }
58741
59048
  },
58742
59049
  {
58743
- description: "Sort column. Defaults to created_at.",
59050
+ description: "Only return trades with this submission status.",
58744
59051
  in: "query",
58745
- name: "order",
59052
+ name: "status",
58746
59053
  required: false,
58747
59054
  schema: {
58748
- enum: ["created_at", "amount"],
59055
+ enum: [
59056
+ "pending",
59057
+ "submitted",
59058
+ "completed",
59059
+ "failed",
59060
+ "submission_unknown"
59061
+ ],
58749
59062
  type: "string"
58750
59063
  }
58751
59064
  },
58752
59065
  {
58753
- description: "Sort direction. Defaults to desc.",
59066
+ description: "Only return trades of this kind, such as `create_orders` for order submissions.",
58754
59067
  in: "query",
58755
- name: "direction",
59068
+ name: "operation_type",
58756
59069
  required: false,
58757
59070
  schema: {
58758
- enum: ["asc", "desc"],
59071
+ enum: ["create_orders", "cancel_orders", "update_leverage"],
58759
59072
  type: "string"
58760
59073
  }
58761
59074
  },
58762
59075
  {
58763
- description: "Only transfers created strictly before this ISO 8601 timestamp.",
59076
+ description: "Field to sort by.",
58764
59077
  in: "query",
58765
- name: "created_before",
59078
+ name: "order",
58766
59079
  required: false,
58767
59080
  schema: {
59081
+ default: "created_at",
59082
+ enum: ["created_at", "updated_at"],
58768
59083
  type: "string"
58769
59084
  }
58770
59085
  },
58771
59086
  {
58772
- description: "Only transfers created strictly after this ISO 8601 timestamp.",
59087
+ description: "Sort direction.",
58773
59088
  in: "query",
58774
- name: "created_after",
59089
+ name: "direction",
58775
59090
  required: false,
58776
59091
  schema: {
59092
+ default: "desc",
59093
+ enum: ["asc", "desc"],
58777
59094
  type: "string"
58778
59095
  }
58779
59096
  },
@@ -58825,122 +59142,865 @@ var native_spec_default = {
58825
59142
  properties: {
58826
59143
  data: {
58827
59144
  items: {
58828
- description: "A transfer of credit between two ledger accounts.",
58829
- properties: {
58830
- amount: {
58831
- description: "Transfer amount.",
58832
- example: 25,
58833
- type: "number"
58834
- },
58835
- created_at: {
58836
- description: "When the transfer was created.",
58837
- example: "2026-01-01T12:00:00.000Z",
58838
- format: "date-time",
58839
- type: "string"
58840
- },
58841
- created_by_user: {
58842
- description: "The user who initiated the transfer, such as the team member who sent a manual payout. Null if the creator is unavailable.",
58843
- properties: {
58844
- id: {
58845
- description: "User ID.",
58846
- example: "user_xxxxxxxxxxxxxx",
58847
- type: "string"
58848
- },
58849
- name: {
58850
- description: "User display name.",
58851
- example: "Marcus Webb",
58852
- type: ["string", "null"]
58853
- },
58854
- username: {
58855
- description: "User's username.",
58856
- example: "marcuswebb",
58857
- type: "string"
58858
- }
58859
- },
58860
- required: ["id", "username"],
58861
- title: "TransferCreatedByUser",
58862
- type: ["object", "null"]
58863
- },
58864
- currency: {
58865
- description: "Transfer currency.",
58866
- example: "usd",
58867
- type: "string"
58868
- },
58869
- destination_ledger_account_id: {
58870
- description: "Destination ledger account ID.",
58871
- example: "ldgr_xxxxxxxxxxxxxx",
58872
- type: "string"
58873
- },
58874
- failed_at: {
58875
- description: "When the transfer failed, as an ISO 8601 timestamp. Null unless the transfer has failed.",
58876
- example: null,
58877
- format: "date-time",
58878
- type: ["string", "null"]
58879
- },
58880
- failure_code: {
58881
- description: "Machine-readable code for why the transfer failed. Null unless the transfer has failed.",
58882
- example: null,
58883
- type: ["string", "null"]
58884
- },
58885
- failure_reason: {
58886
- description: "Human-readable explanation of why the transfer failed. Null unless the transfer has failed.",
58887
- example: null,
58888
- type: ["string", "null"]
58889
- },
58890
- fee_amount: {
58891
- description: "Fee charged for the transfer.",
58892
- example: 0.5,
58893
- type: ["number", "null"]
58894
- },
58895
- id: {
58896
- description: "Transfer ID.",
58897
- example: "ctt_xxxxxxxxxxxxxx",
58898
- type: "string"
58899
- },
58900
- metadata: {
58901
- additionalProperties: true,
58902
- description: "Custom metadata attached to the transfer.",
58903
- example: {
58904
- order_id: "SHINE-1042"
58905
- },
58906
- type: ["object", "null"]
58907
- },
58908
- notes: {
58909
- description: "Transfer note.",
58910
- example: "Refund for the rescheduled interior detail",
58911
- type: ["string", "null"]
58912
- },
58913
- object: {
58914
- description: "The object type.",
58915
- enum: ["transfer"],
58916
- example: "transfer",
58917
- type: "string"
58918
- },
58919
- origin_ledger_account_id: {
58920
- description: "Source ledger account ID.",
58921
- example: "ldgr_xxxxxxxxxxxxxx",
58922
- type: "string"
58923
- },
58924
- status: {
58925
- description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 poll the transfer until it resolves to `succeeded` or `failed`. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
58926
- enum: ["processing", "succeeded", "failed"],
58927
- example: "succeeded",
58928
- type: "string"
58929
- }
58930
- },
58931
- required: [
58932
- "object",
58933
- "id",
58934
- "status",
58935
- "amount",
58936
- "currency",
58937
- "created_at",
58938
- "origin_ledger_account_id",
58939
- "destination_ledger_account_id",
58940
- "created_by_user"
58941
- ],
58942
- title: "TransferListItem",
58943
- type: "object"
59145
+ $ref: "#/components/schemas/Trade"
59146
+ },
59147
+ type: "array"
59148
+ },
59149
+ page_info: {
59150
+ properties: {
59151
+ end_cursor: {
59152
+ example: null,
59153
+ type: ["string", "null"]
59154
+ },
59155
+ has_next_page: {
59156
+ example: false,
59157
+ type: "boolean"
59158
+ },
59159
+ has_previous_page: {
59160
+ example: false,
59161
+ type: "boolean"
59162
+ },
59163
+ start_cursor: {
59164
+ example: "WyJjdXJzb3IiLDFd",
59165
+ type: ["string", "null"]
59166
+ }
59167
+ },
59168
+ required: [
59169
+ "start_cursor",
59170
+ "end_cursor",
59171
+ "has_next_page",
59172
+ "has_previous_page"
59173
+ ],
59174
+ type: "object"
59175
+ }
59176
+ },
59177
+ required: ["data", "page_info"],
59178
+ type: "object"
59179
+ }
59180
+ }
59181
+ },
59182
+ description: "trades listed"
59183
+ },
59184
+ "400": {
59185
+ $ref: "#/components/responses/InvalidParameters",
59186
+ description: "status is invalid"
59187
+ },
59188
+ "401": {
59189
+ $ref: "#/components/responses/Unauthorized",
59190
+ description: "authentication is missing"
59191
+ },
59192
+ "403": {
59193
+ $ref: "#/components/responses/Forbidden",
59194
+ description: "selected account is not authorized"
59195
+ }
59196
+ },
59197
+ security: [
59198
+ {
59199
+ bearerAuth: ["crypto_wallet:trade:read"]
59200
+ },
59201
+ {
59202
+ bearerAuth: ["crypto_wallet:trade"]
59203
+ },
59204
+ {
59205
+ bearerAuth: ["crypto_wallet:manage"]
59206
+ }
59207
+ ],
59208
+ summary: "List Trades",
59209
+ tags: ["Trades"],
59210
+ "x-mint": {
59211
+ metadata: {
59212
+ sidebarTitle: "List"
59213
+ }
59214
+ }
59215
+ },
59216
+ post: {
59217
+ description: "Submits perpetual orders from a funded trading wallet. Send several limit orders for a ladder, or attach `take_profit` and `stop_loss` to a single entry order. Whop's builder fee is approved and attached automatically. The returned `trop_` ID identifies the submission, not a position, and `completed` doesn't mean filled: check each order acknowledgement, and read live orders and positions from the account's `trading` field. Requires an `Idempotency-Key`. Early beta: email support@whop.com for access.",
59218
+ operationId: "create",
59219
+ parameters: [
59220
+ {
59221
+ $ref: "#/components/parameters/ApiVersionDate"
59222
+ },
59223
+ {
59224
+ description: "Required. Reuse the same key when retrying, including after a `submission_unknown` outcome; a new key submits a new trade.",
59225
+ in: "header",
59226
+ name: "Idempotency-Key",
59227
+ required: true,
59228
+ schema: {
59229
+ maxLength: 255,
59230
+ minLength: 1,
59231
+ type: "string"
59232
+ }
59233
+ }
59234
+ ],
59235
+ requestBody: {
59236
+ content: {
59237
+ "application/json": {
59238
+ schema: {
59239
+ properties: {
59240
+ account_id: {
59241
+ description: "The account or user that owns the trading wallet, prefixed `biz_` or `user_`.",
59242
+ example: "biz_xxxxxxxxxxxxxx",
59243
+ type: "string"
59244
+ },
59245
+ instrument_type: {
59246
+ description: "The kind of instrument to trade.",
59247
+ enum: ["perpetual"],
59248
+ example: "perpetual",
59249
+ type: "string"
59250
+ },
59251
+ metadata: {
59252
+ additionalProperties: {
59253
+ type: "string"
59254
+ },
59255
+ description: "Free-form string-to-string annotations stored on the trade.",
59256
+ type: ["object", "null"]
59257
+ },
59258
+ orders: {
59259
+ description: "Orders to submit together. Attached take-profit and stop-loss are supported only with a single entry order.",
59260
+ items: {
59261
+ properties: {
59262
+ market: {
59263
+ description: "Perpetual market on the selected provider, such as `ETH`.",
59264
+ example: "ETH",
59265
+ type: "string"
59266
+ },
59267
+ order_type: {
59268
+ default: "limit",
59269
+ enum: [
59270
+ "limit",
59271
+ "market",
59272
+ "take_profit",
59273
+ "stop_loss"
59274
+ ],
59275
+ example: "limit",
59276
+ type: "string"
59277
+ },
59278
+ price: {
59279
+ description: "Limit price as a decimal string. Required for a limit order; for a take-profit or stop-loss, omit it to trigger a market order.",
59280
+ example: "3000",
59281
+ type: ["string", "null"]
59282
+ },
59283
+ reduce_only: {
59284
+ default: false,
59285
+ description: "Whether the order can only reduce an existing position. Take-profit and stop-loss orders are always reduce-only.",
59286
+ type: "boolean"
59287
+ },
59288
+ side: {
59289
+ enum: ["buy", "sell"],
59290
+ example: "buy",
59291
+ type: "string"
59292
+ },
59293
+ size: {
59294
+ description: "Order size as a decimal string.",
59295
+ example: "0.02",
59296
+ type: "string"
59297
+ },
59298
+ slippage_bps: {
59299
+ description: "Slippage cap for this order in basis points, overriding the request's `slippage_bps`.",
59300
+ maximum: 1e3,
59301
+ minimum: 1,
59302
+ type: ["integer", "null"]
59303
+ },
59304
+ stop_loss: {
59305
+ description: "Stop-loss to attach to a single entry order.",
59306
+ oneOf: [
59307
+ {
59308
+ properties: {
59309
+ limit_price: {
59310
+ description: "Limit price once triggered, as a decimal string. Omit or pass `null` for a market order with the request's slippage cap.",
59311
+ type: ["string", "null"]
59312
+ },
59313
+ trigger_price: {
59314
+ description: "Price that triggers the order, as a decimal string.",
59315
+ example: "3300",
59316
+ type: "string"
59317
+ }
59318
+ },
59319
+ required: ["trigger_price"],
59320
+ type: "object"
59321
+ },
59322
+ {
59323
+ type: "null"
59324
+ }
59325
+ ]
59326
+ },
59327
+ take_profit: {
59328
+ description: "Take-profit to attach to a single entry order.",
59329
+ oneOf: [
59330
+ {
59331
+ properties: {
59332
+ limit_price: {
59333
+ description: "Limit price once triggered, as a decimal string. Omit or pass `null` for a market order with the request's slippage cap.",
59334
+ type: ["string", "null"]
59335
+ },
59336
+ trigger_price: {
59337
+ description: "Price that triggers the order, as a decimal string.",
59338
+ example: "3300",
59339
+ type: "string"
59340
+ }
59341
+ },
59342
+ required: ["trigger_price"],
59343
+ type: "object"
59344
+ },
59345
+ {
59346
+ type: "null"
59347
+ }
59348
+ ]
59349
+ },
59350
+ time_in_force: {
59351
+ default: "good_til_canceled",
59352
+ description: "How long a limit order stays active. Ignored for other order types.",
59353
+ enum: [
59354
+ "add_liquidity_only",
59355
+ "good_til_canceled",
59356
+ "immediate_or_cancel"
59357
+ ],
59358
+ example: "add_liquidity_only",
59359
+ type: "string"
59360
+ },
59361
+ trigger_price: {
59362
+ description: "Trigger price as a decimal string. Required for standalone take-profit and stop-loss orders.",
59363
+ type: ["string", "null"]
59364
+ }
59365
+ },
59366
+ required: ["market", "side", "size"],
59367
+ type: "object"
59368
+ },
59369
+ maxItems: 50,
59370
+ minItems: 1,
59371
+ type: "array"
59372
+ },
59373
+ provider: {
59374
+ enum: ["hyperliquid"],
59375
+ example: "hyperliquid",
59376
+ type: "string"
59377
+ },
59378
+ slippage_bps: {
59379
+ default: 50,
59380
+ description: "Default slippage cap in basis points for market orders and market-triggered take-profit and stop-loss.",
59381
+ maximum: 1e3,
59382
+ minimum: 1,
59383
+ type: ["integer", "null"]
59384
+ }
59385
+ },
59386
+ required: [
59387
+ "account_id",
59388
+ "provider",
59389
+ "instrument_type",
59390
+ "orders"
59391
+ ],
59392
+ type: "object"
59393
+ }
59394
+ }
59395
+ },
59396
+ required: true
59397
+ },
59398
+ responses: {
59399
+ "201": {
59400
+ content: {
59401
+ "application/json": {
59402
+ schema: {
59403
+ $ref: "#/components/schemas/Trade"
59404
+ }
59405
+ }
59406
+ },
59407
+ description: "submission recorded"
59408
+ },
59409
+ "202": {
59410
+ content: {
59411
+ "application/json": {
59412
+ schema: {
59413
+ $ref: "#/components/schemas/Trade"
59414
+ }
59415
+ }
59416
+ },
59417
+ description: "submission outcome is unknown"
59418
+ },
59419
+ "400": {
59420
+ $ref: "#/components/responses/InvalidParameters",
59421
+ description: "request is invalid"
59422
+ },
59423
+ "401": {
59424
+ $ref: "#/components/responses/Unauthorized",
59425
+ description: "authentication is missing"
59426
+ },
59427
+ "403": {
59428
+ $ref: "#/components/responses/Forbidden",
59429
+ description: "trading permission is missing"
59430
+ },
59431
+ "404": {
59432
+ $ref: "#/components/responses/NotFound",
59433
+ description: "account was not found"
59434
+ },
59435
+ "409": {
59436
+ $ref: "#/components/responses/Conflict"
59437
+ }
59438
+ },
59439
+ security: [
59440
+ {
59441
+ accountApiKeyOrAccountTokenOrAccountUserTokenOrOauthTokenAuth: [
59442
+ "crypto_wallet:trade"
59443
+ ]
59444
+ },
59445
+ {
59446
+ accountApiKeyOrAccountTokenOrAccountUserTokenOrOauthTokenAuth: [
59447
+ "crypto_wallet:manage"
59448
+ ]
59449
+ }
59450
+ ],
59451
+ summary: "Create Trade",
59452
+ tags: ["Trades"],
59453
+ "x-whop-credentials": [
59454
+ "account_api_key",
59455
+ "account_token",
59456
+ "account_user_token",
59457
+ "oauth_token"
59458
+ ],
59459
+ "x-mint": {
59460
+ metadata: {
59461
+ sidebarTitle: "Create"
59462
+ }
59463
+ }
59464
+ }
59465
+ },
59466
+ "/trades/leverage": {
59467
+ post: {
59468
+ description: "Sets cross or isolated leverage for a perpetual market, up to that market's maximum. Returns a trade recording the submission. Requires an `Idempotency-Key`.",
59469
+ operationId: "leverage",
59470
+ parameters: [
59471
+ {
59472
+ $ref: "#/components/parameters/ApiVersionDate"
59473
+ },
59474
+ {
59475
+ description: "Required. Reuse the same key when retrying, including after a `submission_unknown` outcome; a new key submits a new trade.",
59476
+ in: "header",
59477
+ name: "Idempotency-Key",
59478
+ required: true,
59479
+ schema: {
59480
+ maxLength: 255,
59481
+ minLength: 1,
59482
+ type: "string"
59483
+ }
59484
+ }
59485
+ ],
59486
+ requestBody: {
59487
+ content: {
59488
+ "application/json": {
59489
+ schema: {
59490
+ properties: {
59491
+ account_id: {
59492
+ description: "The account or user that owns the trading wallet, prefixed `biz_` or `user_`.",
59493
+ example: "biz_xxxxxxxxxxxxxx",
59494
+ type: "string"
59495
+ },
59496
+ leverage: {
59497
+ description: "Leverage multiplier, such as `10` for 10x. Capped at the market's maximum.",
59498
+ example: 5,
59499
+ minimum: 1,
59500
+ type: "integer"
59501
+ },
59502
+ margin_mode: {
59503
+ description: "`cross` shares margin across positions; `isolated` limits margin to this market's position.",
59504
+ enum: ["cross", "isolated"],
59505
+ example: "isolated",
59506
+ type: "string"
59507
+ },
59508
+ market: {
59509
+ description: "Perpetual market on the provider, such as `ETH`.",
59510
+ example: "ETH",
59511
+ type: "string"
59512
+ },
59513
+ metadata: {
59514
+ additionalProperties: {
59515
+ type: "string"
59516
+ },
59517
+ description: "Free-form string-to-string annotations stored on the trade.",
59518
+ type: ["object", "null"]
59519
+ },
59520
+ provider: {
59521
+ enum: ["hyperliquid"],
59522
+ example: "hyperliquid",
59523
+ type: "string"
59524
+ }
59525
+ },
59526
+ required: [
59527
+ "account_id",
59528
+ "provider",
59529
+ "market",
59530
+ "leverage",
59531
+ "margin_mode"
59532
+ ],
59533
+ type: "object"
59534
+ }
59535
+ }
59536
+ },
59537
+ required: true
59538
+ },
59539
+ responses: {
59540
+ "201": {
59541
+ content: {
59542
+ "application/json": {
59543
+ schema: {
59544
+ $ref: "#/components/schemas/Trade"
59545
+ }
59546
+ }
59547
+ },
59548
+ description: "leverage submission recorded"
59549
+ },
59550
+ "202": {
59551
+ content: {
59552
+ "application/json": {
59553
+ schema: {
59554
+ $ref: "#/components/schemas/Trade"
59555
+ }
59556
+ }
59557
+ },
59558
+ description: "leverage outcome is unknown"
59559
+ },
59560
+ "400": {
59561
+ $ref: "#/components/responses/InvalidParameters",
59562
+ description: "provider is invalid"
59563
+ },
59564
+ "401": {
59565
+ $ref: "#/components/responses/Unauthorized",
59566
+ description: "authentication is missing"
59567
+ },
59568
+ "403": {
59569
+ $ref: "#/components/responses/Forbidden",
59570
+ description: "trading permission is missing"
59571
+ },
59572
+ "409": {
59573
+ $ref: "#/components/responses/Conflict"
59574
+ }
59575
+ },
59576
+ security: [
59577
+ {
59578
+ accountApiKeyOrAccountTokenOrAccountUserTokenOrOauthTokenAuth: [
59579
+ "crypto_wallet:trade"
59580
+ ]
59581
+ },
59582
+ {
59583
+ accountApiKeyOrAccountTokenOrAccountUserTokenOrOauthTokenAuth: [
59584
+ "crypto_wallet:manage"
59585
+ ]
59586
+ }
59587
+ ],
59588
+ summary: "Update Trade Leverage",
59589
+ tags: ["Trades"],
59590
+ "x-whop-credentials": [
59591
+ "account_api_key",
59592
+ "account_token",
59593
+ "account_user_token",
59594
+ "oauth_token"
59595
+ ],
59596
+ "x-mint": {
59597
+ metadata: {
59598
+ sidebarTitle: "Update Leverage"
59599
+ }
59600
+ }
59601
+ }
59602
+ },
59603
+ "/trades/{id}": {
59604
+ get: {
59605
+ description: "Retrieves a trade. Order acknowledgements don't update as orders fill; read live orders and positions from the account's `trading` field. Never resubmit a `submission_unknown` trade with a new idempotency key.",
59606
+ operationId: "get",
59607
+ responses: {
59608
+ "200": {
59609
+ content: {
59610
+ "application/json": {
59611
+ schema: {
59612
+ $ref: "#/components/schemas/Trade"
59613
+ }
59614
+ }
59615
+ },
59616
+ description: "trade retrieved"
59617
+ },
59618
+ "401": {
59619
+ $ref: "#/components/responses/Unauthorized",
59620
+ description: "authentication is missing"
59621
+ },
59622
+ "403": {
59623
+ $ref: "#/components/responses/Forbidden",
59624
+ description: "trading permission is missing"
59625
+ },
59626
+ "404": {
59627
+ $ref: "#/components/responses/NotFound",
59628
+ description: "trade was not found"
59629
+ }
59630
+ },
59631
+ security: [
59632
+ {
59633
+ bearerAuth: ["crypto_wallet:trade:read"]
59634
+ },
59635
+ {
59636
+ bearerAuth: ["crypto_wallet:trade"]
59637
+ },
59638
+ {
59639
+ bearerAuth: ["crypto_wallet:manage"]
59640
+ }
59641
+ ],
59642
+ summary: "Retrieve Trade",
59643
+ tags: ["Trades"],
59644
+ "x-mint": {
59645
+ metadata: {
59646
+ sidebarTitle: "Retrieve"
59647
+ }
59648
+ },
59649
+ parameters: [
59650
+ {
59651
+ $ref: "#/components/parameters/ApiVersionDate"
59652
+ },
59653
+ {
59654
+ description: "Trade ID, prefixed `trop_`.",
59655
+ in: "path",
59656
+ name: "id",
59657
+ required: true,
59658
+ schema: {
59659
+ type: "string"
59660
+ }
59661
+ }
59662
+ ]
59663
+ }
59664
+ },
59665
+ "/trades/{id}/cancel": {
59666
+ post: {
59667
+ description: "Cancels every order in an order trade, including attached take-profit and stop-loss. This doesn't close filled positions. Returns a new cancellation trade whose `trade_id` points to the original, which is left unchanged. Cancellation works even while opening new positions is disabled. Requires an `Idempotency-Key`.",
59668
+ operationId: "cancel",
59669
+ parameters: [
59670
+ {
59671
+ $ref: "#/components/parameters/ApiVersionDate"
59672
+ },
59673
+ {
59674
+ description: "ID of the order trade to cancel, prefixed `trop_`.",
59675
+ in: "path",
59676
+ name: "id",
59677
+ required: true,
59678
+ schema: {
59679
+ type: "string"
59680
+ }
59681
+ },
59682
+ {
59683
+ description: "Required. Reuse the same key when retrying, including after a `submission_unknown` outcome; a new key submits a new trade.",
59684
+ in: "header",
59685
+ name: "Idempotency-Key",
59686
+ required: true,
59687
+ schema: {
59688
+ maxLength: 255,
59689
+ minLength: 1,
59690
+ type: "string"
59691
+ }
59692
+ }
59693
+ ],
59694
+ requestBody: {
59695
+ content: {
59696
+ "application/json": {
59697
+ schema: {
59698
+ properties: {
59699
+ metadata: {
59700
+ additionalProperties: {
59701
+ type: "string"
59702
+ },
59703
+ description: "Free-form string-to-string annotations stored on the trade.",
59704
+ type: ["object", "null"]
59705
+ }
59706
+ },
59707
+ type: "object"
59708
+ }
59709
+ }
59710
+ }
59711
+ },
59712
+ responses: {
59713
+ "201": {
59714
+ content: {
59715
+ "application/json": {
59716
+ schema: {
59717
+ $ref: "#/components/schemas/Trade"
59718
+ }
59719
+ }
59720
+ },
59721
+ description: "cancellation recorded"
59722
+ },
59723
+ "202": {
59724
+ content: {
59725
+ "application/json": {
59726
+ schema: {
59727
+ $ref: "#/components/schemas/Trade"
59728
+ }
59729
+ }
59730
+ },
59731
+ description: "cancellation outcome is unknown"
59732
+ },
59733
+ "400": {
59734
+ $ref: "#/components/responses/InvalidParameters",
59735
+ description: "the trade failed, so it has no orders to cancel"
59736
+ },
59737
+ "401": {
59738
+ $ref: "#/components/responses/Unauthorized",
59739
+ description: "authentication is missing"
59740
+ },
59741
+ "403": {
59742
+ $ref: "#/components/responses/Forbidden",
59743
+ description: "trading permission is missing"
59744
+ },
59745
+ "404": {
59746
+ $ref: "#/components/responses/NotFound",
59747
+ description: "trade was not found"
59748
+ },
59749
+ "409": {
59750
+ $ref: "#/components/responses/Conflict",
59751
+ description: "the trade has not been submitted yet"
59752
+ }
59753
+ },
59754
+ security: [
59755
+ {
59756
+ accountApiKeyOrAccountTokenOrAccountUserTokenOrOauthTokenAuth: [
59757
+ "crypto_wallet:trade"
59758
+ ]
59759
+ },
59760
+ {
59761
+ accountApiKeyOrAccountTokenOrAccountUserTokenOrOauthTokenAuth: [
59762
+ "crypto_wallet:manage"
59763
+ ]
59764
+ }
59765
+ ],
59766
+ summary: "Cancel Trade",
59767
+ tags: ["Trades"],
59768
+ "x-whop-credentials": [
59769
+ "account_api_key",
59770
+ "account_token",
59771
+ "account_user_token",
59772
+ "oauth_token"
59773
+ ]
59774
+ }
59775
+ },
59776
+ "/transfers": {
59777
+ get: {
59778
+ description: "Lists an account's transfers.",
59779
+ operationId: "list",
59780
+ parameters: [
59781
+ {
59782
+ $ref: "#/components/parameters/ApiVersionDate"
59783
+ },
59784
+ {
59785
+ description: "Filter to transfers sent from this account. Provide this or destination_id.",
59786
+ in: "query",
59787
+ name: "origin_id",
59788
+ required: false,
59789
+ schema: {
59790
+ type: "string"
59791
+ }
59792
+ },
59793
+ {
59794
+ description: "Filter to transfers received by this account. Provide this or origin_id.",
59795
+ in: "query",
59796
+ name: "destination_id",
59797
+ required: false,
59798
+ schema: {
59799
+ type: "string"
59800
+ }
59801
+ },
59802
+ {
59803
+ description: "Sort column. Defaults to created_at.",
59804
+ in: "query",
59805
+ name: "order",
59806
+ required: false,
59807
+ schema: {
59808
+ enum: ["created_at", "amount"],
59809
+ type: "string"
59810
+ }
59811
+ },
59812
+ {
59813
+ description: "Sort direction. Defaults to desc.",
59814
+ in: "query",
59815
+ name: "direction",
59816
+ required: false,
59817
+ schema: {
59818
+ enum: ["asc", "desc"],
59819
+ type: "string"
59820
+ }
59821
+ },
59822
+ {
59823
+ description: "Only transfers created strictly before this ISO 8601 timestamp.",
59824
+ in: "query",
59825
+ name: "created_before",
59826
+ required: false,
59827
+ schema: {
59828
+ type: "string"
59829
+ }
59830
+ },
59831
+ {
59832
+ description: "Only transfers created strictly after this ISO 8601 timestamp.",
59833
+ in: "query",
59834
+ name: "created_after",
59835
+ required: false,
59836
+ schema: {
59837
+ type: "string"
59838
+ }
59839
+ },
59840
+ {
59841
+ description: "Number of results to return from the start of the range.",
59842
+ in: "query",
59843
+ name: "first",
59844
+ required: false,
59845
+ schema: {
59846
+ default: 20,
59847
+ maximum: 100,
59848
+ type: "integer"
59849
+ }
59850
+ },
59851
+ {
59852
+ description: "Return results after this cursor. Use `page_info.end_cursor` from the previous response to fetch the next page.",
59853
+ in: "query",
59854
+ name: "after",
59855
+ required: false,
59856
+ schema: {
59857
+ type: "string"
59858
+ }
59859
+ },
59860
+ {
59861
+ description: "Number of results to return from the end of the range.",
59862
+ in: "query",
59863
+ name: "last",
59864
+ required: false,
59865
+ schema: {
59866
+ maximum: 100,
59867
+ type: "integer"
59868
+ }
59869
+ },
59870
+ {
59871
+ description: "Return results before this cursor. Use `page_info.start_cursor` from the previous response to fetch the previous page.",
59872
+ in: "query",
59873
+ name: "before",
59874
+ required: false,
59875
+ schema: {
59876
+ type: "string"
59877
+ }
59878
+ }
59879
+ ],
59880
+ responses: {
59881
+ "200": {
59882
+ content: {
59883
+ "application/json": {
59884
+ schema: {
59885
+ properties: {
59886
+ data: {
59887
+ items: {
59888
+ description: "A transfer of credit between two ledger accounts.",
59889
+ properties: {
59890
+ amount: {
59891
+ description: "Transfer amount.",
59892
+ example: 25,
59893
+ type: "number"
59894
+ },
59895
+ created_at: {
59896
+ description: "When the transfer was created.",
59897
+ example: "2026-01-01T12:00:00.000Z",
59898
+ format: "date-time",
59899
+ type: "string"
59900
+ },
59901
+ created_by_user: {
59902
+ description: "The user who initiated the transfer, such as the team member who sent a manual payout. Null if the creator is unavailable.",
59903
+ properties: {
59904
+ id: {
59905
+ description: "User ID.",
59906
+ example: "user_xxxxxxxxxxxxxx",
59907
+ type: "string"
59908
+ },
59909
+ name: {
59910
+ description: "User display name.",
59911
+ example: "Marcus Webb",
59912
+ type: ["string", "null"]
59913
+ },
59914
+ username: {
59915
+ description: "User's username.",
59916
+ example: "marcuswebb",
59917
+ type: "string"
59918
+ }
59919
+ },
59920
+ required: ["id", "username"],
59921
+ title: "TransferCreatedByUser",
59922
+ type: ["object", "null"]
59923
+ },
59924
+ currency: {
59925
+ description: "Transfer currency.",
59926
+ example: "usd",
59927
+ type: "string"
59928
+ },
59929
+ destination_ledger_account_id: {
59930
+ description: "Destination ledger account ID.",
59931
+ example: "ldgr_xxxxxxxxxxxxxx",
59932
+ type: "string"
59933
+ },
59934
+ failed_at: {
59935
+ description: "When the transfer failed, as an ISO 8601 timestamp. Null unless the transfer has failed.",
59936
+ example: null,
59937
+ format: "date-time",
59938
+ type: ["string", "null"]
59939
+ },
59940
+ failure_code: {
59941
+ description: "Machine-readable code for why the transfer failed. Null unless the transfer has failed.",
59942
+ example: null,
59943
+ type: ["string", "null"]
59944
+ },
59945
+ failure_reason: {
59946
+ description: "Human-readable explanation of why the transfer failed. Null unless the transfer has failed.",
59947
+ example: null,
59948
+ type: ["string", "null"]
59949
+ },
59950
+ fee_amount: {
59951
+ description: "Fee charged for the transfer.",
59952
+ example: 0.5,
59953
+ type: ["number", "null"]
59954
+ },
59955
+ id: {
59956
+ description: "Transfer ID.",
59957
+ example: "ctt_xxxxxxxxxxxxxx",
59958
+ type: "string"
59959
+ },
59960
+ metadata: {
59961
+ additionalProperties: true,
59962
+ description: "Custom metadata attached to the transfer.",
59963
+ example: {
59964
+ order_id: "SHINE-1042"
59965
+ },
59966
+ type: ["object", "null"]
59967
+ },
59968
+ notes: {
59969
+ description: "Transfer note.",
59970
+ example: "Refund for the rescheduled interior detail",
59971
+ type: ["string", "null"]
59972
+ },
59973
+ object: {
59974
+ description: "The object type.",
59975
+ enum: ["transfer"],
59976
+ example: "transfer",
59977
+ type: "string"
59978
+ },
59979
+ origin_ledger_account_id: {
59980
+ description: "Source ledger account ID.",
59981
+ example: "ldgr_xxxxxxxxxxxxxx",
59982
+ type: "string"
59983
+ },
59984
+ status: {
59985
+ description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 subscribe to `transfer.completed` and `transfer.failed`, or retrieve the transfer to check its current status. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
59986
+ enum: ["processing", "succeeded", "failed"],
59987
+ example: "succeeded",
59988
+ type: "string"
59989
+ }
59990
+ },
59991
+ required: [
59992
+ "object",
59993
+ "id",
59994
+ "status",
59995
+ "amount",
59996
+ "currency",
59997
+ "created_at",
59998
+ "origin_ledger_account_id",
59999
+ "destination_ledger_account_id",
60000
+ "created_by_user"
60001
+ ],
60002
+ title: "TransferListItem",
60003
+ type: "object"
58944
60004
  },
58945
60005
  type: "array"
58946
60006
  },
@@ -59329,7 +60389,7 @@ var native_spec_default = {
59329
60389
  type: "string"
59330
60390
  },
59331
60391
  status: {
59332
- description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 poll the transfer until it resolves to `succeeded` or `failed`. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
60392
+ description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 subscribe to `transfer.completed` and `transfer.failed`, or retrieve the transfer to check its current status. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
59333
60393
  enum: ["processing", "succeeded", "failed"],
59334
60394
  example: "succeeded",
59335
60395
  type: "string"
@@ -59975,7 +61035,7 @@ var native_spec_default = {
59975
61035
  type: "string"
59976
61036
  },
59977
61037
  status: {
59978
- description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 poll the transfer until it resolves to `succeeded` or `failed`. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
61038
+ description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 subscribe to `transfer.completed` and `transfer.failed`, or retrieve the transfer to check its current status. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
59979
61039
  enum: ["processing", "succeeded", "failed"],
59980
61040
  example: "succeeded",
59981
61041
  type: "string"
@@ -66009,7 +67069,7 @@ var native_spec_default = {
66009
67069
  example: {
66010
67070
  account_id: "biz_xxxxxxxxxxxxxx",
66011
67071
  api_version: "v1",
66012
- api_version_date: "2026-09-24",
67072
+ api_version_date: "2026-09-25",
66013
67073
  data: {
66014
67074
  balances: [],
66015
67075
  banner_image_url: null,
@@ -66326,7 +67386,7 @@ var native_spec_default = {
66326
67386
  example: {
66327
67387
  account_id: "biz_xxxxxxxxxxxxxx",
66328
67388
  api_version: "v1",
66329
- api_version_date: "2026-09-24",
67389
+ api_version_date: "2026-09-25",
66330
67390
  data: {
66331
67391
  balances: [],
66332
67392
  banner_image_url: null,
@@ -66643,7 +67703,7 @@ var native_spec_default = {
66643
67703
  example: {
66644
67704
  account_id: "biz_xxxxxxxxxxxxxx",
66645
67705
  api_version: "v1",
66646
- api_version_date: "2026-09-24",
67706
+ api_version_date: "2026-09-25",
66647
67707
  data: {
66648
67708
  balances: [],
66649
67709
  banner_image_url: null,
@@ -66960,7 +68020,7 @@ var native_spec_default = {
66960
68020
  example: {
66961
68021
  account_id: "biz_xxxxxxxxxxxxxx",
66962
68022
  api_version: "v1",
66963
- api_version_date: "2026-09-24",
68023
+ api_version_date: "2026-09-25",
66964
68024
  data: {
66965
68025
  ad_campaign: {
66966
68026
  id: "adcamp_xxxxxxxxxxxxxx"
@@ -66989,6 +68049,7 @@ var native_spec_default = {
66989
68049
  social_accounts: [],
66990
68050
  status: "rejected",
66991
68051
  title: "Ceramic Coating Package",
68052
+ translations: null,
66992
68053
  updated_at: "2026-01-01T12:00:00.000Z",
66993
68054
  url: null,
66994
68055
  url_parameters: {}
@@ -67101,9 +68162,8 @@ var native_spec_default = {
67101
68162
  },
67102
68163
  descriptions: {
67103
68164
  items: {
67104
- description: "The description variants shown on the ad.",
67105
- example: "Paint correction included",
67106
- type: "string"
68165
+ $ref: "#/components/schemas/AdText",
68166
+ description: "The description shown on the ad. Entries with a null language are the ad's own copy; a Meta ad with translations also carries one entry per other language."
67107
68167
  },
67108
68168
  type: "array"
67109
68169
  },
@@ -67114,9 +68174,8 @@ var native_spec_default = {
67114
68174
  },
67115
68175
  headlines: {
67116
68176
  items: {
67117
- description: "The headline variants shown on the ad.",
67118
- example: "Austin's mobile detailers",
67119
- type: "string"
68177
+ $ref: "#/components/schemas/AdText",
68178
+ description: "The headline shown on the ad. Entries with a null language are the ad's own copy; a Meta ad with translations also carries one entry per other language."
67120
68179
  },
67121
68180
  type: "array"
67122
68181
  },
@@ -67199,9 +68258,8 @@ var native_spec_default = {
67199
68258
  },
67200
68259
  primary_texts: {
67201
68260
  items: {
67202
- description: "The primary text variants shown in the ad body.",
67203
- example: "Book a two-day ceramic coating and keep the shine for three years.",
67204
- type: "string"
68261
+ $ref: "#/components/schemas/AdText",
68262
+ description: "The primary text shown in the ad body. Entries with a null language are the ad's own copy (several make text variations); a Meta ad with translations also carries one entry per other language."
67205
68263
  },
67206
68264
  type: "array"
67207
68265
  },
@@ -67223,6 +68281,17 @@ var native_spec_default = {
67223
68281
  example: "Ceramic coating \u2014 new ad group",
67224
68282
  type: ["string", "null"]
67225
68283
  },
68284
+ translations: {
68285
+ description: "The languages a Meta ad runs in besides its own. Each viewer sees the version for their language, or the ad's own copy. `null` when the ad runs in one language.",
68286
+ oneOf: [
68287
+ {
68288
+ $ref: "#/components/schemas/AdTranslations"
68289
+ },
68290
+ {
68291
+ type: "null"
68292
+ }
68293
+ ]
68294
+ },
67226
68295
  updated_at: {
67227
68296
  description: "When the ad was last updated, as an ISO 8601 timestamp.",
67228
68297
  example: "2026-01-01T12:00:00.000Z",
@@ -67353,7 +68422,7 @@ var native_spec_default = {
67353
68422
  example: {
67354
68423
  account_id: "biz_xxxxxxxxxxxxxx",
67355
68424
  api_version: "v1",
67356
- api_version_date: "2026-09-24",
68425
+ api_version_date: "2026-09-25",
67357
68426
  data: {
67358
68427
  bid_type: null,
67359
68428
  budget_amount: 50,
@@ -67663,7 +68732,7 @@ var native_spec_default = {
67663
68732
  example: {
67664
68733
  account_id: "biz_xxxxxxxxxxxxxx",
67665
68734
  api_version: "v1",
67666
- api_version_date: "2026-09-24",
68735
+ api_version_date: "2026-09-25",
67667
68736
  data: {
67668
68737
  bid_type: null,
67669
68738
  budget_amount: 50,
@@ -67973,7 +69042,7 @@ var native_spec_default = {
67973
69042
  example: {
67974
69043
  account_id: "biz_xxxxxxxxxxxxxx",
67975
69044
  api_version: "v1",
67976
- api_version_date: "2026-09-24",
69045
+ api_version_date: "2026-09-25",
67977
69046
  data: {
67978
69047
  billing: null,
67979
69048
  canceled_at: null,
@@ -68289,7 +69358,7 @@ var native_spec_default = {
68289
69358
  example: {
68290
69359
  account_id: "biz_xxxxxxxxxxxxxx",
68291
69360
  api_version: "v1",
68292
- api_version_date: "2026-09-24",
69361
+ api_version_date: "2026-09-25",
68293
69362
  data: {
68294
69363
  billing: null,
68295
69364
  canceled_at: null,
@@ -68605,7 +69674,7 @@ var native_spec_default = {
68605
69674
  example: {
68606
69675
  account_id: "biz_xxxxxxxxxxxxxx",
68607
69676
  api_version: "v1",
68608
- api_version_date: "2026-09-24",
69677
+ api_version_date: "2026-09-25",
68609
69678
  data: {
68610
69679
  billing: null,
68611
69680
  canceled_at: null,
@@ -68921,7 +69990,7 @@ var native_spec_default = {
68921
69990
  example: {
68922
69991
  account_id: "biz_xxxxxxxxxxxxxx",
68923
69992
  api_version: "v1",
68924
- api_version_date: "2026-09-24",
69993
+ api_version_date: "2026-09-25",
68925
69994
  data: {
68926
69995
  billing: null,
68927
69996
  canceled_at: null,
@@ -69237,7 +70306,7 @@ var native_spec_default = {
69237
70306
  example: {
69238
70307
  account_id: "biz_xxxxxxxxxxxxxx",
69239
70308
  api_version: "v1",
69240
- api_version_date: "2026-09-24",
70309
+ api_version_date: "2026-09-25",
69241
70310
  data: {
69242
70311
  hosted_url: null,
69243
70312
  id: "ciac_xxxxxxxxxxxxxx",
@@ -69387,7 +70456,7 @@ var native_spec_default = {
69387
70456
  example: {
69388
70457
  account_id: "biz_xxxxxxxxxxxxxx",
69389
70458
  api_version: "v1",
69390
- api_version_date: "2026-09-24",
70459
+ api_version_date: "2026-09-25",
69391
70460
  data: {
69392
70461
  hosted_url: null,
69393
70462
  id: "ciac_xxxxxxxxxxxxxx",
@@ -69537,7 +70606,7 @@ var native_spec_default = {
69537
70606
  example: {
69538
70607
  account_id: "biz_xxxxxxxxxxxxxx",
69539
70608
  api_version: "v1",
69540
- api_version_date: "2026-09-24",
70609
+ api_version_date: "2026-09-25",
69541
70610
  data: {
69542
70611
  hosted_url: null,
69543
70612
  id: "ciac_xxxxxxxxxxxxxx",
@@ -69687,7 +70756,7 @@ var native_spec_default = {
69687
70756
  example: {
69688
70757
  account_id: "biz_xxxxxxxxxxxxxx",
69689
70758
  api_version: "v1",
69690
- api_version_date: "2026-09-24",
70759
+ api_version_date: "2026-09-25",
69691
70760
  data: {
69692
70761
  hosted_url: null,
69693
70762
  id: "ciac_xxxxxxxxxxxxxx",
@@ -69837,7 +70906,7 @@ var native_spec_default = {
69837
70906
  example: {
69838
70907
  account_id: "biz_xxxxxxxxxxxxxx",
69839
70908
  api_version: "v1",
69840
- api_version_date: "2026-09-24",
70909
+ api_version_date: "2026-09-25",
69841
70910
  data: {
69842
70911
  card_id: "icrd_xxxxxxxxxxxxxx",
69843
70912
  cardholder_id: null,
@@ -69968,7 +71037,7 @@ var native_spec_default = {
69968
71037
  example: {
69969
71038
  account_id: "biz_xxxxxxxxxxxxxx",
69970
71039
  api_version: "v1",
69971
- api_version_date: "2026-09-24",
71040
+ api_version_date: "2026-09-25",
69972
71041
  data: {
69973
71042
  card_id: "icrd_xxxxxxxxxxxxxx",
69974
71043
  cardholder_id: null,
@@ -70099,7 +71168,7 @@ var native_spec_default = {
70099
71168
  example: {
70100
71169
  account_id: "biz_xxxxxxxxxxxxxx",
70101
71170
  api_version: "v1",
70102
- api_version_date: "2026-09-24",
71171
+ api_version_date: "2026-09-25",
70103
71172
  data: {
70104
71173
  card_id: "icrd_xxxxxxxxxxxxxx",
70105
71174
  cardholder_id: null,
@@ -70230,7 +71299,7 @@ var native_spec_default = {
70230
71299
  example: {
70231
71300
  account_id: "biz_xxxxxxxxxxxxxx",
70232
71301
  api_version: "v1",
70233
- api_version_date: "2026-09-24",
71302
+ api_version_date: "2026-09-25",
70234
71303
  data: {
70235
71304
  card_id: "icrd_xxxxxxxxxxxxxx",
70236
71305
  cardholder_id: null,
@@ -70361,7 +71430,7 @@ var native_spec_default = {
70361
71430
  example: {
70362
71431
  account_id: "biz_xxxxxxxxxxxxxx",
70363
71432
  api_version: "v1",
70364
- api_version_date: "2026-09-24",
71433
+ api_version_date: "2026-09-25",
70365
71434
  data: {
70366
71435
  card_id: "icrd_xxxxxxxxxxxxxx",
70367
71436
  cardholder_id: null,
@@ -70492,7 +71561,7 @@ var native_spec_default = {
70492
71561
  example: {
70493
71562
  account_id: "biz_xxxxxxxxxxxxxx",
70494
71563
  api_version: "v1",
70495
- api_version_date: "2026-09-24",
71564
+ api_version_date: "2026-09-25",
70496
71565
  data: {
70497
71566
  amount: "75000000000",
70498
71567
  available_at: null,
@@ -70624,7 +71693,7 @@ var native_spec_default = {
70624
71693
  example: {
70625
71694
  account_id: "biz_xxxxxxxxxxxxxx",
70626
71695
  api_version: "v1",
70627
- api_version_date: "2026-09-24",
71696
+ api_version_date: "2026-09-25",
70628
71697
  data: {
70629
71698
  account_id: "biz_xxxxxxxxxxxxxx",
70630
71699
  amount: 150,
@@ -70802,7 +71871,7 @@ var native_spec_default = {
70802
71871
  example: {
70803
71872
  account_id: "biz_xxxxxxxxxxxxxx",
70804
71873
  api_version: "v1",
70805
- api_version_date: "2026-09-24",
71874
+ api_version_date: "2026-09-25",
70806
71875
  data: {
70807
71876
  account_id: "biz_xxxxxxxxxxxxxx",
70808
71877
  amount: 150,
@@ -70980,7 +72049,7 @@ var native_spec_default = {
70980
72049
  example: {
70981
72050
  account_id: "biz_xxxxxxxxxxxxxx",
70982
72051
  api_version: "v1",
70983
- api_version_date: "2026-09-24",
72052
+ api_version_date: "2026-09-25",
70984
72053
  data: {
70985
72054
  account_id: null,
70986
72055
  amount: 25,
@@ -71109,7 +72178,7 @@ var native_spec_default = {
71109
72178
  example: {
71110
72179
  account_id: "biz_xxxxxxxxxxxxxx",
71111
72180
  api_version: "v1",
71112
- api_version_date: "2026-09-24",
72181
+ api_version_date: "2026-09-25",
71113
72182
  data: {
71114
72183
  created_at: "2026-01-01T12:00:00.000Z",
71115
72184
  download_url: "https://s3.amazonaws.com/uploads/exports/members-export.csv",
@@ -71230,7 +72299,7 @@ var native_spec_default = {
71230
72299
  example: {
71231
72300
  account_id: "biz_xxxxxxxxxxxxxx",
71232
72301
  api_version: "v1",
71233
- api_version_date: "2026-09-24",
72302
+ api_version_date: "2026-09-25",
71234
72303
  data: {
71235
72304
  created_at: "2026-01-01T12:00:00.000Z",
71236
72305
  download_url: null,
@@ -71351,7 +72420,7 @@ var native_spec_default = {
71351
72420
  example: {
71352
72421
  account_id: "biz_xxxxxxxxxxxxxx",
71353
72422
  api_version: "v1",
71354
- api_version_date: "2026-09-24",
72423
+ api_version_date: "2026-09-25",
71355
72424
  data: {
71356
72425
  amount: "512345000000",
71357
72426
  available_at: "2026-01-01T12:00:00.000Z",
@@ -71488,7 +72557,7 @@ var native_spec_default = {
71488
72557
  example: {
71489
72558
  account_id: "biz_xxxxxxxxxxxxxx",
71490
72559
  api_version: "v1",
71491
- api_version_date: "2026-09-24",
72560
+ api_version_date: "2026-09-25",
71492
72561
  data: {
71493
72562
  id: "idpf_xxxxxxxxxxxxxx"
71494
72563
  },
@@ -71610,7 +72679,7 @@ var native_spec_default = {
71610
72679
  example: {
71611
72680
  account_id: "biz_xxxxxxxxxxxxxx",
71612
72681
  api_version: "v1",
71613
- api_version_date: "2026-09-24",
72682
+ api_version_date: "2026-09-25",
71614
72683
  data: {
71615
72684
  access_level: "customer",
71616
72685
  account_id: "biz_xxxxxxxxxxxxxx",
@@ -71741,7 +72810,7 @@ var native_spec_default = {
71741
72810
  example: {
71742
72811
  account_id: "biz_xxxxxxxxxxxxxx",
71743
72812
  api_version: "v1",
71744
- api_version_date: "2026-09-24",
72813
+ api_version_date: "2026-09-25",
71745
72814
  data: {
71746
72815
  access_level: "customer",
71747
72816
  account_id: "biz_xxxxxxxxxxxxxx",
@@ -71872,7 +72941,7 @@ var native_spec_default = {
71872
72941
  example: {
71873
72942
  account_id: "biz_xxxxxxxxxxxxxx",
71874
72943
  api_version: "v1",
71875
- api_version_date: "2026-09-24",
72944
+ api_version_date: "2026-09-25",
71876
72945
  data: {
71877
72946
  account: {
71878
72947
  id: "biz_xxxxxxxxxxxxxx",
@@ -71881,10 +72950,14 @@ var native_spec_default = {
71881
72950
  title: "Shine Time Auto Detailing"
71882
72951
  },
71883
72952
  cancel_at_period_end: false,
72953
+ canceled_at: null,
72954
+ cancellation_reason: null,
71884
72955
  created_at: "2026-01-01T12:00:00.000Z",
71885
72956
  current_period_end: "2026-01-01T12:00:00.000Z",
72957
+ current_period_start: "2026-01-01T12:00:00.000Z",
71886
72958
  id: "mem_xxxxxxxxxxxxxx",
71887
72959
  license_key: null,
72960
+ manage_url: null,
71888
72961
  member: null,
71889
72962
  metadata: {},
71890
72963
  phone_number: null,
@@ -72004,7 +73077,7 @@ var native_spec_default = {
72004
73077
  example: {
72005
73078
  account_id: "biz_xxxxxxxxxxxxxx",
72006
73079
  api_version: "v1",
72007
- api_version_date: "2026-09-24",
73080
+ api_version_date: "2026-09-25",
72008
73081
  data: {
72009
73082
  account: {
72010
73083
  id: "biz_xxxxxxxxxxxxxx",
@@ -72013,10 +73086,14 @@ var native_spec_default = {
72013
73086
  title: "Shine Time Auto Detailing"
72014
73087
  },
72015
73088
  cancel_at_period_end: true,
73089
+ canceled_at: "2026-01-01T12:00:00.000Z",
73090
+ cancellation_reason: "The monthly wash club is more than I can spend right now.",
72016
73091
  created_at: "2026-01-01T12:00:00.000Z",
72017
73092
  current_period_end: "2026-01-01T12:00:00.000Z",
73093
+ current_period_start: "2026-01-01T12:00:00.000Z",
72018
73094
  id: "mem_xxxxxxxxxxxxxx",
72019
73095
  license_key: null,
73096
+ manage_url: null,
72020
73097
  member: null,
72021
73098
  metadata: {},
72022
73099
  phone_number: null,
@@ -72142,7 +73219,7 @@ var native_spec_default = {
72142
73219
  example: {
72143
73220
  account_id: "biz_xxxxxxxxxxxxxx",
72144
73221
  api_version: "v1",
72145
- api_version_date: "2026-09-24",
73222
+ api_version_date: "2026-09-25",
72146
73223
  data: {
72147
73224
  account: {
72148
73225
  id: "biz_xxxxxxxxxxxxxx",
@@ -72151,10 +73228,14 @@ var native_spec_default = {
72151
73228
  title: "Shine Time Auto Detailing"
72152
73229
  },
72153
73230
  cancel_at_period_end: false,
73231
+ canceled_at: "2026-01-01T12:00:00.000Z",
73232
+ cancellation_reason: "Moving out of Austin \u2014 no mobile detailing at the new place.",
72154
73233
  created_at: "2026-01-01T12:00:00.000Z",
72155
73234
  current_period_end: "2026-01-01T12:00:00.000Z",
73235
+ current_period_start: "2026-01-01T12:00:00.000Z",
72156
73236
  id: "mem_xxxxxxxxxxxxxx",
72157
73237
  license_key: null,
73238
+ manage_url: null,
72158
73239
  member: null,
72159
73240
  metadata: {},
72160
73241
  phone_number: null,
@@ -72274,7 +73355,7 @@ var native_spec_default = {
72274
73355
  example: {
72275
73356
  account_id: "biz_xxxxxxxxxxxxxx",
72276
73357
  api_version: "v1",
72277
- api_version_date: "2026-09-24",
73358
+ api_version_date: "2026-09-25",
72278
73359
  data: {
72279
73360
  account: {
72280
73361
  id: "biz_xxxxxxxxxxxxxx",
@@ -72283,10 +73364,14 @@ var native_spec_default = {
72283
73364
  title: "Shine Time Auto Detailing"
72284
73365
  },
72285
73366
  cancel_at_period_end: false,
73367
+ canceled_at: null,
73368
+ cancellation_reason: null,
72286
73369
  created_at: "2026-01-01T12:00:00.000Z",
72287
73370
  current_period_end: "2026-01-01T12:00:00.000Z",
73371
+ current_period_start: "2026-01-01T12:00:00.000Z",
72288
73372
  id: "mem_xxxxxxxxxxxxxx",
72289
73373
  license_key: null,
73374
+ manage_url: null,
72290
73375
  member: null,
72291
73376
  metadata: {},
72292
73377
  phone_number: null,
@@ -72412,7 +73497,7 @@ var native_spec_default = {
72412
73497
  example: {
72413
73498
  account_id: "biz_xxxxxxxxxxxxxx",
72414
73499
  api_version: "v1",
72415
- api_version_date: "2026-09-24",
73500
+ api_version_date: "2026-09-25",
72416
73501
  data: {
72417
73502
  account_id: "biz_xxxxxxxxxxxxxx",
72418
73503
  amount_after_fees: {
@@ -72682,7 +73767,7 @@ var native_spec_default = {
72682
73767
  example: {
72683
73768
  account_id: "biz_xxxxxxxxxxxxxx",
72684
73769
  api_version: "v1",
72685
- api_version_date: "2026-09-24",
73770
+ api_version_date: "2026-09-25",
72686
73771
  data: {
72687
73772
  account_id: "biz_xxxxxxxxxxxxxx",
72688
73773
  amount_after_fees: {
@@ -72952,7 +74037,7 @@ var native_spec_default = {
72952
74037
  example: {
72953
74038
  account_id: "biz_xxxxxxxxxxxxxx",
72954
74039
  api_version: "v1",
72955
- api_version_date: "2026-09-24",
74040
+ api_version_date: "2026-09-25",
72956
74041
  data: {
72957
74042
  account_id: "biz_xxxxxxxxxxxxxx",
72958
74043
  amount_after_fees: {
@@ -73222,7 +74307,7 @@ var native_spec_default = {
73222
74307
  example: {
73223
74308
  account_id: "biz_xxxxxxxxxxxxxx",
73224
74309
  api_version: "v1",
73225
- api_version_date: "2026-09-24",
74310
+ api_version_date: "2026-09-25",
73226
74311
  data: {
73227
74312
  account_id: "biz_xxxxxxxxxxxxxx",
73228
74313
  amount_after_fees: {
@@ -73492,7 +74577,7 @@ var native_spec_default = {
73492
74577
  example: {
73493
74578
  account_id: "biz_xxxxxxxxxxxxxx",
73494
74579
  api_version: "v1",
73495
- api_version_date: "2026-09-24",
74580
+ api_version_date: "2026-09-25",
73496
74581
  data: {
73497
74582
  account_id: "biz_xxxxxxxxxxxxxx",
73498
74583
  amount_after_fees: {
@@ -73756,7 +74841,7 @@ var native_spec_default = {
73756
74841
  example: {
73757
74842
  account_id: "biz_xxxxxxxxxxxxxx",
73758
74843
  api_version: "v1",
73759
- api_version_date: "2026-09-24",
74844
+ api_version_date: "2026-09-25",
73760
74845
  data: {
73761
74846
  account_id: "biz_xxxxxxxxxxxxxx",
73762
74847
  amount_after_fees: {
@@ -74032,7 +75117,7 @@ var native_spec_default = {
74032
75117
  example: {
74033
75118
  account_id: "biz_xxxxxxxxxxxxxx",
74034
75119
  api_version: "v1",
74035
- api_version_date: "2026-09-24",
75120
+ api_version_date: "2026-09-25",
74036
75121
  data: {
74037
75122
  account_id: "biz_xxxxxxxxxxxxxx",
74038
75123
  amount_after_fees: {
@@ -74302,7 +75387,7 @@ var native_spec_default = {
74302
75387
  example: {
74303
75388
  account_id: "biz_xxxxxxxxxxxxxx",
74304
75389
  api_version: "v1",
74305
- api_version_date: "2026-09-24",
75390
+ api_version_date: "2026-09-25",
74306
75391
  data: {
74307
75392
  amount: "10.0",
74308
75393
  created_at: "2026-01-01T12:00:00.000Z",
@@ -74690,7 +75775,7 @@ var native_spec_default = {
74690
75775
  example: {
74691
75776
  account_id: "biz_xxxxxxxxxxxxxx",
74692
75777
  api_version: "v1",
74693
- api_version_date: "2026-09-24",
75778
+ api_version_date: "2026-09-25",
74694
75779
  data: {
74695
75780
  amount: "10.0",
74696
75781
  created_at: "2026-01-01T12:00:00.000Z",
@@ -75075,7 +76160,7 @@ var native_spec_default = {
75075
76160
  example: {
75076
76161
  account_id: "biz_xxxxxxxxxxxxxx",
75077
76162
  api_version: "v1",
75078
- api_version_date: "2026-09-24",
76163
+ api_version_date: "2026-09-25",
75079
76164
  data: {
75080
76165
  amount: "10.0",
75081
76166
  created_at: "2026-01-01T12:00:00.000Z",
@@ -75456,7 +76541,7 @@ var native_spec_default = {
75456
76541
  example: {
75457
76542
  account_id: "biz_xxxxxxxxxxxxxx",
75458
76543
  api_version: "v1",
75459
- api_version_date: "2026-09-24",
76544
+ api_version_date: "2026-09-25",
75460
76545
  data: {
75461
76546
  account_reference: "4483",
75462
76547
  bank_verification_state: "no_data",
@@ -75912,7 +76997,7 @@ var native_spec_default = {
75912
76997
  example: {
75913
76998
  account_id: "biz_xxxxxxxxxxxxxx",
75914
76999
  api_version: "v1",
75915
- api_version_date: "2026-09-24",
77000
+ api_version_date: "2026-09-25",
75916
77001
  data: {
75917
77002
  account: {
75918
77003
  id: "biz_xxxxxxxxxxxxxx",
@@ -75937,6 +77022,8 @@ var native_spec_default = {
75937
77022
  "addi",
75938
77023
  "affirm",
75939
77024
  "afterpay_clearpay",
77025
+ "alipay",
77026
+ "alipayhk",
75940
77027
  "alma",
75941
77028
  "apple",
75942
77029
  "apple_pay",
@@ -76207,7 +77294,7 @@ var native_spec_default = {
76207
77294
  example: {
76208
77295
  account_id: "biz_xxxxxxxxxxxxxx",
76209
77296
  api_version: "v1",
76210
- api_version_date: "2026-09-24",
77297
+ api_version_date: "2026-09-25",
76211
77298
  data: {
76212
77299
  account: {
76213
77300
  id: "biz_xxxxxxxxxxxxxx",
@@ -76232,6 +77319,8 @@ var native_spec_default = {
76232
77319
  "addi",
76233
77320
  "affirm",
76234
77321
  "afterpay_clearpay",
77322
+ "alipay",
77323
+ "alipayhk",
76235
77324
  "alma",
76236
77325
  "apple",
76237
77326
  "apple_pay",
@@ -76502,7 +77591,7 @@ var native_spec_default = {
76502
77591
  example: {
76503
77592
  account_id: "biz_xxxxxxxxxxxxxx",
76504
77593
  api_version: "v1",
76505
- api_version_date: "2026-09-24",
77594
+ api_version_date: "2026-09-25",
76506
77595
  data: {
76507
77596
  account: {
76508
77597
  id: "biz_xxxxxxxxxxxxxx",
@@ -76527,6 +77616,8 @@ var native_spec_default = {
76527
77616
  "addi",
76528
77617
  "affirm",
76529
77618
  "afterpay_clearpay",
77619
+ "alipay",
77620
+ "alipayhk",
76530
77621
  "alma",
76531
77622
  "apple",
76532
77623
  "apple_pay",
@@ -76797,7 +77888,7 @@ var native_spec_default = {
76797
77888
  example: {
76798
77889
  account_id: "biz_xxxxxxxxxxxxxx",
76799
77890
  api_version: "v1",
76800
- api_version_date: "2026-09-24",
77891
+ api_version_date: "2026-09-25",
76801
77892
  data: {
76802
77893
  account: {
76803
77894
  id: "biz_xxxxxxxxxxxxxx",
@@ -76949,7 +78040,7 @@ var native_spec_default = {
76949
78040
  example: {
76950
78041
  account_id: "biz_xxxxxxxxxxxxxx",
76951
78042
  api_version: "v1",
76952
- api_version_date: "2026-09-24",
78043
+ api_version_date: "2026-09-25",
76953
78044
  data: {
76954
78045
  account: {
76955
78046
  id: "biz_xxxxxxxxxxxxxx",
@@ -77101,7 +78192,7 @@ var native_spec_default = {
77101
78192
  example: {
77102
78193
  account_id: "biz_xxxxxxxxxxxxxx",
77103
78194
  api_version: "v1",
77104
- api_version_date: "2026-09-24",
78195
+ api_version_date: "2026-09-25",
77105
78196
  data: {
77106
78197
  account: {
77107
78198
  id: "biz_xxxxxxxxxxxxxx",
@@ -77253,7 +78344,7 @@ var native_spec_default = {
77253
78344
  example: {
77254
78345
  account_id: "biz_xxxxxxxxxxxxxx",
77255
78346
  api_version: "v1",
77256
- api_version_date: "2026-09-24",
78347
+ api_version_date: "2026-09-25",
77257
78348
  data: {
77258
78349
  account: {
77259
78350
  id: "biz_xxxxxxxxxxxxxx",
@@ -77405,7 +78496,7 @@ var native_spec_default = {
77405
78496
  example: {
77406
78497
  account_id: "biz_xxxxxxxxxxxxxx",
77407
78498
  api_version: "v1",
77408
- api_version_date: "2026-09-24",
78499
+ api_version_date: "2026-09-25",
77409
78500
  data: {
77410
78501
  account: {
77411
78502
  id: "biz_xxxxxxxxxxxxxx",
@@ -77557,7 +78648,7 @@ var native_spec_default = {
77557
78648
  example: {
77558
78649
  account_id: "biz_xxxxxxxxxxxxxx",
77559
78650
  api_version: "v1",
77560
- api_version_date: "2026-09-24",
78651
+ api_version_date: "2026-09-25",
77561
78652
  data: {
77562
78653
  account: {
77563
78654
  id: "biz_xxxxxxxxxxxxxx",
@@ -77716,7 +78807,7 @@ var native_spec_default = {
77716
78807
  example: {
77717
78808
  account_id: "biz_xxxxxxxxxxxxxx",
77718
78809
  api_version: "v1",
77719
- api_version_date: "2026-09-24",
78810
+ api_version_date: "2026-09-25",
77720
78811
  data: {
77721
78812
  account: {
77722
78813
  id: "biz_xxxxxxxxxxxxxx",
@@ -77875,7 +78966,7 @@ var native_spec_default = {
77875
78966
  example: {
77876
78967
  account_id: "biz_xxxxxxxxxxxxxx",
77877
78968
  api_version: "v1",
77878
- api_version_date: "2026-09-24",
78969
+ api_version_date: "2026-09-25",
77879
78970
  data: {
77880
78971
  account: {
77881
78972
  id: "biz_xxxxxxxxxxxxxx",
@@ -78034,7 +79125,7 @@ var native_spec_default = {
78034
79125
  example: {
78035
79126
  account_id: "biz_xxxxxxxxxxxxxx",
78036
79127
  api_version: "v1",
78037
- api_version_date: "2026-09-24",
79128
+ api_version_date: "2026-09-25",
78038
79129
  data: {
78039
79130
  account_id: "biz_xxxxxxxxxxxxxx",
78040
79131
  checkout_configuration_id: null,
@@ -78174,7 +79265,7 @@ var native_spec_default = {
78174
79265
  example: {
78175
79266
  account_id: "biz_xxxxxxxxxxxxxx",
78176
79267
  api_version: "v1",
78177
- api_version_date: "2026-09-24",
79268
+ api_version_date: "2026-09-25",
78178
79269
  data: {
78179
79270
  account_id: "biz_xxxxxxxxxxxxxx",
78180
79271
  checkout_configuration_id: null,
@@ -78317,7 +79408,7 @@ var native_spec_default = {
78317
79408
  example: {
78318
79409
  account_id: "biz_xxxxxxxxxxxxxx",
78319
79410
  api_version: "v1",
78320
- api_version_date: "2026-09-24",
79411
+ api_version_date: "2026-09-25",
78321
79412
  data: {
78322
79413
  account_id: "biz_xxxxxxxxxxxxxx",
78323
79414
  checkout_configuration_id: null,
@@ -78495,7 +79586,7 @@ var native_spec_default = {
78495
79586
  example: {
78496
79587
  account_id: "biz_xxxxxxxxxxxxxx",
78497
79588
  api_version: "v1",
78498
- api_version_date: "2026-09-24",
79589
+ api_version_date: "2026-09-25",
78499
79590
  data: {
78500
79591
  account_id: "biz_xxxxxxxxxxxxxx",
78501
79592
  carrier: "ups",
@@ -78619,7 +79710,7 @@ var native_spec_default = {
78619
79710
  example: {
78620
79711
  account_id: "biz_xxxxxxxxxxxxxx",
78621
79712
  api_version: "v1",
78622
- api_version_date: "2026-09-24",
79713
+ api_version_date: "2026-09-25",
78623
79714
  data: {
78624
79715
  account_id: "biz_xxxxxxxxxxxxxx",
78625
79716
  carrier: "ups",
@@ -78743,7 +79834,7 @@ var native_spec_default = {
78743
79834
  example: {
78744
79835
  account_id: "biz_xxxxxxxxxxxxxx",
78745
79836
  api_version: "v1",
78746
- api_version_date: "2026-09-24",
79837
+ api_version_date: "2026-09-25",
78747
79838
  data: {
78748
79839
  account: {
78749
79840
  id: "biz_xxxxxxxxxxxxxx",
@@ -78914,7 +80005,7 @@ var native_spec_default = {
78914
80005
  },
78915
80006
  "transfer.completed": {
78916
80007
  post: {
78917
- description: "Sent when a transfer is completed\n\nRequired permissions:\n - `webhook_receive:transfers`",
80008
+ description: "Sent to participating accounts when a transfer succeeds, including when a previously failed transfer succeeds after a retry.\n\nRequired permissions:\n - `webhook_receive:transfers`",
78918
80009
  parameters: [
78919
80010
  {
78920
80011
  in: "header",
@@ -78953,7 +80044,7 @@ var native_spec_default = {
78953
80044
  example: {
78954
80045
  account_id: "biz_xxxxxxxxxxxxxx",
78955
80046
  api_version: "v1",
78956
- api_version_date: "2026-09-24",
80047
+ api_version_date: "2026-09-25",
78957
80048
  data: {
78958
80049
  amount: 250,
78959
80050
  created_at: "2026-01-01T12:00:00.000Z",
@@ -79233,7 +80324,7 @@ var native_spec_default = {
79233
80324
  type: "string"
79234
80325
  },
79235
80326
  status: {
79236
- description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 poll the transfer until it resolves to `succeeded` or `failed`. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
80327
+ description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 subscribe to `transfer.completed` and `transfer.failed`, or retrieve the transfer to check its current status. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
79237
80328
  enum: ["processing", "succeeded", "failed"],
79238
80329
  example: "succeeded",
79239
80330
  type: "string"
@@ -79301,7 +80392,7 @@ var native_spec_default = {
79301
80392
  },
79302
80393
  "transfer.created": {
79303
80394
  post: {
79304
- description: "Sent when a transfer is created\n\nRequired permissions:\n - `webhook_receive:transfers`",
80395
+ description: "Sent to participating accounts when a transfer succeeds, alongside `transfer.completed`. This event does not indicate entry into `processing`.\n\nRequired permissions:\n - `webhook_receive:transfers`",
79305
80396
  parameters: [
79306
80397
  {
79307
80398
  in: "header",
@@ -79340,7 +80431,7 @@ var native_spec_default = {
79340
80431
  example: {
79341
80432
  account_id: "biz_xxxxxxxxxxxxxx",
79342
80433
  api_version: "v1",
79343
- api_version_date: "2026-09-24",
80434
+ api_version_date: "2026-09-25",
79344
80435
  data: {
79345
80436
  amount: 250,
79346
80437
  created_at: "2026-01-01T12:00:00.000Z",
@@ -79620,7 +80711,7 @@ var native_spec_default = {
79620
80711
  type: "string"
79621
80712
  },
79622
80713
  status: {
79623
- description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 poll the transfer until it resolves to `succeeded` or `failed`. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
80714
+ description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 subscribe to `transfer.completed` and `transfer.failed`, or retrieve the transfer to check its current status. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
79624
80715
  enum: ["processing", "succeeded", "failed"],
79625
80716
  example: "succeeded",
79626
80717
  type: "string"
@@ -79688,7 +80779,7 @@ var native_spec_default = {
79688
80779
  },
79689
80780
  "transfer.failed": {
79690
80781
  post: {
79691
- description: "Sent when a transfer is failed\n\nRequired permissions:\n - `webhook_receive:transfers`",
80782
+ description: "Sent to participating accounts when an existing transfer enters `failed`. The payload includes `failure_code`, `failure_reason`, and `failed_at`; a retry may later succeed under the same transfer ID.\n\nRequired permissions:\n - `webhook_receive:transfers`",
79692
80783
  parameters: [
79693
80784
  {
79694
80785
  in: "header",
@@ -79727,7 +80818,7 @@ var native_spec_default = {
79727
80818
  example: {
79728
80819
  account_id: "biz_xxxxxxxxxxxxxx",
79729
80820
  api_version: "v1",
79730
- api_version_date: "2026-09-24",
80821
+ api_version_date: "2026-09-25",
79731
80822
  data: {
79732
80823
  amount: 10,
79733
80824
  created_at: "2026-01-01T12:00:00.000Z",
@@ -80005,7 +81096,7 @@ var native_spec_default = {
80005
81096
  type: "string"
80006
81097
  },
80007
81098
  status: {
80008
- description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 poll the transfer until it resolves to `succeeded` or `failed`. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
81099
+ description: "Transfer status. `processing` means the on-chain leg is still executing \u2014 subscribe to `transfer.completed` and `transfer.failed`, or retrieve the transfer to check its current status. A `failed` transfer may be retried under the same ID and later resolve to `succeeded`.",
80009
81100
  enum: ["processing", "succeeded", "failed"],
80010
81101
  example: "succeeded",
80011
81102
  type: "string"
@@ -80080,7 +81171,7 @@ var native_spec_default = {
80080
81171
  name: "Api-Version-Date",
80081
81172
  required: false,
80082
81173
  schema: {
80083
- example: "2026-09-24",
81174
+ example: "2026-09-25",
80084
81175
  type: "string"
80085
81176
  }
80086
81177
  },
@@ -82287,8 +83378,106 @@ var native_spec_default = {
82287
83378
  maximum: null,
82288
83379
  minimum: null,
82289
83380
  percentage: 3.9,
82290
- region: "eu",
82291
- regions: {},
83381
+ region: "au",
83382
+ regions: {
83383
+ eu: {
83384
+ default: {
83385
+ fixed: {
83386
+ amount: "0.30",
83387
+ currency: "usd",
83388
+ decimals: 2,
83389
+ display_decimals: 2
83390
+ },
83391
+ percentage: 3.9
83392
+ },
83393
+ fixed: {
83394
+ amount: "0.30",
83395
+ currency: "usd",
83396
+ decimals: 2,
83397
+ display_decimals: 2
83398
+ },
83399
+ maximum: null,
83400
+ minimum: null,
83401
+ percentage: 3.9,
83402
+ reset: {
83403
+ fixed: {
83404
+ amount: "0.30",
83405
+ currency: "usd",
83406
+ decimals: 2,
83407
+ display_decimals: 2
83408
+ },
83409
+ percentage: 3.9
83410
+ },
83411
+ source: "default"
83412
+ }
83413
+ },
83414
+ reset: {
83415
+ fixed: {
83416
+ amount: "0.30",
83417
+ currency: "usd",
83418
+ decimals: 2,
83419
+ display_decimals: 2
83420
+ },
83421
+ percentage: 3.9
83422
+ },
83423
+ source: "default",
83424
+ unadjustable_reason: "not_permitted"
83425
+ },
83426
+ alipayhk: {
83427
+ adjustable: false,
83428
+ category: "payments",
83429
+ default: {
83430
+ fixed: {
83431
+ amount: "0.30",
83432
+ currency: "usd",
83433
+ decimals: 2,
83434
+ display_decimals: 2
83435
+ },
83436
+ percentage: 3.9
83437
+ },
83438
+ ends_at: null,
83439
+ fixed: {
83440
+ amount: "0.30",
83441
+ currency: "usd",
83442
+ decimals: 2,
83443
+ display_decimals: 2
83444
+ },
83445
+ maximum: null,
83446
+ minimum: null,
83447
+ percentage: 3.9,
83448
+ region: "au",
83449
+ regions: {
83450
+ eu: {
83451
+ default: {
83452
+ fixed: {
83453
+ amount: "0.30",
83454
+ currency: "usd",
83455
+ decimals: 2,
83456
+ display_decimals: 2
83457
+ },
83458
+ percentage: 3.9
83459
+ },
83460
+ fixed: {
83461
+ amount: "0.30",
83462
+ currency: "usd",
83463
+ decimals: 2,
83464
+ display_decimals: 2
83465
+ },
83466
+ maximum: null,
83467
+ minimum: null,
83468
+ percentage: 3.9,
83469
+ reset: {
83470
+ fixed: {
83471
+ amount: "0.30",
83472
+ currency: "usd",
83473
+ decimals: 2,
83474
+ display_decimals: 2
83475
+ },
83476
+ percentage: 3.9
83477
+ },
83478
+ source: "default"
83479
+ }
83480
+ },
82292
83481
  reset: {
82293
83482
  fixed: {
82294
83483
  amount: "0.30",
@@ -84190,6 +85379,7 @@ var native_spec_default = {
84190
85379
  "setup_apple_pay_domains",
84191
85380
  "configure_tax_remitter",
84192
85381
  "add_vat_registration",
85382
+ "accept_payout_terms",
84193
85383
  "enable_two_factor_authentication"
84194
85384
  ],
84195
85385
  example: "verify_identity",
@@ -84872,9 +86062,8 @@ var native_spec_default = {
84872
86062
  },
84873
86063
  descriptions: {
84874
86064
  items: {
84875
- description: "The description variants shown on the ad.",
84876
- example: "Paint correction included",
84877
- type: "string"
86065
+ $ref: "#/components/schemas/AdText",
86066
+ description: "The description shown on the ad. Entries with a null language are the ad's own copy; a Meta ad with translations also carries one entry per other language."
84878
86067
  },
84879
86068
  type: "array"
84880
86069
  },
@@ -84890,9 +86079,8 @@ var native_spec_default = {
84890
86079
  },
84891
86080
  headlines: {
84892
86081
  items: {
84893
- description: "The headline variants shown on the ad.",
84894
- example: "Austin's mobile detailers",
84895
- type: "string"
86082
+ $ref: "#/components/schemas/AdText",
86083
+ description: "The headline shown on the ad. Entries with a null language are the ad's own copy; a Meta ad with translations also carries one entry per other language."
84896
86084
  },
84897
86085
  type: "array"
84898
86086
  },
@@ -84995,9 +86183,8 @@ var native_spec_default = {
84995
86183
  },
84996
86184
  primary_texts: {
84997
86185
  items: {
84998
- description: "The primary text variants shown in the ad body.",
84999
- example: "Book a two-day ceramic coating and keep the shine for three years.",
85000
- type: "string"
86186
+ $ref: "#/components/schemas/AdText",
86187
+ description: "The primary text shown in the ad body. Entries with a null language are the ad's own copy (several make text variations); a Meta ad with translations also carries one entry per other language."
85001
86188
  },
85002
86189
  type: "array"
85003
86190
  },
@@ -85097,6 +86284,17 @@ var native_spec_default = {
85097
86284
  example: "Ceramic coating \u2014 new ad group",
85098
86285
  type: ["string", "null"]
85099
86286
  },
86287
+ translations: {
86288
+ description: "The languages a Meta ad runs in besides its own. Each viewer sees the version for their language, or the ad's own copy. `null` when the ad runs in one language.",
86289
+ oneOf: [
86290
+ {
86291
+ $ref: "#/components/schemas/AdTranslations"
86292
+ },
86293
+ {
86294
+ type: "null"
86295
+ }
86296
+ ]
86297
+ },
85100
86298
  unique_click_through_rate: {
85101
86299
  description: "Unique clicks divided by impressions, between 0 and 1.",
85102
86300
  example: null,
@@ -85831,6 +87029,11 @@ var native_spec_default = {
85831
87029
  example: "file_xxxxxxxxxxxxxx",
85832
87030
  type: "string"
85833
87031
  },
87032
+ language: {
87033
+ description: "ISO 639 code of the language this image or video is shown for, such as `es`. On an ad with translations, the ad's own creative carries `translations.source_language`. It's `null` on an ad without translations.",
87034
+ example: null,
87035
+ type: ["string", "null"]
87036
+ },
85834
87037
  media_type: {
85835
87038
  description: "The kind of asset, image or video.",
85836
87039
  example: "image",
@@ -85842,7 +87045,7 @@ var native_spec_default = {
85842
87045
  type: ["string", "null"]
85843
87046
  }
85844
87047
  },
85845
- required: ["id", "format", "url", "media_type", "crop"],
87048
+ required: ["id", "format", "url", "media_type", "crop", "language"],
85846
87049
  type: "object"
85847
87050
  },
85848
87051
  AdCreativeCrop: {
@@ -87430,6 +88633,41 @@ var native_spec_default = {
87430
88633
  required: ["id", "message", "resource_id", "resource_type"],
87431
88634
  type: "object"
87432
88635
  },
88636
+ AdText: {
88637
+ properties: {
88638
+ language: {
88639
+ description: "ISO 639 code of the language this text is in, such as `es`. On an ad with translations, the ad's own copy carries `translations.source_language`. It's `null` on an ad without translations.",
88640
+ example: "en",
88641
+ type: ["string", "null"]
88642
+ },
88643
+ text: {
88644
+ description: "The text shown to viewers.",
88645
+ example: "Austin's mobile detailers",
88646
+ type: "string"
88647
+ }
88648
+ },
88649
+ required: ["language", "text"],
88650
+ type: "object"
88651
+ },
88652
+ AdTranslations: {
88653
+ properties: {
88654
+ automatic_languages: {
88655
+ items: {
88656
+ description: "ISO 639 codes Meta translates the ad's own copy into automatically, such as `fr`.",
88657
+ example: "fr",
88658
+ type: "string"
88659
+ },
88660
+ type: "array"
88661
+ },
88662
+ source_language: {
88663
+ description: "ISO 639 code of the language the ad's own copy is written in, such as `en`. Viewers whose language has no version of its own see the ad's own copy.",
88664
+ example: "en",
88665
+ type: "string"
88666
+ }
88667
+ },
88668
+ required: ["source_language", "automatic_languages"],
88669
+ type: "object"
88670
+ },
87433
88671
  ApiKey: {
87434
88672
  properties: {
87435
88673
  api_version_date: {
@@ -87482,9 +88720,11 @@ var native_spec_default = {
87482
88720
  "2026-09-22-3",
87483
88721
  "2026-09-22-4",
87484
88722
  "2026-09-23",
87485
- "2026-09-24"
88723
+ "2026-09-24",
88724
+ "2026-09-24-1",
88725
+ "2026-09-25"
87486
88726
  ],
87487
- example: "2026-09-24",
88727
+ example: "2026-09-25",
87488
88728
  type: "string"
87489
88729
  },
87490
88730
  created_at: {
@@ -90705,8 +91945,17 @@ var native_spec_default = {
90705
91945
  type: ["string", "null"]
90706
91946
  },
90707
91947
  status: {
90708
- description: "Where the dispute stands. `needs_response` is awaiting evidence, `under_review` is with the processor, `won` returned the funds to the seller, `lost` returned them to the customer, and `closed` ended without a ruling. A dispute past its `evidence_due_at` reports `under_review` \u2014 the window to respond has closed.",
90709
- enum: ["needs_response", "under_review", "won", "lost", "closed"],
91948
+ description: "Where the dispute stands. `needs_response` is awaiting evidence, `under_review` is with the processor, `won` returned the funds to the seller, `lost` returned them to the customer, and `closed` ended without a ruling. The `warning_` statuses are the same stages for an inquiry, which moves no funds. A dispute past its `evidence_due_at` reports `under_review` \u2014 the window to respond has closed.",
91949
+ enum: [
91950
+ "needs_response",
91951
+ "warning_needs_response",
91952
+ "under_review",
91953
+ "warning_under_review",
91954
+ "won",
91955
+ "lost",
91956
+ "closed",
91957
+ "warning_closed"
91958
+ ],
90710
91959
  example: "under_review",
90711
91960
  type: "string"
90712
91961
  },
@@ -92460,6 +93709,9 @@ var native_spec_default = {
92460
93709
  "platform_balance_transfer_incoming",
92461
93710
  "platform_balance_transfer_outgoing",
92462
93711
  "platform_covered_dispute",
93712
+ "platform_credits_granted",
93713
+ "platform_credits_payment",
93714
+ "platform_credits_payment_refund",
92463
93715
  "platform_earning",
92464
93716
  "platform_markup_fee",
92465
93717
  "platform_markup_fee_payout",
@@ -93554,9 +94806,19 @@ var native_spec_default = {
93554
94806
  },
93555
94807
  cancel_at_period_end: {
93556
94808
  description: "Whether the membership is set to cancel when the current billing period ends. Only meaningful for recurring plans.",
93557
- example: false,
94809
+ example: true,
93558
94810
  type: "boolean"
93559
94811
  },
94812
+ canceled_at: {
94813
+ description: "When cancellation was requested, or when the membership was canceled if no request time is recorded, as an ISO 8601 timestamp. `null` when neither is recorded.",
94814
+ example: "2026-01-01T12:00:00.000Z",
94815
+ type: ["string", "null"]
94816
+ },
94817
+ cancellation_reason: {
94818
+ description: "Free-text explanation provided when canceling. `null` when no reason was provided.",
94819
+ example: "Too expensive",
94820
+ type: ["string", "null"]
94821
+ },
93560
94822
  created_at: {
93561
94823
  description: "When the membership was created, as an ISO 8601 timestamp.",
93562
94824
  example: "2026-01-01T12:00:00.000Z",
@@ -93567,6 +94829,11 @@ var native_spec_default = {
93567
94829
  example: "2026-01-01T12:00:00.000Z",
93568
94830
  type: ["string", "null"]
93569
94831
  },
94832
+ current_period_start: {
94833
+ description: "When the current billing period started, as an ISO 8601 timestamp. `null` when no billing period is recorded.",
94834
+ example: "2026-01-01T12:00:00.000Z",
94835
+ type: ["string", "null"]
94836
+ },
93570
94837
  id: {
93571
94838
  description: "Membership ID, prefixed `mem_`.",
93572
94839
  example: "mem_xxxxxxxxxxxxxx",
@@ -93577,6 +94844,11 @@ var native_spec_default = {
93577
94844
  example: "WHOP-XXXX-XXXX-XXXX",
93578
94845
  type: ["string", "null"]
93579
94846
  },
94847
+ manage_url: {
94848
+ description: "URL where the buyer can sign in to manage billing. `null` without a member record or unless the caller is the buyer or has `member:manage` on the account.",
94849
+ example: "https://whop.com/billing/manage/mber_xxxxxxxxxxxxxx",
94850
+ type: ["string", "null"]
94851
+ },
93580
94852
  member: {
93581
94853
  description: "The caller's member row on the account. Present only when the membership belongs to the caller; `null` on seller-side reads.",
93582
94854
  oneOf: [
@@ -93637,7 +94909,11 @@ var native_spec_default = {
93637
94909
  "license_key",
93638
94910
  "phone_number",
93639
94911
  "cancel_at_period_end",
94912
+ "current_period_start",
93640
94913
  "current_period_end",
94914
+ "canceled_at",
94915
+ "cancellation_reason",
94916
+ "manage_url",
93641
94917
  "metadata",
93642
94918
  "created_at",
93643
94919
  "member",
@@ -94298,6 +95574,17 @@ var native_spec_default = {
94298
95574
  description: "When the request last changed, as an ISO 8601 timestamp.",
94299
95575
  example: "2026-01-01T12:00:00.000Z",
94300
95576
  type: "string"
95577
+ },
95578
+ user: {
95579
+ description: "User receiving the attribution request, or null for a business request or referral link.",
95580
+ oneOf: [
95581
+ {
95582
+ $ref: "#/components/schemas/UserSummary"
95583
+ },
95584
+ {
95585
+ type: "null"
95586
+ }
95587
+ ]
94301
95588
  }
94302
95589
  },
94303
95590
  required: [
@@ -94309,6 +95596,7 @@ var native_spec_default = {
94309
95596
  "created_at",
94310
95597
  "updated_at",
94311
95598
  "account",
95599
+ "user",
94312
95600
  "partner",
94313
95601
  "rewards"
94314
95602
  ],
@@ -95637,6 +96925,7 @@ var native_spec_default = {
95637
96925
  "affirm",
95638
96926
  "afterpay_clearpay",
95639
96927
  "alipay",
96928
+ "alipayhk",
95640
96929
  "alma",
95641
96930
  "amazon_pay",
95642
96931
  "apple",
@@ -99780,7 +101069,7 @@ var native_spec_default = {
99780
101069
  },
99781
101070
  scopes: {
99782
101071
  items: {
99783
- description: "Capabilities Whop retains specific to this social account. For example, Whop may request the ability to run advertisements that use this social account's identity, reflected by the presence of `advertise` in this value.",
101072
+ description: "Capabilities Whop retains specific to this social account. For example, Whop may request the ability to run advertisements that use this social account's identity, reflected by `advertise`. Personal profile connections have no additional Whop scopes.",
99784
101073
  example: "advertise",
99785
101074
  type: "string"
99786
101075
  },
@@ -100250,6 +101539,387 @@ var native_spec_default = {
100250
101539
  required: ["id", "name"],
100251
101540
  type: "object"
100252
101541
  },
101542
+ Trade: {
101543
+ properties: {
101544
+ account_id: {
101545
+ description: "The account that owns the trading wallet, prefixed `biz_`. `null` when a user owns it.",
101546
+ example: "biz_xxxxxxxxxxxxxx",
101547
+ type: ["string", "null"]
101548
+ },
101549
+ cancellations: {
101550
+ items: {
101551
+ $ref: "#/components/schemas/TradeCancellationResult",
101552
+ description: "Cancellation results for `cancel_orders` trades, or `null` for other trades or before completion."
101553
+ },
101554
+ type: ["array", "null"]
101555
+ },
101556
+ completed_at: {
101557
+ description: "When the submission finished, as an ISO 8601 timestamp, or `null` while it is pending or its outcome is unknown.",
101558
+ example: "2026-01-01T12:00:00.000Z",
101559
+ type: ["string", "null"]
101560
+ },
101561
+ created_at: {
101562
+ description: "When the trade was submitted, as an ISO 8601 timestamp.",
101563
+ example: "2026-01-01T12:00:00.000Z",
101564
+ type: "string"
101565
+ },
101566
+ failure_code: {
101567
+ description: "Why the trade failed or has an unknown outcome, or `null` otherwise.",
101568
+ enum: [
101569
+ "pre_submission_error",
101570
+ "provider_rejected",
101571
+ "provider_outcome_unknown",
101572
+ null
101573
+ ],
101574
+ example: "pre_submission_error",
101575
+ type: ["string", "null"]
101576
+ },
101577
+ hyperliquid: {
101578
+ description: "Hyperliquid-specific submission details. Present when `provider` is `hyperliquid`, otherwise `null`.",
101579
+ oneOf: [
101580
+ {
101581
+ $ref: "#/components/schemas/TradeHyperliquid"
101582
+ },
101583
+ {
101584
+ type: "null"
101585
+ }
101586
+ ]
101587
+ },
101588
+ id: {
101589
+ description: "Trade ID, prefixed `trop_`.",
101590
+ example: "trop_xxxxxxxxxxxxxx",
101591
+ type: "string"
101592
+ },
101593
+ instrument_type: {
101594
+ description: "The kind of instrument traded.",
101595
+ enum: ["perpetual"],
101596
+ example: "perpetual",
101597
+ type: "string"
101598
+ },
101599
+ leverage: {
101600
+ description: "The leverage requested by an `update_leverage` trade. `null` for other trades.",
101601
+ oneOf: [
101602
+ {
101603
+ $ref: "#/components/schemas/TradeLeverage"
101604
+ },
101605
+ {
101606
+ type: "null"
101607
+ }
101608
+ ]
101609
+ },
101610
+ metadata: {
101611
+ description: "String-to-string annotations you provided when submitting the trade.",
101612
+ example: {},
101613
+ type: "object"
101614
+ },
101615
+ object: {
101616
+ enum: ["trade"],
101617
+ example: "trade",
101618
+ type: "string"
101619
+ },
101620
+ operation_type: {
101621
+ description: "`create_orders` places orders, `cancel_orders` cancels a submitted batch, and `update_leverage` sets a market's leverage.",
101622
+ enum: ["create_orders", "cancel_orders", "update_leverage"],
101623
+ example: "cancel_orders",
101624
+ type: "string"
101625
+ },
101626
+ orders: {
101627
+ example: null,
101628
+ items: {
101629
+ $ref: "#/components/schemas/TradeOrderResult",
101630
+ description: "Order acknowledgements recorded at submission for `create_orders` trades, or `null` for other trades or before completion. They don't update as orders fill; read live orders and positions from the account's `trading` field."
101631
+ },
101632
+ type: ["array", "null"]
101633
+ },
101634
+ provider: {
101635
+ description: "Trading venue the trade was submitted to.",
101636
+ enum: ["hyperliquid"],
101637
+ example: "hyperliquid",
101638
+ type: "string"
101639
+ },
101640
+ requested_orders: {
101641
+ items: {
101642
+ $ref: "#/components/schemas/TradeRequestedOrder",
101643
+ description: "The orders submitted for a `create_orders` trade, including attached take-profit and stop-loss, with the client order IDs Whop assigned. Present in every status, so an unknown outcome can be reconciled by `client_order_id`. `null` for other trades."
101644
+ },
101645
+ type: ["array", "null"]
101646
+ },
101647
+ status: {
101648
+ description: "Submission status, not fill status. `completed` means the provider response was recorded, even if individual orders were rejected. Never resubmit a `submission_unknown` trade with a new idempotency key.",
101649
+ enum: [
101650
+ "pending",
101651
+ "submitted",
101652
+ "completed",
101653
+ "failed",
101654
+ "submission_unknown"
101655
+ ],
101656
+ example: "completed",
101657
+ type: "string"
101658
+ },
101659
+ trade_id: {
101660
+ description: "For a cancellation, the ID of the canceled trade, prefixed `trop_`. `null` otherwise.",
101661
+ example: "trop_xxxxxxxxxxxxxx",
101662
+ type: ["string", "null"]
101663
+ },
101664
+ updated_at: {
101665
+ description: "When the trade last changed, as an ISO 8601 timestamp.",
101666
+ example: "2026-01-01T12:00:00.000Z",
101667
+ type: "string"
101668
+ },
101669
+ user_id: {
101670
+ description: "The user who owns the trading wallet, prefixed `user_`. `null` when an account owns it.",
101671
+ example: null,
101672
+ type: ["string", "null"]
101673
+ }
101674
+ },
101675
+ required: [
101676
+ "id",
101677
+ "account_id",
101678
+ "user_id",
101679
+ "provider",
101680
+ "operation_type",
101681
+ "status",
101682
+ "metadata",
101683
+ "created_at",
101684
+ "updated_at",
101685
+ "completed_at",
101686
+ "failure_code",
101687
+ "instrument_type",
101688
+ "requested_orders",
101689
+ "orders",
101690
+ "cancellations",
101691
+ "leverage",
101692
+ "trade_id",
101693
+ "hyperliquid",
101694
+ "object"
101695
+ ],
101696
+ type: "object"
101697
+ },
101698
+ TradeCancellationResult: {
101699
+ properties: {
101700
+ error: {
101701
+ description: "The provider's rejection reason, or `null` when the order was canceled.",
101702
+ example: null,
101703
+ type: ["string", "null"]
101704
+ },
101705
+ id: {
101706
+ description: "Client order ID of the order the cancellation targeted, prefixed `trdcloid_`.",
101707
+ example: "trdcloid_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
101708
+ type: "string"
101709
+ },
101710
+ status: {
101711
+ description: "`canceled` when the provider canceled the order; `rejected` when it refused, for example because the order had already filled.",
101712
+ enum: ["canceled", "rejected"],
101713
+ example: "canceled",
101714
+ type: "string"
101715
+ }
101716
+ },
101717
+ required: ["id", "status", "error"],
101718
+ type: "object"
101719
+ },
101720
+ TradeHyperliquid: {
101721
+ properties: {
101722
+ builder_fee_bps: {
101723
+ description: "Builder fee Whop charged on the submitted orders, in basis points as a decimal string, or `null` for trades that place no orders.",
101724
+ example: null,
101725
+ type: ["string", "null"]
101726
+ }
101727
+ },
101728
+ required: ["builder_fee_bps"],
101729
+ type: "object"
101730
+ },
101731
+ TradeLeverage: {
101732
+ properties: {
101733
+ leverage: {
101734
+ description: "Requested leverage multiplier, such as `10` for 10x, or `null` if the request didn't contain a whole number.",
101735
+ example: 5,
101736
+ type: ["integer", "null"]
101737
+ },
101738
+ margin_mode: {
101739
+ description: "`cross` shares margin across positions; `isolated` limits margin to this market's position. `null` if the request didn't contain a supported mode.",
101740
+ enum: ["cross", "isolated", null],
101741
+ example: "isolated",
101742
+ type: ["string", "null"]
101743
+ },
101744
+ market: {
101745
+ description: "Market symbol, such as `ETH`.",
101746
+ example: "ETH",
101747
+ type: "string"
101748
+ }
101749
+ },
101750
+ required: ["market", "leverage", "margin_mode"],
101751
+ type: "object"
101752
+ },
101753
+ TradeOrderResult: {
101754
+ properties: {
101755
+ average_price: {
101756
+ description: "Average fill price in USD for an immediate fill, or `null` when nothing filled.",
101757
+ oneOf: [
101758
+ {
101759
+ $ref: "#/components/schemas/Money"
101760
+ },
101761
+ {
101762
+ type: "null"
101763
+ }
101764
+ ]
101765
+ },
101766
+ client_order_id: {
101767
+ description: "Client order ID Whop assigned to the order, prefixed `trdcloid_`.",
101768
+ type: "string"
101769
+ },
101770
+ error: {
101771
+ description: "The provider's rejection reason, or `null` when the order was accepted.",
101772
+ type: ["string", "null"]
101773
+ },
101774
+ filled_size: {
101775
+ description: "Size filled immediately at submission, as a decimal string, or `null` when nothing filled.",
101776
+ type: ["string", "null"]
101777
+ },
101778
+ hyperliquid: {
101779
+ description: "Hyperliquid-specific order details. Present on Hyperliquid orders, otherwise `null`.",
101780
+ oneOf: [
101781
+ {
101782
+ $ref: "#/components/schemas/TradingHyperliquidOrder"
101783
+ },
101784
+ {
101785
+ type: "null"
101786
+ }
101787
+ ]
101788
+ },
101789
+ id: {
101790
+ description: "Trading order ID, prefixed `trdord_` once the provider assigns one, otherwise the client order ID prefixed `trdcloid_`.",
101791
+ type: "string"
101792
+ },
101793
+ market: {
101794
+ description: "Market symbol on the provider, such as `ETH`.",
101795
+ type: "string"
101796
+ },
101797
+ object: {
101798
+ enum: ["trading_order"],
101799
+ example: "trading_order",
101800
+ type: "string"
101801
+ },
101802
+ order_type: {
101803
+ enum: ["limit", "market", "take_profit", "stop_loss"],
101804
+ example: "limit",
101805
+ type: "string"
101806
+ },
101807
+ parent_client_order_id: {
101808
+ description: "For an attached take-profit or stop-loss, the client order ID of its entry order, prefixed `trdcloid_`. `null` for other orders.",
101809
+ type: ["string", "null"]
101810
+ },
101811
+ price: {
101812
+ $ref: "#/components/schemas/Money",
101813
+ description: "Submitted limit price in USD. For market and trigger orders, the worst price allowed after slippage."
101814
+ },
101815
+ provider_order_id: {
101816
+ description: "The provider's own order ID, or `null` until the provider assigns one, such as for a rejected order or a take-profit or stop-loss that hasn't triggered yet.",
101817
+ type: ["string", "null"]
101818
+ },
101819
+ side: {
101820
+ enum: ["buy", "sell"],
101821
+ example: "buy",
101822
+ type: "string"
101823
+ },
101824
+ size: {
101825
+ description: "Submitted size as a decimal string.",
101826
+ type: "string"
101827
+ },
101828
+ status: {
101829
+ description: "The provider's acknowledgement at submission time, not the current fill status.",
101830
+ enum: ["open", "filled", "rejected"],
101831
+ example: "open",
101832
+ type: "string"
101833
+ }
101834
+ },
101835
+ required: [
101836
+ "id",
101837
+ "object",
101838
+ "client_order_id",
101839
+ "provider_order_id",
101840
+ "parent_client_order_id",
101841
+ "market",
101842
+ "side",
101843
+ "size",
101844
+ "price",
101845
+ "order_type",
101846
+ "status",
101847
+ "filled_size",
101848
+ "average_price",
101849
+ "error",
101850
+ "hyperliquid"
101851
+ ],
101852
+ type: "object"
101853
+ },
101854
+ TradeRequestedOrder: {
101855
+ properties: {
101856
+ client_order_id: {
101857
+ description: "Client order ID Whop assigned to the order, prefixed `trdcloid_`. Matches the order in `orders` and on the provider.",
101858
+ example: "trdcloid_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
101859
+ type: "string"
101860
+ },
101861
+ market: {
101862
+ description: "Market symbol as submitted, such as `ETH`.",
101863
+ example: "ETH",
101864
+ type: "string"
101865
+ },
101866
+ order_type: {
101867
+ description: "Submitted order type, or `null` if the request didn't contain a supported type.",
101868
+ enum: ["limit", "market", "take_profit", "stop_loss", null],
101869
+ example: "stop_loss",
101870
+ type: ["string", "null"]
101871
+ },
101872
+ parent_client_order_id: {
101873
+ description: "For an attached take-profit or stop-loss, the client order ID of its entry order, prefixed `trdcloid_`. `null` for other orders.",
101874
+ example: "trdcloid_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
101875
+ type: ["string", "null"]
101876
+ },
101877
+ price: {
101878
+ description: "Submitted limit price in USD, or `null` for orders submitted without one.",
101879
+ oneOf: [
101880
+ {
101881
+ $ref: "#/components/schemas/Money"
101882
+ },
101883
+ {
101884
+ type: "null"
101885
+ }
101886
+ ]
101887
+ },
101888
+ side: {
101889
+ description: "Submitted side, or `null` if the request didn't contain a supported side.",
101890
+ enum: ["buy", "sell", null],
101891
+ example: "sell",
101892
+ type: ["string", "null"]
101893
+ },
101894
+ size: {
101895
+ description: "Submitted size as a decimal string.",
101896
+ example: "0.02",
101897
+ type: "string"
101898
+ },
101899
+ trigger_price: {
101900
+ description: "Submitted trigger price in USD, or `null` for orders without a trigger.",
101901
+ oneOf: [
101902
+ {
101903
+ $ref: "#/components/schemas/Money"
101904
+ },
101905
+ {
101906
+ type: "null"
101907
+ }
101908
+ ]
101909
+ }
101910
+ },
101911
+ required: [
101912
+ "client_order_id",
101913
+ "parent_client_order_id",
101914
+ "market",
101915
+ "side",
101916
+ "size",
101917
+ "order_type",
101918
+ "price",
101919
+ "trigger_price"
101920
+ ],
101921
+ type: "object"
101922
+ },
100253
101923
  TradingAccount: {
100254
101924
  properties: {
100255
101925
  account_id: {
@@ -102162,15 +103832,15 @@ var native_spec_default = {
102162
103832
  scheme: "bearer",
102163
103833
  type: "http"
102164
103834
  },
102165
- accountApiKeyOrAccountUserTokenOrOauthTokenAuth: {
103835
+ accountApiKeyOrAccountUserTokenAuth: {
102166
103836
  bearerFormat: "auth-scheme",
102167
- description: "An Account API key, an account-scoped user token, or a user OAuth token. Prepend the key or token with `Bearer`, for example `Bearer ***************************`. See [Auth & API keys](/developer/guides/auth-scoping) for how to get each one.",
103837
+ description: "An Account API key or an account-scoped user token. Prepend the key or token with `Bearer`, for example `Bearer ***************************`. See [Auth & API keys](/developer/guides/auth-scoping) for how to get each one.",
102168
103838
  scheme: "bearer",
102169
103839
  type: "http"
102170
103840
  },
102171
- accountApiKeyOrAccountUserTokenAuth: {
103841
+ accountApiKeyOrAccountUserTokenOrOauthTokenAuth: {
102172
103842
  bearerFormat: "auth-scheme",
102173
- description: "An Account API key or an account-scoped user token. Prepend the key or token with `Bearer`, for example `Bearer ***************************`. See [Auth & API keys](/developer/guides/auth-scoping) for how to get each one.",
103843
+ description: "An Account API key, an account-scoped user token, or a user OAuth token. Prepend the key or token with `Bearer`, for example `Bearer ***************************`. See [Auth & API keys](/developer/guides/auth-scoping) for how to get each one.",
102174
103844
  scheme: "bearer",
102175
103845
  type: "http"
102176
103846
  },
@@ -102240,7 +103910,7 @@ var apps_spec_default = {
102240
103910
  termsOfService: "https://whop.com/tos-developer-api/",
102241
103911
  title: "Whop API",
102242
103912
  version: "1.0.0",
102243
- "x-api-version-date": "2026-09-24"
103913
+ "x-api-version-date": "2026-09-25"
102244
103914
  },
102245
103915
  paths: {
102246
103916
  "/app_builds": {
@@ -104572,7 +106242,7 @@ var apps_spec_default = {
104572
106242
  name: "Api-Version-Date",
104573
106243
  required: false,
104574
106244
  schema: {
104575
- example: "2026-09-24",
106245
+ example: "2026-09-25",
104576
106246
  type: "string"
104577
106247
  }
104578
106248
  },
@@ -104651,7 +106321,7 @@ var files_spec_default = {
104651
106321
  termsOfService: "https://whop.com/tos-developer-api/",
104652
106322
  title: "Whop API",
104653
106323
  version: "1.0.0",
104654
- "x-api-version-date": "2026-09-24"
106324
+ "x-api-version-date": "2026-09-25"
104655
106325
  },
104656
106326
  paths: {
104657
106327
  "/files": {
@@ -105193,7 +106863,7 @@ var files_spec_default = {
105193
106863
  name: "Api-Version-Date",
105194
106864
  required: false,
105195
106865
  schema: {
105196
- example: "2026-09-24",
106866
+ example: "2026-09-25",
105197
106867
  type: "string"
105198
106868
  }
105199
106869
  },
@@ -105334,7 +107004,7 @@ async function announceActionUrl(url, {
105334
107004
  // package.json
105335
107005
  var package_default = {
105336
107006
  name: "@whop/cli",
105337
- version: "0.20.0",
107007
+ version: "0.21.0",
105338
107008
  description: "The Whop CLI \u2014 build and manage Whop apps from your terminal. Human and agent friendly.",
105339
107009
  keywords: [
105340
107010
  "agent",
@@ -107582,6 +109252,12 @@ var groups_default = [
107582
109252
  description: "Convert a balance between currencies.",
107583
109253
  group: "Money"
107584
109254
  },
109255
+ {
109256
+ name: "trades",
109257
+ tag: "Trades",
109258
+ description: "Submit and track perpetual trades.",
109259
+ group: "Money"
109260
+ },
107585
109261
  {
107586
109262
  name: "products",
107587
109263
  tag: "Products",
@@ -107633,7 +109309,7 @@ var groups_default = [
107633
109309
  {
107634
109310
  name: "partner-referral-requests",
107635
109311
  tag: "Partner Referral Requests",
107636
- description: "Request business attribution and manage owner approval.",
109312
+ description: "Request business or partner attribution and manage approval.",
107637
109313
  group: "Partners"
107638
109314
  },
107639
109315
  {