Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
ab2cd25
update custom code
Jun 3, 2026
a8e4318
Feat(Invoices): Add plan currency to invoice API
Jun 3, 2026
e0deda0
fix(backend): update account fields
Jun 3, 2026
610a21f
Route pixel conversions through worker proxy with edge geo
Jun 5, 2026
eafa99e
feat(ads): ad campaigns, ad groups, and ads root tables + public API …
Jun 5, 2026
dc3cd22
Build SDK
danielschwartz4 Jun 5, 2026
b29a465
Document swap execute/status endpoints in OpenAPI + SDK
Jun 5, 2026
78da32b
Add GET /api/v1/financial-activity endpoint
Jun 8, 2026
6663034
fix(ads): move ad group titles to `title` column and add indexes
Jun 8, 2026
0cdf737
feat(ads): forward custom pixel events to Meta CAPI (ENG-23505)
Jun 8, 2026
5eb3311
Build SDK
danielschwartz4 Jun 9, 2026
2c722ef
Merge remote-tracking branch 'origin/stainless-release' into stainles…
danielschwartz4 Jun 9, 2026
0edd207
fix: add weekly and monthly Granularities for ad reports
Jun 9, 2026
65fb473
feat(api): native /users resource + date-based API versioning
Jun 9, 2026
d6cae13
feat(pixel): add new conversion events and update dev panel
Jun 10, 2026
8204b78
Make /plans a native V1 API resource, unblocking new plan endpoints
Jun 10, 2026
841a7e2
Add all-time date range to ads reporting
Jun 10, 2026
2ba4cbc
Track stablecoin withdrawals via the native financial-activity API
Jun 10, 2026
ecc063e
Build SDK
Ryan-Ouyang Jul 14, 2026
ad10edc
Unfreeze the TypeScript and Ruby SDKs after a month of failed builds
Jul 14, 2026
5c7982d
Show custom audience size and Facebook match estimates
Jul 14, 2026
e749b67
Break custom pixel events out by name in ads reporting
Jul 14, 2026
7742af7
Add personal recommended actions to GET /users/me (core)
Jul 14, 2026
0a33f78
chore(api): finish the business_referrals → partners rename
Jul 14, 2026
2e06e3b
Show "under review" instead of "Get verified" while KYC docs are bein…
Jul 14, 2026
fa01f01
Let platforms supply the company tax ID on verification so it skips t…
Jul 14, 2026
e3af90f
feat(ads): move onboarding product picker to REST and show product ga…
Jul 14, 2026
ae7b8f9
fix(ads): let platforms set connected accounts' ads billing to platfo…
Jul 14, 2026
c4f5250
Accept a custom event name directly in the conversions API (ENG-24406)
Jul 14, 2026
a8de26b
Offramps blocked on the account owner end terminally with funds resti…
Jul 15, 2026
d6f12b0
feat(ads): target ads by dropping a pin on a map & add audience size
Jul 15, 2026
3d9463b
feat(invoices): expose invoice line items on the public REST API
Jul 15, 2026
470637d
feat(ads): target ads by interests, behaviors, and demographics
Jul 15, 2026
5a5353b
feature(ads): Add error status to social_accounts rest API and surfac…
Jul 15, 2026
277d73d
Merge Stainless release history to repair SDK tracking
g-delmo Jul 30, 2026
3b61937
Lock Ruby SDK verification dependencies
g-delmo Jul 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .stats.yml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
configured_endpoints: 271
configured_endpoints: 272
7 changes: 7 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ PATH
whop_sdk (0.0.41)
cgi
connection_pool
jwt
openssl
standardwebhooks

GEM
Expand Down Expand Up @@ -73,6 +75,8 @@ GEM
concurrent-ruby (~> 1.0)
io-event (1.11.2)
json (2.15.2)
jwt (2.10.2)
base64
language_server-protocol (3.17.0.5)
lint_roller (1.1.0)
listen (3.9.0)
Expand All @@ -91,6 +95,7 @@ GEM
minitest (~> 5.0)
mutex_m (0.3.0)
netrc (0.11.0)
openssl (3.2.0)
parallel (1.27.0)
parser (3.3.10.0)
ast (~> 2.4.1)
Expand Down Expand Up @@ -207,11 +212,13 @@ PLATFORMS

