Dynamic Settings API

The Settings API from Dynamic — 9 operation(s) for settings.

Operations 14

GET /environments/{environmentId}/settings/exchanges Get the exchanges for an environment #
POST /environments/{environmentId}/settings/exchanges Creates a new exchange for the project environment #
GET /settings/exchanges/{exchangeId} Gets an exchange #
DELETE /settings/exchanges/{exchangeId} Delete an exchange by exchangeId #
PUT /settings/exchanges/{exchangeId}/enable Enable the exchange for the environment #
PUT /settings/exchanges/{exchangeId}/disable Disable the exchange for the environment #
GET /environments/{environmentId}/settings/providers Get the providers for an environment #
POST /environments/{environmentId}/settings/providers Creates a new provider for the project environment #
GET /environments/{environmentId}/settings/providers/urls Get the URLs for the environment providers #
GET /settings/providers/{providerId} Gets a provider #
PUT /settings/providers/{providerId} Updates a provider #
DELETE /settings/providers/{providerId} Delete a provider by providerId #
PUT /settings/providers/{providerId}/enable Enable the provider for the environment #
PUT /settings/providers/{providerId}/disable Disable the provider for the environment #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/dynamic-xyz-settings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

dynamic-xyz-settings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Dashboard Allowlists Settings API
  description: Dashboard API documentation
  version: 1.0.0
