Releases: polarsource/polar-python
Release list
python - v0.31.7 - 2026-06-12 06:50:16
Generated by Speakeasy CLI
Python SDK Changes Detected:
polar._endpointcustomer_created_post():request.dataChanged Breaking⚠️
polar._endpointcustomer_updated_post():request.dataChanged Breaking⚠️
polar._endpointcustomer_deleted_post():request.dataChanged Breaking⚠️
polar._endpointcustomer_state_changed_post():request.dataChanged Breaking⚠️
polar._endpointorder_created_post():request.data.customer.billing_nameAdded Breaking⚠️
polar._endpointorder_updated_post():request.data.customer.billing_nameAdded Breaking⚠️
polar._endpointorder_paid_post():request.data.customer.billing_nameAdded Breaking⚠️
polar._endpointorder_refunded_post():request.data.customer.billing_nameAdded Breaking⚠️
polar._endpointsubscription_created_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_updated_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_active_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_canceled_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_uncanceled_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_revoked_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_past_due_post():request.dataChanged Breaking⚠️
polar._endpointproduct_created_post():request.data.benefits.[]Changed Breaking⚠️
polar._endpointproduct_updated_post():request.data.benefits.[]Changed Breaking⚠️
polar._endpointorganization_updated_post():request.data.feature_settings.account_review_v2_enabledRemoved Breaking⚠️
polar._endpointbenefit_created_post():request.dataChanged Breaking⚠️
polar._endpointbenefit_updated_post():request.dataChanged Breaking⚠️
polar._endpointbenefit_grant_created_post():request.dataChanged Breaking⚠️
polar._endpointbenefit_grant_updated_post():request.dataChanged Breaking⚠️
polar._endpointbenefit_grant_cycled_post():request.dataChanged Breaking⚠️
polar._endpointbenefit_grant_revoked_post():request.dataChanged Breaking⚠️
polar.organizations.list_organizations():response.items.[].feature_settings.account_review_v2_enabledRemoved Breaking⚠️ polar.organizations.create():request.feature_settingsChanged Breaking⚠️ response.feature_settings.account_review_v2_enabledRemoved Breaking⚠️
polar.organizations.get():response.feature_settings.account_review_v2_enabledRemoved Breaking⚠️ polar.organizations.update():request.organization_update.feature_settingsChanged Breaking⚠️ response.feature_settings.account_review_v2_enabledRemoved Breaking⚠️
polar.customer_portal.benefit-grants.update():request.customer_benefit_grant_update.[slack_shared_channel]AddedresponseChanged Breaking⚠️
polar.customer_portal.benefit-grants.get():responseChanged Breaking⚠️ polar.customer_portal.benefit-grants.list():request.type_filterChangedresponse.items.[]Changed Breaking⚠️
polar.orders.list():response.items.[].customer.billing_nameAddedpolar.customers.create():responseChangedpolar.benefits.list():request.type_filterChangedresponse.items.[]Changed
polar.benefits.create():requestChangedresponseChanged
polar.benefits.get():responseChangedpolar.benefits.update():request_bodyChangedresponseChanged
polar.benefits.grants():response.items.[]Changedpolar.benefit-grants.list():response.items.[]Changedpolar.products.list():response.items.[].benefits.[]Changedpolar.products.create():response.benefits.[]Changedpolar.products.get():response.benefits.[]Changedpolar.products.update():response.benefits.[]Changedpolar.products.update_benefits():response.benefits.[]Changedpolar.subscriptions.revoke():responseChangedpolar.orders.create():response.customer.billing_nameAddedpolar.orders.get():response.customer.billing_nameAddedpolar.orders.update():response.customer.billing_nameAddedpolar.orders.finalize():response.customer.billing_nameAddedpolar.license_keys.list():response.items.[].customer.billing_nameAddedpolar.license_keys.get():response.customer.billing_nameAddedpolar.license_keys.update():response.customer.billing_nameAddedpolar.license_keys.get_activation():response.license_key.customer.billing_nameAddedpolar.license_keys.validate():response.customer.billing_nameAddedpolar.license_keys.activate():response.license_key.customer.billing_nameAddedpolar.checkout-links.list():response.items.[].seatsAddedpolar.checkout-links.create():requestChangedresponse.seatsAdded
polar.checkout-links.get():response.seatsAddedpolar.checkout-links.update():request.checkout_link_update.seatsAddedresponse.seatsAdded
polar.customers.list():response.items.[]Changedpolar.subscriptions.update():responseChangedpolar.customers.get():responseChangedpolar.customers.update():responseChangedpolar.customers.get_external():responseChangedpolar.customers.update_external():responseChangedpolar.customers.get_state():responseChangedpolar.customers.get_state_external():responseChangedpolar.subscriptions.get():responseChangedpolar.subscriptions.create():responseChangedpolar.subscriptions.list():request.statusAddedresponse.items.[]Changed
polar.customer_portal.customers.get():response.localeAddedpolar.customer_portal.customers.update():response.localeAddedpolar.customer_portal.seats.list_claimed_subscriptions():response.items.[].product.organization.organization_features.checkout_localization_enabledAddedpolar.customer_portal.license_keys.list():response.items.[].customer.billing_nameAddedpolar.customer_portal.license_keys.get():response.customer.billing_nameAddedpolar.customer_portal.license_keys.validate():response.customer.billing_nameAddedpolar.customer_portal.license_keys.activate():response.license_key.customer.billing_nameAddedpolar.customer_portal.orders.list():response.items.[].product.organization.organization_features.checkout_localization_enabledAddedpolar.customer_portal.orders.get():response.product.organization.organization_features.checkout_localization_enabledAddedpolar.customer_portal.orders.update():response.product.organization.organization_features.checkout_localization_enabledAddedpolar.customer_portal.organizations.get():response.organization.organization_features.checkout_localization_enabledAddedpolar.customer_portal.subscriptions.list():response.items.[].product.organization.organization_features.checkout_localization_enabledAddedpolar.customer_portal.subscriptions.get():response.product.organization.organization_features.checkout_localization_enabledAddedpolar.customer_portal.subscriptions.cancel():response.product.organization.organization_features.checkout_localization_enabledAddedpolar.customer_portal.subscriptions.update():response.product.organization.organization_features.checkout_localization_enabledAddedpolar.customer-sessions.create():response.customerChangedpolar.events.list():response.[list_resource_event_].items.[].[system_event]Changedpolar.events.get():responseChangedpolar.customer_meters.list():response.items.[].customerChangedpolar.customer_meters.get():response.customerChanged
Generated with Speakeasy CLI 1.648.0
Publishing Completed
python - v0.31.6 - 2026-06-08 09:18:36
Generated by Speakeasy CLI
Python SDK Changes Detected:
polar.subscriptions.update():request.subscription_updateChanged Breaking⚠️ response.customer.default_payment_method_idAdded
polar.events.get():response.[system_event]Changed Breaking⚠️ polar.events.list():response.[list_resource_event_].items.[].[system_event]Changed Breaking⚠️ polar.customer_portal.orders.update():response.invoice_numberChanged Breaking⚠️ polar.customer_portal.orders.get():response.invoice_numberChanged Breaking⚠️ polar.customer_portal.orders.list():response.items.[].invoice_numberChanged Breaking⚠️ polar.orders.update():responseChanged Breaking⚠️ polar.orders.get():responseChanged Breaking⚠️ polar.orders.list():response.items.[]Changed Breaking⚠️ polar.subscriptions.get():response.customer.default_payment_method_idAddedpolar._endpointcustomer_created_post():request.dataChanged
polar._endpointorder_updated_post():request.dataChanged
polar._endpointorder_paid_post():request.dataChanged
polar._endpointorder_refunded_post():request.dataChanged
polar._endpointsubscription_created_post():request.data.customer.default_payment_method_idAdded
polar._endpointsubscription_updated_post():request.data.customer.default_payment_method_idAdded
polar._endpointsubscription_active_post():request.data.customer.default_payment_method_idAdded
polar._endpointsubscription_canceled_post():request.data.customer.default_payment_method_idAdded
polar._endpointsubscription_uncanceled_post():request.data.customer.default_payment_method_idAdded
polar._endpointsubscription_revoked_post():request.data.customer.default_payment_method_idAdded
polar._endpointsubscription_past_due_post():request.data.customer.default_payment_method_idAdded
polar._endpointorganization_updated_post():request.data.feature_settingsChanged
polar._endpointbenefit_grant_created_post():request.data.[benefit_grant_git_hub_repository_webhook].customerChanged
polar._endpointbenefit_grant_updated_post():request.data.[benefit_grant_license_keys_webhook].customerChanged
polar._endpointbenefit_grant_cycled_post():request.data.[benefit_grant_discord_webhook].customerChanged
polar._endpointbenefit_grant_revoked_post():request.data.[benefit_grant_discord_webhook].customerChanged
polar.organizations.create():request.feature_settingsChangedresponse.feature_settingsChanged
polar.organizations.get():response.feature_settingsChangedpolar.organizations.update():request.organization_update.feature_settingsChangedresponse.feature_settingsChanged
polar.subscriptions.list():response.items.[].customer.default_payment_method_idAddedpolar.subscriptions.create():response.customer.default_payment_method_idAddedpolar.organizations.list_organizations(): Addedpolar.subscriptions.revoke():response.customer.default_payment_method_idAddedpolar._endpointcustomer_state_changed_post():request.dataChanged
polar.benefits.grants():response.items.[].customerChangedpolar.benefit-grants.list():response.items.[].customerChangedpolar._endpointcustomer_deleted_post():request.dataChanged
polar._endpointcustomer_updated_post():request.dataChanged
polar._endpointorder_created_post():request.dataChanged
polar.license_keys.list():response.items.[].customer.default_payment_method_idAddedpolar.license_keys.get():response.customer.default_payment_method_idAddedpolar.license_keys.update():response.customer.default_payment_method_idAddedpolar.license_keys.get_activation():response.license_key.customer.default_payment_method_idAddedpolar.license_keys.validate():response.customer.default_payment_method_idAddedpolar.license_keys.activate():response.license_key.customer.default_payment_method_idAddedpolar.customers.list():request.activeAddedresponse.items.[]Changed
polar.customers.create():responseChangedpolar.customers.get():responseChangedpolar.customers.update():responseChangedpolar.customers.get_external():responseChangedpolar.customers.update_external():responseChangedpolar.customers.get_state():responseChangedpolar.customers.get_state_external():responseChangedpolar.customer_portal.customers.add_payment_method():error.status[400]Addedpolar.customer_portal.license_keys.list():response.items.[].customer.default_payment_method_idAddedpolar.customer_portal.license_keys.get():response.customer.default_payment_method_idAddedpolar.customer_portal.license_keys.validate():response.customer.default_payment_method_idAddedpolar.customer_portal.license_keys.activate():response.license_key.customer.default_payment_method_idAddedpolar.organizations.list(): Deleted Breaking⚠️ polar.customers.list_payment_methods_external(): Addedpolar.customers.list_payment_methods(): Addedpolar.customer-sessions.create():response.customerChangedpolar.orders.finalize(): Addedpolar.orders.create(): Addedpolar.customer_meters.list():response.items.[].customerChangedpolar.customer_meters.get():response.customerChangedpolar.payments.list():request.customer_idAdded
Generated with Speakeasy CLI 1.648.0
Publishing Completed
python - v0.31.5 - 2026-05-19 07:05:48
Generated by Speakeasy CLI
Python SDK Changes Detected:
polar.customer_portal.seats.assign_seat():request.checkout_client_secretRemoved Breaking⚠️
polar.events.list():response.[list_resource_event_].items.[].[system_event]Changed Breaking⚠️ polar._endpointorder_created_post():request.dataChanged Breaking⚠️
polar._endpointorder_updated_post():request.dataChanged Breaking⚠️
polar._endpointorder_paid_post():request.dataChanged Breaking⚠️
polar._endpointorder_refunded_post():request.dataChanged Breaking⚠️
polar._endpointorganization_updated_post():request.data.feature_settingsChanged Breaking⚠️
polar.organizations.list():response.items.[].feature_settingsChanged Breaking⚠️ polar.organizations.create():request.feature_settingsChanged Breaking⚠️ response.feature_settingsChanged Breaking⚠️
polar.organizations.get():response.feature_settingsChanged Breaking⚠️ polar.organizations.update():request.organization_update.feature_settingsChanged Breaking⚠️ response.feature_settingsChanged Breaking⚠️
polar.event-types.list():response.items.[]Changed Breaking⚠️ polar.events.get():response.[system_event]Changed Breaking⚠️ polar.customer-seats.assign_seat():requestChanged Breaking⚠️ polar.discounts.create():requestChanged Breaking⚠️ polar.subscriptions.update():request.subscription_update.[subscription_update_clear]Added
polar.members.create_member():request.roleChanged
polar.customer_portal.customers.update():request.default_payment_method_idAdded
polar.orders.receipt(): Addedpolar.customer_portal.orders.list():response.items.[]Changedpolar.customer_portal.orders.get():responseChangedpolar.customer_portal.orders.update():responseChangedpolar.customer_portal.subscriptions.update():request.customer_subscription_update.[customer_subscription_update_clear]Added
polar.orders.list():response.items.[]Changedpolar.orders.get():responseChangedpolar.customer_portal.orders.receipt(): Addedpolar.orders.update():responseChanged
Generated with Speakeasy CLI 1.648.0
Publishing Completed
python - v0.31.4 - 2026-04-28 10:50:55
Generated by Speakeasy CLI
Python SDK Changes Detected:
polar._endpointcheckout_created_post():request.dataChanged Breaking⚠️
polar._endpointcheckout_updated_post():request.dataChanged Breaking⚠️
polar._endpointcheckout_expired_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_created_post():request.data.product.benefits.[]Changed Breaking⚠️
polar._endpointsubscription_updated_post():request.data.product.benefits.[]Changed Breaking⚠️
polar._endpointsubscription_active_post():request.data.product.benefits.[]Changed Breaking⚠️
polar._endpointsubscription_canceled_post():request.data.product.benefits.[]Changed Breaking⚠️
polar._endpointsubscription_uncanceled_post():request.data.product.benefits.[]Changed Breaking⚠️
polar._endpointsubscription_revoked_post():request.data.product.benefits.[]Changed Breaking⚠️
polar._endpointsubscription_past_due_post():request.data.product.benefits.[]Changed Breaking⚠️
polar._endpointproduct_created_post():request.data.benefits.[]Changed Breaking⚠️
polar._endpointproduct_updated_post():request.data.benefits.[]Changed Breaking⚠️
polar._endpointorganization_updated_post():request.dataChanged Breaking⚠️
polar._endpointbenefit_created_post():request.dataChanged Breaking⚠️
polar._endpointbenefit_updated_post():request.dataChanged Breaking⚠️
polar._endpointbenefit_grant_created_post():request.dataChanged Breaking⚠️
polar._endpointbenefit_grant_updated_post():request.dataChanged Breaking⚠️
polar._endpointbenefit_grant_cycled_post():request.dataChanged Breaking⚠️
polar._endpointbenefit_grant_revoked_post():request.dataChanged Breaking⚠️
polar.organizations.list():response.items.[]Changed Breaking⚠️ polar.organizations.create():requestChanged Breaking⚠️ responseChanged Breaking⚠️
polar.organizations.get():responseChanged Breaking⚠️ polar.organizations.update():request.organization_updateChanged Breaking⚠️ responseChanged Breaking⚠️
polar.customer_portal.customers.request_email_update(): Addedpolar.customer_portal.customers.check_email_update(): Addedpolar.customer_portal.customers.verify_email_update(): Addedpolar.subscriptions.list():response.items.[].product.benefits.[]Changedpolar.subscriptions.create():response.product.benefits.[]Changedpolar.subscriptions.get():response.product.benefits.[]Changedpolar.subscriptions.revoke():response.product.benefits.[]Changedpolar.subscriptions.update():response.product.benefits.[]Changedpolar.benefits.list():response.items.[]Changedpolar.benefits.create():responseChangedpolar.benefits.get():responseChangedpolar.benefits.update():responseChangedpolar.benefits.grants():response.items.[].benefitChangedpolar.benefit-grants.list():response.items.[].benefitChangedpolar.products.list():response.items.[].benefits.[]Changedpolar.products.create():response.benefits.[]Changedpolar.products.get():response.benefits.[]Changedpolar.products.update():response.benefits.[]Changedpolar.products.update_benefits():response.benefits.[]Changedpolar.checkouts.list():response.items.[]Changedpolar.checkouts.create():responseChangedpolar.checkouts.get():responseChangedpolar.checkouts.update():responseChangedpolar.checkouts.client_get():responseChangedpolar.checkouts.client_update():responseChangedpolar.checkouts.client_confirm():responseChangedpolar.metrics.get():responseChangedpolar.license_keys.list():request.statusAddedpolar.checkout-links.list():response.items.[].products.[].benefits.[].is_deletedAddedpolar.checkout-links.create():response.products.[].benefits.[].is_deletedAddedpolar.checkout-links.get():response.products.[].benefits.[].is_deletedAddedpolar.checkout-links.update():response.products.[].benefits.[].is_deletedAddedpolar.members.get_member_by_external_id():requestChangedpolar.members.delete_member_by_external_id():requestChangedpolar.members.update_member_by_external_id():requestChangedpolar.customer_portal.benefit-grants.list():response.items.[]Changedpolar.customer_portal.benefit-grants.get():responseChangedpolar.customer_portal.benefit-grants.update():responseChangedpolar.customer_portal.seats.assign_seat():request.checkout_client_secretAdded
polar.customer_portal.seats.list_claimed_subscriptions():response.items.[].productChangedpolar.customer_portal.orders.list():response.items.[].productChangedpolar.customer_portal.orders.get():response.productChangedpolar.customer_portal.orders.update():response.productChangedpolar.customer_portal.organizations.get():responseChangedpolar.customer_portal.subscriptions.list():response.items.[].productChangedpolar.customer_portal.subscriptions.get():response.productChangedpolar.customer_portal.subscriptions.cancel():response.productChangedpolar.customer_portal.subscriptions.update():response.productChangedpolar.customer-seats.assign_seat():request.checkout_client_secretAdded
Generated with Speakeasy CLI 1.648.0
Publishing Completed
python - v0.31.3 - 2026-04-10 09:42:08
Generated by Speakeasy CLI
Python SDK Changes Detected:
polar._endpointcheckout_created_post():request.data.products.[].prices.[].[product_price].[seat_based].meterChanged Breaking⚠️
polar._endpointcheckout_updated_post():request.data.products.[].prices.[].[product_price].[seat_based].meterChanged Breaking⚠️
polar._endpointcheckout_expired_post():request.data.products.[].prices.[].[product_price].[seat_based].meterChanged Breaking⚠️
polar._endpointsubscription_created_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_updated_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_active_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_canceled_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_uncanceled_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_revoked_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_past_due_post():request.dataChanged Breaking⚠️
polar._endpointproduct_created_post():request.data.prices.[].[product_price].[seat_based].meterChanged Breaking⚠️
polar._endpointproduct_updated_post():request.data.prices.[].[product_price].[seat_based].meterChanged Breaking⚠️
polar._endpointorganization_updated_post():request.dataChanged Breaking⚠️
polar.metrics.export(): Addedpolar.members.get_member_by_external_id(): Addedpolar.members.update_member_by_external_id(): Addedpolar.members.delete_member_by_external_id(): Addedpolar.organizations.list():response.items.[]Changedpolar.organizations.create():responseChangedpolar.organizations.get():responseChangedpolar.organizations.update():responseChangedpolar.subscriptions.list():response.items.[]Changedpolar.subscriptions.create():responseChangedpolar.subscriptions.get():responseChangedpolar.subscriptions.revoke():responseChangedpolar.subscriptions.update():responseChangedpolar.products.list():response.items.[].prices.[].[product_price].[seat_based].meterChangedpolar.products.create():response.prices.[].[product_price].[seat_based].meterChangedpolar.products.get():response.prices.[].[product_price].[seat_based].meterChangedpolar.products.update():response.prices.[].[product_price].[seat_based].meterChangedpolar.products.update_benefits():response.prices.[].[product_price].[seat_based].meterChangedpolar.orders.list():request.subscription_idAddedpolar.checkouts.list():response.items.[].products.[].prices.[].[product_price].[seat_based].meterChangedpolar.checkouts.create():response.products.[].prices.[].[product_price].[seat_based].meterChangedpolar.checkouts.get():response.products.[].prices.[].[product_price].[seat_based].meterChangedpolar.checkouts.update():response.products.[].prices.[].[product_price].[seat_based].meterChangedpolar.checkouts.client_get():response.products.[].prices.[].[product_price].[seat_based].meterChangedpolar.checkouts.client_update():response.products.[].prices.[].[product_price].[seat_based].meterChangedpolar.checkouts.client_confirm():response.products.[].prices.[].[product_price].[seat_based].meterChangedpolar.checkout-links.list():response.items.[].products.[].prices.[].[product_price].[seat_based].meterChangedpolar.checkout-links.create():response.products.[].prices.[].[product_price].[seat_based].meterChangedpolar.checkout-links.get():response.products.[].prices.[].[product_price].[seat_based].meterChangedpolar.checkout-links.update():response.products.[].prices.[].[product_price].[seat_based].meterChangedpolar.customer_portal.seats.list_claimed_subscriptions():response.items.[].product.prices.[].[product_price].[seat_based].meterChangedpolar.customer_portal.orders.list():response.items.[].product.prices.[].[product_price].[seat_based].meterChangedpolar.customer_portal.orders.get():response.product.prices.[].[product_price].[seat_based].meterChangedpolar.customer_portal.orders.update():response.product.prices.[].[product_price].[seat_based].meterChangedpolar.customer_portal.orders.confirm_retry_payment():error.status[429]Addedpolar.customer_portal.organizations.get():response.products.[].prices.[].[product_price].[seat_based].meterChangedpolar.customer_portal.subscriptions.list():response.items.[].product.prices.[].[product_price].[seat_based].meterChangedpolar.customer_portal.subscriptions.get():response.product.prices.[].[product_price].[seat_based].meterChangedpolar.customer_portal.subscriptions.cancel():response.product.prices.[].[product_price].[seat_based].meterChangedpolar.customer_portal.subscriptions.update():response.product.prices.[].[product_price].[seat_based].meterChangedpolar.meters.list():response.items.[]Changedpolar.meters.create():requestChangedresponseChanged
polar.meters.get():responseChangedpolar.meters.update():request.meter_updateChangedresponseChanged
polar.customer_meters.list():response.items.[].meterChangedpolar.customer_meters.get():response.meterChanged
Generated with Speakeasy CLI 1.648.0
Publishing Completed
python - v0.31.2 - 2026-04-03 08:37:25
Generated by Speakeasy CLI
Python SDK Changes Detected:
polar._endpointorganization_updated_post():request.data.feature_settings.reset_proration_behavior_enabledAdded
polar.organizations.list():response.items.[].feature_settings.reset_proration_behavior_enabledAddedpolar.organizations.create():request.feature_settings.reset_proration_behavior_enabledAddedresponse.feature_settings.reset_proration_behavior_enabledAdded
polar.organizations.get():response.feature_settings.reset_proration_behavior_enabledAddedpolar.organizations.update():request.organization_update.feature_settings.reset_proration_behavior_enabledAddedresponse.feature_settings.reset_proration_behavior_enabledAdded
Generated with Speakeasy CLI 1.648.0
Publishing Completed
python - v0.31.1 - 2026-04-03 06:28:19
Generated by Speakeasy CLI
Python SDK Changes Detected:
polar.events.list():response.[list_resource_event_].items.[].[system_event]Changed Breaking⚠️ polar.events.get():response.[system_event]Changed Breaking⚠️ polar.metrics.list_dashboards(): Addedpolar.metrics.create_dashboard(): Addedpolar.metrics.get_dashboard(): Addedpolar.metrics.update_dashboard(): Addedpolar.metrics.delete_dashboard(): Addedpolar.subscriptions.list():requestChangedpolar.payments.list():response.items.[]Changed
Generated with Speakeasy CLI 1.648.0
Publishing Completed
python - v0.31.0 - 2026-03-27 09:23:19
polar-sdk 0.31.0 — Breaking Changes
Customer Type Discrimination
Customer, CustomerCreate, and CustomerState are now discriminated unions based on a type field ("individual" or "team"), instead of single flat models.
Migration Guide
Model replacements
| Before | After |
|---|---|
Customer(...) |
CustomerIndividual(...) or CustomerTeam(...) |
CustomerCreate(...) |
CustomerIndividualCreate(...) or CustomerTeamCreate(...) |
CustomerState(...) |
CustomerStateIndividual(...) or CustomerStateTeam(...) |
Type checking
isinstance(x, Customer) no longer works — Customer is now a Union type alias, not a class. Use the type field to discriminate:
# Before
if isinstance(customer, Customer):
...
# After
if customer.type == "individual":
# customer is CustomerIndividual
...
elif customer.type == "team":
# customer is CustomerTeam
...Field changes
emailis now optional/nullable onOrderCustomer,SubscriptionCustomer,LicenseKeyCustomer,CustomerPortalCustomertypeis now required onOrderCustomer,SubscriptionCustomer,LicenseKeyCustomer
Removed exports (replaced by individual/team variants)
| Removed | Replaced by |
|---|---|
OwnerCreate |
MemberOwnerCreate |
CustomerTaxID |
CustomerIndividualTaxID / CustomerTeamTaxID |
CustomerStateTaxID |
CustomerStateIndividualTaxID / CustomerStateTeamTaxID |
CustomerCreateMetadata |
CustomerIndividualCreateMetadata / CustomerTeamCreateMetadata |
ListResourceCustomer |
Inline union type |
Webhook payloads affected
All customer-related webhook events (customer_created, customer_updated, customer_deleted, customer_state_changed) and any webhook carrying a customer field (orders, subscriptions, benefit grants) now use the discriminated union types.
python - v0.30.2 - 2026-03-26 08:30:46
Generated by Speakeasy CLI
Python SDK Changes Detected:
polar._endpointcheckout_created_post():request.dataChanged Breaking⚠️
polar._endpointcheckout_updated_post():request.dataChanged Breaking⚠️
polar._endpointcheckout_expired_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_created_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_updated_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_active_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_canceled_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_uncanceled_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_revoked_post():request.dataChanged Breaking⚠️
polar._endpointsubscription_past_due_post():request.dataChanged Breaking⚠️
polar._endpointproduct_created_post():request.data.prices.[]Changed Breaking⚠️
polar._endpointproduct_updated_post():request.data.prices.[]Changed Breaking⚠️
polar._endpointorganization_updated_post():request.dataChanged Breaking⚠️
polar.checkouts.client_confirm():responseChanged Breaking⚠️ polar.organizations.create():requestChanged Breaking⚠️ responseChanged
polar.checkouts.client_update():responseChanged Breaking⚠️ polar.organizations.update():request.organization_updateChanged Breaking⚠️ responseChanged
polar.checkouts.client_get():responseChanged Breaking⚠️ polar.checkouts.update():responseChanged Breaking⚠️ polar.checkouts.get():responseChanged Breaking⚠️ polar.checkouts.create():request.prices.{}.[]ChangedresponseChanged Breaking⚠️
polar.checkouts.list():response.items.[]Changed Breaking⚠️ polar.products.get():response.prices.[]Changedpolar.checkout-links.create():response.products.[].prices.[]Changedpolar.products.list():response.items.[].prices.[]Changedpolar.products.update():request.product_update.prices.[].[2]Changedresponse.prices.[]Changed
polar.products.update_benefits():response.prices.[]Changedpolar.subscriptions.update():responseChangederror.status[402]Added
polar.subscriptions.revoke():responseChangedpolar.subscriptions.get():responseChangedpolar.subscriptions.create():responseChangedpolar.subscriptions.list():response.items.[]Changedpolar.organizations.get():responseChangedpolar.organizations.list():response.items.[]Changedpolar.checkout-links.list():response.items.[].products.[].prices.[]Changedpolar.products.create():request.[product_create_recurring].prices.[]Changedresponse.prices.[]Changed
polar.checkout-links.get():response.products.[].prices.[]Changedpolar.checkout-links.update():response.products.[].prices.[]Changedpolar.members.list_members():request.roleAddedpolar.customer_portal.seats.list_claimed_subscriptions():response.items.[]Changedpolar.customer_portal.orders.list():response.items.[].product.prices.[]Changedpolar.customer_portal.orders.get():response.product.prices.[]Changedpolar.customer_portal.orders.update():response.product.prices.[]Changedpolar.customer_portal.organizations.get():response.products.[].prices.[]Changedpolar.customer_portal.subscriptions.list():response.items.[]Changedpolar.customer_portal.subscriptions.get():responseChangedpolar.customer_portal.subscriptions.cancel():responseChangedpolar.customer_portal.subscriptions.update():responseChangederror.status[402]Added
Generated with Speakeasy CLI 1.648.0
Publishing Completed
python - v0.30.1 - 2026-03-11 09:09:37
Generated by Speakeasy CLI
Python SDK Changes Detected:
polar._endpointcheckout_created_post():request.data.discountChanged Breaking⚠️
polar._endpointcheckout_updated_post():request.data.discountChanged Breaking⚠️
polar._endpointcheckout_expired_post():request.data.discountChanged Breaking⚠️
polar._endpointorder_created_post():request.data.discountChanged Breaking⚠️
polar._endpointorder_updated_post():request.data.discountChanged Breaking⚠️
polar._endpointorder_paid_post():request.data.discountChanged Breaking⚠️
polar._endpointorder_refunded_post():request.data.discountChanged Breaking⚠️
polar._endpointsubscription_created_post():request.data.discountChanged Breaking⚠️
polar._endpointsubscription_updated_post():request.data.discountChanged Breaking⚠️
polar._endpointsubscription_active_post():request.data.discountChanged Breaking⚠️
polar._endpointsubscription_canceled_post():request.data.discountChanged Breaking⚠️
polar._endpointsubscription_uncanceled_post():request.data.discountChanged Breaking⚠️
polar._endpointsubscription_revoked_post():request.data.discountChanged Breaking⚠️
polar._endpointsubscription_past_due_post():request.data.discountChanged Breaking⚠️
polar.events.get():response.[system_event]Changed Breaking⚠️ polar.events.list():response.[list_resource_event_].items.[].[system_event]Changed Breaking⚠️ polar.customers.update_external():request.customer_update_external_id.tax_idChanged Breaking⚠️
polar.customers.update():request.customer_update.tax_idChanged Breaking⚠️
polar.customers.create():request.tax_idChanged Breaking⚠️
polar.oauth2.token():responseChanged Breaking⚠️ polar.orders.list():response.items.[].discountChangedpolar.checkout-links.create():response.discountChangedpolar.orders.update():response.discountChangedpolar.checkouts.list():response.items.[].discountChangedpolar.checkouts.create():response.discountChangedpolar.checkouts.get():response.discountChangedpolar.checkouts.update():response.discountChangedpolar.checkouts.client_get():response.discountChangedpolar.checkouts.client_update():response.discountChangedpolar.checkouts.client_confirm():response.discountChangedpolar.checkout-links.list():response.items.[].discountChangedpolar.orders.get():response.discountChangedpolar.checkout-links.get():response.discountChangedpolar.checkout-links.update():response.discountChangedpolar.discounts.list():request.sortingChangedresponse.items.[]Changed
polar.discounts.create():requestChangedresponseChanged
polar.discounts.get():responseChangedpolar.discounts.update():request.discount_update.amountsAddedresponseChanged
polar.subscriptions.update():response.discountChangedpolar.subscriptions.revoke():response.discountChangedpolar.subscriptions.get():response.discountChangedpolar.subscriptions.create():response.discountChangedpolar.subscriptions.list():response.items.[].discountChanged
Generated with Speakeasy CLI 1.648.0
Publishing Completed