DEPENDENCIES
async
jwt
minitest
minitest-focus
minitest-hooks
minitest-proveit
minitest-rg
openssl
rake
rbs
redcarpet
Expand Down
33 changes: 17 additions & 16 deletions lib/whop_sdk.rb
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,18 @@
require_relative "whop_sdk/models/notification_create_response"
require_relative "whop_sdk/models/notification_preferences"
require_relative "whop_sdk/models/page_info"
require_relative "whop_sdk/models/partner_create_params"
require_relative "whop_sdk/models/partner_create_response"
require_relative "whop_sdk/models/partner_leaderboard_params"
require_relative "whop_sdk/models/partner_leaderboard_response"
require_relative "whop_sdk/models/partner_referred_users_params"
require_relative "whop_sdk/models/partner_referred_users_response"
require_relative "whop_sdk/models/partners/businesses/earning_list_params"
require_relative "whop_sdk/models/partners/businesses/earning_list_response"
require_relative "whop_sdk/models/partners/business_list_params"
require_relative "whop_sdk/models/partners/business_list_response"
require_relative "whop_sdk/models/partners/business_retrieve_params"
require_relative "whop_sdk/models/partners/business_retrieve_response"
require_relative "whop_sdk/models/payment"
require_relative "whop_sdk/models/payment_created_webhook_event"
require_relative "whop_sdk/models/payment_create_params"
Expand Down Expand Up @@ -502,18 +514,6 @@
require_relative "whop_sdk/models/reaction_retrieve_params"
require_relative "whop_sdk/models/receipt_status"
require_relative "whop_sdk/models/receipt_tax_behavior"
require_relative "whop_sdk/models/referral_referred_users_params"
require_relative "whop_sdk/models/referral_referred_users_response"
require_relative "whop_sdk/models/referrals/businesses/earning_list_params"
require_relative "whop_sdk/models/referrals/businesses/earning_list_response"
require_relative "whop_sdk/models/referrals/business_leaderboard_params"
require_relative "whop_sdk/models/referrals/business_leaderboard_response"
require_relative "whop_sdk/models/referrals/business_list_params"
require_relative "whop_sdk/models/referrals/business_list_response"
require_relative "whop_sdk/models/referrals/business_retrieve_params"
require_relative "whop_sdk/models/referrals/business_retrieve_response"
require_relative "whop_sdk/models/referrals/partner_create_params"
require_relative "whop_sdk/models/referrals/partner_create_response"
require_relative "whop_sdk/models/refund_created_webhook_event"
require_relative "whop_sdk/models/refund_list_params"
require_relative "whop_sdk/models/refund_list_response"
Expand Down Expand Up @@ -604,6 +604,8 @@
require_relative "whop_sdk/models/user_check_access_params"
require_relative "whop_sdk/models/user_check_access_response"
require_relative "whop_sdk/models/user_list_params"
require_relative "whop_sdk/models/user_recommend_actions_params"
require_relative "whop_sdk/models/user_recommend_actions_response"
require_relative "whop_sdk/models/user_retrieve_params"
require_relative "whop_sdk/models/user_update_me_params"
require_relative "whop_sdk/models/user_update_params"
Expand Down Expand Up @@ -697,6 +699,9 @@
require_relative "whop_sdk/resources/memberships"
require_relative "whop_sdk/resources/messages"
require_relative "whop_sdk/resources/notifications"
require_relative "whop_sdk/resources/partners"
require_relative "whop_sdk/resources/partners/businesses"
require_relative "whop_sdk/resources/partners/businesses/earnings"
require_relative "whop_sdk/resources/payment_methods"
require_relative "whop_sdk/resources/payments"
require_relative "whop_sdk/resources/payout_accounts"
Expand All @@ -707,10 +712,6 @@
require_relative "whop_sdk/resources/products"
require_relative "whop_sdk/resources/promo_codes"
require_relative "whop_sdk/resources/reactions"
require_relative "whop_sdk/resources/referrals"
require_relative "whop_sdk/resources/referrals/businesses"
require_relative "whop_sdk/resources/referrals/businesses/earnings"
require_relative "whop_sdk/resources/referrals/partners"
require_relative "whop_sdk/resources/refunds"
require_relative "whop_sdk/resources/resolution_center_cases"
require_relative "whop_sdk/resources/reviews"
Expand Down
8 changes: 4 additions & 4 deletions lib/whop_sdk/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -288,14 +288,14 @@ class Client < WhopSDK::Internal::Transport::BaseClient
# @return [WhopSDK::Resources::Payouts]
attr_reader :payouts

