@whop/cli 0.14.0 → 0.14.1

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
@@ -2003,7 +2003,7 @@ var require_toml = __commonJS({
2003
2003
  }
2004
2004
  });
2005
2005
 
2006
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Cli.js
2006
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Cli.js
2007
2007
  var Cli_exports = {};
2008
2008
  __export(Cli_exports, {
2009
2009
  collectSkillCommands: () => collectSkillCommands,
@@ -2104,7 +2104,7 @@ function extractSegmentPart(segment, segmentTokenStart, segmentTokenCount, targe
2104
2104
  return segment.slice(charStart, charEnd);
2105
2105
  }
2106
2106
 
2107
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/internal/helpers.js
2107
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/internal/helpers.js
2108
2108
  function isRecord(value) {
2109
2109
  return typeof value === "object" && value !== null && !Array.isArray(value);
2110
2110
  }
@@ -2151,8 +2151,17 @@ function suggest(input, candidates) {
2151
2151
  }
2152
2152
  return best;
2153
2153
  }
2154
+ function describedAs(schema2) {
2155
+ let current = schema2;
2156
+ while (current) {
2157
+ if (typeof current.description === "string")
2158
+ return current.description;
2159
+ current = current._zod?.def?.innerType;
2160
+ }
2161
+ return void 0;
2162
+ }
2154
2163
 
2155
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Completions.js
2164
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Completions.js
2156
2165
  function register(shell, name) {
2157
2166
  switch (shell) {
2158
2167
  case "bash":
@@ -2351,7 +2360,7 @@ function unwrap(schema2) {
2351
2360
  function descriptionOf(schema2) {
2352
2361
  if (!schema2)
2353
2362
  return void 0;
2354
- return schema2.description;
2363
+ return describedAs(schema2);
2355
2364
  }
2356
2365
  function ident(name) {
2357
2366
  return name.replace(/[^a-zA-Z0-9_]/g, "_");
@@ -2415,7 +2424,7 @@ let _incur_complete_${id} = {|spans|
2415
2424
  }`;
2416
2425
  }
2417
2426
 
2418
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Errors.js
2427
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Errors.js
2419
2428
  var BaseError = class extends Error {
2420
2429
  name = "Incur.BaseError";
2421
2430
  /** The short, human-readable error message (without details). */
@@ -2489,7 +2498,7 @@ function walk(error, fn) {
2489
2498
  return current;
2490
2499
  }
2491
2500
 
2492
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Fetch.js
2501
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Fetch.js
2493
2502
  var reservedFlags = /* @__PURE__ */ new Set(["method", "body", "data", "header"]);
2494
2503
  var reservedShort = { X: "method", d: "data", H: "header" };
2495
2504
  function parseArgv(argv2) {
@@ -2625,7 +2634,7 @@ async function parseResponse(response) {
2625
2634
  };
2626
2635
  }
2627
2636
 
2628
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Filter.js
2637
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Filter.js
2629
2638
  function parse(expression) {
2630
2639
  const paths = [];
2631
2640
  const tokens = [];
@@ -2731,7 +2740,7 @@ function merge(target, data, segments, index2) {
2731
2740
  }
2732
2741
  }
2733
2742
 
2734
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Formatter.js
2743
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Formatter.js
2735
2744
  var Formatter_exports = {};
2736
2745
  __export(Formatter_exports, {
2737
2746
  format: () => format2
@@ -3131,7 +3140,7 @@ function resolveOptions(options) {
3131
3140
  };
3132
3141
  }
3133
3142
 
3134
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/internal/json.js
3143
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/internal/json.js
3135
3144
  function stringify(value, space) {
3136
3145
  return JSON.stringify(value, (_key, value2) => {
3137
3146
  if (typeof value2 === "bigint")
@@ -3143,7 +3152,7 @@ function normalize(value) {
3143
3152
  return JSON.parse(stringify(value));
3144
3153
  }
3145
3154
 
3146
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/internal/yaml.js
3155
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/internal/yaml.js
3147
3156
  import { createRequire } from "module";
3148
3157
  var cached;
3149
3158
  async function load() {
@@ -3155,7 +3164,7 @@ function loadSync() {
3155
3164
  return cached;
3156
3165
  }
3157
3166
 
3158
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Formatter.js
3167
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Formatter.js
3159
3168
  function format2(value, fmt = "toon") {
3160
3169
  if (value == null)
3161
3170
  return "";
@@ -3263,7 +3272,7 @@ ${String(val)}`;
3263
3272
  return kvTable(obj);
3264
3273
  }
3265
3274
 
3266
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Parser.js
3275
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Parser.js
3267
3276
  function parse2(argv2, options = {}) {
3268
3277
  const { args: argsSchema, options: optionsSchema, alias, defaults } = options;
3269
3278
  const optionNames = createOptionNames(optionsSchema, alias);
@@ -3680,7 +3689,7 @@ function defaultEnvSource() {
3680
3689
  return {};
3681
3690
  }
3682
3691
 
3683
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/internal/command.js
3692
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/internal/command.js
3684
3693
  var sentinel = Symbol.for("incur.sentinel");
3685
3694
  async function execute(command, options) {
3686
3695
  const { argv: argv2, inputOptions: inputOptions2, agent, format: format4, formatExplicit, name, path: path9, version, envSource = process.env, env: envSchema, globals = {}, vars: varsSchema, middlewares = [], request: request2 } = options;
@@ -3929,7 +3938,7 @@ function findBuiltinSubcommand(builtin, token) {
3929
3938
  return builtin.subcommands?.find((sub) => sub.name === token || sub.aliases?.includes(token));
3930
3939
  }
3931
3940
 
3932
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Help.js
3941
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Help.js
3933
3942
  function formatRoot(name, options = {}) {
3934
3943
  const { aliases, configFlag, description, globals, version, commands = [], root = false } = options;
3935
3944
  const lines = [];
@@ -4007,7 +4016,8 @@ function formatCommand(name, options = {}) {
4007
4016
  for (const entry of entries) {
4008
4017
  const padding = " ".repeat(maxLen - entry.flag.length);
4009
4018
  const prefix = entry.deprecated ? "[deprecated] " : "";
4010
- const desc = entry.defaultValue !== void 0 ? `${prefix}${entry.description} (default: ${entry.defaultValue})` : `${prefix}${entry.description}`;
4019
+ const suffix = entry.defaultValue !== void 0 ? `(default: ${entry.defaultValue})` : entry.required ? "(required)" : "";
4020
+ const desc = [`${prefix}${entry.description}`.trim(), suffix].filter(Boolean).join(" ");
4011
4021
  lines.push(` ${entry.flag}${padding} ${desc}`);
4012
4022
  }
4013
4023
  }
@@ -4078,14 +4088,14 @@ function buildSynopsis(name, args) {
4078
4088
  function argsEntries(schema2) {
4079
4089
  const entries = [];
4080
4090
  for (const [key, field] of Object.entries(schema2.shape))
4081
- entries.push({ name: key, description: field.description ?? "" });
4091
+ entries.push({ name: key, description: describedAs(field) ?? "" });
4082
4092
  return entries;
4083
4093
  }
4084
4094
  function envEntries(schema2) {
4085
4095
  const entries = [];
4086
4096
  for (const [key, field] of Object.entries(schema2.shape)) {
4087
4097
  const defaultValue = extractDefault(field);
4088
- entries.push({ name: key, description: field.description ?? "", defaultValue });
4098
+ entries.push({ name: key, description: describedAs(field) ?? "", defaultValue });
4089
4099
  }
4090
4100
  return entries;
4091
4101
  }
@@ -4101,7 +4111,14 @@ function optionEntries(schema2, alias) {
4101
4111
  if (type2 === "boolean" && defaultValue === false)
4102
4112
  defaultValue = void 0;
4103
4113
  const deprecated = extractDeprecated(field);
4104
- entries.push({ flag, description: field.description ?? "", defaultValue, deprecated });
4114
+ const required = field._zod.optin !== "optional";
4115
+ entries.push({
4116
+ flag,
4117
+ description: describedAs(field) ?? "",
4118
+ defaultValue,
4119
+ deprecated,
4120
+ required
4121
+ });
4105
4122
  }
4106
4123
  return entries;
4107
4124
  }
@@ -4215,7 +4232,7 @@ function redact(value) {
4215
4232
  return `****${value.slice(-4)}`;
4216
4233
  }
4217
4234
 
4218
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/internal/cta.js
4235
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/internal/cta.js
4219
4236
  function formatCtaBlock(name, block) {
4220
4237
  if (!block || block.commands.length === 0)
4221
4238
  return void 0;
@@ -4238,7 +4255,7 @@ function formatCta(name, cta) {
4238
4255
  return { command: cmd, ...cta.description ? { description: cta.description } : void 0 };
4239
4256
  }
4240
4257
 
4241
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/internal/pm.js
4258
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/internal/pm.js
4242
4259
  function detectRunner() {
4243
4260
  const userAgent = process.env.npm_config_user_agent ?? "";
4244
4261
  const execPath = process.env.npm_execpath ?? "";
@@ -4249,7 +4266,7 @@ function detectRunner() {
4249
4266
  return "npx";
4250
4267
  }
4251
4268
 
4252
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Schema.js
4269
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Schema.js
4253
4270
  function toJsonSchema(schema2) {
4254
4271
  const result = external_exports.toJSONSchema(schema2, {
4255
4272
  unrepresentable: "any",
@@ -4263,7 +4280,7 @@ function toJsonSchema(schema2) {
4263
4280
  return result;
4264
4281
  }
4265
4282
 
4266
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Mcp.js
4283
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Mcp.js
4267
4284
  async function serve(name, version, commands, options = {}) {
4268
4285
  const stdio = importStdioModule();
4269
4286
  const mcp = await import("./dist-KFETZ34P.js");
@@ -4598,7 +4615,7 @@ function buildToolSchema(args, options) {
4598
4615
  return { type: "object", properties };
4599
4616
  }
4600
4617
 
4601
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Openapi.js
4618
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Openapi.js
4602
4619
  var Openapi_exports = {};
4603
4620
  __export(Openapi_exports, {
4604
4621
  coerceIfNeeded: () => coerceIfNeeded,
@@ -4608,7 +4625,7 @@ __export(Openapi_exports, {
4608
4625
  toZod: () => toZod
4609
4626
  });
4610
4627
 
4611
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/internal/dereference.js
4628
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/internal/dereference.js
4612
4629
  function dereference(root) {
4613
4630
  const cache = /* @__PURE__ */ new Map();
4614
4631
  return walk2(root, root, cache);
@@ -4660,7 +4677,7 @@ function resolvePointer(root, pointer) {
4660
4677
  return current;
4661
4678
  }
4662
4679
 
4663
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Openapi.js
4680
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Openapi.js
4664
4681
  function fromCli(cli2, options = {}) {
4665
4682
  const commands = toCommands.get(cli2);
4666
4683
  if (!commands)
@@ -4920,6 +4937,8 @@ async function generateCommands(spec2, fetch3, options = {}) {
4920
4937
  let zodType = toZod(schema2);
4921
4938
  if (!bodyRequired.has(key))
4922
4939
  zodType = zodType.optional();
4940
+ if (typeof schema2.description === "string")
4941
+ zodType = zodType.describe(schema2.description);
4923
4942
  optShape[key] = coerceIfNeeded(zodType);
4924
4943
  usedOptionNames.add(key);
4925
4944
  }
@@ -5255,7 +5274,7 @@ function coerceIfNeeded(schema2) {
5255
5274
  return desc ? coerced.describe(desc) : coerced;
5256
5275
  }
5257
5276
 
5258
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/McpSource.js
5277
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/McpSource.js
5259
5278
  var protocolVersion = "2025-06-18";
5260
5279
  async function resolve2(source, options = {}) {
5261
5280
  const session = sourceSession(source);
@@ -5422,7 +5441,7 @@ function resultValue(result) {
5422
5441
  return textItems;
5423
5442
  }
5424
5443
 
5425
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Skill.js
5444
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Skill.js
5426
5445
  import { createHash } from "crypto";
5427
5446
  function index(name, commands, description) {
5428
5447
  const lines = [`# ${name}`];
@@ -5530,7 +5549,7 @@ ${cmd.description}`;
5530
5549
  const prop = properties?.[key];
5531
5550
  const type2 = resolveTypeName2(prop);
5532
5551
  const req = required.has(key) ? "yes" : "no";
5533
- const desc = field.description ?? "";
5552
+ const desc = describedAs(field) ?? "";
5534
5553
  return `| \`${key}\` | \`${type2}\` | ${req} | ${desc} |`;
5535
5554
  });
5536
5555
  sections.push(`${sub} Arguments
@@ -5549,7 +5568,7 @@ ${rows.join("\n")}`);
5549
5568
  const type2 = resolveTypeName2(prop);
5550
5569
  const def = prop?.default !== void 0 ? String(prop.default) : "";
5551
5570
  const req = required.has(key) ? "yes" : "no";
5552
- const desc = field.description ?? "";
5571
+ const desc = describedAs(field) ?? "";
5553
5572
  return `| \`${key}\` | \`${type2}\` | ${req} | ${def ? `\`${def}\`` : ""} | ${desc} |`;
5554
5573
  });
5555
5574
  sections.push(`${sub} Environment Variables
@@ -5561,19 +5580,21 @@ ${rows.join("\n")}`);
5561
5580
  if (cmd.options) {
5562
5581
  const shape = cmd.options.shape;
5563
5582
  const json2 = toJsonSchema(cmd.options);
5583
+ const required = new Set(json2.required ?? []);
5564
5584
  const properties = json2.properties;
5565
5585
  const rows = Object.entries(shape).map(([key, field]) => {
5566
5586
  const prop = properties?.[key];
5567
5587
  const type2 = resolveTypeName2(prop);
5568
5588
  const def = prop?.default !== void 0 ? String(prop.default) : "";
5569
- const rawDesc = field.description ?? "";
5589
+ const req = required.has(key) ? "yes" : "no";
5590
+ const rawDesc = describedAs(field) ?? "";
5570
5591
  const desc = prop?.deprecated ? `**Deprecated.** ${rawDesc}` : rawDesc;
5571
- return `| \`--${key}\` | \`${type2}\` | ${def ? `\`${def}\`` : ""} | ${desc} |`;
5592
+ return `| \`--${key}\` | \`${type2}\` | ${req} | ${def ? `\`${def}\`` : ""} | ${desc} |`;
5572
5593
  });
5573
5594
  sections.push(`${sub} Options
5574
5595
 
5575
- | Flag | Type | Default | Description |
5576
- |------|------|---------|-------------|
5596
+ | Flag | Type | Required | Default | Description |
5597
+ |------|------|----------|---------|-------------|
5577
5598
  ${rows.join("\n")}`);
5578
5599
  }
5579
5600
  if (cmd.output) {
@@ -5666,7 +5687,7 @@ function resolveTypeName2(prop) {
5666
5687
  return "unknown";
5667
5688
  }
5668
5689
 
5669
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/SyncMcp.js
5690
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/SyncMcp.js
5670
5691
  import { existsSync as existsSync6, mkdirSync as mkdirSync5, readFileSync as readFileSync5, realpathSync, writeFileSync as writeFileSync5 } from "fs";
5671
5692
  import { homedir } from "os";
5672
5693
  import { dirname, join } from "path";
@@ -10561,7 +10582,7 @@ function upsertServer(agentType, serverName, serverConfig, options = {}) {
10561
10582
  );
10562
10583
  }
10563
10584
 
10564
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/SyncMcp.js
10585
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/SyncMcp.js
10565
10586
  async function register2(name, options = {}) {
10566
10587
  const command = options.command ?? defaultCommand(name, detectRunner());
10567
10588
  const explicit = (options.agents ?? []).filter(Boolean);
@@ -10724,13 +10745,13 @@ function splitCommand(input) {
10724
10745
  return tokens;
10725
10746
  }
10726
10747
 
10727
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/SyncSkills.js
10748
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/SyncSkills.js
10728
10749
  import fsSync from "fs";
10729
10750
  import fs2 from "fs/promises";
10730
10751
  import os2 from "os";
10731
10752
  import path2 from "path";
10732
10753
 
10733
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/internal/agents.js
10754
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/internal/agents.js
10734
10755
  import * as fs from "fs";
10735
10756
  import * as os from "os";
10736
10757
  import * as path from "path";
@@ -11010,7 +11031,7 @@ function resolveParent(dir) {
11010
11031
  }
11011
11032
  }
11012
11033
 
11013
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/SyncSkills.js
11034
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/SyncSkills.js
11014
11035
  async function sync(name, commands, options = {}) {
11015
11036
  const { depth = 1, description, global: global2 = true } = options;
11016
11037
  const cwd = options.cwd ?? (global2 ? resolvePackageRoot() : process.cwd());
@@ -11182,7 +11203,7 @@ function readHash(name) {
11182
11203
  return readMeta(name)?.hash;
11183
11204
  }
11184
11205
 
11185
- // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+137287a52ac16199551eeed243c967951f481828/node_modules/incur/dist/Cli.js
11206
+ // ../../node_modules/.pnpm/incur@https+++codeload.github.com+whopio+incur+tar.gz+6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc/node_modules/incur/dist/Cli.js
11186
11207
  var destructiveCommandHint = "Confirm with the user before executing this destructive command.";
11187
11208
  function create(nameOrDefinition, definition) {
11188
11209
  const name = typeof nameOrDefinition === "string" ? nameOrDefinition : nameOrDefinition.name;
@@ -13623,7 +13644,7 @@ var native_spec_default = {
13623
13644
  termsOfService: "https://whop.com/tos-developer-api/",
13624
13645
  title: "Whop API",
13625
13646
  version: "1.0.0",
13626
- "x-api-version-date": "2026-07-27"
13647
+ "x-api-version-date": "2026-07-29"
13627
13648
  },
13628
13649
  servers: [
13629
13650
  {
@@ -13811,7 +13832,7 @@ var native_spec_default = {
13811
13832
  "x-whop-summary": "Versioned build artifacts deployed to an app's platforms."
13812
13833
  },
13813
13834
  {
13814
- description: "An API Key is a programmatic credential owned by an account or app. Each key carries its own permissions policy \u2014 explicit permission statements or an inherited system role \u2014 and can be restricted with an expiration date and an IP allowlist.\n\nUse the API Keys API to list a company or app's keys, create a key (the full secret is returned once, on creation), inspect a key's effective grants, update its name or restrictions, rotate its secret, and revoke it. These endpoints require a user session \u2014 they cannot be called with an API key.\n",
13835
+ description: "An API Key is a programmatic credential owned by an account or app. Each key carries its own permissions policy \u2014 explicit permission statements or an inherited system role \u2014 and can be restricted with an expiration date and an IP allowlist.\n\nUse the API Keys API to list an account or app's keys, create a key (the full secret is returned once, on creation), inspect a key's effective grants, update its name or restrictions, rotate its secret, and revoke it. These endpoints require a user session \u2014 they cannot be called with an API key.\n",
13815
13836
  name: "API Keys",
13816
13837
  "x-whop-summary": "Programmatic credentials for an account or app."
13817
13838
  },
@@ -13931,7 +13952,7 @@ var native_spec_default = {
13931
13952
  paths: {
13932
13953
  "/accounts": {
13933
13954
  get: {
13934
- description: "Lists accounts visible to the credential. User tokens return the user's business accounts; business account API keys return the requesting business account and its connected accounts.",
13955
+ description: "Lists accounts visible to the credential. User tokens return the user's business accounts; Account API keys return the requesting account and its connected accounts. Pass `parent_account_id` to return only that parent account's connected accounts.",
13935
13956
  operationId: "list",
13936
13957
  parameters: [
13937
13958
  {
@@ -13971,14 +13992,15 @@ var native_spec_default = {
13971
13992
  }
13972
13993
  },
13973
13994
  {
13974
- description: "The field to sort accounts by.",
13995
+ description: "The field to sort accounts by. `volume` requires `stats:read` on the parent account.",
13975
13996
  in: "query",
13976
13997
  name: "order",
13977
13998
  required: false,
13978
13999
  schema: {
13979
14000
  default: "created_at",
13980
14001
  enum: [
13981
- "created_at"
14002
+ "created_at",
14003
+ "volume"
13982
14004
  ],
13983
14005
  type: "string"
13984
14006
  }
@@ -13996,6 +14018,75 @@ var native_spec_default = {
13996
14018
  ],
13997
14019
  type: "string"
13998
14020
  }
14021
+ },
14022
+ {
14023
+ description: "Return only accounts with this status: `active` (includes accounts that have not entered payments review) or `suspended`.",
14024
+ in: "query",
14025
+ name: "status",
14026
+ required: false,
14027
+ schema: {
14028
+ enum: [
14029
+ "active",
14030
+ "suspended"
14031
+ ],
14032
+ type: "string"
14033
+ }
14034
+ },
14035
+ {
14036
+ description: "Free-text filter on account title or ID. `%` and `_` match literally.",
14037
+ in: "query",
14038
+ name: "query",
14039
+ required: false,
14040
+ schema: {
14041
+ type: "string"
14042
+ }
14043
+ },
14044
+ {
14045
+ description: "Return only accounts created after this ISO 8601 timestamp.",
14046
+ in: "query",
14047
+ name: "created_after",
14048
+ required: false,
14049
+ schema: {
14050
+ format: "date-time",
14051
+ type: "string"
14052
+ }
14053
+ },
14054
+ {
14055
+ description: "Return only accounts created before this ISO 8601 timestamp.",
14056
+ in: "query",
14057
+ name: "created_before",
14058
+ required: false,
14059
+ schema: {
14060
+ format: "date-time",
14061
+ type: "string"
14062
+ }
14063
+ },
14064
+ {
14065
+ description: "Return only accounts whose lifetime USD volume is at least this value. Requires `stats:read` on the parent account.",
14066
+ in: "query",
14067
+ name: "volume_min",
14068
+ required: false,
14069
+ schema: {
14070
+ type: "number"
14071
+ }
14072
+ },
14073
+ {
14074
+ description: "Return only accounts whose lifetime USD volume is at most this value. Requires `stats:read` on the parent account.",
14075
+ in: "query",
14076
+ name: "volume_max",
14077
+ required: false,
14078
+ schema: {
14079
+ type: "number"
14080
+ }
14081
+ },
14082
+ {
14083
+ description: "For platforms: the parent account ID whose direct connected accounts to return. Requires `payout:account:read` on the parent account.",
14084
+ in: "query",
14085
+ name: "parent_account_id",
14086
+ required: false,
14087
+ schema: {
14088
+ type: "string"
14089
+ }
13999
14090
  }
14000
14091
  ],
14001
14092
  responses: {
@@ -14050,6 +14141,10 @@ var native_spec_default = {
14050
14141
  },
14051
14142
  description: "accounts listed"
14052
14143
  },
14144
+ "400": {
14145
+ $ref: "#/components/responses/InvalidParameters",
14146
+ description: "invalid list parameters"
14147
+ },
14053
14148
  "401": {
14054
14149
  $ref: "#/components/responses/Unauthorized",
14055
14150
  description: "missing or invalid authentication"
@@ -14083,7 +14178,7 @@ var native_spec_default = {
14083
14178
  ]
14084
14179
  },
14085
14180
  post: {
14086
- description: "Creates an account. User tokens create business accounts; business account API keys create connected accounts. Tax fields (`tax_remitted_by`, `tax_type`, `product_tax_code_id`, `business_address`, `tax_identifiers`) are configured with Update Account, not at creation.",
14181
+ description: "Creates an account. User tokens create business accounts; Account API keys create connected accounts. Tax fields (`tax_remitted_by`, `tax_type`, `product_tax_code_id`, `business_address`, `tax_identifiers`) are configured with Update Account, not at creation.",
14087
14182
  operationId: "create",
14088
14183
  parameters: [
14089
14184
  {
@@ -14100,7 +14195,7 @@ var native_spec_default = {
14100
14195
  type: "string"
14101
14196
  },
14102
14197
  email: {
14103
- description: "The email address of the account owner. Required for business account API key requests.",
14198
+ description: "The email address of the account owner. Required for Account API key requests.",
14104
14199
  type: "string"
14105
14200
  },
14106
14201
  metadata: {
@@ -14169,7 +14264,7 @@ var native_spec_default = {
14169
14264
  },
14170
14265
  "/accounts/me": {
14171
14266
  get: {
14172
- description: "Retrieves the business account associated with the current business account API key.",
14267
+ description: "Retrieves the account associated with the current Account API key.",
14173
14268
  operationId: "me",
14174
14269
  responses: {
14175
14270
  "200": {
@@ -14279,7 +14374,7 @@ var native_spec_default = {
14279
14374
  ]
14280
14375
  },
14281
14376
  patch: {
14282
- description: "Updates an account. User tokens can update business accounts; business account API keys can update connected accounts.",
14377
+ description: "Updates an account. User tokens can update business accounts; Account API keys can update connected accounts.",
14283
14378
  operationId: "update",
14284
14379
  parameters: [
14285
14380
  {
@@ -15342,7 +15437,7 @@ var native_spec_default = {
15342
15437
  ]
15343
15438
  },
15344
15439
  title: {
15345
- description: "Balance name, present for company `platform_balance` entries (null for a personal balance).",
15440
+ description: "Balance name, present for account `platform_balance` entries (null for a personal balance).",
15346
15441
  type: [
15347
15442
  "string",
15348
15443
  "null"
@@ -15408,7 +15503,7 @@ var native_spec_default = {
15408
15503
  ]
15409
15504
  },
15410
15505
  title: {
15411
- description: "Balance name, present for company `platform_balance` entries (null for a personal balance).",
15506
+ description: "Balance name, present for account `platform_balance` entries (null for a personal balance).",
15412
15507
  type: [
15413
15508
  "string",
15414
15509
  "null"
@@ -15450,6 +15545,40 @@ var native_spec_default = {
15450
15545
  description: "IANA timezone (e.g. `America/New_York`) used to interpret campaign start/end times and to bucket reports. Defaults to `America/New_York` until explicitly overridden.",
15451
15546
  type: "string"
15452
15547
  },
15548
+ ads_triple_whale_integration: {
15549
+ description: "The account's Triple Whale integration, which pushes Whop ad spend to Triple Whale's Data-In API so it reports as a `whop` channel.",
15550
+ properties: {
15551
+ masked_api_key: {
15552
+ description: "The leading characters of the stored Data-In API key, followed by asterisks. The full key is never returned. `null` when no key is stored.",
15553
+ type: [
15554
+ "string",
15555
+ "null"
15556
+ ]
15557
+ },
15558
+ shop_domain: {
15559
+ description: "The connected Shopify store domain spend is reported for, such as `acme.myshopify.com`. `null` when no store is connected.",
15560
+ type: [
15561
+ "string",
15562
+ "null"
15563
+ ]
15564
+ },
15565
+ status: {
15566
+ description: "Where the integration stands. `requires_shopify_store` means no Shopify store is connected \u2014 Triple Whale keys records by Shopify shop, so no spend is reported until one is.",
15567
+ enum: [
15568
+ "connected",
15569
+ "not_connected",
15570
+ "requires_shopify_store"
15571
+ ],
15572
+ type: "string"
15573
+ }
15574
+ },
15575
+ required: [
15576
+ "status",
15577
+ "masked_api_key",
15578
+ "shop_domain"
15579
+ ],
15580
+ type: "object"
15581
+ },
15453
15582
  cards_auto_top_up: {
15454
15583
  description: "Whether incoming funds are automatically moved to the account's cards balance. `false` when the account has no cards balance.",
15455
15584
  type: "boolean"
@@ -15460,6 +15589,7 @@ var native_spec_default = {
15460
15589
  "ads_reporting_currency",
15461
15590
  "ads_scheduling_timezone",
15462
15591
  "ads_agreement",
15592
+ "ads_triple_whale_integration",
15463
15593
  "cards_auto_top_up"
15464
15594
  ],
15465
15595
  type: "object"
@@ -15512,7 +15642,7 @@ var native_spec_default = {
15512
15642
  ]
15513
15643
  },
15514
15644
  patch: {
15515
- description: "Updates the account's preferences. Each top-level key present in the body is replaced as a whole; omitted keys are left untouched. `ads_payment_methods` always requires a `primary` entry. `backup` is optional and any pairing is allowed \u2014 two cards, `card`+`platform_balance`, or a single method \u2014 so a card-only advertiser can fund ads without a platform balance. The `primary` and `backup` must be different sources. A `platform_balance` entry may omit `id` to use the account's default Whop balance. Configuring a `card` requires a user token; account API keys can set up platform-balance billing only.",
15645
+ description: "Updates the account's preferences. Each top-level key present in the body is replaced as a whole; omitted keys are left untouched. `ads_triple_whale_integration` takes the Data-In API key to connect with, or `null` to disconnect. `ads_payment_methods` always requires a `primary` entry. `backup` is optional and any pairing is allowed \u2014 two cards, `card`+`platform_balance`, or a single method \u2014 so a card-only advertiser can fund ads without a platform balance. The `primary` and `backup` must be different sources. A `platform_balance` entry may omit `id` to use the account's default Whop balance. Configuring a `card` requires a user token; account API keys can set up platform-balance billing only.",
15516
15646
  operationId: "update-preferences",
15517
15647
  parameters: [
15518
15648
  {
@@ -15588,6 +15718,22 @@ var native_spec_default = {
15588
15718
  description: "IANA timezone (e.g. `America/New_York`) used to interpret campaign start/end times and to bucket reports. Cannot be cleared once set \u2014 pass a new value to change it.",
15589
15719
  type: "string"
15590
15720
  },
15721
+ ads_triple_whale_integration: {
15722
+ description: "Connects or disconnects the Triple Whale integration. Requires a connected Shopify store, since Triple Whale keys spend records by Shopify shop.",
15723
+ properties: {
15724
+ api_key: {
15725
+ description: "A Triple Whale Data-In API key with the `Data-In Write: Ads` scope, validated against Triple Whale before it is stored. Pass `null` to disconnect. Connecting for the first time backfills the account's existing ad spend.",
15726
+ type: [
15727
+ "string",
15728
+ "null"
15729
+ ]
15730
+ }
15731
+ },
15732
+ required: [
15733
+ "api_key"
15734
+ ],
15735
+ type: "object"
15736
+ },
15591
15737
  cards_auto_top_up: {
15592
15738
  description: "Whether incoming funds are automatically moved to the account's cards balance. Requires a cards balance on the account.",
15593
15739
  type: "boolean"
@@ -15692,7 +15838,7 @@ var native_spec_default = {
15692
15838
  ]
15693
15839
  },
15694
15840
  title: {
15695
- description: "Balance name, present for company `platform_balance` entries (null for a personal balance).",
15841
+ description: "Balance name, present for account `platform_balance` entries (null for a personal balance).",
15696
15842
  type: [
15697
15843
  "string",
15698
15844
  "null"
@@ -15758,7 +15904,7 @@ var native_spec_default = {
15758
15904
  ]
15759
15905
  },
15760
15906
  title: {
15761
- description: "Balance name, present for company `platform_balance` entries (null for a personal balance).",
15907
+ description: "Balance name, present for account `platform_balance` entries (null for a personal balance).",
15762
15908
  type: [
15763
15909
  "string",
15764
15910
  "null"
@@ -15800,6 +15946,40 @@ var native_spec_default = {
15800
15946
  description: "IANA timezone (e.g. `America/New_York`) used to interpret campaign start/end times and to bucket reports. Defaults to `America/New_York` until explicitly overridden.",
15801
15947
  type: "string"
15802
15948
  },
15949
+ ads_triple_whale_integration: {
15950
+ description: "The account's Triple Whale integration, which pushes Whop ad spend to Triple Whale's Data-In API so it reports as a `whop` channel.",
15951
+ properties: {
15952
+ masked_api_key: {
15953
+ description: "The leading characters of the stored Data-In API key, followed by asterisks. The full key is never returned. `null` when no key is stored.",
15954
+ type: [
15955
+ "string",
15956
+ "null"
15957
+ ]
15958
+ },
15959
+ shop_domain: {
15960
+ description: "The connected Shopify store domain spend is reported for, such as `acme.myshopify.com`. `null` when no store is connected.",
15961
+ type: [
15962
+ "string",
15963
+ "null"
15964
+ ]
15965
+ },
15966
+ status: {
15967
+ description: "Where the integration stands. `requires_shopify_store` means no Shopify store is connected \u2014 Triple Whale keys records by Shopify shop, so no spend is reported until one is.",
15968
+ enum: [
15969
+ "connected",
15970
+ "not_connected",
15971
+ "requires_shopify_store"
15972
+ ],
15973
+ type: "string"
15974
+ }
15975
+ },
15976
+ required: [
15977
+ "status",
15978
+ "masked_api_key",
15979
+ "shop_domain"
15980
+ ],
15981
+ type: "object"
15982
+ },
15803
15983
  cards_auto_top_up: {
15804
15984
  description: "Whether incoming funds are automatically moved to the account's cards balance. `false` when the account has no cards balance.",
15805
15985
  type: "boolean"
@@ -15810,6 +15990,7 @@ var native_spec_default = {
15810
15990
  "ads_reporting_currency",
15811
15991
  "ads_scheduling_timezone",
15812
15992
  "ads_agreement",
15993
+ "ads_triple_whale_integration",
15813
15994
  "cards_auto_top_up"
15814
15995
  ],
15815
15996
  type: "object"
@@ -16900,6 +17081,18 @@ var native_spec_default = {
16900
17081
  type: "string"
16901
17082
  }
16902
17083
  },
17084
+ {
17085
+ description: "Filter to ad groups in these campaigns (max 100). Repeat the parameter for each id (ad_campaign_ids=a&ad_campaign_ids=b).",
17086
+ in: "query",
17087
+ name: "ad_campaign_ids",
17088
+ required: false,
17089
+ schema: {
17090
+ items: {
17091
+ type: "string"
17092
+ },
17093
+ type: "array"
17094
+ }
17095
+ },
16903
17096
  {
16904
17097
  description: "Filter to ad groups with this status.",
16905
17098
  in: "query",
@@ -18308,6 +18501,18 @@ var native_spec_default = {
18308
18501
  type: "string"
18309
18502
  }
18310
18503
  },
18504
+ {
18505
+ description: "Only return ads in these ad campaigns (max 100). Repeat the parameter for each id (ad_campaign_ids=a&ad_campaign_ids=b).",
18506
+ in: "query",
18507
+ name: "ad_campaign_ids",
18508
+ required: false,
18509
+ schema: {
18510
+ items: {
18511
+ type: "string"
18512
+ },
18513
+ type: "array"
18514
+ }
18515
+ },
18311
18516
  {
18312
18517
  description: "Only return ads in this ad group.",
18313
18518
  in: "query",
@@ -18317,6 +18522,18 @@ var native_spec_default = {
18317
18522
  type: "string"
18318
18523
  }
18319
18524
  },
18525
+ {
18526
+ description: "Only return ads in these ad groups (max 100). Repeat the parameter for each id (ad_group_ids=a&ad_group_ids=b).",
18527
+ in: "query",
18528
+ name: "ad_group_ids",
18529
+ required: false,
18530
+ schema: {
18531
+ items: {
18532
+ type: "string"
18533
+ },
18534
+ type: "array"
18535
+ }
18536
+ },
18320
18537
  {
18321
18538
  description: "Only return ads with this status.",
18322
18539
  in: "query",
@@ -19714,14 +19931,14 @@ var native_spec_default = {
19714
19931
  },
19715
19932
  "/api_keys": {
19716
19933
  get: {
19717
- description: "Lists the API keys of a company or app, newest first. Responses never include the full secret \u2014 only its obfuscated form.",
19934
+ description: "Lists the API keys of an account or app, newest first. Responses never include the full secret \u2014 only its obfuscated form.",
19718
19935
  operationId: "list",
19719
19936
  parameters: [
19720
19937
  {
19721
19938
  $ref: "#/components/parameters/ApiVersionDate"
19722
19939
  },
19723
19940
  {
19724
- description: "The company (`biz_`) or app (`app_`) tag to list API keys for.",
19941
+ description: "The account (`biz_`) or app (`app_`) tag to list API keys for.",
19725
19942
  in: "query",
19726
19943
  name: "resource_id",
19727
19944
  required: true,
@@ -19923,7 +20140,7 @@ var native_spec_default = {
19923
20140
  ]
19924
20141
  },
19925
20142
  post: {
19926
- description: "Creates an API key for a company or app. The response is the only place the full `secret_key` is returned \u2014 store it immediately. Requires a user session; API keys cannot manage API keys.",
20143
+ description: "Creates an API key for an account or app. The response is the only place the full `secret_key` is returned \u2014 store it immediately. Requires a user session; API keys cannot manage API keys.",
19927
20144
  operationId: "create",
19928
20145
  parameters: [
19929
20146
  {
@@ -19960,7 +20177,7 @@ var native_spec_default = {
19960
20177
  type: "string"
19961
20178
  },
19962
20179
  permissions: {
19963
- description: "The permissions policy for the API key: explicit permission statements, or a system role to inherit from. Statements without a `resources` array default to the owning company (company keys) or every key-addressable resource (app keys).",
20180
+ description: "The permissions policy for the API key: explicit permission statements, or a system role to inherit from. Statements without a `resources` array default to the owning account (Account API keys) or every key-addressable resource (App API keys).",
19964
20181
  properties: {
19965
20182
  statements: {
19966
20183
  description: "Explicit permission statements. Required unless `system_role` is set.",
@@ -19994,7 +20211,7 @@ var native_spec_default = {
19994
20211
  type: "array"
19995
20212
  },
19996
20213
  system_role: {
19997
- description: "A system role to inherit permissions from. Only company API keys can use a system role.",
20214
+ description: "A system role to inherit permissions from. Only Account API keys can use a system role.",
19998
20215
  enum: [
19999
20216
  "owner",
20000
20217
  "admin",
@@ -20012,7 +20229,7 @@ var native_spec_default = {
20012
20229
  type: "object"
20013
20230
  },
20014
20231
  resource_id: {
20015
- description: "The company (`biz_`) or app (`app_`) tag to create the API key for.",
20232
+ description: "The account (`biz_`) or app (`app_`) tag to create the API key for.",
20016
20233
  type: "string"
20017
20234
  },
20018
20235
  resource_type: {
@@ -20361,7 +20578,7 @@ var native_spec_default = {
20361
20578
  ]
20362
20579
  },
20363
20580
  permissions: {
20364
- description: "The permissions policy for the API key: explicit permission statements, or a system role to inherit from. Statements without a `resources` array default to the owning company (company keys) or every key-addressable resource (app keys).",
20581
+ description: "The permissions policy for the API key: explicit permission statements, or a system role to inherit from. Statements without a `resources` array default to the owning account (Account API keys) or every key-addressable resource (App API keys).",
20365
20582
  properties: {
20366
20583
  statements: {
20367
20584
  description: "Explicit permission statements. Required unless `system_role` is set.",
@@ -20395,7 +20612,7 @@ var native_spec_default = {
20395
20612
  type: "array"
20396
20613
  },
20397
20614
  system_role: {
20398
- description: "A system role to inherit permissions from. Only company API keys can use a system role.",
20615
+ description: "A system role to inherit permissions from. Only Account API keys can use a system role.",
20399
20616
  enum: [
20400
20617
  "owner",
20401
20618
  "admin",
@@ -21320,7 +21537,7 @@ var native_spec_default = {
21320
21537
  },
21321
21538
  "404": {
21322
21539
  $ref: "#/components/responses/NotFound",
21323
- description: "no company with that ID exists"
21540
+ description: "no account with that ID exists"
21324
21541
  }
21325
21542
  },
21326
21543
  security: [
@@ -21349,7 +21566,7 @@ var native_spec_default = {
21349
21566
  },
21350
21567
  "/apps/{id}": {
21351
21568
  get: {
21352
- description: "Retrieves an app by ID, claimed route, or proxy domain id. Credential fields (api_key, default_api_key, secrets) render `null` unless the caller has the corresponding developer permission on the owning company.",
21569
+ description: "Retrieves an app by ID, claimed route, or proxy domain id. Credential fields (api_key, default_api_key, secrets) render `null` unless the caller has the corresponding developer permission on the owning account.",
21353
21570
  operationId: "get",
21354
21571
  responses: {
21355
21572
  "200": {
@@ -21443,7 +21660,7 @@ var native_spec_default = {
21443
21660
  type: "string"
21444
21661
  },
21445
21662
  dashboard_path: {
21446
- description: "The URL path for the company dashboard view.",
21663
+ description: "The URL path for the account dashboard view.",
21447
21664
  type: [
21448
21665
  "string",
21449
21666
  "null"
@@ -23691,6 +23908,318 @@ var native_spec_default = {
23691
23908
  ]
23692
23909
  }
23693
23910
  },
23911
+ "/card_transactions": {
23912
+ get: {
23913
+ description: "Lists an account's card transactions, newest first. Defaults to the account the credential belongs to. Covers every card the owner has ever had, including canceled cards and spend that predates a re-application, and team members only see transactions on the cards assigned to them. Pass `transaction_ids` to fetch specific transactions instead of paging for them.",
23914
+ operationId: "transactions",
23915
+ parameters: [
23916
+ {
23917
+ $ref: "#/components/parameters/ApiVersionDate"
23918
+ },
23919
+ {
23920
+ description: "The account whose card transactions to list, prefixed `biz_`. Defaults to the credential's account.",
23921
+ in: "query",
23922
+ name: "account_id",
23923
+ required: false,
23924
+ schema: {
23925
+ type: "string"
23926
+ }
23927
+ },
23928
+ {
23929
+ description: "Return only these card transactions, each prefixed `citx_`. Repeat the parameter, or pass one comma-separated value.",
23930
+ in: "query",
23931
+ name: "transaction_ids",
23932
+ required: false,
23933
+ schema: {
23934
+ items: {
23935
+ type: "string"
23936
+ },
23937
+ type: "array"
23938
+ }
23939
+ },
23940
+ {
23941
+ description: "Return only transactions charged to these cards, each prefixed `icrd_`.",
23942
+ in: "query",
23943
+ name: "card_id",
23944
+ required: false,
23945
+ schema: {
23946
+ items: {
23947
+ type: "string"
23948
+ },
23949
+ type: "array"
23950
+ }
23951
+ },
23952
+ {
23953
+ description: "Return only transactions on cards assigned to these users, each prefixed `user_`.",
23954
+ in: "query",
23955
+ name: "cardholder_id",
23956
+ required: false,
23957
+ schema: {
23958
+ items: {
23959
+ type: "string"
23960
+ },
23961
+ type: "array"
23962
+ }
23963
+ },
23964
+ {
23965
+ description: "Return only transactions with this status.",
23966
+ in: "query",
23967
+ name: "status",
23968
+ required: false,
23969
+ schema: {
23970
+ enum: [
23971
+ "pending",
23972
+ "completed",
23973
+ "reversed",
23974
+ "declined"
23975
+ ],
23976
+ type: "string"
23977
+ }
23978
+ },
23979
+ {
23980
+ description: "Return only transactions authorized at or after this ISO 8601 timestamp.",
23981
+ in: "query",
23982
+ name: "created_after",
23983
+ required: false,
23984
+ schema: {
23985
+ type: "string"
23986
+ }
23987
+ },
23988
+ {
23989
+ description: "Return only transactions authorized at or before this ISO 8601 timestamp.",
23990
+ in: "query",
23991
+ name: "created_before",
23992
+ required: false,
23993
+ schema: {
23994
+ type: "string"
23995
+ }
23996
+ },
23997
+ {
23998
+ description: "The field to sort by. Defaults to `created_at`.",
23999
+ in: "query",
24000
+ name: "order",
24001
+ required: false,
24002
+ schema: {
24003
+ enum: [
24004
+ "created_at"
24005
+ ],
24006
+ type: "string"
24007
+ }
24008
+ },
24009
+ {
24010
+ description: "The sort direction. Defaults to `desc`.",
24011
+ in: "query",
24012
+ name: "direction",
24013
+ required: false,
24014
+ schema: {
24015
+ enum: [
24016
+ "asc",
24017
+ "desc"
24018
+ ],
24019
+ type: "string"
24020
+ }
24021
+ },
24022
+ {
24023
+ description: "The number of card transactions to return.",
24024
+ in: "query",
24025
+ name: "first",
24026
+ required: false,
24027
+ schema: {
24028
+ type: "integer"
24029
+ }
24030
+ },
24031
+ {
24032
+ description: "A cursor; returns card transactions after this position.",
24033
+ in: "query",
24034
+ name: "after",
24035
+ required: false,
24036
+ schema: {
24037
+ type: "string"
24038
+ }
24039
+ },
24040
+ {
24041
+ description: "The number of card transactions to return, counting back from the end.",
24042
+ in: "query",
24043
+ name: "last",
24044
+ required: false,
24045
+ schema: {
24046
+ type: "integer"
24047
+ }
24048
+ },
24049
+ {
24050
+ description: "A cursor; returns card transactions before this position.",
24051
+ in: "query",
24052
+ name: "before",
24053
+ required: false,
24054
+ schema: {
24055
+ type: "string"
24056
+ }
24057
+ }
24058
+ ],
24059
+ responses: {
24060
+ "200": {
24061
+ content: {
24062
+ "application/json": {
24063
+ schema: {
24064
+ properties: {
24065
+ data: {
24066
+ items: {
24067
+ $ref: "#/components/schemas/CardTransaction"
24068
+ },
24069
+ type: "array"
24070
+ },
24071
+ page_info: {
24072
+ properties: {
24073
+ end_cursor: {
24074
+ type: [
24075
+ "string",
24076
+ "null"
24077
+ ]
24078
+ },
24079
+ has_next_page: {
24080
+ type: "boolean"
24081
+ },
24082
+ has_previous_page: {
24083
+ type: "boolean"
24084
+ },
24085
+ start_cursor: {
24086
+ type: [
24087
+ "string",
24088
+ "null"
24089
+ ]
24090
+ }
24091
+ },
24092
+ required: [
24093
+ "end_cursor",
24094
+ "start_cursor",
24095
+ "has_next_page",
24096
+ "has_previous_page"
24097
+ ],
24098
+ type: "object"
24099
+ }
24100
+ },
24101
+ required: [
24102
+ "data",
24103
+ "page_info"
24104
+ ],
24105
+ type: "object"
24106
+ }
24107
+ }
24108
+ },
24109
+ description: "no owner passed falls back to the credential's account"
24110
+ },
24111
+ "400": {
24112
+ $ref: "#/components/responses/InvalidParameters",
24113
+ description: "transaction_ids is not a card transaction id"
24114
+ },
24115
+ "401": {
24116
+ $ref: "#/components/responses/Unauthorized",
24117
+ description: "unauthenticated"
24118
+ },
24119
+ "403": {
24120
+ $ref: "#/components/responses/Forbidden",
24121
+ description: "not authorized for the scope"
24122
+ }
24123
+ },
24124
+ security: [
24125
+ {
24126
+ bearerAuth: [
24127
+ "payout:account:read"
24128
+ ]
24129
+ }
24130
+ ],
24131
+ summary: "List Card Transactions",
24132
+ tags: [
24133
+ "Cards"
24134
+ ],
24135
+ "x-mint": {
24136
+ metadata: {
24137
+ sidebarTitle: "List Transactions"
24138
+ }
24139
+ },
24140
+ "x-codeSamples": [
24141
+ {
24142
+ lang: "JavaScript",
24143
+ source: "import Whop from '@whop/sdk';\n\nconst client = new Whop({\n apiKey: process.env['WHOP_API_KEY'], // This is the default and can be omitted\n});\n\n// Automatically fetches more pages as needed.\nfor await (const cardTransaction of client.cardTransactions.list()) {\n console.log(cardTransaction.id);\n}"
24144
+ }
24145
+ ]
24146
+ }
24147
+ },
24148
+ "/card_transactions/{id}": {
24149
+ get: {
24150
+ description: "Fetches a single card transaction by its `citx_` identifier. The owner defaults to the account the credential belongs to.",
24151
+ operationId: "get-transaction",
24152
+ parameters: [
24153
+ {
24154
+ $ref: "#/components/parameters/ApiVersionDate"
24155
+ },
24156
+ {
24157
+ description: "The card transaction ID, prefixed `citx_`.",
24158
+ in: "path",
24159
+ name: "id",
24160
+ required: true,
24161
+ schema: {
24162
+ type: "string"
24163
+ }
24164
+ },
24165
+ {
24166
+ description: "The account that owns the transaction, prefixed `biz_`. Defaults to the credential's account.",
24167
+ in: "query",
24168
+ name: "account_id",
24169
+ required: false,
24170
+ schema: {
24171
+ type: "string"
24172
+ }
24173
+ }
24174
+ ],
24175
+ responses: {
24176
+ "200": {
24177
+ content: {
24178
+ "application/json": {
24179
+ schema: {
24180
+ $ref: "#/components/schemas/CardTransaction"
24181
+ }
24182
+ }
24183
+ },
24184
+ description: "card transaction found"
24185
+ },
24186
+ "401": {
24187
+ $ref: "#/components/responses/Unauthorized",
24188
+ description: "unauthenticated"
24189
+ },
24190
+ "403": {
24191
+ $ref: "#/components/responses/Forbidden",
24192
+ description: "not authorized for the scope"
24193
+ },
24194
+ "404": {
24195
+ $ref: "#/components/responses/NotFound",
24196
+ description: "card transaction belongs to another owner"
24197
+ }
24198
+ },
24199
+ security: [
24200
+ {
24201
+ bearerAuth: [
24202
+ "payout:account:read"
24203
+ ]
24204
+ }
24205
+ ],
24206
+ summary: "Retrieve Card Transaction",
24207
+ tags: [
24208
+ "Cards"
24209
+ ],
24210
+ "x-mint": {
24211
+ metadata: {
24212
+ sidebarTitle: "Retrieve Transaction"
24213
+ }
24214
+ },
24215
+ "x-codeSamples": [
24216
+ {
24217
+ lang: "JavaScript",
24218
+ source: "import Whop from '@whop/sdk';\n\nconst client = new Whop({\n apiKey: process.env['WHOP_API_KEY'], // This is the default and can be omitted\n});\n\nconst cardTransaction = await client.cardTransactions.retrieve('id');\n\nconsole.log(cardTransaction.id);"
24219
+ }
24220
+ ]
24221
+ }
24222
+ },
23694
24223
  "/cards": {
23695
24224
  get: {
23696
24225
  description: "Lists the Whop cards of an account or user, including ones still being set up. Team members only see the cards assigned to them.",
@@ -23835,7 +24364,14 @@ var native_spec_default = {
23835
24364
  type: "number"
23836
24365
  },
23837
24366
  frequency: {
23838
- description: "Limit window, for example `per24HourPeriod` or `perAuthorization`.",
24367
+ description: "The window the limit amount applies to. `per_transaction` caps each individual authorization and is what a limit set with `transaction_limit` reports.",
24368
+ enum: [
24369
+ "daily",
24370
+ "weekly",
24371
+ "monthly",
24372
+ "one_time",
24373
+ "per_transaction"
24374
+ ],
23839
24375
  type: "string"
23840
24376
  }
23841
24377
  },
@@ -24042,7 +24578,7 @@ var native_spec_default = {
24042
24578
  type: "number"
24043
24579
  },
24044
24580
  spend_limit_frequency: {
24045
- description: "The spending limit window.",
24581
+ description: "The window the spend limit applies to.",
24046
24582
  enum: [
24047
24583
  "daily",
24048
24584
  "weekly",
@@ -24180,7 +24716,14 @@ var native_spec_default = {
24180
24716
  type: "number"
24181
24717
  },
24182
24718
  frequency: {
24183
- description: "Limit window, for example `per24HourPeriod` or `perAuthorization`.",
24719
+ description: "The window the limit amount applies to. `per_transaction` caps each individual authorization and is what a limit set with `transaction_limit` reports.",
24720
+ enum: [
24721
+ "daily",
24722
+ "weekly",
24723
+ "monthly",
24724
+ "one_time",
24725
+ "per_transaction"
24726
+ ],
24184
24727
  type: "string"
24185
24728
  }
24186
24729
  },
@@ -24592,7 +25135,14 @@ var native_spec_default = {
24592
25135
  type: "number"
24593
25136
  },
24594
25137
  frequency: {
24595
- description: "Limit window, for example `per24HourPeriod` or `perAuthorization`.",
25138
+ description: "The window the limit amount applies to. `per_transaction` caps each individual authorization and is what a limit set with `transaction_limit` reports.",
25139
+ enum: [
25140
+ "daily",
25141
+ "weekly",
25142
+ "monthly",
25143
+ "one_time",
25144
+ "per_transaction"
25145
+ ],
24596
25146
  type: "string"
24597
25147
  }
24598
25148
  },
@@ -24834,7 +25384,7 @@ var native_spec_default = {
24834
25384
  type: "number"
24835
25385
  },
24836
25386
  spend_limit_frequency: {
24837
- description: "The spending limit window.",
25387
+ description: "The window the spend limit applies to.",
24838
25388
  enum: [
24839
25389
  "daily",
24840
25390
  "weekly",
@@ -24972,7 +25522,14 @@ var native_spec_default = {
24972
25522
  type: "number"
24973
25523
  },
24974
25524
  frequency: {
24975
- description: "Limit window, for example `per24HourPeriod` or `perAuthorization`.",
25525
+ description: "The window the limit amount applies to. `per_transaction` caps each individual authorization and is what a limit set with `transaction_limit` reports.",
25526
+ enum: [
25527
+ "daily",
25528
+ "weekly",
25529
+ "monthly",
25530
+ "one_time",
25531
+ "per_transaction"
25532
+ ],
24976
25533
  type: "string"
24977
25534
  }
24978
25535
  },
@@ -26328,6 +26885,12 @@ var native_spec_default = {
26328
26885
  },
26329
26886
  network: {
26330
26887
  description: "Destination wallet network.",
26888
+ enum: [
26889
+ "ethereum",
26890
+ "polygon",
26891
+ "base",
26892
+ "solana"
26893
+ ],
26331
26894
  type: "string"
26332
26895
  }
26333
26896
  },
@@ -26341,7 +26904,14 @@ var native_spec_default = {
26341
26904
  type: "object"
26342
26905
  },
26343
26906
  network: {
26344
- description: "Destination network override.",
26907
+ description: "Destination network override. Defaults to the destination wallet's own network.",
26908
+ enum: [
26909
+ "ethereum",
26910
+ "polygon",
26911
+ "base",
26912
+ "solana",
26913
+ null
26914
+ ],
26345
26915
  type: [
26346
26916
  "string",
26347
26917
  "null"
@@ -26436,8 +27006,15 @@ var native_spec_default = {
26436
27006
  ]
26437
27007
  },
26438
27008
  rails: {
26439
- description: "Active deposit rails for this currency, such as `ach`, `wire`, or `sepa`.",
27009
+ description: "Active deposit rails for this currency.",
26440
27010
  items: {
27011
+ enum: [
27012
+ "ach",
27013
+ "wire",
27014
+ "sepa",
27015
+ "fps",
27016
+ "chaps"
27017
+ ],
26441
27018
  type: "string"
26442
27019
  },
26443
27020
  type: "array"
@@ -26500,7 +27077,19 @@ var native_spec_default = {
26500
27077
  ]
26501
27078
  },
26502
27079
  name: {
26503
- description: "Network display name, such as `Ethereum` or `Solana`.",
27080
+ description: "Network display name.",
27081
+ enum: [
27082
+ "Ethereum",
27083
+ "Solana",
27084
+ "Base",
27085
+ "BNB Smart Chain",
27086
+ "Hyperliquid",
27087
+ "Hypercore",
27088
+ "MegaETH",
27089
+ "Polygon",
27090
+ "Plasma",
27091
+ "Arbitrum"
27092
+ ],
26504
27093
  type: "string"
26505
27094
  },
26506
27095
  supported_currencies: {
@@ -26515,7 +27104,28 @@ var native_spec_default = {
26515
27104
  ]
26516
27105
  },
26517
27106
  name: {
26518
- description: "Token symbol, such as `USDC`.",
27107
+ description: "Token symbol.",
27108
+ enum: [
27109
+ "ARB",
27110
+ "BNB",
27111
+ "ETH",
27112
+ "EURC",
27113
+ "HYPE",
27114
+ "PYUSD",
27115
+ "SOL",
27116
+ "USD1",
27117
+ "USDC",
27118
+ "USDC.e",
27119
+ "USDG",
27120
+ "USDT",
27121
+ "USDT0",
27122
+ "USDe",
27123
+ "USDm",
27124
+ "XO",
27125
+ "XPL",
27126
+ "pUSD",
27127
+ "wETH"
27128
+ ],
26519
27129
  type: "string"
26520
27130
  }
26521
27131
  },
@@ -27327,7 +27937,7 @@ var native_spec_default = {
27327
27937
  },
27328
27938
  "/events": {
27329
27939
  get: {
27330
- description: "Lists identity-linked events, most recent first. Pass identifier for one person's journey, or omit it to list events for an account within an explicit time range. Events are shaped like the POST /events intake: attribution in context, identity in user.",
27940
+ description: "Lists identity-linked events, most recent first by default. Pass identifier for one person's journey, or omit it to list events for an account within an explicit time range. Pass direction=asc to read a journey forwards from where it starts. Events are shaped like the POST /events intake: attribution in context, identity in user.",
27331
27941
  operationId: "list",
27332
27942
  parameters: [
27333
27943
  {
@@ -27395,6 +28005,20 @@ var native_spec_default = {
27395
28005
  type: "string"
27396
28006
  }
27397
28007
  },
28008
+ {
28009
+ description: "The order events are returned in by time. Defaults to desc (most recent first); asc reads a journey forwards from where it starts. after and before always page forwards and backwards through that order.",
28010
+ in: "query",
28011
+ name: "direction",
28012
+ required: false,
28013
+ schema: {
28014
+ default: "desc",
28015
+ enum: [
28016
+ "asc",
28017
+ "desc"
28018
+ ],
28019
+ type: "string"
28020
+ }
28021
+ },
27398
28022
  {
27399
28023
  description: "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.",
27400
28024
  in: "query",
@@ -27516,6 +28140,20 @@ var native_spec_default = {
27516
28140
  "null"
27517
28141
  ]
27518
28142
  },
28143
+ ad_click_id: {
28144
+ description: "Stable identity for the ad click this event belongs to. Every event from one click carries the same value, so events group into clicks without re-deriving them.",
28145
+ type: [
28146
+ "string",
28147
+ "null"
28148
+ ]
28149
+ },
28150
+ ad_click_type: {
28151
+ description: "How the ad click was identified: the network's click-id param (`fbclid`, `ttclid`, `gclid`, `gbraid`, `wbraid`, `twclid`) or `synthetic` when the click carried none.",
28152
+ type: [
28153
+ "string",
28154
+ "null"
28155
+ ]
28156
+ },
27519
28157
  ad_id: {
27520
28158
  type: [
27521
28159
  "string",
@@ -27528,6 +28166,20 @@ var native_spec_default = {
27528
28166
  "null"
27529
28167
  ]
27530
28168
  },
28169
+ source_type: {
28170
+ description: "How this event counts as an acquisition touch, using the same rule attribution credits a conversion with. `ad_click` and `lead_form` resolved to a Whop ad; `external_ad_click` is a paid click on a campaign run outside Whop; `referrer` is organic. Null when the event is not a touch.",
28171
+ enum: [
28172
+ "ad_click",
28173
+ "lead_form",
28174
+ "external_ad_click",
28175
+ "referrer",
28176
+ null
28177
+ ],
28178
+ type: [
28179
+ "string",
28180
+ "null"
28181
+ ]
28182
+ },
27531
28183
  utm_campaign: {
27532
28184
  type: [
27533
28185
  "string",
@@ -27686,6 +28338,72 @@ var native_spec_default = {
27686
28338
  "null"
27687
28339
  ]
27688
28340
  },
28341
+ ad: {
28342
+ description: "The Whop ad this event's click resolved to.",
28343
+ properties: {
28344
+ id: {
28345
+ type: "string"
28346
+ },
28347
+ thumbnail_url: {
28348
+ type: [
28349
+ "string",
28350
+ "null"
28351
+ ]
28352
+ },
28353
+ title: {
28354
+ type: [
28355
+ "string",
28356
+ "null"
28357
+ ]
28358
+ }
28359
+ },
28360
+ type: [
28361
+ "object",
28362
+ "null"
28363
+ ]
28364
+ },
28365
+ ad_campaign: {
28366
+ description: "The Whop ad campaign this event's click resolved to, read from the ad entity tree rather than the click's url params.",
28367
+ properties: {
28368
+ id: {
28369
+ type: "string"
28370
+ },
28371
+ platform: {
28372
+ type: [
28373
+ "string",
28374
+ "null"
28375
+ ]
28376
+ },
28377
+ title: {
28378
+ type: [
28379
+ "string",
28380
+ "null"
28381
+ ]
28382
+ }
28383
+ },
28384
+ type: [
28385
+ "object",
28386
+ "null"
28387
+ ]
28388
+ },
28389
+ ad_group: {
28390
+ description: "The Whop ad group this event's click resolved to.",
28391
+ properties: {
28392
+ id: {
28393
+ type: "string"
28394
+ },
28395
+ title: {
28396
+ type: [
28397
+ "string",
28398
+ "null"
28399
+ ]
28400
+ }
28401
+ },
28402
+ type: [
28403
+ "object",
28404
+ "null"
28405
+ ]
28406
+ },
27689
28407
  app: {
27690
28408
  properties: {
27691
28409
  domain_id: {
@@ -27715,6 +28433,52 @@ var native_spec_default = {
27715
28433
  "null"
27716
28434
  ]
27717
28435
  },
28436
+ audience: {
28437
+ description: "The saved audience this event came from. Present on the identify events an audience ingest writes for each of its members.",
28438
+ properties: {
28439
+ audience_type: {
28440
+ enum: [
28441
+ "custom",
28442
+ "lookalike",
28443
+ null
28444
+ ],
28445
+ type: [
28446
+ "string",
28447
+ "null"
28448
+ ]
28449
+ },
28450
+ file_name: {
28451
+ type: [
28452
+ "string",
28453
+ "null"
28454
+ ]
28455
+ },
28456
+ id: {
28457
+ type: "string"
28458
+ },
28459
+ source_type: {
28460
+ enum: [
28461
+ "csv_upload",
28462
+ "people_filter",
28463
+ null
28464
+ ],
28465
+ type: [
28466
+ "string",
28467
+ "null"
28468
+ ]
28469
+ },
28470
+ title: {
28471
+ type: [
28472
+ "string",
28473
+ "null"
28474
+ ]
28475
+ }
28476
+ },
28477
+ type: [
28478
+ "object",
28479
+ "null"
28480
+ ]
28481
+ },
27718
28482
  payment: {
27719
28483
  properties: {
27720
28484
  card_brand: {
@@ -27959,7 +28723,11 @@ var native_spec_default = {
27959
28723
  }
27960
28724
  }
27961
28725
  },
27962
- description: "account events listed"
28726
+ description: "events listed oldest first"
28727
+ },
28728
+ "400": {
28729
+ $ref: "#/components/responses/InvalidParameters",
28730
+ description: "invalid direction"
27963
28731
  },
27964
28732
  "401": {
27965
28733
  $ref: "#/components/responses/Unauthorized",
@@ -28679,6 +29447,15 @@ var native_spec_default = {
28679
29447
  {
28680
29448
  $ref: "#/components/parameters/ApiVersionDate"
28681
29449
  },
29450
+ {
29451
+ description: "Filter to one or more event names, comma separated \u2014 for example `bounty.payout.completed,affiliate.payout.completed`. Omit for every event in the feed. Names outside the feed's own set are rejected.",
29452
+ in: "query",
29453
+ name: "event",
29454
+ required: false,
29455
+ schema: {
29456
+ type: "string"
29457
+ }
29458
+ },
28682
29459
  {
28683
29460
  description: "The number of events to return.",
28684
29461
  in: "query",
@@ -28718,9 +29495,11 @@ var native_spec_default = {
28718
29495
  items: {
28719
29496
  properties: {
28720
29497
  event_name: {
28721
- description: "The event recorded \u2014 currently always `payment.completed`, matching the [event](/api-reference/beta/events/event) of the same name.",
29498
+ description: "The event recorded, matching the [event](/api-reference/beta/events/event) of the same name: a purchase, a bounty payout, or an affiliate commission payout.",
28722
29499
  enum: [
28723
- "payment.completed"
29500
+ "payment.completed",
29501
+ "bounty.payout.completed",
29502
+ "affiliate.payout.completed"
28724
29503
  ],
28725
29504
  type: "string"
28726
29505
  },
@@ -28737,7 +29516,7 @@ var native_spec_default = {
28737
29516
  ]
28738
29517
  },
28739
29518
  user: {
28740
- description: "Coarse location of the buyer, shaped like the event `user` block. Omitted entirely when nothing is known.",
29519
+ description: "Coarse location, shaped like the event `user` block. The buyer on a purchase; on a payout it is the paying side \u2014 the poster for a bounty, the paying company for an affiliate commission, which resolves to a country with no city. Omitted entirely when nothing is known.",
28741
29520
  properties: {
28742
29521
  city: {
28743
29522
  description: "City name. Omitted when unknown.",
@@ -28796,7 +29575,10 @@ var native_spec_default = {
28796
29575
  }
28797
29576
  }
28798
29577
  },
28799
- description: "pulse feed retrieved"
29578
+ description: "pulse feed filtered to one event"
29579
+ },
29580
+ "400": {
29581
+ description: "event outside the pulse feed"
28800
29582
  }
28801
29583
  },
28802
29584
  security: [],
@@ -28814,7 +29596,7 @@ var native_spec_default = {
28814
29596
  },
28815
29597
  "/events/validate_pixel": {
28816
29598
  post: {
28817
- description: "Checks whether the Whop pixel is installed for an account. Recent pixel events count as proof on their own, so an account that has sent data lately comes back installed without a `url`. Pass a `url` and events from that page settle it; if it hasn't sent any lately the page is fetched and read for the pixel and the conversion events wired on it. `installed` is only true when the pixel was actually seen \u2014 in the account's events or in the page.",
29599
+ description: "Checks whether the Whop pixel is installed for an account. Recent pixel events count as proof on their own, so an account that has sent data lately comes back installed without a `url`. Pass a `url` and events from that page settle it; conversion events are also read across the hostname because they commonly fire on a later confirmation page. If the requested page hasn't sent any events lately, it is fetched and read for the pixel and conversion events wired on it. `installed` is only true when the pixel was actually seen \u2014 in the account's events or in the page.",
28818
29600
  operationId: "validate_pixel",
28819
29601
  parameters: [
28820
29602
  {
@@ -28915,14 +29697,29 @@ var native_spec_default = {
28915
29697
  "ad_campaigns",
28916
29698
  "ad_groups",
28917
29699
  "ads",
29700
+ "audiences",
29701
+ "bounties",
29702
+ "bounty_submissions",
29703
+ "disputes",
29704
+ "events",
29705
+ "financial-activity",
28918
29706
  "members",
29707
+ "memberships",
29708
+ "payouts",
29709
+ "people",
29710
+ "plans",
29711
+ "products",
29712
+ "resolution_center_cases",
29713
+ "shipments",
29714
+ "social_accounts",
29715
+ "team_members",
29716
+ "transfers",
29717
+ "webhooks",
28919
29718
  "receipts",
28920
29719
  "unclaimed_memberships",
28921
- "memberships",
28922
29720
  "tracking_links",
28923
29721
  "promo_codes",
28924
29722
  "resolutions",
28925
- "disputes",
28926
29723
  "entries",
28927
29724
  "leads",
28928
29725
  "content_rewards_submissions",
@@ -29045,7 +29842,7 @@ var native_spec_default = {
29045
29842
  }
29046
29843
  }
29047
29844
  },
29048
- description: "account has no exports"
29845
+ description: "exports listed"
29049
29846
  },
29050
29847
  "400": {
29051
29848
  $ref: "#/components/responses/InvalidParameters",
@@ -29057,7 +29854,7 @@ var native_spec_default = {
29057
29854
  },
29058
29855
  "403": {
29059
29856
  $ref: "#/components/responses/Forbidden",
29060
- description: "account has no exports and the caller holds no export scope"
29857
+ description: "holds no export scope on the account"
29061
29858
  }
29062
29859
  },
29063
29860
  security: [
@@ -29111,23 +29908,38 @@ var native_spec_default = {
29111
29908
  type: "array"
29112
29909
  },
29113
29910
  filters: {
29114
- description: "Resource-specific filters, mirroring the dashboard table filters.",
29911
+ description: "Resource-specific filters. For native REST resources (`payouts`, `transfers`, `memberships`) 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 (21)</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>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 audience type: `custom` (uploaded lists) or `lookalike`. One of `custom`, `lookalike`.\n- `source_type` `string` \u2014 Filter by member source: `csv_upload` (uploaded lists) or `people_filter` (automatic audiences built from saved People filters). One of `csv_upload`, `people_filter`.\n\n</details>\n<details>\n<summary>bounties (5)</summary>\n\nMirrors the filtering query params of `GET /api/v1/bounties`.\n\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- `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>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.\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). Restricts the list to conversion targets attributed to that source \u2014 the debuggability twin of a metric cell's source parameter.\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 (8)</summary>\n\nMirrors the filtering query params of `GET /api/v1/financial-activity`.\n\n- `available_after` `string` \u2014 Only include rows whose funds became withdrawable on or after this `YYYY-MM-DD` settlement date (UTC), distinct from posted_at. Requires currency.\n- `available_before` `string` \u2014 Only include rows whose funds became withdrawable on or before this `YYYY-MM-DD` settlement 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- `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- `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- `user_id` `string` \u2014 The owning user ID (a user_ identifier). Provide this or account_id.\n\n</details>\n<details>\n<summary>members (5)</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\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 (2)</summary>\n\nMirrors the filtering query params of `GET /api/v1/payouts`.\n\n- `currency` `string` \u2014 Optional currency code filter, for example `usd`.\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 (20)</summary>\n\nMirrors the filtering query params of `GET /api/v1/people`.\n\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 whose most recent visit came 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_from` `string` \u2014 With event_to plus an event or source filter, switches to exact-population mode: person ids are resolved and paginated on the events side within this window (the same query the people metric counts), then hydrated per page.\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 event window for exact-population mode.\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- `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- `phone` `string` \u2014 Only include the person linked to this phone number.\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- `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.\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 (2)</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- `visibilities` `string[]` \u2014 Filter to only products matching these visibility states.\n\n</details>\n<details>\n<summary>resolution_center_cases (5)</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\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`.\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`, `sales_manager`, `moderator`, `advertiser`, `app_manager`, `support`, `manager`, `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 (1)</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\n</details>\n</details>",
29115
29912
  type: "object"
29116
29913
  },
29117
29914
  resource: {
29118
- description: "The resource to export, e.g. `receipts`, `members`, or `ads`.",
29915
+ description: "The resource to export, e.g. `payouts`, `receipts`, or `members`.",
29119
29916
  enum: [
29120
29917
  "ad_campaigns",
29121
29918
  "ad_groups",
29122
29919
  "ads",
29920
+ "audiences",
29921
+ "bounties",
29922
+ "bounty_submissions",
29923
+ "disputes",
29924
+ "events",
29925
+ "financial-activity",
29123
29926
  "members",
29927
+ "memberships",
29928
+ "payouts",
29929
+ "people",
29930
+ "plans",
29931
+ "products",
29932
+ "resolution_center_cases",
29933
+ "shipments",
29934
+ "social_accounts",
29935
+ "team_members",
29936
+ "transfers",
29937
+ "webhooks",
29124
29938
  "receipts",
29125
29939
  "unclaimed_memberships",
29126
- "memberships",
29127
29940
  "tracking_links",
29128
29941
  "promo_codes",
29129
29942
  "resolutions",
29130
- "disputes",
29131
29943
  "entries",
29132
29944
  "leads",
29133
29945
  "content_rewards_submissions",
@@ -29212,7 +30024,7 @@ var native_spec_default = {
29212
30024
  }
29213
30025
  }
29214
30026
  },
29215
- description: "expired export has no download link"
30027
+ description: "export found"
29216
30028
  },
29217
30029
  "401": {
29218
30030
  $ref: "#/components/responses/Unauthorized",
@@ -29305,6 +30117,101 @@ var native_spec_default = {
29305
30117
  required: false,
29306
30118
  schema: {
29307
30119
  items: {
30120
+ enum: [
30121
+ "ad_budget_release",
30122
+ "ad_campaign_budget",
30123
+ "ad_publisher_payout",
30124
+ "ad_publisher_payout_received",
30125
+ "ad_spend_charge",
30126
+ "affiliate_fee",
30127
+ "airdrop",
30128
+ "airdrop_link_created",
30129
+ "airdrop_link_redeemed",
30130
+ "airdrop_link_returned",
30131
+ "airdrop_reversal",
30132
+ "application_fee",
30133
+ "application_fee_payout",
30134
+ "bank_transfer",
30135
+ "billing_percentage_fee",
30136
+ "buyer_fee",
30137
+ "card_spend_authorization",
30138
+ "card_spend_authorization_void",
30139
+ "card_spend_refund",
30140
+ "company_referral",
30141
+ "cross_border_percentage_fee",
30142
+ "currency_conversion_incoming",
30143
+ "currency_conversion_outgoing",
30144
+ "dispute_alert_fee",
30145
+ "dispute_hold_adjustment",
30146
+ "fees",
30147
+ "fraud_prevention_fee",
30148
+ "fx_percentage_fee",
30149
+ "high_risk_merchant_fee",
30150
+ "installment_default",
30151
+ "internal_balance_transfer_incoming",
30152
+ "internal_balance_transfer_outgoing",
30153
+ "legacy_crypto_payment",
30154
+ "legacy_payment",
30155
+ "legacy_payment_refund",
30156
+ "license_sale",
30157
+ "license_sale_commission",
30158
+ "license_sale_revenue",
30159
+ "misc_purchase",
30160
+ "misc_refund",
30161
+ "misc_reversal",
30162
+ "onchain_deposit",
30163
+ "onchain_swap_target",
30164
+ "onchain_wallet_transfer_incoming",
30165
+ "onchain_wallet_transfer_outgoing",
30166
+ "orchestration_percentage_fee",
30167
+ "passthrough_gmv",
30168
+ "payment_dispute",
30169
+ "payment_dispute_adjustment",
30170
+ "payment_dispute_fee",
30171
+ "payment_dispute_reversal",
30172
+ "payment_gross",
30173
+ "payment_gross_reversal",
30174
+ "payment_processing_fixed_fee",
30175
+ "payment_processing_percentage_fee",
30176
+ "payment_referral",
30177
+ "payment_referral_reversal",
30178
+ "payment_refund",
30179
+ "payment_refund_reversal",
30180
+ "payment_revshare",
30181
+ "payment_revshare_payout",
30182
+ "payment_revshare_refund",
30183
+ "payment_revshare_reversal",
30184
+ "payout_fee",
30185
+ "platform_affiliate_payment",
30186
+ "platform_affiliate_payment_reversal",
30187
+ "platform_balance_payment",
30188
+ "platform_balance_payment_refund",
30189
+ "platform_balance_transfer_incoming",
30190
+ "platform_balance_transfer_outgoing",
30191
+ "platform_covered_dispute",
30192
+ "promo_reversal",
30193
+ "referral_bonus",
30194
+ "resolution_center_refund",
30195
+ "revshare_percentage_fee",
30196
+ "sales_tax_fee",
30197
+ "sales_tax_remittance",
30198
+ "sales_tax_remittance_reversal",
30199
+ "software_rental_revshare",
30200
+ "software_rental_transaction",
30201
+ "stripe_domestic_processing_fee",
30202
+ "stripe_international_processing_fee",
30203
+ "three_ds_fixed_fee",
30204
+ "topup",
30205
+ "topup_fee",
30206
+ "topup_reversal",
30207
+ "treasury_payin",
30208
+ "whop_processing_fee",
30209
+ "withdrawal",
30210
+ "withdrawal_clawback",
30211
+ "withdrawal_clawback_reversal",
30212
+ "withdrawal_reclassification",
30213
+ "withdrawal_reversal"
30214
+ ],
29308
30215
  type: "string"
29309
30216
  },
29310
30217
  type: "array"
@@ -29490,9 +30397,9 @@ var native_spec_default = {
29490
30397
  required: true,
29491
30398
  schema: {
29492
30399
  enum: [
29493
- "balance_activity",
30400
+ "balance_summary",
29494
30401
  "income_statement",
29495
- "balance_summary"
30402
+ "balance_activity"
29496
30403
  ],
29497
30404
  type: "string"
29498
30405
  }
@@ -29549,7 +30456,7 @@ var native_spec_default = {
29549
30456
  }
29550
30457
  },
29551
30458
  {
29552
- description: "IANA timezone (for example `America/New_York`) used to bucket report periods and to interpret calendar-day boundaries for balance snapshots. Defaults to UTC. from_date/to_date remain exact instants regardless of this setting. Platform-wide (global) reports are UTC-only and reject other timezones.",
30459
+ description: "IANA timezone (for example `America/New_York`) used to bucket report periods and to interpret calendar-day boundaries for balance snapshots. Defaults to UTC. from_date/to_date remain exact instants regardless of this setting.",
29553
30460
  in: "query",
29554
30461
  name: "timezone",
29555
30462
  required: false,
@@ -29602,6 +30509,12 @@ var native_spec_default = {
29602
30509
  type: "array"
29603
30510
  },
29604
30511
  report_type: {
30512
+ description: "The report that was generated, echoing the requested `report_type`.",
30513
+ enum: [
30514
+ "balance_summary",
30515
+ "income_statement",
30516
+ "balance_activity"
30517
+ ],
29605
30518
  type: "string"
29606
30519
  },
29607
30520
  rows: {
@@ -29629,9 +30542,279 @@ var native_spec_default = {
29629
30542
  type: "number"
29630
30543
  },
29631
30544
  grouping: {
30545
+ description: "The family the row's `line_category` rolls up into. Balance summary rows are always `balance`.",
30546
+ enum: [
30547
+ "advertising",
30548
+ "affiliates_and_revshare",
30549
+ "airdrops",
30550
+ "bad_debt",
30551
+ "balance",
30552
+ "clawbacks",
30553
+ "connected_accounts",
30554
+ "crypto",
30555
+ "disputes",
30556
+ "fees",
30557
+ "fx",
30558
+ "legacy",
30559
+ "misc",
30560
+ "other",
30561
+ "payments",
30562
+ "refunds",
30563
+ "reserves",
30564
+ "transfers",
30565
+ "wallets_and_balance",
30566
+ "withdrawals"
30567
+ ],
29632
30568
  type: "string"
29633
30569
  },
29634
30570
  line_category: {
30571
+ description: "The ledger line category the row aggregates. Balance summary rows carry the balance bucket instead.",
30572
+ enum: [
30573
+ "account_settlement",
30574
+ "ad_balance_funding_receipt",
30575
+ "ad_budget_release",
30576
+ "ad_campaign_budget",
30577
+ "ad_funding_disbursement",
30578
+ "ad_income_expense",
30579
+ "ad_income_receipt",
30580
+ "ad_network_cost",
30581
+ "ad_network_settlement",
30582
+ "ad_publisher_payout",
30583
+ "ad_publisher_payout_received",
30584
+ "ad_spend_charge",
30585
+ "ad_spend_margin",
30586
+ "ads_card_spread",
30587
+ "affiliate_fee",
30588
+ "aggregated_fee",
30589
+ "airdrop",
30590
+ "airdrop_expense",
30591
+ "airdrop_expense_reversal",
30592
+ "airdrop_link_canceled",
30593
+ "airdrop_link_claimed",
30594
+ "airdrop_link_created",
30595
+ "airdrop_link_funded",
30596
+ "airdrop_link_redeemed",
30597
+ "airdrop_link_returned",
30598
+ "airdrop_reversal",
30599
+ "application_fee",
30600
+ "application_fee_payable",
30601
+ "application_fee_payout",
30602
+ "available",
30603
+ "bad_debt_expense",
30604
+ "bad_debt_offset",
30605
+ "balance_reservation",
30606
+ "balance_reservation_hold",
30607
+ "balance_reservation_release",
30608
+ "balance_reservation_reversal",
30609
+ "billing_percentage_fee",
30610
+ "buyer_fee",
30611
+ "card_interchange",
30612
+ "card_interchange_receivable",
30613
+ "card_load_deposit",
30614
+ "card_load_transfer",
30615
+ "card_spend_authorization",
30616
+ "card_spend_authorization_hold",
30617
+ "card_spend_authorization_void",
30618
+ "card_spend_authorization_void_release",
30619
+ "card_spend_capture",
30620
+ "card_spend_capture_offset",
30621
+ "card_spend_refund",
30622
+ "card_spend_refund_offset",
30623
+ "card_unload_deposit",
30624
+ "card_unload_transfer",
30625
+ "clawback_fee",
30626
+ "clawback_receivable",
30627
+ "clawback_receivable_reversal",
30628
+ "clawback_receivable_settlement",
30629
+ "clawback_receivable_settlement_reversal",
30630
+ "company_referral",
30631
+ "connected_account_clawback",
30632
+ "cross_border_percentage_fee",
30633
+ "crypto",
30634
+ "currency_conversion_incoming",
30635
+ "currency_conversion_outgoing",
30636
+ "dispute_alert_fee",
30637
+ "dispute_hold",
30638
+ "dispute_hold_adjustment",
30639
+ "dispute_hold_blocked",
30640
+ "dispute_payable_clearing",
30641
+ "dispute_payable_reversal",
30642
+ "dispute_settlement",
30643
+ "dispute_settlement_reversal",
30644
+ "dispute_unreconciled_clearing",
30645
+ "dispute_unreconciled_reversal",
30646
+ "external_account_connection_fee",
30647
+ "external_card_load_deposit",
30648
+ "external_card_load_offset",
30649
+ "fraud_prevention_fee",
30650
+ "fx_gain_loss",
30651
+ "fx_markup",
30652
+ "fx_percentage_fee",
30653
+ "fx_settlement_gain_loss",
30654
+ "high_risk_merchant_fee",
30655
+ "identity_verification_fee",
30656
+ "installment_default",
30657
+ "internal_balance_transfer_incoming",
30658
+ "internal_balance_transfer_outgoing",
30659
+ "legacy_crypto_payment",
30660
+ "legacy_payment",
30661
+ "legacy_payment_refund",
30662
+ "license_sale",
30663
+ "license_sale_commission",
30664
+ "license_sale_revenue",
30665
+ "marketplace_affiliate_fee",
30666
+ "misc_purchase",
30667
+ "misc_refund",
30668
+ "misc_reversal",
30669
+ "onchain_deposit",
30670
+ "onchain_deposit_offset",
30671
+ "onchain_swap_offset",
30672
+ "onchain_swap_source",
30673
+ "onchain_swap_target",
30674
+ "onchain_wallet_transfer_incoming",
30675
+ "onchain_wallet_transfer_outgoing",
30676
+ "onchain_withdrawal",
30677
+ "onchain_withdrawal_offset",
30678
+ "orchestration_percentage_fee",
30679
+ "passthrough_gmv",
30680
+ "passthrough_gmv_offset",
30681
+ "payment_dispute",
30682
+ "payment_dispute_adjustment",
30683
+ "payment_dispute_fee",
30684
+ "payment_dispute_reversal",
30685
+ "payment_gross",
30686
+ "payment_gross_reversal",
30687
+ "payment_processing_fixed_fee",
30688
+ "payment_processing_percentage_fee",
30689
+ "payment_receivable_clearing",
30690
+ "payment_receivable_reversal",
30691
+ "payment_receivable_settlement",
30692
+ "payment_referral",
30693
+ "payment_referral_payable",
30694
+ "payment_referral_refund",
30695
+ "payment_referral_reversal",
30696
+ "payment_refund",
30697
+ "payment_refund_fee",
30698
+ "payment_refund_reversal",
30699
+ "payment_revshare",
30700
+ "payment_revshare_payout",
30701
+ "payment_revshare_refund",
30702
+ "payment_revshare_reversal",
30703
+ "payment_unreconciled_clearing",
30704
+ "payment_unreconciled_reversal",
30705
+ "payout_fee",
30706
+ "payout_receivable",
30707
+ "payout_subsidy",
30708
+ "pending",
30709
+ "platform_affiliate_payment",
30710
+ "platform_affiliate_payment_reversal",
30711
+ "platform_balance_payment",
30712
+ "platform_balance_payment_refund",
30713
+ "platform_balance_transfer_fee",
30714
+ "platform_balance_transfer_incoming",
30715
+ "platform_balance_transfer_outgoing",
30716
+ "platform_covered_dispute",
30717
+ "platform_earning",
30718
+ "platform_earning_settlement",
30719
+ "platform_earning_unreconciled_clearing",
30720
+ "promo_reversal",
30721
+ "psp_account_updater_fee",
30722
+ "psp_adjusted_processing_fee",
30723
+ "psp_authentication_fee",
30724
+ "psp_billing_fee",
30725
+ "psp_clawback_fee",
30726
+ "psp_clawback_settlement",
30727
+ "psp_clawback_settlement_reversal",
30728
+ "psp_commission_fee",
30729
+ "psp_connect_fee",
30730
+ "psp_dispute_alert_fee",
30731
+ "psp_dispute_fee",
30732
+ "psp_dispute_payable",
30733
+ "psp_external_account_connection_fee",
30734
+ "psp_fixed_fee",
30735
+ "psp_gateway_fee",
30736
+ "psp_identity_verification_fee",
30737
+ "psp_interchange_fee",
30738
+ "psp_invoice_tax_fee",
30739
+ "psp_invoicing_fee",
30740
+ "psp_markup_fee",
30741
+ "psp_network_token_fee",
30742
+ "psp_optimization_fee",
30743
+ "psp_payment_method_fee",
30744
+ "psp_payment_receivable",
30745
+ "psp_payout_fee",
30746
+ "psp_payout_receivable",
30747
+ "psp_payout_settlement",
30748
+ "psp_payout_settlement_reversal",
30749
+ "psp_pool_clearing",
30750
+ "psp_pool_settlement",
30751
+ "psp_processing_fee",
30752
+ "psp_receivable_pooled",
30753
+ "psp_recipient_wallet_load",
30754
+ "psp_refund_fee",
30755
+ "psp_refund_payable",
30756
+ "psp_reserve_hold",
30757
+ "psp_reserve_release",
30758
+ "psp_risk_fee",
30759
+ "psp_scheme_fee",
30760
+ "psp_service_fee",
30761
+ "psp_tax_filing_fee",
30762
+ "psp_tax_service_fee",
30763
+ "psp_terminal_fee",
30764
+ "psp_transfer_settlement",
30765
+ "psp_transfer_settlement_reversal",
30766
+ "psp_treasury_fee",
30767
+ "psp_variable_fee",
30768
+ "psp_withholding_tax",
30769
+ "recipient_wallet_load",
30770
+ "referral_bonus",
30771
+ "refund_payable_clearing",
30772
+ "refund_payable_reversal",
30773
+ "refund_settlement",
30774
+ "refund_settlement_reversal",
30775
+ "refund_unreconciled_clearing",
30776
+ "refund_unreconciled_reversal",
30777
+ "reserve",
30778
+ "resolution_center_refund",
30779
+ "revshare_percentage_fee",
30780
+ "sales_tax_collected",
30781
+ "sales_tax_collected_reversal",
30782
+ "sales_tax_fee",
30783
+ "sales_tax_remittance",
30784
+ "sales_tax_remittance_reversal",
30785
+ "settlement_rounding_variance",
30786
+ "software_rental_revshare",
30787
+ "software_rental_transaction",
30788
+ "stripe_domestic_processing_fee",
30789
+ "stripe_international_processing_fee",
30790
+ "swap_fee",
30791
+ "tax_filing_fee",
30792
+ "three_ds_fixed_fee",
30793
+ "topup",
30794
+ "topup_fee",
30795
+ "topup_reversal",
30796
+ "treasury_fee",
30797
+ "treasury_payin",
30798
+ "treasury_payin_receivable",
30799
+ "whop_processing_fee",
30800
+ "whop_swap_fee_received",
30801
+ "withdrawal",
30802
+ "withdrawal_clawback",
30803
+ "withdrawal_clawback_reversal",
30804
+ "withdrawal_fee",
30805
+ "withdrawal_fee_reversal",
30806
+ "withdrawal_markup_fee",
30807
+ "withdrawal_markup_fee_payout",
30808
+ "withdrawal_markup_fee_payout_reversal",
30809
+ "withdrawal_markup_fee_reversal",
30810
+ "withdrawal_payable",
30811
+ "withdrawal_payable_clearing",
30812
+ "withdrawal_payable_clearing_reversal",
30813
+ "withdrawal_payable_reversal",
30814
+ "withdrawal_reclassification",
30815
+ "withdrawal_reversal",
30816
+ "withdrawal_topup_adjustment"
30817
+ ],
29635
30818
  type: "string"
29636
30819
  },
29637
30820
  line_count: {
@@ -29641,9 +30824,11 @@ var native_spec_default = {
29641
30824
  ]
29642
30825
  },
29643
30826
  period: {
30827
+ description: "Start of the time bucket this row covers, truncated to `group_by`.",
29644
30828
  type: "string"
29645
30829
  },
29646
30830
  profit_and_loss_section: {
30831
+ description: "Which side of the income statement the category falls on, or `null` when it is not a P&L category.",
29647
30832
  enum: [
29648
30833
  "revenue",
29649
30834
  "cost_of_revenue",
@@ -34215,7 +35400,18 @@ var native_spec_default = {
34215
35400
  items: {
34216
35401
  properties: {
34217
35402
  delivery_type: {
34218
- description: "How funds are delivered, for example `bank_deposit`.",
35403
+ description: "How funds are delivered.",
35404
+ enum: [
35405
+ "cash_pickup",
35406
+ "bank_deposit",
35407
+ "home_delivery",
35408
+ "mobile_wallet",
35409
+ "masspay_card",
35410
+ "paper_check",
35411
+ "bill",
35412
+ "cryptocurrency",
35413
+ "unknown"
35414
+ ],
34219
35415
  type: "string"
34220
35416
  },
34221
35417
  icon_url: {
@@ -34466,6 +35662,63 @@ var native_spec_default = {
34466
35662
  description: "Currency payouts are delivered in for this method.",
34467
35663
  type: "string"
34468
35664
  },
35665
+ estimated_arrival: {
35666
+ description: "Estimated arrival times before an amount-specific quote is requested. Null when the method is not currently eligible.",
35667
+ properties: {
35668
+ instant: {
35669
+ description: "Estimated instant-delivery arrival, or null when unavailable.",
35670
+ format: "date-time",
35671
+ type: [
35672
+ "string",
35673
+ "null"
35674
+ ]
35675
+ },
35676
+ standard: {
35677
+ description: "Estimated standard-delivery arrival, or null when unavailable.",
35678
+ format: "date-time",
35679
+ type: [
35680
+ "string",
35681
+ "null"
35682
+ ]
35683
+ }
35684
+ },
35685
+ required: [
35686
+ "standard",
35687
+ "instant"
35688
+ ],
35689
+ type: [
35690
+ "object",
35691
+ "null"
35692
+ ]
35693
+ },
35694
+ fee_structure: {
35695
+ description: "Configured fee terms for this payout method. Null when the method is not currently eligible. An amount-specific quote remains authoritative.",
35696
+ properties: {
35697
+ currency: {
35698
+ description: "Currency code of fixed_amount.",
35699
+ type: "string"
35700
+ },
35701
+ fixed_amount: {
35702
+ description: "Fixed fee charged, denominated in `currency`.",
35703
+ format: "float",
35704
+ type: "number"
35705
+ },
35706
+ percentage: {
35707
+ description: "Percentage of the withdrawal amount charged as a fee.",
35708
+ format: "float",
35709
+ type: "number"
35710
+ }
35711
+ },
35712
+ required: [
35713
+ "percentage",
35714
+ "fixed_amount",
35715
+ "currency"
35716
+ ],
35717
+ type: [
35718
+ "object",
35719
+ "null"
35720
+ ]
35721
+ },
34469
35722
  id: {
34470
35723
  description: "Payout method ID.",
34471
35724
  type: "string"
@@ -34505,7 +35758,18 @@ var native_spec_default = {
34505
35758
  description: "The payout rail this method delivers through.",
34506
35759
  properties: {
34507
35760
  delivery_type: {
34508
- description: "How funds are delivered, for example `bank_deposit`.",
35761
+ description: "How funds are delivered.",
35762
+ enum: [
35763
+ "cash_pickup",
35764
+ "bank_deposit",
35765
+ "home_delivery",
35766
+ "mobile_wallet",
35767
+ "masspay_card",
35768
+ "paper_check",
35769
+ "bill",
35770
+ "cryptocurrency",
35771
+ "unknown"
35772
+ ],
34509
35773
  type: "string"
34510
35774
  },
34511
35775
  icon_url: {
@@ -34561,11 +35825,6 @@ var native_spec_default = {
34561
35825
  instant: {
34562
35826
  description: "Instant-delivery estimate. Null if the method does not support instant delivery, instant delivery is unavailable for the account, or the amount does not cover the fee.",
34563
35827
  properties: {
34564
- estimated_arrival: {
34565
- description: "Estimated time the funds become available.",
34566
- format: "date-time",
34567
- type: "string"
34568
- },
34569
35828
  fee: {
34570
35829
  description: "Total fee charged, in the withdrawal currency.",
34571
35830
  format: "float",
@@ -34579,8 +35838,7 @@ var native_spec_default = {
34579
35838
  },
34580
35839
  required: [
34581
35840
  "fee",
34582
- "total_received",
34583
- "estimated_arrival"
35841
+ "total_received"
34584
35842
  ],
34585
35843
  type: [
34586
35844
  "object",
@@ -34603,11 +35861,6 @@ var native_spec_default = {
34603
35861
  standard: {
34604
35862
  description: "Standard-delivery estimate. Null if the method does not support standard delivery, or the amount does not cover the fee.",
34605
35863
  properties: {
34606
- estimated_arrival: {
34607
- description: "Estimated time the funds become available.",
34608
- format: "date-time",
34609
- type: "string"
34610
- },
34611
35864
  fee: {
34612
35865
  description: "Total fee charged, in the withdrawal currency.",
34613
35866
  format: "float",
@@ -34621,8 +35874,7 @@ var native_spec_default = {
34621
35874
  },
34622
35875
  required: [
34623
35876
  "fee",
34624
- "total_received",
34625
- "estimated_arrival"
35877
+ "total_received"
34626
35878
  ],
34627
35879
  type: [
34628
35880
  "object",
@@ -34666,6 +35918,8 @@ var native_spec_default = {
34666
35918
  "destination_currency",
34667
35919
  "created_at",
34668
35920
  "payout_destination",
35921
+ "fee_structure",
35922
+ "estimated_arrival",
34669
35923
  "quote"
34670
35924
  ],
34671
35925
  type: "object"
@@ -34924,6 +36178,20 @@ var native_spec_default = {
34924
36178
  destination_currency: {
34925
36179
  type: "string"
34926
36180
  },
36181
+ estimated_arrival: {
36182
+ description: "Null on create. List payout methods to retrieve arrival estimates.",
36183
+ type: [
36184
+ "object",
36185
+ "null"
36186
+ ]
36187
+ },
36188
+ fee_structure: {
36189
+ description: "Null on create. List payout methods to retrieve the configured fee terms.",
36190
+ type: [
36191
+ "object",
36192
+ "null"
36193
+ ]
36194
+ },
34927
36195
  id: {
34928
36196
  description: "Payout method ID, usable as payout_method_id on POST /payouts.",
34929
36197
  type: "string"
@@ -34958,6 +36226,18 @@ var native_spec_default = {
34958
36226
  payout_destination: {
34959
36227
  properties: {
34960
36228
  delivery_type: {
36229
+ description: "How funds are delivered.",
36230
+ enum: [
36231
+ "cash_pickup",
36232
+ "bank_deposit",
36233
+ "home_delivery",
36234
+ "mobile_wallet",
36235
+ "masspay_card",
36236
+ "paper_check",
36237
+ "bill",
36238
+ "cryptocurrency",
36239
+ "unknown"
36240
+ ],
34961
36241
  type: "string"
34962
36242
  },
34963
36243
  icon_url: {
@@ -35019,6 +36299,8 @@ var native_spec_default = {
35019
36299
  "destination_currency",
35020
36300
  "created_at",
35021
36301
  "payout_destination",
36302
+ "fee_structure",
36303
+ "estimated_arrival",
35022
36304
  "quote"
35023
36305
  ],
35024
36306
  type: "object"
@@ -38085,7 +39367,7 @@ var native_spec_default = {
38085
39367
  },
38086
39368
  "/products": {
38087
39369
  get: {
38088
- description: "Returns a paginated list of products belonging to a company.",
39370
+ description: "Returns a paginated list of products belonging to an account.",
38089
39371
  operationId: "list",
38090
39372
  parameters: [
38091
39373
  {
@@ -38268,7 +39550,7 @@ var native_spec_default = {
38268
39550
  ]
38269
39551
  },
38270
39552
  post: {
38271
- description: "Creates a new product for a company.",
39553
+ description: "Creates a new product for an account.",
38272
39554
  operationId: "create",
38273
39555
  parameters: [
38274
39556
  {
@@ -40103,7 +41385,7 @@ var native_spec_default = {
40103
41385
  $ref: "#/components/parameters/ApiVersionDate"
40104
41386
  },
40105
41387
  {
40106
- description: "The account to list shipments for. Defaults to the acting company.",
41388
+ description: "The account to list shipments for. Defaults to the acting account.",
40107
41389
  in: "query",
40108
41390
  name: "account_id",
40109
41391
  required: false,
@@ -41893,7 +43175,13 @@ var native_spec_default = {
41893
43175
  type: "string"
41894
43176
  },
41895
43177
  status: {
41896
- description: "Current swap status.",
43178
+ description: "Current swap status. `complete` and `failed` are terminal.",
43179
+ enum: [
43180
+ "queued",
43181
+ "working",
43182
+ "complete",
43183
+ "failed"
43184
+ ],
41897
43185
  type: "string"
41898
43186
  },
41899
43187
  tx_hashes: {
@@ -42091,7 +43379,13 @@ var native_spec_default = {
42091
43379
  type: "string"
42092
43380
  },
42093
43381
  status: {
42094
- description: "Initial swap status.",
43382
+ description: "Swap status. Crypto swaps start `queued`; fiat conversions return `complete`, or `working` while a stablecoin repayment settles.",
43383
+ enum: [
43384
+ "queued",
43385
+ "working",
43386
+ "complete",
43387
+ "failed"
43388
+ ],
42095
43389
  type: "string"
42096
43390
  },
42097
43391
  to_chain: {
@@ -42412,7 +43706,13 @@ var native_spec_default = {
42412
43706
  type: "string"
42413
43707
  },
42414
43708
  status: {
42415
- description: "Current swap status.",
43709
+ description: "Current swap status. `complete` and `failed` are terminal.",
43710
+ enum: [
43711
+ "queued",
43712
+ "working",
43713
+ "complete",
43714
+ "failed"
43715
+ ],
42416
43716
  type: "string"
42417
43717
  },
42418
43718
  tx_hashes: {
@@ -43694,6 +44994,10 @@ var native_spec_default = {
43694
44994
  type: "object"
43695
44995
  },
43696
44996
  status: {
44997
+ description: "A newly funded claim link is always `pending` \u2014 it stays claimable until it is fully claimed, canceled, or expires.",
44998
+ enum: [
44999
+ "pending"
45000
+ ],
43697
45001
  type: "string"
43698
45002
  }
43699
45003
  },
@@ -47446,7 +48750,7 @@ var native_spec_default = {
47446
48750
  },
47447
48751
  "/webhooks": {
47448
48752
  get: {
47449
- description: "Returns a paginated list of webhook endpoints configured for a company, ordered by most recently created.",
48753
+ description: "Returns a paginated list of webhook endpoints configured for an account, ordered by most recently created.",
47450
48754
  operationId: "list",
47451
48755
  parameters: [
47452
48756
  {
@@ -47462,7 +48766,7 @@ var native_spec_default = {
47462
48766
  }
47463
48767
  },
47464
48768
  {
47465
- description: "Only return webhooks attached to this app. Omit to list the company's own webhooks.",
48769
+ description: "Only return webhooks attached to this app. Omit to list the account's own webhooks.",
47466
48770
  in: "query",
47467
48771
  name: "app_id",
47468
48772
  required: false,
@@ -47573,7 +48877,7 @@ var native_spec_default = {
47573
48877
  },
47574
48878
  "404": {
47575
48879
  $ref: "#/components/responses/NotFound",
47576
- description: "no company with that ID"
48880
+ description: "no account with that ID"
47577
48881
  }
47578
48882
  },
47579
48883
  security: [
@@ -47625,7 +48929,7 @@ var native_spec_default = {
47625
48929
  type: "string"
47626
48930
  },
47627
48931
  child_resource_events: {
47628
- description: "Whether or not to send events for child resources. For example, if the webhook is created for a company, enabling this will only send events from the company's sub-merchants (child companies).",
48932
+ description: "Whether to send events for child resources. For example, if the webhook is created for an account, enabling this sends events only from its connected accounts.",
47629
48933
  type: "boolean"
47630
48934
  },
47631
48935
  enabled: {
@@ -47640,7 +48944,7 @@ var native_spec_default = {
47640
48944
  type: "array"
47641
48945
  },
47642
48946
  resource_id: {
47643
- description: "The company or app to create the webhook for. Defaults to the current company.",
48947
+ description: "The account or app to create the webhook for. Defaults to the current account.",
47644
48948
  type: [
47645
48949
  "string",
47646
48950
  "null"
@@ -48198,7 +49502,7 @@ var native_spec_default = {
48198
49502
  name: "Api-Version-Date",
48199
49503
  required: false,
48200
49504
  schema: {
48201
- example: "2026-07-27",
49505
+ example: "2026-07-29",
48202
49506
  type: "string"
48203
49507
  }
48204
49508
  },
@@ -48513,7 +49817,7 @@ var native_spec_default = {
48513
49817
  type: "array"
48514
49818
  },
48515
49819
  status: {
48516
- description: "Whether the account can operate on Whop: `active` or `suspended`. Computed only on `retrieve` and `me`; `null` otherwise.",
49820
+ description: "Whether the account can operate on Whop: `active` or `suspended`. Computed on `list`, `retrieve`, and `me`; `null` otherwise.",
48517
49821
  type: [
48518
49822
  "string",
48519
49823
  "null"
@@ -48581,6 +49885,13 @@ var native_spec_default = {
48581
49885
  description: "Account identity verification status for the `individual` (KYC) and `business` (KYB) profiles. Each is `null` until created, otherwise a `status` of `not_started`, `pending`, `approved`, or `rejected`.",
48582
49886
  type: "object"
48583
49887
  },
49888
+ volume_usd: {
49889
+ description: "Lifetime volume through the account \u2014 sales plus transfers received \u2014 normalized to USD. Computed only on `list` for callers with `stats:read` on the account; `null` otherwise.",
49890
+ type: [
49891
+ "number",
49892
+ "null"
49893
+ ]
49894
+ },
48584
49895
  wallet: {
48585
49896
  description: "Account primary crypto wallet, or `null` if none has been provisioned.",
48586
49897
  oneOf: [
@@ -48626,6 +49937,7 @@ var native_spec_default = {
48626
49937
  "use_logo_as_opengraph_image_fallback",
48627
49938
  "total_earned_usd",
48628
49939
  "status",
49940
+ "volume_usd",
48629
49941
  "capabilities",
48630
49942
  "payment_controls",
48631
49943
  "cards",
@@ -49160,7 +50472,8 @@ var native_spec_default = {
49160
50472
  "submit_information_request",
49161
50473
  "verify_identity",
49162
50474
  "connect_fulfillment_tracker",
49163
- "setup_apple_pay_domains"
50475
+ "setup_apple_pay_domains",
50476
+ "configure_tax_remitter"
49164
50477
  ],
49165
50478
  example: "deposit_funds",
49166
50479
  type: "string"
@@ -52160,10 +53473,10 @@ var native_spec_default = {
52160
53473
  },
52161
53474
  creator: {
52162
53475
  $ref: "#/components/schemas/AppCreator",
52163
- description: "The user who owns the publishing company."
53476
+ description: "The user who owns the publishing account."
52164
53477
  },
52165
53478
  dashboard_path: {
52166
- description: "URL path for the company dashboard view, or `null` when not configured.",
53479
+ description: "URL path for the account dashboard view, or `null` when not configured.",
52167
53480
  type: [
52168
53481
  "string",
52169
53482
  "null"
@@ -52581,10 +53894,10 @@ var native_spec_default = {
52581
53894
  },
52582
53895
  creator: {
52583
53896
  $ref: "#/components/schemas/AppCreator",
52584
- description: "The user who owns the publishing company."
53897
+ description: "The user who owns the publishing account."
52585
53898
  },
52586
53899
  dashboard_path: {
52587
- description: "URL path for the company dashboard view, or `null` when not configured.",
53900
+ description: "URL path for the account dashboard view, or `null` when not configured.",
52588
53901
  type: [
52589
53902
  "string",
52590
53903
  "null"
@@ -53927,6 +55240,142 @@ var native_spec_default = {
53927
55240
  ],
53928
55241
  type: "object"
53929
55242
  },
55243
+ CardTransaction: {
55244
+ properties: {
55245
+ card_id: {
55246
+ description: "The card this transaction was charged to, prefixed `icrd_`.",
55247
+ type: "string"
55248
+ },
55249
+ cardholder_id: {
55250
+ description: "The user the card is assigned to, prefixed `user_`. Null when the card has no assigned cardholder.",
55251
+ type: [
55252
+ "string",
55253
+ "null"
55254
+ ]
55255
+ },
55256
+ cashback_usd_amount: {
55257
+ description: "Cashback earned on this transaction as a USD amount. Zero for declined or ineligible transactions, and null when cashback has not been computed yet.",
55258
+ type: [
55259
+ "number",
55260
+ "null"
55261
+ ]
55262
+ },
55263
+ created_at: {
55264
+ description: "When the transaction was authorized, as an ISO 8601 timestamp.",
55265
+ type: "string"
55266
+ },
55267
+ currency: {
55268
+ description: "ISO 4217 currency code the merchant charged in.",
55269
+ type: [
55270
+ "string",
55271
+ "null"
55272
+ ]
55273
+ },
55274
+ declined_reason: {
55275
+ description: "Why the transaction was declined. Null unless `status` is `declined`.",
55276
+ type: [
55277
+ "string",
55278
+ "null"
55279
+ ]
55280
+ },
55281
+ id: {
55282
+ description: "Card transaction ID, prefixed `citx_`.",
55283
+ type: "string"
55284
+ },
55285
+ international: {
55286
+ description: "True when the merchant is outside the card's home country.",
55287
+ type: "boolean"
55288
+ },
55289
+ local_amount: {
55290
+ description: "Amount the merchant charged in their own currency. Pair with `currency`.",
55291
+ type: [
55292
+ "number",
55293
+ "null"
55294
+ ]
55295
+ },
55296
+ merchant_category: {
55297
+ description: "Merchant category label, enriched where available and otherwise as the card network reported it.",
55298
+ type: [
55299
+ "string",
55300
+ "null"
55301
+ ]
55302
+ },
55303
+ merchant_category_code: {
55304
+ description: "Four-digit ISO 18245 merchant category code (MCC).",
55305
+ type: [
55306
+ "string",
55307
+ "null"
55308
+ ]
55309
+ },
55310
+ merchant_icon_url: {
55311
+ description: "URL of the enriched merchant logo. Null when no logo was matched.",
55312
+ type: [
55313
+ "string",
55314
+ "null"
55315
+ ]
55316
+ },
55317
+ merchant_name: {
55318
+ description: "Merchant name, enriched where available and otherwise as the card network reported it.",
55319
+ type: [
55320
+ "string",
55321
+ "null"
55322
+ ]
55323
+ },
55324
+ posted_at: {
55325
+ description: "When the card network settled the transaction, as an ISO 8601 timestamp. Null until it settles.",
55326
+ type: [
55327
+ "string",
55328
+ "null"
55329
+ ]
55330
+ },
55331
+ status: {
55332
+ description: "Current status of the transaction.",
55333
+ enum: [
55334
+ "pending",
55335
+ "completed",
55336
+ "reversed",
55337
+ "declined"
55338
+ ],
55339
+ example: "pending",
55340
+ type: "string"
55341
+ },
55342
+ transaction_type: {
55343
+ description: "The kind of card transaction. Always `spend` today.",
55344
+ enum: [
55345
+ "spend"
55346
+ ],
55347
+ example: "spend",
55348
+ type: "string"
55349
+ },
55350
+ usd_amount: {
55351
+ description: "Amount charged in USD. Negative when the merchant refunded the card.",
55352
+ type: [
55353
+ "number",
55354
+ "null"
55355
+ ]
55356
+ }
55357
+ },
55358
+ required: [
55359
+ "id",
55360
+ "card_id",
55361
+ "cardholder_id",
55362
+ "status",
55363
+ "transaction_type",
55364
+ "usd_amount",
55365
+ "local_amount",
55366
+ "currency",
55367
+ "international",
55368
+ "merchant_name",
55369
+ "merchant_icon_url",
55370
+ "merchant_category",
55371
+ "merchant_category_code",
55372
+ "declined_reason",
55373
+ "cashback_usd_amount",
55374
+ "created_at",
55375
+ "posted_at"
55376
+ ],
55377
+ type: "object"
55378
+ },
53930
55379
  ConversionEvent: {
53931
55380
  anyOf: [
53932
55381
  {
@@ -54091,6 +55540,13 @@ var native_spec_default = {
54091
55540
  description: "Whether this is a pre-dispute inquiry rather than a formal chargeback. Inquiries follow the same lifecycle but move no funds unless one escalates.",
54092
55541
  type: "boolean"
54093
55542
  },
55543
+ issuer_comments: {
55544
+ items: {
55545
+ $ref: "#/components/schemas/DisputeIssuerComment",
55546
+ description: "What the card issuer said when filing the dispute. Only populated when the issuer provides them, and listed in the order they were received."
55547
+ },
55548
+ type: "array"
55549
+ },
54094
55550
  payment: {
54095
55551
  description: "The payment being disputed.",
54096
55552
  oneOf: [
@@ -54171,6 +55627,7 @@ var native_spec_default = {
54171
55627
  "currency",
54172
55628
  "reason",
54173
55629
  "reason_code",
55630
+ "issuer_comments",
54174
55631
  "account_id",
54175
55632
  "product_id",
54176
55633
  "plan_id",
@@ -54413,6 +55870,26 @@ var native_spec_default = {
54413
55870
  ],
54414
55871
  type: "object"
54415
55872
  },
55873
+ DisputeIssuerComment: {
55874
+ properties: {
55875
+ received_at: {
55876
+ description: "When the comment was received, as an ISO 8601 timestamp.",
55877
+ type: [
55878
+ "string",
55879
+ "null"
55880
+ ]
55881
+ },
55882
+ text: {
55883
+ description: "What the issuer wrote, as received.",
55884
+ type: "string"
55885
+ }
55886
+ },
55887
+ required: [
55888
+ "received_at",
55889
+ "text"
55890
+ ],
55891
+ type: "object"
55892
+ },
54416
55893
  DisputePayment: {
54417
55894
  properties: {
54418
55895
  amount: {
@@ -54532,19 +56009,34 @@ var native_spec_default = {
54532
56009
  type: "string"
54533
56010
  },
54534
56011
  resource: {
54535
- description: "The resource that was exported, e.g. `receipts`, `members`, or `ads`.",
56012
+ description: "The resource that was exported, e.g. `receipts`, `members`, or `payouts`.",
54536
56013
  enum: [
54537
56014
  "ad_campaigns",
54538
56015
  "ad_groups",
54539
56016
  "ads",
56017
+ "audiences",
56018
+ "bounties",
56019
+ "bounty_submissions",
56020
+ "disputes",
56021
+ "events",
56022
+ "financial-activity",
54540
56023
  "members",
56024
+ "memberships",
56025
+ "payouts",
56026
+ "people",
56027
+ "plans",
56028
+ "products",
56029
+ "resolution_center_cases",
56030
+ "shipments",
56031
+ "social_accounts",
56032
+ "team_members",
56033
+ "transfers",
56034
+ "webhooks",
54541
56035
  "receipts",
54542
56036
  "unclaimed_memberships",
54543
- "memberships",
54544
56037
  "tracking_links",
54545
56038
  "promo_codes",
54546
56039
  "resolutions",
54547
- "disputes",
54548
56040
  "entries",
54549
56041
  "leads",
54550
56042
  "content_rewards_submissions",
@@ -54755,7 +56247,101 @@ var native_spec_default = {
54755
56247
  ]
54756
56248
  },
54757
56249
  line_type: {
54758
- description: "Type of ledger activity.",
56250
+ description: "The ledger line category this activity was posted under.",
56251
+ enum: [
56252
+ "ad_budget_release",
56253
+ "ad_campaign_budget",
56254
+ "ad_publisher_payout",
56255
+ "ad_publisher_payout_received",
56256
+ "ad_spend_charge",
56257
+ "affiliate_fee",
56258
+ "airdrop",
56259
+ "airdrop_link_created",
56260
+ "airdrop_link_redeemed",
56261
+ "airdrop_link_returned",
56262
+ "airdrop_reversal",
56263
+ "application_fee",
56264
+ "application_fee_payout",
56265
+ "bank_transfer",
56266
+ "billing_percentage_fee",
56267
+ "buyer_fee",
56268
+ "card_spend_authorization",
56269
+ "card_spend_authorization_void",
56270
+ "card_spend_refund",
56271
+ "company_referral",
56272
+ "cross_border_percentage_fee",
56273
+ "currency_conversion_incoming",
56274
+ "currency_conversion_outgoing",
56275
+ "dispute_alert_fee",
56276
+ "dispute_hold_adjustment",
56277
+ "fraud_prevention_fee",
56278
+ "fx_percentage_fee",
56279
+ "high_risk_merchant_fee",
56280
+ "installment_default",
56281
+ "internal_balance_transfer_incoming",
56282
+ "internal_balance_transfer_outgoing",
56283
+ "legacy_crypto_payment",
56284
+ "legacy_payment",
56285
+ "legacy_payment_refund",
56286
+ "license_sale",
56287
+ "license_sale_commission",
56288
+ "license_sale_revenue",
56289
+ "misc_purchase",
56290
+ "misc_refund",
56291
+ "misc_reversal",
56292
+ "onchain_deposit",
56293
+ "onchain_swap_target",
56294
+ "onchain_wallet_transfer_incoming",
56295
+ "onchain_wallet_transfer_outgoing",
56296
+ "orchestration_percentage_fee",
56297
+ "passthrough_gmv",
56298
+ "payment_dispute",
56299
+ "payment_dispute_adjustment",
56300
+ "payment_dispute_fee",
56301
+ "payment_dispute_reversal",
56302
+ "payment_gross",
56303
+ "payment_gross_reversal",
56304
+ "payment_processing_fixed_fee",
56305
+ "payment_processing_percentage_fee",
56306
+ "payment_referral",
56307
+ "payment_referral_reversal",
56308
+ "payment_refund",
56309
+ "payment_refund_reversal",
56310
+ "payment_revshare",
56311
+ "payment_revshare_payout",
56312
+ "payment_revshare_refund",
56313
+ "payment_revshare_reversal",
56314
+ "payout_fee",
56315
+ "platform_affiliate_payment",
56316
+ "platform_affiliate_payment_reversal",
56317
+ "platform_balance_payment",
56318
+ "platform_balance_payment_refund",
56319
+ "platform_balance_transfer_incoming",
56320
+ "platform_balance_transfer_outgoing",
56321
+ "platform_covered_dispute",
56322
+ "promo_reversal",
56323
+ "referral_bonus",
56324
+ "resolution_center_refund",
56325
+ "revshare_percentage_fee",
56326
+ "sales_tax_fee",
56327
+ "sales_tax_remittance",
56328
+ "sales_tax_remittance_reversal",
56329
+ "software_rental_revshare",
56330
+ "software_rental_transaction",
56331
+ "stripe_domestic_processing_fee",
56332
+ "stripe_international_processing_fee",
56333
+ "three_ds_fixed_fee",
56334
+ "topup",
56335
+ "topup_fee",
56336
+ "topup_reversal",
56337
+ "treasury_payin",
56338
+ "whop_processing_fee",
56339
+ "withdrawal",
56340
+ "withdrawal_clawback",
56341
+ "withdrawal_clawback_reversal",
56342
+ "withdrawal_reclassification",
56343
+ "withdrawal_reversal"
56344
+ ],
54759
56345
  type: "string"
54760
56346
  },
54761
56347
  object: {
@@ -56895,20 +58481,20 @@ var native_spec_default = {
56895
58481
  PixelValidation: {
56896
58482
  properties: {
56897
58483
  firing_data_ok: {
56898
- description: "False when the event lookup failed, meaning `installed_events` and `last_seen_days` are incomplete.",
56899
- type: "boolean"
56900
- },
56901
- installed: {
56902
- description: "True when the pixel was found \u2014 either the account has sent events recently, or the pixel is present in the page at `url`. False otherwise, including when the page couldn't be loaded.",
58484
+ description: "False when the event lookup failed, meaning `host_events` and `last_seen_days` are incomplete.",
56903
58485
  type: "boolean"
56904
58486
  },
56905
- installed_events: {
58487
+ host_events: {
56906
58488
  items: {
56907
- description: "Conversion event names detected on the page or fired recently, e.g. `lead`, `purchase`. Excludes the events the pixel fires automatically on every page.",
58489
+ description: "Conversion event names detected on the requested page or fired recently anywhere on its hostname or final redirect hostname.",
56908
58490
  type: "string"
56909
58491
  },
56910
58492
  type: "array"
56911
58493
  },
58494
+ installed: {
58495
+ description: "True when the account has sent events recently, the pixel is present in the page at `url`, or `url` is hosted on Whop.",
58496
+ type: "boolean"
58497
+ },
56912
58498
  last_fired_days: {
56913
58499
  description: 'Event name to whole days since that event last fired, e.g. `{ "lead": 3 }`. Carries events that fired too long ago to count as installed, so you can prompt to re-check rather than report them missing.',
56914
58500
  type: "object"
@@ -56921,9 +58507,16 @@ var native_spec_default = {
56921
58507
  ]
56922
58508
  },
56923
58509
  native_tracking: {
56924
- description: "True when the URL is a Whop-hosted store page for this account, which Whop tracks natively \u2014 no pixel snippet is required there.",
58510
+ description: "True when `url` is hosted on Whop, so no pixel snippet is required.",
56925
58511
  type: "boolean"
56926
58512
  },
58513
+ page_events: {
58514
+ items: {
58515
+ description: "Conversion event names detected on the requested page, from its recent events or its source and linked scripts.",
58516
+ type: "string"
58517
+ },
58518
+ type: "array"
58519
+ },
56927
58520
  reachable: {
56928
58521
  description: "Whether the page could be loaded. `null` when the request included no URL, and `true` when events settled the answer without a fetch.",
56929
58522
  type: [
@@ -56944,7 +58537,8 @@ var native_spec_default = {
56944
58537
  "url",
56945
58538
  "reachable",
56946
58539
  "last_seen_days",
56947
- "installed_events",
58540
+ "page_events",
58541
+ "host_events",
56948
58542
  "native_tracking",
56949
58543
  "last_fired_days",
56950
58544
  "firing_data_ok"
@@ -59515,7 +61109,7 @@ var native_spec_default = {
59515
61109
  type: "string"
59516
61110
  },
59517
61111
  child_resource_events: {
59518
- description: "Whether events are sent for child resources. For example, if the webhook is on a company, enabling this sends events only from the company's sub-merchants (child companies).",
61112
+ description: "Whether events are sent for child resources. For example, if the webhook is on an account, enabling this sends events only from its connected accounts.",
59519
61113
  type: "boolean"
59520
61114
  },
59521
61115
  created_at: {
@@ -59538,7 +61132,7 @@ var native_spec_default = {
59538
61132
  type: "string"
59539
61133
  },
59540
61134
  resource_id: {
59541
- description: "ID of the resource (company or app) this webhook is attached to.",
61135
+ description: "ID of the resource (account or app) this webhook is attached to.",
59542
61136
  type: "string"
59543
61137
  },
59544
61138
  testable_events: {
@@ -59624,7 +61218,7 @@ var native_spec_default = {
59624
61218
  type: "string"
59625
61219
  },
59626
61220
  child_resource_events: {
59627
- description: "Whether events are sent for child resources. For example, if the webhook is on a company, enabling this sends events only from the company's sub-merchants (child companies).",
61221
+ description: "Whether events are sent for child resources. For example, if the webhook is on an account, enabling this sends events only from its connected accounts.",
59628
61222
  type: "boolean"
59629
61223
  },
59630
61224
  created_at: {
@@ -59647,7 +61241,7 @@ var native_spec_default = {
59647
61241
  type: "string"
59648
61242
  },
59649
61243
  resource_id: {
59650
- description: "ID of the resource (company or app) this webhook is attached to.",
61244
+ description: "ID of the resource (account or app) this webhook is attached to.",
59651
61245
  type: "string"
59652
61246
  },
59653
61247
  url: {
@@ -59679,7 +61273,7 @@ var native_spec_default = {
59679
61273
  securitySchemes: {
59680
61274
  bearerAuth: {
59681
61275
  bearerFormat: "auth-scheme",
59682
- description: "A company API key, company scoped JWT, app API key, or user OAuth token. You must prepend your key/token with the word 'Bearer', which will look like `Bearer ***************************`",
61276
+ description: "An Account API key, account-scoped JWT, App API key, or user OAuth token. Prepend the key or token with `Bearer`, for example `Bearer ***************************`.",
59683
61277
  scheme: "bearer",
59684
61278
  type: "http"
59685
61279
  }
@@ -59695,7 +61289,7 @@ var apps_spec_default = {
59695
61289
  termsOfService: "https://whop.com/tos-developer-api/",
59696
61290
  title: "Whop API",
59697
61291
  version: "1.0.0",
59698
- "x-api-version-date": "2026-07-27"
61292
+ "x-api-version-date": "2026-07-29"
59699
61293
  },
59700
61294
  paths: {
59701
61295
  "/app_builds": {
@@ -64639,7 +66233,7 @@ var files_spec_default = {
64639
66233
  termsOfService: "https://whop.com/tos-developer-api/",
64640
66234
  title: "Whop API",
64641
66235
  version: "1.0.0",
64642
- "x-api-version-date": "2026-07-27"
66236
+ "x-api-version-date": "2026-07-29"
64643
66237
  },
64644
66238
  paths: {
64645
66239
  "/files": {
@@ -65671,7 +67265,7 @@ async function announceActionUrl(url, {
65671
67265
  // package.json
65672
67266
  var package_default = {
65673
67267
  name: "@whop/cli",
65674
- version: "0.14.0",
67268
+ version: "0.14.1",
65675
67269
  description: "The Whop CLI \u2014 build and manage Whop apps from your terminal. Human and agent friendly.",
65676
67270
  keywords: [
65677
67271
  "agent",
@@ -65729,7 +67323,7 @@ var package_default = {
65729
67323
  devDependencies: {
65730
67324
  "@types/node": "25.3.5",
65731
67325
  fflate: "0.8.2",
65732
- incur: "github:whopio/incur#137287a52ac16199551eeed243c967951f481828",
67326
+ incur: "github:whopio/incur#6962ec46a0fbc5d070df5e8cd4c8cf09efa91bdc",
65733
67327
  tsup: "8.5.0",
65734
67328
  tsx: "4.19.4",
65735
67329
  typescript: "5.9.3",
@@ -65934,7 +67528,7 @@ function isNpx(selfUrl = import.meta.url) {
65934
67528
  // src/lib/build-info.ts
65935
67529
  var buildChannel = true ? "npm" : "dev";
65936
67530
  var buildTarget = typeof WHOP_CLI_TARGET === "string" ? WHOP_CLI_TARGET : null;
65937
- var buildVersion = true ? "0.14.0" : null;
67531
+ var buildVersion = true ? "0.14.1" : null;
65938
67532
  function isHomebrewPath(execPath, env = process.env) {
65939
67533
  if (/[/\\](Cellar|homebrew|linuxbrew)[/\\]/.test(execPath)) return true;
65940
67534
  const prefix = env.HOMEBREW_PREFIX?.trim();
@@ -72008,7 +73602,7 @@ var shipped_skills_default = {
72008
73602
  "whop-notifications": "---\nname: whop-notifications\ndescription: \"The user's notification feed: unread badges, mark-read, app sends, and the topic catalog. Run `whop notifications --help` for usage details.\"\nrequires_bin: whop\ncommand: whop notifications\n---\n\nA Notification is a message delivered to a user \u2014 a new post, a payment, a mention. Every notification comes from an experience the user belongs to or a team they are on, and users control what they receive with notification preferences.\n\nEvery notification belongs to a topic: the category it falls under, such as new sales or account activity. Topics carry a default, so a user only needs a preference row where they diverge from it. `GET /notifications/topics` lists the platform's visible topics, and a topic's `id` is what the notification preference endpoints take as `topic_id` \u2014 the catalog is the only place those ids come from, so read it rather than hardcoding. Each topic also carries an `identifier` such as `new-follower`, which is stable across environments and is the value to match on in code.\n\nUse the Notifications API to list the authenticated user's feed, read per-experience unread badges, mark an experience (or everything) as read, send notifications from your app to an experience's users or an account's team, and list the topic catalog.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop notifications list` | List Notifications |\n| `whop notifications create` | Send Notification |\n| `whop notifications badges` | List Notification Badges |\n| `whop notifications mark_read` | Mark Notifications Read |\n| `whop notifications topics` | List Notification Topics |\n| `whop notifications get` | Retrieve Notification |\n\nRun `whop notifications <command> --help` for options, or `whop notifications <command> --schema` for full argument details.\n",
72009
73603
  "whop-ledgers": "---\nname: whop-ledgers\ndescription: The activity feed behind an account or user's balance. Run `whop ledgers --help` for usage details.\nrequires_bin: whop\ncommand: whop ledgers\n---\n\nA Ledger Activity row is a single financial event on an account's ledger \u2014 a payment, withdrawal, refund, transfer, on-chain deposit, swap, or card transaction. Each row is derived from the underlying ledger lines and carries a typed `resource` and `source` so you can present and link the event without extra lookups.\n\nUse Ledger Activity to build a statement or transaction feed for an account or user. Reconcile against your own records with `amount` (signed, in the currency's smallest precision units) and `posted_at`, and use `available_at` to know when inflows became withdrawable.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop ledgers list` | List Financial Activity |\n| `whop ledgers report` | Get Financial Report |\n\nRun `whop ledgers <command> --help` for options, or `whop ledgers <command> --schema` for full argument details.\n",
72010
73604
  "whop-payouts": "---\nname: whop-payouts\ndescription: Send money from a balance to a bank or wallet. Run `whop payouts --help` for usage details.\nrequires_bin: whop\ncommand: whop payouts\n---\n\nPayouts represent money sent from an account or user balance to an external destination, such as a bank account, wallet, or other saved payout method.\n\nUse the Payouts API to create payouts from stablecoin accounts, list payout history for accounts or users, monitor payout statuses, and show expected arrival details for funds leaving Whop.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop payouts list` | List Payouts |\n| `whop payouts create` | Create Payout |\n| `whop payouts methods` | List Payout Methods |\n| `whop payouts create-method` | Create Payout Method |\n\nRun `whop payouts <command> --help` for options, or `whop payouts <command> --schema` for full argument details.\n",
72011
- "whop-cards": "---\nname: whop-cards\ndescription: Issue cards that spend from a balance. Run `whop cards --help` for usage details.\nrequires_bin: whop\ncommand: whop cards\n---\n\nCards represent Whop-issued virtual payment cards that spend from an account or user balance. Cards can be assigned to cardholders and configured with spending limits for controlled spending.\n\nUse the Cards API to issue cards, list cards for an account or user, and retrieve active card details such as the card number and CVC.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop cards list` | List Cards |\n| `whop cards create` | Create Card |\n| `whop cards get` | Retrieve Card |\n| `whop cards update` | Update Card |\n\nRun `whop cards <command> --help` for options, or `whop cards <command> --schema` for full argument details.\n",
73605
+ "whop-cards": "---\nname: whop-cards\ndescription: Issue cards that spend from a balance. Run `whop cards --help` for usage details.\nrequires_bin: whop\ncommand: whop cards\n---\n\nCards represent Whop-issued virtual payment cards that spend from an account or user balance. Cards can be assigned to cardholders and configured with spending limits for controlled spending.\n\nUse the Cards API to issue cards, list cards for an account or user, and retrieve active card details such as the card number and CVC.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop cards transactions` | List Card Transactions |\n| `whop cards get-transaction` | Retrieve Card Transaction |\n| `whop cards list` | List Cards |\n| `whop cards create` | Create Card |\n| `whop cards get` | Retrieve Card |\n| `whop cards update` | Update Card |\n\nRun `whop cards <command> --help` for options, or `whop cards <command> --schema` for full argument details.\n",
72012
73606
  "whop-transfers": "---\nname: whop-transfers\ndescription: Move funds between Whop accounts and users. Run `whop transfers --help` for usage details.\nrequires_bin: whop\ncommand: whop transfers\n---\n\nTransfers 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\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop transfers list` | List Transfers |\n| `whop transfers create` | Create Transfer |\n| `whop transfers recipients` | List Transfer Recipients |\n| `whop transfers get` | Retrieve Transfer |\n\nRun `whop transfers <command> --help` for options, or `whop transfers <command> --schema` for full argument details.\n",
72013
73607
  "whop-disputes": "---\nname: whop-disputes\ndescription: Chargebacks filed against an account, with evidence and outcomes. Run `whop disputes --help` for usage details.\nrequires_bin: whop\ncommand: whop disputes\n---\n\nA Dispute is a chargeback a customer files against a payment through their bank, or a pre-dispute inquiry that may become one. It carries the disputed payment, a deadline to respond, the evidence packet you send to the payment processor, and the outcome once the processor rules.\n\nDisputes are opened by the customer's bank, never through the API, so you can read them but not create or delete them. Use the Disputes API to list and filter disputes, summarize them by status and currency for a queue view, edit the evidence packet while the dispute is still contestable, and submit that evidence for review.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop disputes list` | List Disputes |\n| `whop disputes summary` | Retrieve Dispute Summary |\n| `whop disputes get` | Retrieve Dispute |\n| `whop disputes update` | Update Dispute |\n| `whop disputes submit` | Submit Dispute |\n\nRun `whop disputes <command> --help` for options, or `whop disputes <command> --schema` for full argument details.\n",
72014
73608
  "whop-deposits": "---\nname: whop-deposits\ndescription: Add funds to a balance. Run `whop deposits --help` for usage details.\nrequires_bin: whop\ncommand: whop deposits\n---\n\nDeposits describe ways to add funds to an account balance, including hosted deposit pages, bank deposit instructions, and supported crypto wallet addresses.\n\nUse the Deposits API to create deposit instructions for an account.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop deposits create` | Create Deposit |\n\nRun `whop deposits <command> --help` for options, or `whop deposits <command> --schema` for full argument details.\n",
@@ -72032,7 +73626,7 @@ var shipped_skills_default = {
72032
73626
  "whop-social-accounts": "---\nname: whop-social-accounts\ndescription: Connected Facebook and Instagram accounts that run ads. Run `whop social-accounts --help` for usage details.\nrequires_bin: whop\ncommand: whop social-accounts\n---\n\nA Social Account represents an external profile connected to a Whop account or user, such as a Facebook page or Instagram account. Connecting a social account lets Whop run [ads](https://docs.whop.com/api-reference/beta/ads/ad) under that profile's identity and promote its existing posts.\n\nUse the Social Accounts API to list connected accounts, create a Whop-managed Facebook page, start an OAuth connection, disconnect a social account, and list a connected profile's posts or a Facebook page's lead forms.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop social-accounts list` | List Social Accounts |\n| `whop social-accounts create` | Create a Social Account |\n| `whop social-accounts connect` | Connect a Social Account |\n| `whop social-accounts delete` | Delete a Social Account |\n| `whop social-accounts lead_forms` | List Social Account Lead Forms |\n| `whop social-accounts posts` | List Social Account Posts |\n\nRun `whop social-accounts <command> --help` for options, or `whop social-accounts <command> --schema` for full argument details.\n\n## Steps that finish in the browser\n\nSome commands respond with a URL the user must open in a browser to finish the flow (`authorize_url`, `session_url`, `deposit_url`) \u2014 the CLI cannot complete that step itself. When a response contains one of these fields, or the CLI prints \"Action required: open this link in the user's browser\", open that link in the user's browser for them, tell them what to complete there, then re-run the matching `get`/`list` command to confirm the step finished.\n",
72033
73627
  "whop-apps": '---\nname: whop-apps\ndescription: "Apps you build on Whop: metadata, hosted builds, runtime logs. Run `whop apps --help` for usage details."\nrequires_bin: whop\ncommand: whop apps\n---\n\nAn App is software you build on Whop. It can be a hosted web app served at `<route>.whop.app` or an API integration installed as an experience, and it belongs to the account that owns its credentials, settings, builds, and runtime logs.\n\nUse the Apps API to manage app configuration and, for hosted apps, read server runtime logs for console output, uncaught exceptions, and failed requests. Logs are retained for 7 days and can be filtered by build, level, time window, and message text.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop apps list` | List Apps |\n| `whop apps create` | Create App |\n| `whop apps get` | Retrieve App |\n| `whop apps update` | Update App |\n| `whop apps logs` | List App Logs |\n| `whop apps permissions` | Update App Permissions |\n\nRun `whop apps <command> --help` for options, or `whop apps <command> --schema` for full argument details.\n',
72034
73628
  "whop-app-builds": "---\nname: whop-app-builds\ndescription: Versioned build artifacts deployed to an app's platforms. Run `whop app-builds --help` for usage details.\nrequires_bin: whop\ncommand: whop app-builds\n---\n\nAn App Build is a versioned artifact uploaded for an app \u2014 a hosted web archive, or an iOS/Android bundle. Builds start as drafts, go through review, and one approved build per platform is served to users as the production build.\n\nUse the App Builds API to upload a build for an app, list an app's builds with platform and status filters, retrieve a build, and promote a draft or approved build to production.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop app-builds list` | List App Builds |\n| `whop app-builds create` | Create App Build |\n| `whop app-builds get` | Retrieve App Build |\n| `whop app-builds promote` | Promote App Build |\n\nRun `whop app-builds <command> --help` for options, or `whop app-builds <command> --schema` for full argument details.\n",
72035
- "whop-api-keys": "---\nname: whop-api-keys\ndescription: Programmatic credentials for an account or app. Run `whop api-keys --help` for usage details.\nrequires_bin: whop\ncommand: whop api-keys\n---\n\nAn API Key is a programmatic credential owned by an account or app. Each key carries its own permissions policy \u2014 explicit permission statements or an inherited system role \u2014 and can be restricted with an expiration date and an IP allowlist.\n\nUse the API Keys API to list a company or app's keys, create a key (the full secret is returned once, on creation), inspect a key's effective grants, update its name or restrictions, rotate its secret, and revoke it. These endpoints require a user session \u2014 they cannot be called with an API key.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop api-keys list` | List API Keys |\n| `whop api-keys create` | Create API Key |\n| `whop api-keys permissions` | List the Permission Catalog |\n| `whop api-keys delete` | Delete API Key |\n| `whop api-keys get` | Retrieve API Key |\n| `whop api-keys update` | Update API Key |\n| `whop api-keys rotate` | Rotate API Key |\n\nRun `whop api-keys <command> --help` for options, or `whop api-keys <command> --schema` for full argument details.\n",
73629
+ "whop-api-keys": "---\nname: whop-api-keys\ndescription: Programmatic credentials for an account or app. Run `whop api-keys --help` for usage details.\nrequires_bin: whop\ncommand: whop api-keys\n---\n\nAn API Key is a programmatic credential owned by an account or app. Each key carries its own permissions policy \u2014 explicit permission statements or an inherited system role \u2014 and can be restricted with an expiration date and an IP allowlist.\n\nUse the API Keys API to list an account or app's keys, create a key (the full secret is returned once, on creation), inspect a key's effective grants, update its name or restrictions, rotate its secret, and revoke it. These endpoints require a user session \u2014 they cannot be called with an API key.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop api-keys list` | List API Keys |\n| `whop api-keys create` | Create API Key |\n| `whop api-keys permissions` | List the Permission Catalog |\n| `whop api-keys delete` | Delete API Key |\n| `whop api-keys get` | Retrieve API Key |\n| `whop api-keys update` | Update API Key |\n| `whop api-keys rotate` | Rotate API Key |\n\nRun `whop api-keys <command> --help` for options, or `whop api-keys <command> --schema` for full argument details.\n",
72036
73630
  "whop-permissions": "---\nname: whop-permissions\ndescription: What your credential is allowed to do on a resource. Run `whop permissions --help` for usage details.\nrequires_bin: whop\ncommand: whop permissions\n---\n\nA Permission is one action, such as `stats:read`, paired with whether your credential is granted it on a given resource. It answers for whatever you authenticated with, so you can decide what to show or attempt instead of discovering a `403`.\n\nUse the Permissions API to check an account, product, experience, or app, narrowing to the actions you care about. It reports only your own access \u2014 to manage who else can reach an account, use the Team Members API.\n\n## Commands\n\n| Command | Description |\n|---------|-------------|\n| `whop permissions check` | Check Permissions |\n\nRun `whop permissions <command> --help` for options, or `whop permissions <command> --schema` for full argument details.\n"
72037
73631
  };
72038
73632