Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1,393 changes: 929 additions & 464 deletions .speakeasy/gen.lock

Large diffs are not rendered by default.

9 changes: 7 additions & 2 deletions .speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,27 @@ generation:
requestResponseComponentNamesFeb2024: true
securityFeb2025: false
sharedErrorComponentsApr2025: false
sharedNestedComponentsJan2026: false
auth:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: false
hoistGlobalSecurity: true
schemas:
allOfMergeStrategy: shallowMerge
requestBodyFieldName: ""
versioningStrategy: automatic
persistentEdits: {}
tests:
generateTests: true
generateNewTests: false
skipResponseBodyAssertions: false
python:
version: 4.2.0
version: 5.0.0
additionalDependencies:
dev:
pytest: ^8.3.3
main:
cryptography: ">=45.0.0,<47.0.0"
cryptography: '>=45.0.0,<47.0.0'
pyjwt: ^2.9.0
allowedRedefinedBuiltins:
- id
Expand All @@ -42,6 +44,7 @@ python:
- Clerk
baseErrorName: ClerkBaseError
clientServerStatusCodesAsErrors: true
constFieldCasing: upper
defaultErrorName: SDKError
description: Python Client SDK for clerk.dev
enableCustomCodeRegions: true
Expand All @@ -51,6 +54,7 @@ python:
flattenGlobalSecurity: true
flattenRequests: true
flatteningOrder: parameters-first
forwardCompatibleEnumsByDefault: false
imports:
option: openapi
paths:
Expand All @@ -76,3 +80,4 @@ python:
responseFormat: flat
sseFlatResponse: false
templateVersion: v2
useAsyncHooks: false
14 changes: 7 additions & 7 deletions .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
speakeasyVersion: 1.675.4
speakeasyVersion: 1.710.0
sources:
clerk-openapi:
sourceNamespace: clerk-openapi
sourceRevisionDigest: sha256:09b381d1731c7bb152fc6dba85bf99b2177dc9d23ca25192603196d8549af4c2
sourceBlobDigest: sha256:33fc4e4e521dbde227ffb63777693bcb96c241a26d7b0e307fa2cb9d3a5e1610
sourceRevisionDigest: sha256:7528b87462924a7ff060778878395d56d5e8f046d218a0371564baf045cb2721
sourceBlobDigest: sha256:720bc554dbbe7076f680457e19d751040febded591d66f73862d393d6f5b5327
tags:
- latest
- speakeasy-sdk-regen-1765481971
- speakeasy-sdk-regen-1766103909
- "2025-11-10"
targets:
clerk-sdk-python:
source: clerk-openapi
sourceNamespace: clerk-openapi
sourceRevisionDigest: sha256:09b381d1731c7bb152fc6dba85bf99b2177dc9d23ca25192603196d8549af4c2
sourceBlobDigest: sha256:33fc4e4e521dbde227ffb63777693bcb96c241a26d7b0e307fa2cb9d3a5e1610
sourceRevisionDigest: sha256:7528b87462924a7ff060778878395d56d5e8f046d218a0371564baf045cb2721
sourceBlobDigest: sha256:720bc554dbbe7076f680457e19d751040febded591d66f73862d393d6f5b5327
codeSamplesNamespace: clerk-openapi-python-code-samples
codeSamplesRevisionDigest: sha256:b4a32406ece8ceb85b90020a77787302aa1bc828c3a104f48236fd560a4fc240
codeSamplesRevisionDigest: sha256:a08b7f2b7a11beb6e36f65130e5f2a7e040b116e1f3bec7bd03a5c962dcb71b1
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
Expand Down
74 changes: 46 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ It's also possible to write a standalone Python script without needing to set up
```python
#!/usr/bin/env -S uv run --script
# /// script
# requires-python = ">=3.9"
# requires-python = ">=3.10"
# dependencies = [
# "clerk-backend-api",
# ]
Expand Down Expand Up @@ -280,9 +280,12 @@ def verify_machine_token(request: httpx.Request):
### [Billing](docs/sdks/billing/README.md)

* [list_plans](docs/sdks/billing/README.md#list_plans) - List all billing plans
* [list_prices](docs/sdks/billing/README.md#list_prices) - List all billing prices
* [create_price](docs/sdks/billing/README.md#create_price) - Create a custom billing price
* [list_subscription_items](docs/sdks/billing/README.md#list_subscription_items) - List all subscription items
* [cancel_subscription_item](docs/sdks/billing/README.md#cancel_subscription_item) - Cancel a subscription item
* [extend_subscription_item_free_trial](docs/sdks/billing/README.md#extend_subscription_item_free_trial) - Extend free trial for a subscription item
* [create_price_transition](docs/sdks/billing/README.md#create_price_transition) - Create a price transition for a subscription item
* [list_statements](docs/sdks/billing/README.md#list_statements) - List all billing statements
* [get_statement](docs/sdks/billing/README.md#get_statement) - Retrieve a billing statement
* [get_statement_payment_attempts](docs/sdks/billing/README.md#get_statement_payment_attempts) - List payment attempts for a billing statement
Expand Down Expand Up @@ -331,6 +334,8 @@ def verify_machine_token(request: httpx.Request):
* [update_restrictions](docs/sdks/instancesettingssdk/README.md#update_restrictions) - Update instance restrictions
* [change_domain](docs/sdks/instancesettingssdk/README.md#change_domain) - Update production instance domain
* [update_organization_settings](docs/sdks/instancesettingssdk/README.md#update_organization_settings) - Update instance organization settings
* [get_instance_protect](docs/sdks/instancesettingssdk/README.md#get_instance_protect) - Get instance protect settings
* [update_instance_protect](docs/sdks/instancesettingssdk/README.md#update_instance_protect) - Update instance protect settings

### [Invitations](docs/sdks/invitations/README.md)

Expand Down Expand Up @@ -461,6 +466,16 @@ def verify_machine_token(request: httpx.Request):
* [get](docs/sdks/redirecturls/README.md#get) - Retrieve a redirect URL
* [delete](docs/sdks/redirecturls/README.md#delete) - Delete a redirect URL

### [RoleSets](docs/sdks/rolesetssdk/README.md)

* [list](docs/sdks/rolesetssdk/README.md#list) - Get a list of role sets
* [create](docs/sdks/rolesetssdk/README.md#create) - Create a role set
* [get](docs/sdks/rolesetssdk/README.md#get) - Retrieve a role set
* [update](docs/sdks/rolesetssdk/README.md#update) - Update a role set
* [replace](docs/sdks/rolesetssdk/README.md#replace) - Replace a role set
* [add_roles](docs/sdks/rolesetssdk/README.md#add_roles) - Add roles to a role set
* [replace_role](docs/sdks/rolesetssdk/README.md#replace_role) - Replace a role in a role set

### [SamlConnections](docs/sdks/samlconnectionssdk/README.md)

* [list](docs/sdks/samlconnectionssdk/README.md#list) - Get a list of SAML Connections for an instance
Expand Down Expand Up @@ -526,12 +541,15 @@ def verify_machine_token(request: httpx.Request):
* [delete_web3_wallet](docs/sdks/users/README.md#delete_web3_wallet) - Delete a user web3 wallet
* [delete_totp](docs/sdks/users/README.md#delete_totp) - Delete all the user's TOTPs
* [delete_external_account](docs/sdks/users/README.md#delete_external_account) - Delete External Account
* [set_password_compromised](docs/sdks/users/README.md#set_password_compromised) - Set a user's password as compromised
* [unset_password_compromised](docs/sdks/users/README.md#unset_password_compromised) - Unset a user's password as compromised
* [get_instance_organization_memberships](docs/sdks/users/README.md#get_instance_organization_memberships) - Get a list of all organization memberships within an instance.

### [WaitlistEntries](docs/sdks/waitlistentriessdk/README.md)

* [list](docs/sdks/waitlistentriessdk/README.md#list) - List all waitlist entries
* [create](docs/sdks/waitlistentriessdk/README.md#create) - Create a waitlist entry
* [bulk_create](docs/sdks/waitlistentriessdk/README.md#bulk_create) - Create multiple waitlist entries
* [delete](docs/sdks/waitlistentriessdk/README.md#delete) - Delete a pending waitlist entry
* [invite](docs/sdks/waitlistentriessdk/README.md#invite) - Invite a waitlist entry
* [reject](docs/sdks/waitlistentriessdk/README.md#reject) - Reject a waitlist entry
Expand Down Expand Up @@ -675,33 +693,33 @@ with Clerk(


**Inherit from [`ClerkBaseError`](./src/clerk_backend_api/models/clerkbaseerror.py)**:
* [`CreateAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/createapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`GetAPIKeysAPIKeysResponseBody`](./src/clerk_backend_api/models/getapikeysapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`GetAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/getapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`UpdateAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/updateapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`DeleteAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/deleteapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`GetAPIKeySecretAPIKeysResponseBody`](./src/clerk_backend_api/models/getapikeysecretapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`RevokeAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/revokeapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`VerifyAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/verifyapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`CreateM2MTokenM2mResponseBody`](./src/clerk_backend_api/models/createm2mtokenm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`GetM2MTokensM2mResponseBody`](./src/clerk_backend_api/models/getm2mtokensm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`RevokeM2MTokenM2mResponseBody`](./src/clerk_backend_api/models/revokem2mtokenm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`VerifyM2MTokenM2mResponseBody`](./src/clerk_backend_api/models/verifym2mtokenm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`VerifyOAuthAccessTokenOauthAccessTokensResponseBody`](./src/clerk_backend_api/models/verifyoauthaccesstokenoauthaccesstokensresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 178 methods.*
* [`GetM2MTokensM2mResponseResponseBody`](./src/clerk_backend_api/models/getm2mtokensm2mresponseresponsebody.py): 403 Forbidden. Status code `403`. Applicable to 1 of 178 methods.*
* [`GetAPIKeysAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/getapikeysapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 178 methods.*
* [`GetAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/getapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 178 methods.*
* [`UpdateAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/updateapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 178 methods.*
* [`DeleteAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/deleteapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 178 methods.*
* [`GetAPIKeySecretAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/getapikeysecretapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 178 methods.*
* [`RevokeAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/revokeapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 178 methods.*
* [`VerifyAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/verifyapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 178 methods.*
* [`GetM2MTokensM2mResponse404ResponseBody`](./src/clerk_backend_api/models/getm2mtokensm2mresponse404responsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 178 methods.*
* [`RevokeM2MTokenM2mResponseResponseBody`](./src/clerk_backend_api/models/revokem2mtokenm2mresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 178 methods.*
* [`VerifyM2MTokenM2mResponseResponseBody`](./src/clerk_backend_api/models/verifym2mtokenm2mresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 178 methods.*
* [`VerifyOAuthAccessTokenOauthAccessTokensResponseResponseBody`](./src/clerk_backend_api/models/verifyoauthaccesstokenoauthaccesstokensresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 178 methods.*
* [`CreateAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/createapikeyapikeysresponseresponsebody.py): 409 Conflict. Status code `409`. Applicable to 1 of 178 methods.*
* [`CreateM2MTokenM2mResponseResponseBody`](./src/clerk_backend_api/models/createm2mtokenm2mresponseresponsebody.py): 409 Conflict. Status code `409`. Applicable to 1 of 178 methods.*
* [`CreateAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/createapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`GetAPIKeysAPIKeysResponseBody`](./src/clerk_backend_api/models/getapikeysapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`GetAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/getapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`UpdateAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/updateapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`DeleteAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/deleteapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`GetAPIKeySecretAPIKeysResponseBody`](./src/clerk_backend_api/models/getapikeysecretapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`RevokeAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/revokeapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`VerifyAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/verifyapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`CreateM2MTokenM2mResponseBody`](./src/clerk_backend_api/models/createm2mtokenm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`GetM2MTokensM2mResponseBody`](./src/clerk_backend_api/models/getm2mtokensm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`RevokeM2MTokenM2mResponseBody`](./src/clerk_backend_api/models/revokem2mtokenm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`VerifyM2MTokenM2mResponseBody`](./src/clerk_backend_api/models/verifym2mtokenm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`VerifyOAuthAccessTokenOauthAccessTokensResponseBody`](./src/clerk_backend_api/models/verifyoauthaccesstokenoauthaccesstokensresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 193 methods.*
* [`GetM2MTokensM2mResponseResponseBody`](./src/clerk_backend_api/models/getm2mtokensm2mresponseresponsebody.py): 403 Forbidden. Status code `403`. Applicable to 1 of 193 methods.*
* [`GetAPIKeysAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/getapikeysapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 193 methods.*
* [`GetAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/getapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 193 methods.*
* [`UpdateAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/updateapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 193 methods.*
* [`DeleteAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/deleteapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 193 methods.*
* [`GetAPIKeySecretAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/getapikeysecretapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 193 methods.*
* [`RevokeAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/revokeapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 193 methods.*
* [`VerifyAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/verifyapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 193 methods.*
* [`GetM2MTokensM2mResponse404ResponseBody`](./src/clerk_backend_api/models/getm2mtokensm2mresponse404responsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 193 methods.*
* [`RevokeM2MTokenM2mResponseResponseBody`](./src/clerk_backend_api/models/revokem2mtokenm2mresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 193 methods.*
* [`VerifyM2MTokenM2mResponseResponseBody`](./src/clerk_backend_api/models/verifym2mtokenm2mresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 193 methods.*
* [`VerifyOAuthAccessTokenOauthAccessTokensResponseResponseBody`](./src/clerk_backend_api/models/verifyoauthaccesstokenoauthaccesstokensresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 193 methods.*
* [`CreateAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/createapikeyapikeysresponseresponsebody.py): 409 Conflict. Status code `409`. Applicable to 1 of 193 methods.*
* [`CreateM2MTokenM2mResponseResponseBody`](./src/clerk_backend_api/models/createm2mtokenm2mresponseresponsebody.py): 409 Conflict. Status code `409`. Applicable to 1 of 193 methods.*
* [`ResponseValidationError`](./src/clerk_backend_api/models/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute.

</details>
Expand Down
12 changes: 11 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -528,4 +528,14 @@ Based on:
### Generated
- [python v4.2.0] .
### Releases
- [PyPI v4.2.0] https://pypi.org/project/clerk-backend-api/4.2.0 - .
- [PyPI v4.2.0] https://pypi.org/project/clerk-backend-api/4.2.0 - .

## 2026-02-11 18:48:00
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.710.0 (2.818.4) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v5.0.0] .
### Releases
- [PyPI v5.0.0] https://pypi.org/project/clerk-backend-api/5.0.0 - .
9 changes: 9 additions & 0 deletions docs/models/addrolestorolesetrequest.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# AddRolesToRoleSetRequest


## Fields

| Field | Type | Required | Description |
| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- |
| `role_set_key_or_id` | *str* | :heavy_check_mark: | The key or ID of the role set |
| `request_body` | [models.AddRolesToRoleSetRequestBody](../models/addrolestorolesetrequestbody.md) | :heavy_check_mark: | N/A |
Loading