Skip to content
Open
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,246 changes: 818 additions & 428 deletions .speakeasy/gen.lock

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion .speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ generation:
requestResponseComponentNamesFeb2024: true
securityFeb2025: false
sharedErrorComponentsApr2025: false
sharedNestedComponentsJan2026: false
auth:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: false
Expand All @@ -26,7 +27,7 @@ generation:
generateNewTests: false
skipResponseBodyAssertions: false
python:
version: 4.2.0
version: 4.2.1
additionalDependencies:
dev:
pytest: ^8.3.3
Expand All @@ -42,6 +43,7 @@ python:
- Clerk
baseErrorName: ClerkBaseError
clientServerStatusCodesAsErrors: true
constFieldCasing: upper
defaultErrorName: SDKError
description: Python Client SDK for clerk.dev
enableCustomCodeRegions: true
Expand Down Expand Up @@ -76,3 +78,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.700.2
sources:
clerk-openapi:
sourceNamespace: clerk-openapi
sourceRevisionDigest: sha256:09b381d1731c7bb152fc6dba85bf99b2177dc9d23ca25192603196d8549af4c2
sourceBlobDigest: sha256:33fc4e4e521dbde227ffb63777693bcb96c241a26d7b0e307fa2cb9d3a5e1610
sourceRevisionDigest: sha256:356c9fb799fbc18a4404eff346587003df716d42038e5f0361da25be762cd0c5
sourceBlobDigest: sha256:5abd4bc591af7915bcfdaf39779d94fdda611b7425feda55ef371fc0cefd8002
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:356c9fb799fbc18a4404eff346587003df716d42038e5f0361da25be762cd0c5
sourceBlobDigest: sha256:5abd4bc591af7915bcfdaf39779d94fdda611b7425feda55ef371fc0cefd8002
codeSamplesNamespace: clerk-openapi-python-code-samples
codeSamplesRevisionDigest: sha256:b4a32406ece8ceb85b90020a77787302aa1bc828c3a104f48236fd560a4fc240
codeSamplesRevisionDigest: sha256:f15bc99478f9e3cff070d0edbd32041a186eeeb59677015437953cf61f955f20
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
Expand Down
69 changes: 42 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,7 @@ def verify_machine_token(request: httpx.Request):
* [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 +332,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 +464,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,6 +539,8 @@ 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)
Expand Down Expand Up @@ -675,33 +690,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 190 methods.*
* [`GetAPIKeysAPIKeysResponseBody`](./src/clerk_backend_api/models/getapikeysapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`GetAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/getapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`UpdateAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/updateapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`DeleteAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/deleteapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`GetAPIKeySecretAPIKeysResponseBody`](./src/clerk_backend_api/models/getapikeysecretapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`RevokeAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/revokeapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`VerifyAPIKeyAPIKeysResponseBody`](./src/clerk_backend_api/models/verifyapikeyapikeysresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`CreateM2MTokenM2mResponseBody`](./src/clerk_backend_api/models/createm2mtokenm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`GetM2MTokensM2mResponseBody`](./src/clerk_backend_api/models/getm2mtokensm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`RevokeM2MTokenM2mResponseBody`](./src/clerk_backend_api/models/revokem2mtokenm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`VerifyM2MTokenM2mResponseBody`](./src/clerk_backend_api/models/verifym2mtokenm2mresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`VerifyOAuthAccessTokenOauthAccessTokensResponseBody`](./src/clerk_backend_api/models/verifyoauthaccesstokenoauthaccesstokensresponsebody.py): 400 Bad Request. Status code `400`. Applicable to 1 of 190 methods.*
* [`GetM2MTokensM2mResponseResponseBody`](./src/clerk_backend_api/models/getm2mtokensm2mresponseresponsebody.py): 403 Forbidden. Status code `403`. Applicable to 1 of 190 methods.*
* [`GetAPIKeysAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/getapikeysapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 190 methods.*
* [`GetAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/getapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 190 methods.*
* [`UpdateAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/updateapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 190 methods.*
* [`DeleteAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/deleteapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 190 methods.*
* [`GetAPIKeySecretAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/getapikeysecretapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 190 methods.*
* [`RevokeAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/revokeapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 190 methods.*
* [`VerifyAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/verifyapikeyapikeysresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 190 methods.*
* [`GetM2MTokensM2mResponse404ResponseBody`](./src/clerk_backend_api/models/getm2mtokensm2mresponse404responsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 190 methods.*
* [`RevokeM2MTokenM2mResponseResponseBody`](./src/clerk_backend_api/models/revokem2mtokenm2mresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 190 methods.*
* [`VerifyM2MTokenM2mResponseResponseBody`](./src/clerk_backend_api/models/verifym2mtokenm2mresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 190 methods.*
* [`VerifyOAuthAccessTokenOauthAccessTokensResponseResponseBody`](./src/clerk_backend_api/models/verifyoauthaccesstokenoauthaccesstokensresponseresponsebody.py): 404 Not Found. Status code `404`. Applicable to 1 of 190 methods.*
* [`CreateAPIKeyAPIKeysResponseResponseBody`](./src/clerk_backend_api/models/createapikeyapikeysresponseresponsebody.py): 409 Conflict. Status code `409`. Applicable to 1 of 190 methods.*
* [`CreateM2MTokenM2mResponseResponseBody`](./src/clerk_backend_api/models/createm2mtokenm2mresponseresponsebody.py): 409 Conflict. Status code `409`. Applicable to 1 of 190 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-01 00:34:36
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.700.2 (2.801.2) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v4.2.1] .
### Releases
- [PyPI v4.2.1] https://pypi.org/project/clerk-backend-api/4.2.1 - .
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 |
10 changes: 10 additions & 0 deletions docs/models/addrolestorolesetrequestbody.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# AddRolesToRoleSetRequestBody


## Fields

| Field | Type | Required | Description |
| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `role_keys` | List[*str*] | :heavy_check_mark: | Array of role keys to add to the role set.<br/>Must contain at least one role and no more than 10 roles. |
| `default_role_key` | *Optional[str]* | :heavy_minus_sign: | Optionally update the default role to one of the newly added roles. |
| `creator_role_key` | *Optional[str]* | :heavy_minus_sign: | Optionally update the creator role to one of the newly added roles. |
Loading