# The Referrals API covers your Whop partner activity: the users you referred onto
# The Partners API covers your Whop partner activity: the users you referred onto
# Whop, the businesses you referred and the earnings generated from their
# processing volume, and the partner leaderboard.
#
# Use it to enroll as a Whop partner, list the users you referred, list your
# referred businesses and review their earnings, and see the partner leaderboard.
# @return [WhopSDK::Resources::Referrals]
attr_reader :referrals
# @return [WhopSDK::Resources::Partners]
attr_reader :partners

# Cards represent Whop-issued virtual payment cards that spend from an account or
# user balance. Cards can be assigned to cardholders and configured with spending
Expand Down Expand Up @@ -550,7 +550,7 @@ def initialize(
@financial_activity = WhopSDK::Resources::FinancialActivity.new(client: self)
@stats = WhopSDK::Resources::Stats.new(client: self)
@payouts = WhopSDK::Resources::Payouts.new(client: self)
@referrals = WhopSDK::Resources::Referrals.new(client: self)
@partners = WhopSDK::Resources::Partners.new(client: self)
@cards = WhopSDK::Resources::Cards.new(client: self)
@swaps = WhopSDK::Resources::Swaps.new(client: self)
@deposits = WhopSDK::Resources::Deposits.new(client: self)
Expand Down
14 changes: 10 additions & 4 deletions lib/whop_sdk/models.rb
Original file line number Diff line number Diff line change
Expand Up @@ -601,6 +601,14 @@ module WhopSDK

PageInfo = WhopSDK::Models::PageInfo

PartnerCreateParams = WhopSDK::Models::PartnerCreateParams

PartnerLeaderboardParams = WhopSDK::Models::PartnerLeaderboardParams

PartnerReferredUsersParams = WhopSDK::Models::PartnerReferredUsersParams

Partners = WhopSDK::Models::Partners

Payment = WhopSDK::Models::Payment

PaymentCreatedWebhookEvent = WhopSDK::Models::PaymentCreatedWebhookEvent
Expand Down Expand Up @@ -711,10 +719,6 @@ module WhopSDK

ReceiptTaxBehavior = WhopSDK::Models::ReceiptTaxBehavior

ReferralReferredUsersParams = WhopSDK::Models::ReferralReferredUsersParams

Referrals = WhopSDK::Models::Referrals

RefundCreatedWebhookEvent = WhopSDK::Models::RefundCreatedWebhookEvent

RefundListParams = WhopSDK::Models::RefundListParams
Expand Down Expand Up @@ -849,6 +853,8 @@ module WhopSDK

UserListParams = WhopSDK::Models::UserListParams

UserRecommendActionsParams = WhopSDK::Models::UserRecommendActionsParams

UserRetrieveParams = WhopSDK::Models::UserRetrieveParams

UserUpdateMeParams = WhopSDK::Models::UserUpdateMeParams
Expand Down
9 changes: 4 additions & 5 deletions lib/whop_sdk/models/account.rb
Original file line number Diff line number Diff line change
Expand Up @@ -723,14 +723,13 @@ class RecommendedAction < WhopSDK::Internal::Type::BaseModel
required :icon_url, String, nil?: true

# @!attribute impact_score
# Estimated revenue impact from 0-100, comparable across accounts, or `null` when
# not ranked
# Estimated impact from 0-100, or `null` when not ranked
#
# @return [Integer, nil]
required :impact_score, Integer, nil?: true

# @!attribute reasoning
# Why this action was recommended for this account, or `null`
# Why this action was recommended, or `null`
#
# @return [String, nil]
required :reasoning, String, nil?: true
Expand Down Expand Up @@ -768,9 +767,9 @@ class RecommendedAction < WhopSDK::Internal::Type::BaseModel
#
# @param icon_url [String, nil] Illustration icon URL, or `null`
#
# @param impact_score [Integer, nil] Estimated revenue impact from 0-100, comparable across accounts, or `null` when
# @param impact_score [Integer, nil] Estimated impact from 0-100, or `null` when not ranked
#
# @param reasoning [String, nil] Why this action was recommended for this account, or `null`
# @param reasoning [String, nil] Why this action was recommended, or `null`
#
# @param status [Symbol, WhopSDK::Models::Account::RecommendedAction::Status] Always optional — never blocking
#
Expand Down
9 changes: 4 additions & 5 deletions lib/whop_sdk/models/account_recommend_actions_response.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,13 @@ class Data < WhopSDK::Internal::Type::BaseModel
required :icon_url, String, nil?: true

# @!attribute impact_score
# Estimated revenue impact from 0-100, comparable across accounts, or `null` when
# not ranked
# Estimated impact from 0-100, or `null` when not ranked
#
# @return [Integer, nil]
required :impact_score, Integer, nil?: true

# @!attribute reasoning
# Why this action was recommended for this account, or `null`
# Why this action was recommended, or `null`
#
# @return [String, nil]
required :reasoning, String, nil?: true
Expand Down Expand Up @@ -91,9 +90,9 @@ class Data < WhopSDK::Internal::Type::BaseModel
#
# @param icon_url [String, nil] Illustration icon URL, or `null`
#
# @param impact_score [Integer, nil] Estimated revenue impact from 0-100, comparable across accounts, or `null` when
# @param impact_score [Integer, nil] Estimated impact from 0-100, or `null` when not ranked
#
# @param reasoning [String, nil] Why this action was recommended for this account, or `null`
# @param reasoning [String, nil] Why this action was recommended, or `null`
#
# @param status [Symbol, WhopSDK::Models::AccountRecommendActionsResponse::Data::Status] Always optional — never blocking
#
Expand Down
21 changes: 17 additions & 4 deletions lib/whop_sdk/models/ad_group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,15 @@ class AdGroup < WhopSDK::Internal::Type::BaseModel
# @return [Float, nil]
required :desired_cost_per_result, Float, nil?: true

# @!attribute detailed_targeting
# Detailed targeting: { interests: [{id, name}], behaviors: [{id, name}],
# demographics: [{id, name, type}] } where demographics type is one of
# life_events, industries, income, family_statuses. Incompatible with
# demographics.automatic (Advantage+) and Special Ad Category campaigns.
#
# @return [Object]
required :detailed_targeting, WhopSDK::Internal::Type::Unknown

# @!attribute devices
# Device targeting: platforms and operating systems.
#
Expand Down Expand Up @@ -295,8 +304,10 @@ class AdGroup < WhopSDK::Internal::Type::BaseModel
required :reach, Float

# @!attribute regions
# Geo targeting: include/exclude countries, regions (ISO 3166-2 states, e.g.
# US-CA), cities, zips.
# Geo targeting: include/exclude countries, country_groups (include-only Meta
# groups like worldwide — global reach), regions (ISO 3166-2 states, e.g. US-CA),
# cities, zips, and custom_locations (pin + radius: { latitude, longitude, radius,
# distance_unit, name }).
#
# @return [Object]
required :regions, WhopSDK::Internal::Type::Unknown
Expand Down Expand Up @@ -398,7 +409,7 @@ class AdGroup < WhopSDK::Internal::Type::BaseModel
# @return [Float]
required :viewed_contents, Float

# @!method initialize(id:, ad_campaign:, added_to_carts:, audiences:, bid_type:, budget_amount:, budget_type:, click_through_rate:, clicks:, completed_registrations:, contacts:, conversion_event:, conversion_location:, cost_per_added_to_cart:, cost_per_click:, cost_per_completed_registration:, cost_per_contact:, cost_per_lead:, cost_per_mille:, cost_per_purchase:, cost_per_result:, cost_per_schedule:, cost_per_submitted_application:, cost_per_viewed_content:, created_at:, custom_conversions:, custom_event_counts:, delivery_status:, demographics:, desired_cost_per_result:, devices:, dynamic_creative:, ends_at:, frequency:, frequency_cap:, impressions:, issues:, languages:, leads:, message_apps:, minimum_daily_spend:, optimization_goal:, placements:, purchase_value:, purchases:, reach:, regions:, result_event:, result_event_name:, results:, return_on_ad_spend:, schedules:, spend:, spend_currency:, starts_at:, status:, submitted_applications:, title:, unique_click_through_rate:, unique_clicks:, updated_at:, viewed_contents:)
# @!method initialize(id:, ad_campaign:, added_to_carts:, audiences:, bid_type:, budget_amount:, budget_type:, click_through_rate:, clicks:, completed_registrations:, contacts:, conversion_event:, conversion_location:, cost_per_added_to_cart:, cost_per_click:, cost_per_completed_registration:, cost_per_contact:, cost_per_lead:, cost_per_mille:, cost_per_purchase:, cost_per_result:, cost_per_schedule:, cost_per_submitted_application:, cost_per_viewed_content:, created_at:, custom_conversions:, custom_event_counts:, delivery_status:, demographics:, desired_cost_per_result:, detailed_targeting:, devices:, dynamic_creative:, ends_at:, frequency:, frequency_cap:, impressions:, issues:, languages:, leads:, message_apps:, minimum_daily_spend:, optimization_goal:, placements:, purchase_value:, purchases:, reach:, regions:, result_event:, result_event_name:, results:, return_on_ad_spend:, schedules:, spend:, spend_currency:, starts_at:, status:, submitted_applications:, title:, unique_click_through_rate:, unique_clicks:, updated_at:, viewed_contents:)
# Some parameter documentations has been truncated, see {WhopSDK::Models::AdGroup}
# for more details.
#
Expand Down Expand Up @@ -462,6 +473,8 @@ class AdGroup < WhopSDK::Internal::Type::BaseModel
#
# @param desired_cost_per_result [Float, nil] Target/cap cost for average_target / maximum_target.
#
# @param detailed_targeting [Object] Detailed targeting: { interests: [{id, name}], behaviors: [{id, name}], demograp
#
# @param devices [Object] Device targeting: platforms and operating systems.
#
# @param dynamic_creative [Boolean] Whether ads within this ad group have their creatives and copy dynamically AB te
Expand Down Expand Up @@ -494,7 +507,7 @@ class AdGroup < WhopSDK::Internal::Type::BaseModel
#
# @param reach [Float] The number of unique people who saw this.
#
# @param regions [Object] Geo targeting: include/exclude countries, regions (ISO 3166-2 states, e.g. US-CA
# @param regions [Object] Geo targeting: include/exclude countries, country_groups (include-only Meta grou
#
# @param result_event [Symbol, WhopSDK::Models::AdGroup::ResultEvent, nil] The Whop pixel conversion event whose attributed count represents results — the
#
Expand Down
25 changes: 21 additions & 4 deletions lib/whop_sdk/models/ad_group_create_params.rb
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,17 @@ class AdGroupCreateParams < WhopSDK::Internal::Type::BaseModel
# @return [Float, nil]
optional :desired_cost_per_result, Float

# @!attribute detailed_targeting
# Detailed targeting: { interests: [{id, name}], behaviors: [{id, name}],
# demographics: [{id, name, type}] } where type is one of life_events, industries,
# income, family_statuses. IDs come from Meta's targeting taxonomy. At most 100
# entries per section. Incompatible with demographics.automatic (Advantage+) and
# Special Ad Category campaigns. Sending the field states complete intent —
# omitted sections clear their stored entries.
#
# @return [Object, nil]
optional :detailed_targeting, WhopSDK::Internal::Type::Unknown

# @!attribute devices
# Device targeting: { platforms, operating_systems: [{ os, minimum_version }] }.
#
Expand Down Expand Up @@ -137,8 +148,12 @@ class AdGroupCreateParams < WhopSDK::Internal::Type::BaseModel
optional :placements, WhopSDK::Internal::Type::Unknown

# @!attribute regions
# Geo targeting: { include / exclude: { countries (ISO 3166-1), regions
# (states/provinces as ISO 3166-2, e.g. US-CA), cities (keyed), zips } }.
# Geo targeting: { include / exclude: { countries (ISO 3166-1), country_groups
# (include-only, e.g. 'worldwide' for global reach), regions (ISO 3166-2 states,
# e.g. US-CA), cities (keyed), zips, custom_locations } }. custom_locations
# entries are pin + radius: { latitude, longitude, radius, distance_unit ('mile'
# default, or 'kilometer'), name (optional label) }. Radius 1-50 miles or 1-80 km;
# at most 200 custom locations across include and exclude.
#
# @return [Object, nil]
optional :regions, WhopSDK::Internal::Type::Unknown
Expand All @@ -161,7 +176,7 @@ class AdGroupCreateParams < WhopSDK::Internal::Type::BaseModel
# @return [String, nil]
optional :title, String

# @!method initialize(ad_campaign_id:, audiences: nil, bid_type: nil, budget_amount: nil, budget_type: nil, conversion_event: nil, conversion_location: nil, demographics: nil, desired_cost_per_result: nil, devices: nil, dynamic_creative: nil, ends_at: nil, frequency_cap: nil, languages: nil, message_apps: nil, minimum_daily_spend: nil, optimization_goal: nil, placements: nil, regions: nil, starts_at: nil, status: nil, title: nil, request_options: {})
# @!method initialize(ad_campaign_id:, audiences: nil, bid_type: nil, budget_amount: nil, budget_type: nil, conversion_event: nil, conversion_location: nil, demographics: nil, desired_cost_per_result: nil, detailed_targeting: nil, devices: nil, dynamic_creative: nil, ends_at: nil, frequency_cap: nil, languages: nil, message_apps: nil, minimum_daily_spend: nil, optimization_goal: nil, placements: nil, regions: nil, starts_at: nil, status: nil, title: nil, request_options: {})
# Some parameter documentations has been truncated, see
# {WhopSDK::Models::AdGroupCreateParams} for more details.
#
Expand All @@ -183,6 +198,8 @@ class AdGroupCreateParams < WhopSDK::Internal::Type::BaseModel
#
# @param desired_cost_per_result [Float] Target/cap cost for average_target / maximum_target.
#
# @param detailed_targeting [Object] Detailed targeting: { interests: [{id, name}], behaviors: [{id, name}], demograp
#
# @param devices [Object] Device targeting: { platforms, operating_systems: [{ os, minimum_version }] }.
#
# @param dynamic_creative [Boolean] Run Meta dynamic (Advantage+) creative for this ad set. Set at creation; immutab
Expand All @@ -201,7 +218,7 @@ class AdGroupCreateParams < WhopSDK::Internal::Type::BaseModel
#
# @param placements [Object] 'automatic' (Advantage+) or a list of { platform, positions }. Omit positions to
#
# @param regions [Object] Geo targeting: { include / exclude: { countries (ISO 3166-1), regions (states/pr
# @param regions [Object] Geo targeting: { include / exclude: { countries (ISO 3166-1), country_groups (in
#
# @param starts_at [String] Schedule start, ISO 8601.
#
Expand Down
Loading