openapi: 3.0.3 info: title: Clerk Backend Account Portal Payment Attempts API x-logo: url: https://clerk.com/_next/image?url=%2Fimages%2Fclerk-logo.svg&w=96&q=75 altText: Clerk docs href: https://clerk.com/docs contact: email: support@clerk.com name: Clerk Platform Team url: https://clerk.com/support description: 'The Clerk REST Backend API, meant to be accessed by backend servers. ### Versions When the API changes in a way that isn''t compatible with older versions, a new version is released. Each version is identified by its release date, e.g. `2025-04-10`. For more information, please see [Clerk API Versions](https://clerk.com/docs/versioning/available-versions). Please see https://clerk.com/docs for more information.' version: '2025-11-10' termsOfService: https://clerk.com/terms license: name: MIT url: https://github.com/clerk/openapi-specs/blob/main/LICENSE servers: - url: https://api.clerk.com/v1 security: - bearerAuth: [] tags: - name: Payment Attempts description: Used to interact with payment attempts for users and organizations. paths: /v1/me/billing/payment_attempts: get: operationId: GetUserPaymentAttempts x-speakeasy-group: billing x-speakeasy-name-override: listUserPaymentAttempts tags: - Payment Attempts summary: List User Payment Attempts description: Returns a list of payment attempts for the current user. parameters: - $ref: '#/components/parameters/LimitParameter' - $ref: '#/components/parameters/OffsetParameter' - $ref: '#/components/parameters/Paginated' responses: '200': $ref: '#/components/responses/Client.BillingPaymentAttemptList' '400': $ref: '#/components/responses/ClerkErrors' '401': $ref: '#/components/responses/AuthenticationInvalid' '403': $ref: '#/components/responses/AuthorizationInvalid' /v1/me/billing/payment_attempts/{paymentAttemptID}: get: operationId: GetUserPaymentAttempt x-speakeasy-group: billing x-speakeasy-name-override: getUserPaymentAttempt tags: - Payment Attempts summary: Get User Payment Attempt description: Returns details of a specific payment attempt for the current user. parameters: - name: paymentAttemptID in: path description: The ID of the payment attempt to retrieve required: true schema: type: string responses: '200': $ref: '#/components/responses/Client.BillingPaymentAttempt' '400': $ref: '#/components/responses/ClerkErrors' '401': $ref: '#/components/responses/AuthenticationInvalid' '403': $ref: '#/components/responses/AuthorizationInvalid' '404': $ref: '#/components/responses/ResourceNotFound' components: responses: AuthorizationInvalid: description: Authorization invalid content: application/json: schema: $ref: '#/components/schemas/ClerkErrors' ClerkErrors: description: Request was not successful content: application/json: schema: $ref: '#/components/schemas/ClerkErrors' AuthenticationInvalid: description: Authentication invalid content: application/json: schema: $ref: '#/components/schemas/ClerkErrors' Client.BillingPaymentAttemptList: description: Returns a list of commerce payment attempts. content: application/json: schema: $ref: '#/components/schemas/Client.BillingPaymentAttemptList' Client.BillingPaymentAttempt: description: Returns a commerce payment attempt. content: application/json: schema: $ref: '#/components/schemas/Client.BillingPaymentAttempt' ResourceNotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ClerkErrors' schemas: Stubs.Verification.GoogleOneTap: type: object additionalProperties: false properties: object: type: string enum: - verification_google_one_tap status: type: string enum: - unverified - verified strategy: type: string enum: - google_one_tap expire_at: type: integer nullable: true attempts: type: integer nullable: true required: - status - strategy BillingPayer: type: object additionalProperties: false properties: object: type: string description: String representing the object's type enum: - commerce_payer id: type: string description: Unique identifier for the payer instance_id: type: string description: Unique identifier for the Clerk instance user_id: type: string description: User ID for user-type payers nullable: true first_name: type: string description: First name of the payer (only set when user_id isn't null) nullable: true last_name: type: string description: Last name of the payer (only set when user_id isn't null) nullable: true email: type: string format: email description: Email address of the payer (only set when user_id isn't null) nullable: true organization_id: type: string description: Organization ID for org-type payers nullable: true organization_name: type: string description: Organization name for org-type payers (only set when organization_id isn't null) nullable: true image_url: type: string format: uri description: URL of the payer's image/avatar credits_balance: $ref: '#/components/schemas/BillingMoneyResponse' description: Current credits balance for the payer created_at: type: integer format: int64 description: Unix timestamp (in milliseconds) when the payer was created updated_at: type: integer format: int64 description: Unix timestamp (in milliseconds) when the payer was last updated required: - object - id - instance_id - user_id - organization_id Token: type: object additionalProperties: false properties: object: type: string description: 'String representing the object''s type. Objects of the same type share the same value. ' enum: - token jwt: type: string description: 'String representing the encoded JWT value. ' required: - object - jwt BillingPayee: type: object additionalProperties: false properties: object: type: string description: String representing the object's type enum: - commerce_payee id: type: string description: Unique identifier for the payee gateway_type: type: string description: Type of payment gateway gateway_external_id: type: string description: External ID in the payment gateway gateway_status: type: string description: Status of the gateway connection required: - object - id - gateway_type - gateway_external_id - gateway_status Stubs.Verification.SAML: type: object properties: object: type: string enum: - verification_saml status: type: string enum: - unverified - verified - failed - expired - transferable strategy: type: string enum: - saml external_verification_redirect_url: nullable: true type: string error: allOf: - $ref: '#/components/schemas/ClerkError' - type: object nullable: true expire_at: type: integer nullable: true attempts: type: integer nullable: true required: - status - strategy Client.PublicUserData: type: object additionalProperties: false properties: first_name: type: string nullable: true last_name: type: string nullable: true image_url: type: string nullable: true has_image: type: boolean identifier: type: string profile_image_url: type: string nullable: true deprecated: true description: Use `image_url` instead. user_id: type: string nullable: true username: type: string nullable: true banned: type: boolean required: - first_name - last_name - identifier - has_image Client.BillingPaymentAttempt: type: object additionalProperties: false properties: response: $ref: '#/components/schemas/BillingPaymentAttempt' client: type: object nullable: true allOf: - $ref: '#/components/schemas/schemas-Client.Client' required: - response - client Stubs.Verification.Password: type: object additionalProperties: false properties: object: type: string enum: - verification_password status: type: string enum: - unverified - verified strategy: type: string enum: - password attempts: type: integer nullable: true expire_at: type: integer nullable: true required: - status - strategy BillingPlanUnitPrice: type: object additionalProperties: false properties: name: type: string description: Name of the billable unit (for example, seats) block_size: type: integer format: int64 description: Number of units included in each pricing block tiers: type: array items: $ref: '#/components/schemas/BillingPlanUnitPriceTier' description: Tiered pricing configuration for this unit required: - name - block_size - tiers BillingSubscriptionCreditResponse: type: object additionalProperties: false properties: amount: $ref: '#/components/schemas/BillingMoneyResponse' description: Credit amount with formatting cycle_days_remaining: type: integer format: int64 description: Number of days remaining in the billing cycle cycle_days_total: type: integer format: int64 description: Total number of days in the billing cycle cycle_remaining_percent: type: number format: double description: Percentage of the billing cycle remaining required: - amount - cycle_days_remaining - cycle_days_total - cycle_remaining_percent BillingPerUnitTotalTier: type: object additionalProperties: false properties: quantity: type: integer format: int64 nullable: true description: Units billed in this tier; null means unlimited fee_per_block: $ref: '#/components/schemas/BillingMoneyResponse' description: Price charged per block in this tier total: $ref: '#/components/schemas/BillingMoneyResponse' description: Total charge for this tier required: - fee_per_block - total Client.EmailAddress: type: object additionalProperties: false properties: id: type: string object: type: string description: 'String representing the object''s type. Objects of the same type share the same value. ' enum: - email_address email_address: type: string reserved: type: boolean verification: type: object nullable: true oneOf: - $ref: '#/components/schemas/Stubs.Verification.OTP' - $ref: '#/components/schemas/Stubs.Verification.Invitation' - $ref: '#/components/schemas/Stubs.Verification.Link' - $ref: '#/components/schemas/Stubs.Verification.Ticket' - $ref: '#/components/schemas/Stubs.Verification.Admin' - $ref: '#/components/schemas/Stubs.Verification.FromOauth' - $ref: '#/components/schemas/Stubs.Verification.SAML' linked_to: type: array items: $ref: '#/components/schemas/Stubs.Identification.Link' matches_sso_connection: description: 'Indicates whether this email address domain matches an active enterprise connection. ' type: boolean created_at: type: integer format: int64 description: 'Unix timestamp of creation ' updated_at: type: integer format: int64 description: 'Unix timestamp of creation ' required: - id - object - email_address - verification - linked_to - reserved - created_at - updated_at Client.PhoneNumber: type: object additionalProperties: false properties: id: type: string object: type: string description: 'String representing the object''s type. Objects of the same type share the same value. ' enum: - phone_number phone_number: type: string reserved_for_second_factor: type: boolean default_second_factor: type: boolean reserved: type: boolean verification: nullable: true type: object oneOf: - $ref: '#/components/schemas/Stubs.Verification.OTP' - $ref: '#/components/schemas/Stubs.Verification.Admin' linked_to: type: array items: $ref: '#/components/schemas/Stubs.Identification.Link' backup_codes: type: array items: type: string nullable: true created_at: type: integer format: int64 description: 'Unix timestamp of creation ' updated_at: type: integer format: int64 description: 'Unix timestamp of creation ' required: - id - object - phone_number - verification - linked_to - reserved - created_at - updated_at ClerkError: type: object properties: message: type: string long_message: type: string code: type: string meta: type: object required: - message - long_message - code Stubs.SignUpVerification.AdditionalFields: type: object properties: next_action: type: string enum: - needs_prepare - needs_attempt - '' supported_strategies: type: array items: type: string required: - next_action - supported_strategies BillingCreditsResponse: type: object additionalProperties: false properties: proration: type: object nullable: true allOf: - $ref: '#/components/schemas/BillingProrationCreditDetail' description: Proration credit details from unused subscription time payer: type: object nullable: true allOf: - $ref: '#/components/schemas/BillingPayerCreditResponse' description: Payer credit details from the payer's credit balance total: $ref: '#/components/schemas/BillingMoneyResponse' description: Total credits applied required: - proration - payer - total schemas-Client.Session: allOf: - $ref: '#/components/schemas/schemas-Client.SessionBase' - type: object properties: last_active_organization_id: type: string nullable: true user: $ref: '#/components/schemas/Client.User' public_user_data: type: object nullable: true allOf: - $ref: '#/components/schemas/Client.PublicUserData' factor_verification_age: type: array description: Each item represents the minutes that have passed since the last time a first or second factor were verified. items: type: integer created_at: type: integer format: int64 description: Unix timestamp of creation. example: 1700690400000 updated_at: type: integer format: int64 description: Unix timestamp of last update. example: 1700690400000 required: - last_active_organization_id - public_user_data - factor_verification_age - created_at - updated_at Client.SAMLAccount: type: object additionalProperties: false properties: id: type: string object: type: string description: 'String representing the object''s type. Objects of the same type share the same value. ' enum: - saml_account provider: type: string active: type: boolean email_address: type: string first_name: type: string nullable: true last_name: type: string nullable: true provider_user_id: description: The unique ID of the user in the external provider's system type: string nullable: true enterprise_connection_id: type: string nullable: true last_authenticated_at: type: integer format: int64 nullable: true description: 'Unix timestamp of last authentication. ' public_metadata: type: object additionalProperties: true verification: type: object nullable: true oneOf: - $ref: '#/components/schemas/Stubs.Verification.SAML' - $ref: '#/components/schemas/Stubs.Verification.Ticket' saml_connection: type: object nullable: true oneOf: - $ref: '#/components/schemas/Stubs.SAMLConnection.SAMLAccount' required: - id - object - provider - active - email_address - first_name - last_name - provider_user_id - public_metadata - saml_connection - verification schemas-Client.SessionBase: type: object properties: id: type: string object: type: string description: 'String representing the object''s type. Objects of the same type share the same value. ' enum: - session status: type: string enum: - active - revoked - ended - expired - removed - abandoned - pending expire_at: type: integer format: int64 abandon_at: type: integer format: int64 last_active_at: type: integer format: int64 last_active_token: type: object nullable: true allOf: - $ref: '#/components/schemas/Token' actor: type: object nullable: true additionalProperties: true tasks: type: array nullable: true items: $ref: '#/components/schemas/Client.SessionTask' required: - id - object - status - expire_at - abandon_at - last_active_at BillingPayerCreditResponse: type: object additionalProperties: false properties: remaining_balance: $ref: '#/components/schemas/BillingMoneyResponse' description: The payer's remaining credit balance after credit is applied for this checkout (in cents) applied_amount: $ref: '#/components/schemas/BillingMoneyResponse' description: The amount of payer credit applied to this checkout (in cents) required: - remaining_balance - applied_amount Stubs.Verification.OTP: type: object properties: object: type: string enum: - verification_otp status: type: string enum: - unverified - verified - failed - expired strategy: type: string enum: - phone_code - email_code - reset_password_email_code - reset_password_phone_code attempts: type: integer nullable: true expire_at: type: integer required: - status - strategy - expire_at BillingPaymentAttempt: type: object additionalProperties: false properties: object: type: string description: String representing the object's type enum: - commerce_payment id: type: string description: Unique identifier for the payment attempt payment_id: type: string description: Unique identifier for the payment instance_id: type: string description: Unique identifier for the instance charge_type: type: string description: Type of charge payee_id: type: string description: Unique identifier for the payee payee: $ref: '#/components/schemas/BillingPayee' description: The payee associated with this payment payer_id: type: string description: Unique identifier for the payer payer: $ref: '#/components/schemas/BillingPayer' description: The payer associated with this payment subscription_item_id: type: string description: Unique identifier for the subscription item (only present for recurring payments) subscription_item: $ref: '#/components/schemas/BillingSubscriptionItem' description: The subscription item associated with this payment amount: $ref: '#/components/schemas/BillingMoneyResponse' description: Payment amount with formatting totals: allOf: - $ref: '#/components/schemas/BillingTotalsResponse' nullable: true description: Totals breakdown for this payment attempt payment_method_id: type: string description: Unique identifier for the payment method used payment_method: $ref: '#/components/schemas/BillingPaymentMethod' nullable: true description: The payment method used for this payment statement_id: type: string description: Unique identifier for the statement gateway_external_id: type: string nullable: true description: External ID from the payment gateway gateway_external_url: type: string nullable: true description: URL to view this payment in the gateway dashboard status: type: string description: Status of the payment attempt paid_at: type: integer format: int64 nullable: true description: Unix timestamp (in milliseconds) when the payment was completed failed_at: type: integer format: int64 nullable: true description: Unix timestamp (in milliseconds) when the payment failed failed_reason: type: object description: Reason for payment failure created_at: type: integer format: int64 description: Unix timestamp (in milliseconds) when the payment attempt was created updated_at: type: integer format: int64 description: Unix timestamp (in milliseconds) when the payment attempt was last updated required: - object - id - payment_id - instance_id - charge_type - payee_id - payee - payer_id - payer - subscription_item_id - subscription_item - amount - payment_method_id - payment_method - statement_id - gateway_external_id - gateway_external_url - status - paid_at - failed_at - created_at - updated_at Stubs.SignInFactor: type: object additionalProperties: false properties: strategy: type: string enum: - ticket - password - email_code - email_link - phone_code - web3_metamask_signature - web3_base_signature - web3_coinbase_wallet_signature - web3_okx_wallet_signature - web3_solana_signature - totp - backup_code - oauth_apple - oauth_google - oauth_facebook - oauth_hubspot - oauth_github - oauth_mock - oauth_custom_mock - oauth_token_mock - saml - enterprise_sso - reset_password_email_code - reset_password_phone_code - passkey - google_one_tap safe_identifier: type: string enterprise_connection_id: type: string enterprise_connection_name: type: string email_address_id: type: string phone_number_id: type: string web3_wallet_id: type: string passkey_id: type: string primary: type: boolean nullable: true external_verification_redirect_url: nullable: true type: string default: type: boolean required: - strategy Stubs.Verification.Ticket: type: object properties: object: type: string enum: - verification_ticket status: type: string enum: - unverified - verified - expired strategy: type: string enum: - ticket attempts: type: integer nullable: true expire_at: type: integer nullable: true required: - status - strategy Stubs.Verification.Invitation: type: object additionalProperties: false properties: object: type: string enum: - verification_invitation status: type: string enum: - verified strategy: type: string enum: - invitation attempts: type: integer nullable: true expire_at: type: integer nullable: true required: - status - strategy BillingSubscriptionItem: type: object additionalProperties: false properties: object: type: string description: String representing the object's type enum: - commerce_subscription_item id: type: string description: Unique identifier for the subscription item instance_id: type: string description: Unique identifier for the Clerk instance status: type: string description: Current status of the subscription item enum: - active - canceled - ended - past_due - upcoming - incomplete - abandoned credit: $ref: '#/components/schemas/BillingSubscriptionCreditResponse' description: Credit information for this subscription (available in payment attempt events) credits: allOf: - $ref: '#/components/schemas/BillingCreditsResponse' nullable: true description: Unified credits breakdown for this subscription item plan_id: type: string description: Unique identifier for the associated plan price_id: type: string description: Unique identifier for the associated price plan: $ref: '#/components/schemas/BillingPlan' description: The associated plan plan_period: type: string description: The billing period for this subscription enum: - month - annual payment_method_id: type: string description: Unique identifier for the payment method payment_method: $ref: '#/components/schemas/BillingPaymentMethod' description: The payment method associated with this subscription lifetime_paid: $ref: '#/components/schemas/BillingFee' description: Total amount paid over the lifetime of this subscription amount: $ref: '#/components/schemas/BillingFee' description: Current amount due every period for this subscription next_payment: $ref: '#/components/schemas/BillingSubscriptionItemNextPayment' nullable: true description: Information about the next payment payer_id: type: string description: Unique identifier for the payer payer: $ref: '#/components/schemas/BillingPayer' description: The payer associated with this subscription is_free_trial: type: boolean description: Whether this subscription is currently on a free trial period_start: type: integer format: int64 description: Unix timestamp (in milliseconds) when the current period started period_end: type: integer format: int64 nullable: true description: Unix timestamp (in milliseconds) when the current period ends proration_date: type: string description: Date used for proration calculations canceled_at: type: integer format: int64 nullable: true description: Unix timestamp (in milliseconds) when the subscription was canceled past_due_at: type: integer format: int64 nullable: true description: Unix timestamp (in milliseconds) when the subscription became past due ended_at: type: integer format: int64 nullable: true description: Unix timestamp (in milliseconds) when the subscription ended created_at: type: integer format: int64 description: Unix timestamp (in milliseconds) when the subscription was created updated_at: type: integer format: int64 description: Unix timestamp (in milliseconds) when the subscription was last updated seats: allOf: - $ref: '#/components/schemas/BillingSubscriptionItemSeats' nullable: true description: Seat quantity for seat-based billing totals: allOf: - $ref: '#/components/schemas/BillingTotalsResponse' nullable: true description: Totals for this subscription item required: - object - id - instance_id - status - plan_id - plan_period - payer_id - is_free_trial - period_start - period_end - canceled_at - past_due_at - ended_at Stubs.Verification.Web3Signature: type: object properties: object: type: string enum: - verification_web3 status: type: string enum: - unverified - verified - failed - expired strategy: type: string enum: - web3_metamask_signature - web3_base_signature - web3_coinbase_wallet_signature - web3_okx_wallet_signature - web3_solana_signature attempts: type: integer nullable: true expire_at: type: integer nullable: true nonce: type: string nullable: true message: type: string nullable: true required: - status - strategy BillingPerUnitTotal: type: object additionalProperties: false properties: name: type: string description: Name of the billable unit (for example, seats) block_size: type: integer format: int64 description: Number of units included in each pricing block tiers: type: array items: $ref: '#/components/schemas/BillingPerUnitTotalTier' description: Computed totals for each pricing tier required: - name - block_size - tiers Stubs.Verification.Link: type: object properties: object: type: string enum: - verification_email_link status: type: string enum: - unverified - verified - failed - expired - transferable strategy: type: string enum: - email_link attempts: type: integer nullable: true expire_at: type: integer verified_at_client: type: string required: - status - strategy - expire_at verification_oauth: x-speakeasy-name-override: Oauth type: object additionalProperties: false properties: object: type: string enum: - verification_oauth status: type: string x-speakeasy-unknown-values: allow enum: - unverified - verified - failed - expired - transferable strategy: type: string x-speakeasy-unknown-values: allow pattern: ^oauth_(?:(?:token_)|(?:custom_))?[a-z]+$ external_verification_redirect_url: type: string error: type: object nullable: true oneOf: - $ref: '#/components/schemas/ClerkError' expire_at: type: integer attempts: type: integer nullable: true verified_at_client: type: string nullable: true required: - status - strategy - attempts - expire_at Client.BillingPaymentAttemptList: type: object additionalProperties: false properties: response: type: object additionalProperties: false properties: data: type: array items: $ref: '#/components/schemas/BillingPaymentAttempt' total_count: type: integer format: int64 description: Total number of payment attempts client: type: object nullable: true allOf: - $ref: '#/components/schemas/schemas-Client.Client' required: - response - client BillingSubscriptionItemNextPayment: type: object additionalProperties: false properties: amount: $ref: '#/components/schemas/BillingFee' description: Amount for the next payment date: type: integer format: int64 description: Unix timestamp (in milliseconds) for the next payment date per_unit_totals: type: array items: $ref: '#/components/schemas/BillingPerUnitTotal' description: Per-unit total breakdown for the next payment schemas-Client.SignIn: type: object additionalProperties: false properties: object: type: string description: String representing the object's type. Objects of the same type share the same value. enum: - sign_in_attempt id: type: string status: type: string enum: - abandoned - needs_identifier - needs_first_factor - needs_second_factor - needs_client_trust - needs_new_password - needs_protect_check - complete supported_identifiers: type: array description: List of supported identifiers that can be used to sign in. items: type: string enum: - email_address - phone_number - username - web3_wallet - passkey supported_first_factors: type: array nullable: true items: $ref: '#/components/schemas/Stubs.SignInFactor' supported_second_factors: type: array nullable: true items: $ref: '#/components/schemas/Stubs.SignInFactor' first_factor_verification: type: object nullable: true oneOf: - $ref: '#/components/schemas/Stubs.Verification.Password' - $ref: '#/components/schemas/Stubs.Verification.Oauth' - $ref: '#/components/schemas/Stubs.Verification.OTP' - $ref: '#/components/schemas/Stubs.Verification.Link' - $ref: '#/components/schemas/Stubs.Verification.Web3Signature' - $ref: '#/components/schemas/Stubs.Verification.Ticket' - $ref: '#/components/schemas/Stubs.Verification.SAML' - $ref: '#/components/schemas/Stubs.Verification.Passkey' - $ref: '#/components/schemas/Stubs.Verification.GoogleOneTap' second_factor_verification: type: object nullable: true oneOf: - $ref: '#/components/schemas/Stubs.Verification.OTP' - $ref: '#/components/schemas/Stubs.Verification.Link' - $ref: '#/components/schemas/Stubs.Verification.TOTP' - $ref: '#/components/schemas/Stubs.Verification.Ticket' - $ref: '#/components/schemas/Stubs.Verification.BackupCode' identifier: nullable: true type: string user_data: type: object additionalProperties: false nullable: true properties: first_name: type: string nullable: true last_name: type: string nullable: true image_url: type: string has_image: type: boolean profile_image_url: type: string nullable: true deprecated: true description: Use `image_url` instead. required: - first_name - last_name - has_image created_session_id: nullable: true type: string abandon_at: type: integer format: int64 description: Unix timestamp at which the sign in will be abandoned. example: 1700690400000 client_trust_state: type: string nullable: true description: 'The trust state of the client for this sign-in attempt. - `pending`: The identifier has not been set yet. - `new`: The user has not had a session on this client before. - `known`: The user has had a session on this client before. ' enum: - pending - new - known required: - object - id - status - supported_identifiers - supported_first_factors - supported_second_factors - first_factor_verification - second_factor_verification - identifier - user_data - created_session_id - abandon_at BillingPlan: type: object additionalProperties: false properties: object: type: string description: String representing the object's type enum: - commerce_plan id: type: string description: Unique identifier for the plan name: type: string description: The name of the plan fee: allOf: - $ref: '#/components/schemas/BillingFee' nullable: true description: The monthly fee for this plan annual_monthly_fee: allOf: - $ref: '#/components/schemas/BillingFee' nullable: true description: The monthly equivalent when billed annually annual_fee: allOf: - $ref: '#/components/schemas/BillingFee' nullable: true description: The annual fee for this plan description: type: string description: The description of the plan nullable: true product_id: type: string description: The ID of the product this plan belongs to deprecated: true is_default: type: boolean description: Whether this is the default plan is_recurring: type: boolean description: Whether this is a recurring plan publicly_visible: type: boolean description: Whether this plan is publicly visible has_base_fee: type: boolean description: Whether this plan has a base fee for_payer_type: type: string description: The payer type this plan is designed for slug: type: string description: The URL-friendly slug for the plan avatar_url: type: string description: The URL of the plan's avatar image nullable: true free_trial_enabled: type: boolean description: Whether free trial is enabled for this plan free_trial_days: type: integer nullable: true description: Number of free trial days for this plan unit_prices: type: array items: $ref: '#/components/schemas/BillingPlanUnitPrice' description: Per-unit pricing tiers for this plan (for example, seats) features: type: array description: The features included in this plan items: type: object properties: object: type: string enum: - feature description: String representing the object's type id: type: string description: Unique identifier for the feature name: type: string description: Name of the feature description: type: string nullable: true description: Description of the feature slug: type: string description: URL-friendly representation of the feature's name avatar_url: type: string nullable: true description: URL for an image to represent the feature required: - object - id - name - description - slug - avatar_url required: - object - id - name - fee - annual_monthly_fee - annual_fee - description - product_id - is_default - is_recurring - publicly_visible - has_base_fee - for_payer_type - slug - avatar_url - free_trial_enabled - free_trial_days verification_google_one_tap: x-speakeasy-name-override: GoogleOneTap type: object additionalProperties: false properties: object: type: string enum: - verification_google_one_tap status: type: string enum: - unverified - verified strategy: type: string enum: - google_one_tap expire_at: type: integer nullable: true attempts: type: integer nullable: true verified_at_client: type: string nullable: true error: type: object nullable: true oneOf: - $ref: '#/components/schemas/ClerkError' required: - status - strategy - attempts - expire_at ExternalAccountWithVerification: type: object additionalProperties: true properties: object: type: string description: String representing the object's type. Objects of the same type share the same value. enum: - external_account - facebook_account - google_account id: type: string provider: type: string identification_id: type: string provider_user_id: description: The unique ID of the user in the external provider's system type: string approved_scopes: type: string email_address: type: string email_address_verified: type: boolean nullable: true description: 'Whether the email was verified by the OAuth provider at creation time. null = unknown (pre-migration data or custom OAuth providers), true = provider confirmed email was verified, false = provider confirmed email was NOT verified ' first_name: type: string last_name: type: string avatar_url: type: string deprecated: true description: Please use `image_url` instead image_url: type: string nullable: true username: type: string nullable: true phone_number: type: string nullable: true public_metadata: type: object additionalProperties: true label: type: string nullable: true created_at: type: integer format: int64 description: 'Unix timestamp of creation ' updated_at: type: integer format: int64 description: 'Unix timestamp of creation ' verification: type: object nullable: true oneOf: - $ref: '#/components/schemas/verification_oauth' - $ref: '#/components/schemas/verification_google_one_tap' discriminator: propertyName: object required: - object - id - provider - identification_id - provider_user_id - approved_scopes - email_address - first_name - last_name - public_metadata - created_at - updated_at - verification Stubs.Verification.Passkey: type: object additionalProperties: false properties: object: type: string enum: - verification_passkey status: type: string enum: - unverified - verified - failed - expired strategy: type: string enum: - passkey attempts: type: integer nullable: true expire_at: type: integer nonce: type: string required: - status - strategy - expire_at Stubs.Verification.TOTP: type: object additionalProperties: false properties: object: type: string enum: - verification_totp status: type: string enum: - unverified - verified strategy: type: string enum: - totp attempts: type: integer nullable: true expire_at: type: integer nullable: true required: - status - strategy ClerkErrors: type: object properties: errors: type: array items: $ref: '#/components/schemas/ClerkError' meta: type: object clerk_trace_id: type: string required: - errors BillingFee: type: object additionalProperties: false properties: amount: type: integer format: int64 description: Amount in the smallest currency unit (e.g., cents) minimum: 0 amount_formatted: type: string description: The formatted amount as a string (e.g., "$49.99") currency: type: string description: The currency code (e.g., "USD") currency_symbol: type: string description: The currency symbol (e.g., "$") required: - amount - amount_formatted - currency - currency_symbol Stubs.Verification.BackupCode: type: object additionalProperties: false properties: object: type: string enum: - verification_backup_code status: type: string enum: - unverified - verified strategy: type: string enum: - backup_code attempts: type: integer nullable: true expire_at: type: integer nullable: true required: - status - strategy Client.OrganizationMembership: type: object properties: id: type: string object: type: string description: 'String representing the object''s type. Objects of the same type share the same value. ' enum: - organization_membership public_metadata: type: object additionalProperties: true role: type: string role_name: type: string permissions: type: array nullable: true items: type: string created_at: type: integer format: int64 description: Unix timestamp of creation. updated_at: type: integer format: int64 description: Unix timestamp of last update. organization: $ref: '#/components/schemas/Client.Organization' public_user_data: type: object nullable: true allOf: - $ref: '#/components/schemas/Client.PublicUserData' required: - object - id - public_metadata - role - role_name - permissions - created_at - updated_at - organization BillingPlanUnitPriceTier: type: object additionalProperties: false properties: starts_at_block: type: integer format: int64 description: Start block (inclusive) for this tier ends_after_block: type: integer format: int64 nullable: true description: End block (inclusive) for this tier; null means unlimited fee_per_block: $ref: '#/components/schemas/BillingMoneyResponse' description: Price charged per block in this tier required: - starts_at_block - fee_per_block BillingProrationCreditDetail: type: object additionalProperties: false properties: amount: $ref: '#/components/schemas/BillingMoneyResponse' description: Credit amount with formatting cycle_days_remaining: type: integer format: int64 description: Number of days remaining in the billing cycle cycle_days_total: type: integer format: int64 description: Total number of days in the billing cycle cycle_remaining_percent: type: number format: double description: Percentage of the billing cycle remaining required: - amount - cycle_days_remaining - cycle_days_total - cycle_remaining_percent Client.SignUp: type: object properties: object: type: string description: 'String representing the object''s type. Objects of the same type share the same value. ' enum: - sign_up_attempt id: type: string description: Unique identifier for this sign up. status: type: string enum: - abandoned - missing_requirements - complete required_fields: type: array items: type: string description: 'List of required fields which need to be supplied to the current sign-up. These fields are mandatory in order for the sign-up to satisfy the attached registration policy and be marked as complete. ' optional_fields: type: array items: type: string description: 'List of optional fields which can be supplied to the current sign-up. These fields are not required and their absence does not prevent the sign-up to be marked as complete. ' missing_fields: type: array items: type: string description: 'List of the missing fields which still need to be supplied to the current sign-up. These fields are mandatory in order for the sign-up to satisfy the attached registration policy and be marked as complete. ' unverified_fields: type: array items: type: string description: 'List of fields which are already supplied to the current sign-up but they need to be verified. Example of such fields are email addresses and phone numbers. ' verifications: description: 'Group for all available verifications. ' allOf: - $ref: '#/components/schemas/Client.SignUp.Verifications' username: type: string nullable: true email_address: type: string nullable: true phone_number: type: string nullable: true web3_wallet: type: string nullable: true password_enabled: type: boolean first_name: type: string nullable: true last_name: type: string nullable: true unsafe_metadata: description: 'Custom JSON that callers can use to store arbitrary values that make sense in the context of the current sign up. ' type: object additionalProperties: true public_metadata: description: 'Custom JSON that can be used to store arbitrary values which will end up in the user''s public metadata. This field can only be populated from the application''s BE. At this point, this can be done via invitations. ' type: object additionalProperties: true custom_action: type: boolean external_id: type: string nullable: true created_session_id: type: string nullable: true created_user_id: type: string nullable: true abandon_at: type: integer format: int64 description: Unix timestamp at which the sign up will be abandoned. example: 1700690400000 legal_accepted_at: type: integer format: int64 nullable: true description: Unix timestamp at which the user accepted the legal requirements. example: 1700690400000 required: - object - id - status - required_fields - optional_fields - missing_fields - unverified_fields - verifications - username - email_address - phone_number - web3_wallet - password_enabled - first_name - last_name - custom_action - external_id - created_session_id - created_user_id - abandon_at - legal_accepted_at Stubs.Verification.Oauth: type: object additionalProperties: false properties: object: type: string enum: - verification_oauth status: type: string enum: - unverified - verified - failed - expired - transferable strategy: type: string pattern: ^oauth_(?:(?:token_)|(?:custom_))?[a-z0-9_]+$ external_verification_redirect_url: nullable: true type: string error: type: object nullable: true allOf: - $ref: '#/components/schemas/ClerkError' expire_at: type: integer attempts: type: integer nullable: true required: - status - strategy - expire_at Client.Web3Wallet: type: object additionalProperties: false properties: id: type: string object: type: string description: 'String representing the object''s type. Objects of the same type share the same value. ' enum: - web3_wallet web3_wallet: type: string verification: nullable: true type: object oneOf: - $ref: '#/components/schemas/Stubs.Verification.Web3Signature' - $ref: '#/components/schemas/Stubs.Verification.Admin' created_at: type: integer format: int64 description: 'Unix timestamp of creation ' updated_at: type: integer format: int64 description: 'Unix timestamp of creation ' required: - id - object - web3_wallet - verification - created_at - updated_at Stubs.Identification.Link: type: object additionalProperties: false properties: type: type: string enum: - oauth_apple - oauth_google - oauth_mock - oauth_custom_mock - saml id: type: string required: - type - id BillingSubscriptionItemSeats: type: object additionalProperties: false properties: quantity: type: integer format: int64 nullable: true description: Seat quantity being billed; null means unlimited tiers: type: array items: $ref: '#/components/schemas/BillingPerUnitTotalTier' description: Per-unit cost breakdown by pricing tier required: - quantity BillingPaymentMethod: type: object additionalProperties: false properties: object: type: string description: String representing the object's type enum: - commerce_payment_method id: type: string description: Unique identifier for the payment method payer_id: type: string description: Unique identifier for the payer payment_type: type: string description: The payment method type enum: - card - link is_default: type: boolean description: Whether this is the default payment method for the payer gateway: type: string description: The payment gateway gateway_external_id: type: string description: External ID in the payment gateway gateway_external_account_id: type: string nullable: true description: External account ID in the payment gateway last4: type: string description: Last 4 digits of the card (for card payment methods) nullable: true status: type: string description: Status of the payment method enum: - active - disconnected wallet_type: type: string description: Type of wallet (if applicable) nullable: true card_type: type: string description: Type of card (if applicable) nullable: true expiry_year: type: integer description: Card expiration year (for card payment methods) nullable: true expiry_month: type: integer description: Card expiration month (for card payment methods) nullable: true created_at: type: integer format: int64 description: Unix timestamp (in milliseconds) when the payment method was created updated_at: type: integer format: int64 description: Unix timestamp (in milliseconds) when the payment method was last updated is_removable: type: boolean description: Whether this payment method can be removed required: - object - id - payer_id - payment_type - gateway - gateway_external_id - gateway_external_account_id - last4 - status - card_type Client.User: type: object properties: id: type: string object: type: string description: 'String representing the object''s type. Objects of the same type share the same value. ' enum: - user username: nullable: true type: string first_name: nullable: true type: string last_name: nullable: true type: string image_url: type: string has_image: type: boolean primary_email_address_id: nullable: true type: string primary_phone_number_id: nullable: true type: string primary_web3_wallet_id: nullable: true type: string password_enabled: type: boolean two_factor_enabled: type: boolean totp_enabled: type: boolean backup_code_enabled: type: boolean email_addresses: type: array items: $ref: '#/components/schemas/Client.EmailAddress' phone_numbers: type: array items: $ref: '#/components/schemas/Client.PhoneNumber' web3_wallets: type: array items: $ref: '#/components/schemas/Client.Web3Wallet' passkeys: type: array items: $ref: '#/components/schemas/Client.Passkey' organization_memberships: type: array items: $ref: '#/components/schemas/Client.OrganizationMembership' external_accounts: type: array items: $ref: '#/components/schemas/ExternalAccountWithVerification' saml_accounts: type: array items: $ref: '#/components/schemas/Client.SAMLAccount' password_last_updated_at: nullable: true type: integer format: int64 description: Unix timestamp of last update. example: 1700690400000 public_metadata: type: object additionalProperties: true private_metadata: type: object additionalProperties: true unsafe_metadata: type: object additionalProperties: true external_id: nullable: true type: string last_sign_in_at: type: integer format: int64 nullable: true description: Unix timestamp of last sign-in. example: 1700690400000 banned: type: boolean description: Flag to denote whether user is banned or not. locked: type: boolean description: 'Flag to denote whether user is currently locked, i.e. restricted from signing in or not. ' deprovisioned: type: boolean description: 'Flag to denote whether the user has been deprovisioned via SCIM and is restricted from signing in. Only present on instances with SCIM enabled. ' lockout_expires_in_seconds: type: integer format: int64 nullable: true description: 'The number of seconds remaining until the lockout period expires for a locked user. A null value for a locked user indicates that lockout never expires. ' example: 300 verification_attempts_remaining: type: integer format: int64 nullable: true description: 'The number of verification attempts remaining until the user is locked. Null if account lockout is not enabled. Note: if a user is locked explicitly via the Backend API, they may still have verification attempts remaining. ' created_at: type: integer format: int64 description: Unix timestamp of creation. example: 1700690400000 updated_at: type: integer format: int64 description: Unix timestamp of last update. example: 1700690400000 delete_self_enabled: type: boolean description: If enabled, user can delete themselves via FAPI. create_organization_enabled: type: boolean description: If enabled, user can create organizations via FAPI. create_organizations_limit: type: integer description: The maximum number of organizations the user can create. 0 means unlimited. last_active_at: type: integer format: int64 nullable: true description: Unix timestamp of the latest session activity, with day precision. example: 1700690400000 mfa_enabled_at: type: integer format: int64 nullable: true description: Unix timestamp at which the user enabled MFA. example: 1700690400000 mfa_disabled_at: type: integer format: int64 nullable: true description: Unix timestamp at which the user disabled MFA. example: 1700690400000 legal_accepted_at: type: integer format: int64 nullable: true description: Unix timestamp at which the user accepted the legal requirements. example: 1700690400000 profile_image_url: type: string deprecated: true description: Deprecated. Use `image_url` instead. required: - id - object - username - first_name - last_name - has_image - primary_email_address_id - primary_phone_number_id - primary_web3_wallet_id - password_enabled - two_factor_enabled - totp_enabled - backup_code_enabled - email_addresses - phone_numbers - web3_wallets - passkeys - external_accounts - saml_accounts - enterprise_accounts - public_metadata - external_id - last_sign_in_at - banned - locked - lockout_expires_in_seconds - verification_attempts_remaining - created_at - updated_at - delete_self_enabled - create_organization_enabled - last_active_at - mfa_enabled_at - mfa_disabled_at - legal_accepted_at Client.Passkey: type: object additionalProperties: false properties: id: type: string object: type: string description: 'String representing the object''s type. Objects of the same type share the same value. ' enum: - passkey name: type: string last_used_at: type: integer format: int64 description: 'Unix timestamp of when the passkey was last used. ' nullable: true verification: nullable: true type: object oneOf: - $ref: '#/components/schemas/Stubs.Verification.Passkey' created_at: type: integer format: int64 description: 'Unix timestamp of creation ' updated_at: type: integer format: int64 description: 'Unix timestamp of update ' required: - id - object - name - verification Client.SessionTask: type: object properties: key: type: string required: - key BillingTotalsResponse: type: object additionalProperties: false properties: subtotal: $ref: '#/components/schemas/BillingMoneyResponse' description: Subtotal before adjustments base_fee: $ref: '#/components/schemas/BillingMoneyResponse' description: Base fee component before per-unit charges and adjustments tax_total: $ref: '#/components/schemas/BillingMoneyResponse' description: Total tax amount grand_total: $ref: '#/components/schemas/BillingMoneyResponse' description: Grand total amount total_due_after_free_trial: allOf: - $ref: '#/components/schemas/BillingMoneyResponse' nullable: true description: Total amount due after free trial ends credit: allOf: - $ref: '#/components/schemas/BillingMoneyResponse' nullable: true description: Credit amount past_due: allOf: - $ref: '#/components/schemas/BillingMoneyResponse' nullable: true description: Past due amount total_due_now: allOf: - $ref: '#/components/schemas/BillingMoneyResponse' nullable: true description: Total amount due now per_unit_totals: type: array items: $ref: '#/components/schemas/BillingPerUnitTotal' description: Per-unit total breakdown (for example, seats) credits: allOf: - $ref: '#/components/schemas/BillingCreditsResponse' nullable: true description: Unified credits breakdown proration: type: object nullable: true additionalProperties: false properties: credit: $ref: '#/components/schemas/BillingMoneyResponse' description: Proration credit amount required: - subtotal - base_fee - tax_total - grand_total Stubs.Verification.FromOauth: type: object properties: object: type: string enum: - verification_from_oauth status: type: string enum: - verified - unverified strategy: type: string enum: - from_oauth_apple - from_oauth_google - from_oauth_mock - from_oauth_custom_mock attempts: type: integer nullable: true expire_at: type: integer nullable: true required: - status - strategy Stubs.SAMLConnection.SAMLAccount: type: object additionalProperties: false properties: id: type: string name: type: string domain: type: string deprecated: true domains: type: array items: type: string active: type: boolean provider: type: string sync_user_attributes: type: boolean allow_subdomains: type: boolean allow_idp_initiated: type: boolean disable_additional_identifications: type: boolean allow_organization_account_linking: type: boolean created_at: type: integer format: int64 description: 'Unix timestamp of creation. ' updated_at: type: integer format: int64 description: 'Unix timestamp of last update. ' required: - id - name - active - provider - sync_user_attributes - created_at - updated_at anyOf: - required: - domain - required: - domains Client.Organization: type: object additionalProperties: false properties: id: type: string object: type: string description: 'String representing the object''s type. Objects of the same type share the same value. ' enum: - organization name: type: string slug: type: string image_url: type: string has_image: type: boolean members_count: type: integer pending_invitations_count: type: integer max_allowed_memberships: type: integer admin_delete_enabled: type: boolean public_metadata: type: object additionalProperties: true created_at: type: integer format: int64 description: 'Unix timestamp of creation. ' updated_at: type: integer format: int64 description: 'Unix timestamp of last update. ' logo_url: type: string nullable: true deprecated: true description: Deprecated. Use `image_url` instead. required: - object - id - name - slug - has_image - max_allowed_memberships - admin_delete_enabled - public_metadata - created_at - updated_at schemas-Client.Client: type: object nullable: true properties: object: type: string description: String representing the object's type. Objects of the same type share the same value. enum: - client id: type: string description: String representing the identifier of the session. sessions: type: array items: $ref: '#/components/schemas/schemas-Client.Session' sign_in: type: object nullable: true allOf: - $ref: '#/components/schemas/schemas-Client.SignIn' sign_up: type: object nullable: true allOf: - $ref: '#/components/schemas/Client.SignUp' last_active_session_id: nullable: true type: string description: Last active session_id. last_authentication_strategy: nullable: true type: string description: 'The authentication strategy that was last used to authenticate the user on this client. ' cookie_expires_at: nullable: true type: integer format: int64 description: Unix timestamp of the cookie expiration. captcha_bypass: type: boolean description: Whether the client can bypass CAPTCHA. created_at: type: integer format: int64 description: Unix timestamp of creation. updated_at: type: integer format: int64 description: Unix timestamp of last update. required: - object - id - sessions - sign_in - sign_up - last_active_session_id - last_authentication_strategy - cookie_expires_at - captcha_bypass - created_at - updated_at Client.SignUp.Verifications: type: object properties: email_address: type: object nullable: true oneOf: - allOf: - $ref: '#/components/schemas/Stubs.Verification.OTP' - $ref: '#/components/schemas/Stubs.SignUpVerification.AdditionalFields' - allOf: - $ref: '#/components/schemas/Stubs.Verification.Link' - $ref: '#/components/schemas/Stubs.SignUpVerification.AdditionalFields' - allOf: - $ref: '#/components/schemas/Stubs.Verification.Ticket' - $ref: '#/components/schemas/Stubs.SignUpVerification.AdditionalFields' - allOf: - $ref: '#/components/schemas/Stubs.Verification.FromOauth' - $ref: '#/components/schemas/Stubs.SignUpVerification.AdditionalFields' - allOf: - $ref: '#/components/schemas/Stubs.Verification.SAML' - $ref: '#/components/schemas/Stubs.SignUpVerification.AdditionalFields' phone_number: type: object nullable: true allOf: - $ref: '#/components/schemas/Stubs.Verification.OTP' - $ref: '#/components/schemas/Stubs.SignUpVerification.AdditionalFields' web3_wallet: type: object nullable: true allOf: - $ref: '#/components/schemas/Stubs.Verification.Web3Signature' - $ref: '#/components/schemas/Stubs.SignUpVerification.AdditionalFields' external_account: type: object nullable: true oneOf: - $ref: '#/components/schemas/Stubs.Verification.Oauth' - $ref: '#/components/schemas/Stubs.Verification.SAML' - $ref: '#/components/schemas/Stubs.Verification.Ticket' - $ref: '#/components/schemas/Stubs.Verification.GoogleOneTap' required: - email_address - phone_number - web3_wallet - external_account Stubs.Verification.Admin: type: object additionalProperties: false properties: object: type: string enum: - verification_admin status: type: string enum: - verified - unverified - failed - expired strategy: type: string enum: - admin attempts: type: integer nullable: true expire_at: type: integer nullable: true required: - status - strategy BillingMoneyResponse: type: object additionalProperties: false properties: amount: type: integer format: int64 description: Amount in cents amount_formatted: type: string description: Formatted amount as a string (e.g., "$10.00") currency: type: string description: Currency code (e.g., "USD") currency_symbol: type: string description: Currency symbol (e.g., "$") required: - amount - amount_formatted - currency - currency_symbol parameters: OffsetParameter: name: offset in: query description: 'Skip the first `offset` results when paginating. Needs to be an integer greater or equal to zero. To be used in conjunction with `limit`.' required: false schema: type: integer default: 0 minimum: 0 Paginated: name: paginated in: query description: 'Whether to paginate the results. If true, the results will be paginated. If false, the results will not be paginated.' required: false schema: type: boolean LimitParameter: name: limit in: query description: 'Applies a limit to the number of results returned. Can be used for paginating the results together with `offset`.' required: false schema: type: integer default: 10 minimum: 1 maximum: 500 securitySchemes: bearerAuth: type: http scheme: bearer description: Secret key, obtained under "API Keys" in the Clerk Dashboard. bearerFormat: sk__ externalDocs: url: https://clerk.com/docs x-speakeasy-retries: strategy: backoff backoff: initialInterval: 500 maxInterval: 60000 maxElapsedTime: 3600000 exponent: 1.5 statusCodes: - 5XX retryConnectionErrors: true