servers:
- url: https://app.dynamicauth.com/api/v0
- url: https://app.dynamic.xyz/api/v0
- url: http://localhost:3333/api/v0
tags:
- name: Settings
paths:
  /environments/{environmentId}/settings/exchanges:
    get:
      operationId: getEnvironmentExchanges
      tags:
      - Settings
      summary: Get the exchanges for an environment
      parameters:
      - $ref: '#/components/parameters/environmentId'
      responses:
        '200':
          description: List of exchanges for this project environment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExchangeResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: createExchange
      tags:
      - Settings
      summary: Creates a new exchange for the project environment
      parameters:
      - $ref: '#/components/parameters/environmentId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExchangeCreateRequest'
      responses:
        '201':
          description: Successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Exchange'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /settings/exchanges/{exchangeId}:
    get:
      operationId: getExchange
      tags:
      - Settings
      summary: Gets an exchange
      parameters:
      - $ref: '#/components/parameters/exchangeId'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Exchange'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: deleteExchange
      tags:
      - Settings
      summary: Delete an exchange by exchangeId
      parameters:
      - $ref: '#/components/parameters/exchangeId'
      responses:
        '204':
          description: successful operation
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - bearerAuth: []
  /settings/exchanges/{exchangeId}/enable:
    put:
      summary: Enable the exchange for the environment
      operationId: enableExchange
      tags:
      - Settings
      security:
      - bearerAuth: []
      parameters:
      - $ref: '#/components/parameters/exchangeId'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Exchange'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /settings/exchanges/{exchangeId}/disable:
    put:
      summary: Disable the exchange for the environment
      operationId: disableExchange
      tags:
      - Settings
      security:
      - bearerAuth: []
      parameters:
      - $ref: '#/components/parameters/exchangeId'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Exchange'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /environments/{environmentId}/settings/providers:
    get:
      operationId: getEnvironmentProviders
      tags:
      - Settings
      summary: Get the providers for an environment
      parameters:
      - $ref: '#/components/parameters/environmentId'
      responses:
        '200':
          description: List of providers for this project environment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProvidersResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
    post:
      operationId: createProvider
      tags:
      - Settings
      summary: Creates a new provider for the project environment
      parameters:
      - $ref: '#/components/parameters/environmentId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProviderCreateRequest'
      responses:
        '201':
          description: Successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Provider'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /environments/{environmentId}/settings/providers/urls:
    get:
      operationId: getEnvironmentProviderUrls
      tags:
      - Settings
      summary: Get the URLs for the environment providers
      parameters:
      - $ref: '#/components/parameters/environmentId'
      responses:
        '200':
          description: List of OAuth urls for the environment providers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProviderUrlsResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /settings/providers/{providerId}:
    get:
      operationId: getProvider
      tags:
      - Settings
      summary: Gets a provider
      parameters:
      - $ref: '#/components/parameters/providerId'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Provider'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
    put:
      operationId: updateProvider
      tags:
      - Settings
      summary: Updates a provider
      parameters:
      - $ref: '#/components/parameters/providerId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProviderUpdateRequest'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Provider'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      operationId: deleteProvider
      tags:
      - Settings
      summary: Delete a provider by providerId
      parameters:
      - $ref: '#/components/parameters/providerId'
      responses:
        '204':
          description: successful operation
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
      - bearerAuth: []
  /settings/providers/{providerId}/enable:
    put:
      summary: Enable the provider for the environment
      operationId: enableProvider
      tags:
      - Settings
      security:
      - bearerAuth: []
      parameters:
      - $ref: '#/components/parameters/providerId'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Provider'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /settings/providers/{providerId}/disable:
    put:
      summary: Disable the provider for the environment
      operationId: disableProvider
      tags:
      - Settings
      security:
      - bearerAuth: []
      parameters:
      - $ref: '#/components/parameters/providerId'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Provider'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    JwtVerifiedCredentialFormatEnum:
      type: string
      enum:
      - blockchain
      - email
      - oauth
      - passkey
      - phoneNumber
      - externalUser
    TurnkeyWalletProperties:
      deprecated: true
      type: object
      properties:
        turnkeySubOrganizationId:
          allOf:
          - $ref: '#/components/schemas/uuid'
          deprecated: true
        turnkeyPrivateKeyId:
          allOf:
          - $ref: '#/components/schemas/uuid'
          deprecated: true
        turnkeyHDWalletId:
          allOf:
          - $ref: '#/components/schemas/uuid'
          deprecated: true
        isAuthenticatorAttached:
          type: boolean
          description: Whether or not the wallet has an authenticator (passkey, api key, etc) attached to it.
        turnkeyUserId:
          allOf:
          - $ref: '#/components/schemas/uuid'
          deprecated: true
        isSessionKeyCompatible:
          type: boolean
        version:
          $ref: '#/components/schemas/EmbeddedWalletVersionEnum'
        ecdsaProviderType:
          $ref: '#/components/schemas/ecdsaValidatorOptions'
        entryPointVersion:
          $ref: '#/components/schemas/ProviderEntryPointVersionEnum'
        kernelVersion:
          $ref: '#/components/schemas/ProviderKernelVersionEnum'
    HardwareWalletEnum:
      type: string
      enum:
      - ledger
    WalletPublicKey:
      type: string
      pattern: ^[A-Za-z0-9]{18,100}$
      description: Valid blockchain wallet address, must be an alphanumeric string without any special characters
      example: '0xbF394748301603f18d953C90F0b087CBEC0E1834'
      maxLength: 255
    ZerodevBundlerProvider:
      type: string
      enum:
      - STACKUP
      - PIMLICO
      - ALCHEMY
      - GELATO
    WaasWalletProperties:
      type: object
      properties:
        keyShares:
          type: array
          items:
            $ref: '#/components/schemas/WalletKeyShareInfo'
        thresholdSignatureScheme:
          $ref: '#/components/schemas/ThresholdSignatureScheme'
        derivationPath:
          type: string
          description: The derivation path for the wallet
        settings:
          $ref: '#/components/schemas/WaasWalletSettings'
        version:
          $ref: '#/components/schemas/EmbeddedWalletVersionEnum'
    NonEmptyStringWith255MaxLengthAndSpecialChars:
      type: string
      pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'()\[\]*]+(?<=\S)$
      maxLength: 255
      example: An example name
    ProviderEnum:
      type: string
      description: The 'turnkey' value is deprecated and will be removed in a future version.
      enum:
      - emailOnly
      - magicLink
      - apple
      - bitbucket
      - coinbasesocial
      - discord
      - epicgames
      - facebook
      - farcaster
      - github
      - gitlab
      - google
      - instagram
      - linkedin
      - microsoft
      - twitch
      - twitter
      - blocto
      - banxa
      - coinbaseOnramp
      - cryptoDotCom
      - dynamic
      - alchemy
      - zerodev
      - telegram
      - turnkey
      - coinbaseWaas
      - sms
      - spotify
      - tiktok
      - line
      - steam
      - shopify
      - zksync
      - kraken
      - blockaid
      - passkey
      - okta
      - sendgrid
      - resend
    Forbidden:
      type: object
      properties:
        error:
          type: string
          example: Access Forbidden
    NonEmptyStringWith255MaxLength:
      type: string
      pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$
      maxLength: 255
      example: An example name
    MergeConflicts:
      type: object
      description: Contains information needed for the SDK to surface merge conflicts when attempting to merge information from one user to another
      required:
      - fromUser
      - conflicts
      properties:
        fromUser:
          $ref: '#/components/schemas/SdkUser'
        conflicts:
          type: array
          items:
            $ref: '#/components/schemas/MergeUserConflict'
    ProviderUpdateRequest:
      type: object
      description: Request body to update oauth properties and other metadata about a provider.
      properties:
        clientId:
          description: 'Standard OAuth client ID. For more information, see: https://www.oauth.com/oauth2-servers/client-registration/client-id-secret/'
          type: string
        clientSecret:
          description: 'Standard OAuth client secret key. For more information, see: https://www.oauth.com/oauth2-servers/client-registration/client-id-secret/'
          type: string
        providerProjectId:
          description: Some providers require additional information, typically called a project ID or site ID
          type: string
        defaultChainId:
          description: The default chain id the SDK should use
          type: integer
        defaultChain:
          $ref: '#/components/schemas/caip2'
        keyExportUrl:
          description: The url of the site to go to export wallets private keys
          type: string
        useDynamicCredentials:
          type: boolean
        scopes:
          description: Optional custom space-delimited list of Oauth scopes for the social provider
          type: string
        appleKeyId:
          description: Key ID required for Apple Oauth2 applications. This is the identifier for a private key.
          type: string
        appleTeamId:
          description: Team ID required for Apple Oauth2 applications. This is associated with the Apple developer membership account.
          type: string
        shopifyStore:
          description: Shopify store required for Shopify Oauth2 applications.
          type: string
        domain:
          type: string
          description: The subdomain for the provider (mostly used for SSO)
        accountSid:
          description: Required to initialize Twilio provider.
          type: string
        twilioNumber:
          description: Required to initialize Twilio provider. Phone number used to send SMS messages.
          type: string
        twilioVerifyServiceSid:
          description: Twilio Verify Service SID for SMS verification.
          type: string
        enabledCountries:
          type: array
          items:
            $ref: '#/components/schemas/SmsCountryCode'
        sendgridIpPoolName:
          description: The IP pool name for the SendGrid provider.
          type: string
        multichainAccountAbstractionProviders:
          type: array
          items:
            type: object
            properties:
              clientId:
                type: string
              chain:
                type: string
              default:
                type: boolean
            required:
            - clientId
            - chain
        entryPointVersion:
          $ref: '#/components/schemas/ProviderEntryPointVersionEnum'
        kernelVersion:
          $ref: '#/components/schemas/ProviderKernelVersionEnum'
        ecdsaProviderType:
          $ref: '#/components/schemas/ecdsaValidatorOptions'
        enableKernelV3Migration:
          type: boolean
        enableEIP7702:
          type: boolean
        factoryAddress:
          type: string
          description: The factory address for the provider (currently only used for zksync)
        paymasterAddress:
          type: string
          description: The paymaster address for the provider (currently only used for zksync)
        passkeyAddress:
          type: string
          description: The passkey address for the provider (currently only used for zksync)
        sessionAddress:
          type: string
          description: The session address for the provider (currently only used for zksync)
        zerodevBundlerProvider:
          $ref: '#/components/schemas/ZerodevBundlerProvider'
        zerodevBundlerRpcUrl:
          type: string
        zerodevPaymasterRpcUrl:
          type: string
        zerodevKernelDelegationAddress:
          type: string
        returnUrl:
          type: string
          description: URL to return to after completion
        cancelUrl:
          type: string
          description: URL to return to when cancelled
    KycFieldType:
      type: string
      enum:
      - standard
      - custom
    CustomFieldValidationRules:
      type: object
      properties:
        unique:
          type: boolean
          description: If this field must be unique for every user in the environment
        regex:
          type: string
          maxLength: 255
          description: The regex pattern that the text field must match
          example: ^0x
        validOptions:
          type: array
          items:
            $ref: '#/components/schemas/CustomFieldValidValue'
          description: The dropdown options for the select field
          example:
          - label: small
          - label: medium
          - label: large
        checkboxText:
          type: string
          maxLength: 255
          description: The text that will be displayed for the checkbox field
          example: Agree to the terms and conditions
      description: Optional validation rules for the custom field
    UnprocessableEntityErrorCode:
      type: string
      enum:
      - email_cannot_be_null
      - exchange_cannot_be_enabled
      - transfer_amount_too_small
      - transfer_address_not_whitelisted
      - invalid_scopes
      - unknown_transfer_error
      - transfer_mfa_required
      - transfer_mfa_failed
      - invalid_transfer_funds
      - invalid_transfer_currency
      - invalid_exchange_provider
      - invalid_transfer_network
      - invalid_email
      - email_already_exists
      - allowlist_already_exists
      - allowlist_entry_already_exists
      - reassign_wallet_error
      - reassign_wallet_confirm
      - members_cannot_delete_themself
      - username_already_exists
      - wrong_email_verification_token
      - wrong_sms_verification_token
      - invalid_email_verification
      - invalid_sms_verification
      - invalid_verification
      - invalid_position
      - too_many_sms_verification_attempts
      - too_many_email_verification_attempts
      - too_many_verification_attempts
      - organization_name_already_exists
      - project_name_already_exists
      - wallet_not_deployed
      - email_verification_required
      - phone_verification_required
      - invite_address_required
      - provider_not_available
      - forbidden_unlink_request
      - invalid_unlink_request
      - too_many_api_tokens
      - lock_timeout
      - lock_too_many_attempts
      - nft_token_gating_not_supported_for_chain
      - empty_chain_name
      - no_enabled_email_provider
      - no_enabled_sms_provider
      - invalid_key_export_url
      - invalid_dynamic_props
      - too_many_requests
      - too_many_organizations_for_user
      - too_many_projects_for_organization
      - email_associated_with_different_provider
      - user_has_already_account_with_email
      - user_has_already_account_with_phone_number
      - other_verify_failure
      - email_tied_to_embedded_wallet
      - invalid_invite
      - social_account_already_exists
      - invalid_email_address
      - invalid_gate
      - conflicting_embedded_wallet_providers
      - invalid_user
      - invalid_cors_origins
      - invalid_mobile_deeplink_urls
      - unauthorized_mobile_deeplink_url
      - invalid_private_key_format
      - invalid_embedded_wallet_settings
      - wallet_not_support_passkey
      - recovery_email_unavailable_or_invalid
      - connect_error
      - invalid_wallet_name
      - invalid_wallet_address
      - email_recovery_disabled
      - no_compatible_wallet_service_enabled
      - missing_aa_project_id
      - linked_embedded_wallet
      - invalid_mpc_environment
      - invalid_regex
      - repeated_options
      - missing_phone_number_or_email
      - duplicate_exists
      - mfa_device_not_found
      - mfa_invalid_code
      - mfa_invalid_request
      - invalid_phone
      - gate_exists
      - invalid_embedded_wallet_chains_configuration
      - merge_accounts_confirmation
      - merge_accounts_invalid
      - invalid_wallet_id
      - unable_to_fetch_balances
      - cannot_switch_to_unique
      - custom_field_data_not_unique
      - metadata_size_exceeded
      - invalid_custom_hostname
      - blocked_user_cannot_transfer_wallet
      - feature_not_enabled_in_suborg
      - invalid_username
      - invalid_external_auth
      - invalid_chain_address_match
      - invalid_update
      - cannot_delete_last_project
      - no_hd_wallet_found
      - wallet_account_exists_for_chain
      - too_many_embedded_wallets_for_user
      - too_many_embedded_wallets_per_chain_for_user
      - invalid_session_public_key
      - custom_field_not_unique
      - invalid_aa_project_configuration
      - no_v1_embedded_wallet_found
      - embedded_wallet_address_already_linked
      - key_share_already_backed_up
      - invalid_key_shares_length
      - wallet_service_connection_error
      - no_global_wallet_found
      - invalid_metadata_value
      - max_passkeys_per_user
      - passkey_not_found
      - cannot_delete_passkey_linked_to_embedded_wallet
      - cannot_delete_last_sign_in_verified_credential
    WalletProviderEnum:
      type: string
      enum:
      - browserExtension
      - custodialService
      - walletConnect
      - qrCode
      - deepLink
      - embeddedWallet
      - smartContractWallet
    WaasWalletSettings:
      type: object
      properties:
        hasDeniedDelegatedAccess:
          type: boolean
        shouldRefreshOnNextSignOn:
          type: boolean
        reshareOnNextSignOn:
          $ref: '#/components/schemas/ThresholdSignatureScheme'
        revokeOnNextSignOn:
          type: boolean
    Unauthorized:
      type: object
      properties:
        error:
          type: string
          example: No jwt provided!
    CustomFieldType:
      type: string
      enum:
      - text
      - checkbox
      - select
    InternalServerError:
      type: object
      properties:
        error:
          type: string
          example: Internal Server Error
    MfaBackupCodeAcknowledgement:
      type:
      - string
      - 'null'
      enum:
      - pending
      - complete
    ProvidersResponse:
      type: object
      properties:
        providers:
          type: array
          items:
            $ref: '#/components/schemas/Provider'
    JwtVerifiedCredential:
      type: object
      required:
      - id
      - format
      - signInEnabled
      properties:
        address:
          $ref: '#/components/schemas/WalletPublicKey'
        chain:
          type: string
        refId:
          $ref: '#/components/schemas/uuid'
        signerRefId:
          $ref: '#/components/schemas/uuid'
        email:
          type: string
          format: email
        id:
          $ref: '#/components/schemas/uuid'
        name_service:
          $ref: '#/components/schemas/NameServiceData'
        public_identifier:
          description: This is used to publicly identify a verified credential in a human-friendly way. For example, this will be the email address if credential format=email.
          type: string
        wallet_name:
          type: string
        wallet_provider:
          $ref: '#/components/schemas/WalletProviderEnum'
        wallet_properties:
          $ref: '#/components/schemas/WalletProperties'
        format:
          $ref: '#/components/schemas/JwtVerifiedCredentialFormatEnum'
        oauth_provider:
          $ref: '#/components/schemas/ProviderEnum'
        oauth_username:
          type: string
        oauth_display_name:
          type:
          - string
          - 'null'
        oauth_account_id:
          type:
          - string
          - 'null'
        phoneNumber:
          description: This field contains the phone number in the country. This could also contain the area code within a country.
          example: '9171113333'
          type: string
        phoneCountryCode:
          description: This field contains the phone international country code. See https://countrycode.org/
          example: '1'
          type: string
        isoCountryCode:
          description: ISO-3166 two-character country code. See https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
          example: US
          type: string
        oauth_account_photos:
          type: array
          items:
            type: string
        oauth_emails:
          type: array
          items:
            type: string
        oauth_metadata:
          type: object
          description: This object contains JSON metadata for a social-based verified credential. It may contain data about the user that does not fit into the other structured fields, and could include arbitrary fields about the user from the oauth provider's API.
        previous_users:
          description: This will only be provided in the responses for GET /users/{userId}.Previous user IDs that owned this verified credential and was tranfered to the current user ID.
          type: array
          items:
            $ref: '#/components/schemas/uuid'
        embedded_wallet_id:
          type:
          - string
          - 'null'
        wallet_additional_addresses:
          type: array
          items:
            $ref: '#/components/schemas/WalletAdditionalAddress'
        lastSelectedAt:
          description: This timestamp indicates the last time this verified wallet was either connected to the user account or selected to become the primary wallet on the account.
          type: string
          format: date-time
        signInEnabled:
          type: boolean
          description: This indicates if the user can sign in with this credential
        verifiedAt:
          type: string
          format: date-time
          description: This timestamp indicates the last time this verified credential was verified.
    NameServiceData:
      type: object
      properties:
        avatar:
          type: string
        name:
          type: string
    OptionalNullableNonEmptyStringWith255MaxLength:
      type:
      - string
      - 'null'
      pattern: ^$|^(?=\S)[\p{L}\p{N} _.,:!?&%@\/+-]+(?<=\S)$
      example: An example name
      maxLength: 255
    caip2:
      description: CAIP-2 Chain ID (https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-2.md)
      type: string
      pattern: ^[-a-z0-9]{3,8}:[-_a-zA-Z0-9]{1,32}$
      minLength: 5
      maxLength: 41
      example: eip155:1
    uuid:
      type: string
      pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
      minLength: 36
      maxLength: 36
      example: 95b11417-f18f-457f-8804-68e361f9164f
    SmsCountryCode:
      type: object
      required:
      - isoCountryCode
      - phoneCountryCode
      properties:
        isoCountryCode:
          $ref: '#/components/schemas/NonEmptyIsoCountryCode'
        phoneCountryCode:
          $ref: '#/components/schemas/NonEmptyStringWith255MaxLength'
    ProviderAgreement:
      description: Reference to the user that accepted the terms and conditions, if one is necessary for this provider.
      type: object
      required:
      - termsUrl
      - userId
      - email
      - createdAt
      properties:
        termsUrl:
          description: The url of the terms and conditions or privacy policy needed to be shown to the client when creating a new provider that requires terms and conditions to be signed before starting configuration.
          type: string
          maxLength: 255
        email:
          type: string
          format: email
          maxLength: 255
        userId:
          $ref: '#/components/schemas/uuid'
        createdAt:
          type: string
          format: date-time
    Exchange:
      type: object
      required:
      - exchange
      properties:
        id:
          $ref: '#/components/schemas/uuid'
        exchange:
          $ref: '#/components/schemas/ExchangeKeyEnum'
        enabledAt:
          type:
          - string
          - 'null'
          format: date-time
        socialProvider:
          $ref: '#/components/schemas/ProviderEnum'
        onRampProvider:
          $ref: '#/components/schemas/ProviderEnum'
    ProjectSettingsKyc:
      type: object
      properties:
        name:
          type: string
        required:
          type: boolean
        enabled:
          type: boolean
        unique:
          type: boolean
        verify:
          type: boolean
        type:
          $ref: '#/components/schemas/KycFieldType'
        validationRules:
          $ref: '#/components/schemas/CustomFieldValidationRules'
        validationType:
          $ref: '#/components/schemas/CustomFieldType'
        label:
          type: string
        position:
          type: number
      required:
      - name
      - required
      - enabled
      - unique
      - verify
    CountryCode:
      type:
      - string
      - 'null'
      description: Standard ISO 3166-1 alpha-2 two-letter country code
      pattern: ^[A-Z]{2}$
      example: US
      maxLength: 255
    ProviderKernelVersionEnum:
      type: string
      enum:
      - v2_4
      - v3_0
      - v3_1
      - v3_2
      - v3_3
    BadRequest:
      type: object
      properties:
        error:
          type: string
    SdkUser:
      allOf:
      - $ref: '#/components/schemas/BaseUser'
      - type: object
        required:
        - verifiedCredentials
    ProviderCreateRequest:
      type: object
      description: Request body to create a new provider. The provider will be not enabled by default.
      required:
      - provider
      properties:
        provider:
          $ref: '#/components/schemas/ProviderEnum'
        clientId:
          description: 'Standard OAuth client ID. For more information, see: https://www.oauth.com/oauth2-servers/client-registration/client-id-secret/. For Apple, this is also known as the Service ID.'
          type: string
        clientSecret:
          description: 'Standard OAuth client secret key. For more info

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dynamic-labs/refs/heads/main/openapi/dynamic-xyz-settings-api-openapi.yml