Dynamic Gates API
The Gates API from Dynamic — 4 operation(s) for gates.
The Gates API from Dynamic — 4 operation(s) for gates.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/dynamic-xyz-gates-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Dashboard Allowlists Gates 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: Gates
paths:
/environments/{environmentId}/gates:
get:
operationId: getEnvironmentGates
tags:
- Gates
summary: Get the gates for an environment
parameters:
- $ref: '#/components/parameters/environmentId'
responses:
'200':
description: List of gates for this project environment
content:
application/json:
schema:
$ref: '#/components/schemas/GatesResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
post:
operationId: createGate
tags:
- Gates
summary: Creates a new gate for the project environment
parameters:
- $ref: '#/components/parameters/environmentId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GateCreateRequest'
responses:
'201':
description: Successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/Gate'
'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}/gates/{gateId}:
get:
operationId: getGate
tags:
- Gates
summary: Gets a gate
parameters:
- $ref: '#/components/parameters/environmentId'
- $ref: '#/components/parameters/gateId'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Gate'
'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: updateGate
tags:
- Gates
summary: Updates a gate
parameters:
- $ref: '#/components/parameters/environmentId'
- $ref: '#/components/parameters/gateId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GateUpdateRequest'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Gate'
'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: deleteGate
tags:
- Gates
summary: Delete a gate
parameters:
- $ref: '#/components/parameters/environmentId'
- $ref: '#/components/parameters/gateId'
responses:
'204':
description: successful operation
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
security:
- bearerAuth: []
/environments/{environmentId}/gates/{gateId}/enable:
put:
summary: Enable the gate for the environment
operationId: enableGate
tags:
- Gates
security:
- bearerAuth: []
parameters:
- $ref: '#/components/parameters/environmentId'
- $ref: '#/components/parameters/gateId'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Gate'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'422':
$ref: '#/components/responses/UnprocessableEntity'
'500':
$ref: '#/components/responses/InternalServerError'
/environments/{environmentId}/gates/{gateId}/disable:
put:
summary: Disable the gate for the environment
operationId: disableGate
tags:
- Gates
security:
- bearerAuth: []
parameters:
- $ref: '#/components/parameters/environmentId'
- $ref: '#/components/parameters/gateId'
responses:
'200':
description: Successful
content:
application/json:
schema:
$ref: '#/components/schemas/Gate'
'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
AccessOutcomeEnum:
type: string
enum:
- scope
- siteAccess
- block
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'
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
HardwareWalletEnum:
type: string
enum:
- ledger
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
Forbidden:
type: object
properties:
error:
type: string
example: Access Forbidden
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
TokenAddress:
description: Defines one token address connected with network Id on which it's working
type: object
required:
- networkId
- contractAddress
properties:
networkId:
description: Id of the network
type: number
example: 1
contractAddress:
$ref: '#/components/schemas/WalletPublicKey'
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'
KycFieldType:
type: string
enum:
- standard
- custom
GatesResponse:
type: object
properties:
gates:
type: array
items:
$ref: '#/components/schemas/Gate'
GateCreateRequest:
type: object
description: Request body to create a new gate. The gate will be not enabled by default.
required:
- name
- rules
- outcome
properties:
name:
description: Human-readable name of the gate. This should be something helpful to organize gates.
example: Super User Gate
type: string
outcome:
$ref: '#/components/schemas/AccessOutcomeEnum'
scope:
description: String for the resulting scope of the gate. If the rules of the gate apply to the user being verified, then this scope will be surfaced in the JWT. If a scope is not provided for the gate, the default behavior of the gate would be to block access to users that the rules do not currently apply to.
example: superuser
type: string
rules:
type: array
description: The rules which will be used to evaluate users being verified. If multiple rules are present in a single gate, then all the rules need to apply for the user to gain the scope defined by the gate.
items:
$ref: '#/components/schemas/GateRule'
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
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
ChainEnum:
type: string
enum:
- ETH
- EVM
- FLOW
- SOL
- ALGO
- STARK
- COSMOS
- BTC
- ECLIPSE
- SUI
- SPARK
- TRON
- APTOS
- TON
- STELLAR
OptionalNullableNonEmptyStringWith255MaxLength:
type:
- string
- 'null'
pattern: ^$|^(?=\S)[\p{L}\p{N} _.,:!?&%@\/+-]+(?<=\S)$
example: An example name
maxLength: 255
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
GateRule:
type: object
description: Definition for a single rule in a Gate. This will check for the presence of a token or NFT, given the contract address, in the wallet of a user being evaluated. For multi-wallet users, we will check all wallets. If a filter is defined, then we will also check that the filter checks apply to the user
required:
- type
- address
properties:
type:
$ref: '#/components/schemas/GateRuleType'
address:
$ref: '#/components/schemas/TokenAddress'
filter:
$ref: '#/components/schemas/GateRuleFilter'
chain:
$ref: '#/components/schemas/ChainEnum'
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
GateUpdateRequest:
type: object
description: Request body to update an existing gate. This will not affect whether a gate is enabled or not.
properties:
name:
description: Human-readable name of the gate. This should be something helpful to organize gates.
example: Super User Gate
type: string
outcome:
$ref: '#/components/schemas/AccessOutcomeEnum'
scope:
description: String for the resulting scope of the gate. If the rules of the gate apply to the user being verified, then this scope will be surfaced in the JWT
example: superuser
type: string
rules:
type: array
description: The rules which will be used to evaluate users being verified. If multiple rules are present in a single gate, then all the rules need to apply for the user to gain the scope defined by the gate.
items:
$ref: '#/components/schemas/GateRule'
ecdsaValidatorOptions:
type: string
enum:
- zerodev_signer_to_ecdsa
- zerodev_multi_chain
ThresholdSignatureScheme:
type: string
enum:
- TWO_OF_TWO
- TWO_OF_THREE
- THREE_OF_FIVE
SmartWalletProperties:
type: object
properties:
entryPointVersion:
$ref: '#/components/schemas/ProviderEntryPointVersionEnum'
kernelVersion:
$ref: '#/components/schemas/ProviderKernelVersionEnum'
ecdsaProviderType:
$ref: '#/components/schemas/ecdsaValidatorOptions'
GateRuleFilter:
type: object
description: Defines the filter properties used for the gate
properties:
tokenId:
$ref: '#/components/schemas/OptionalHexString'
amount:
type: number
description: Minimum token or NFT amount held by the user. If this `amount` field is provided, then Dynamic will also check that the user has this minimum amount held by the user of the NFT or Token
PasswordSourceTypeEnum:
type: string
enum:
- dynamic
- user
WalletProperties:
anyOf:
- $ref: '#/components/schemas/TurnkeyWalletProperties'
- $ref: '#/components/schemas/HardwareWalletProperties'
- $ref: '#/components/schemas/CoinbaseMpcWalletProperties'
- $ref: '#/components/schemas/SmartWalletProperties'
- $ref: '#/components/schemas/WaasWalletProperties'
WalletAdditionalAddress:
type: object
description: An additional address associated with a wallet.
required:
- address
- type
properties:
address:
type: string
description: An address associated with a wallet.
publicKey:
type: string
description: The public key associated with the address.
type:
$ref: '#/components/schemas/WalletAddressType'
UnprocessableEntity:
type: object
properties:
error:
type: string
example: Resources already exists for this Object
code:
$ref: '#/components/schemas/UnprocessableEntityErrorCode'
payload:
$ref: '#/components/schemas/UnprocessableEntityErrorPayload'
required:
- error
ProviderEntryPointVersionEnum:
type: string
enum:
- v6
- v7
OptionalHexString:
type: string
pattern: ^$|^(0x|0X)[a-fA-F0-9]{1,40}$
example: '0x01'
HardwareWalletProperties:
type: object
properties:
hardwareWallet:
$ref: '#/components/schemas/HardwareWalletEnum'
CoinbaseMpcWalletProperties:
type: object
properties:
claimed:
type: boolean
description: Dynamic pregenerated this wallet and stored the passcode
source:
$ref: '#/components/schemas/PasswordSourceTypeEnum'
WalletAddressType:
type: string
enum:
- ordinals
- payment
- cosmos
- evm
- ton
GateRuleType:
type: string
enum:
- nft
- token
WalletKeyShareInfo:
type: object
required:
- id
- backupLocation
- passwordEncrypted
properties:
id:
$ref: '#/components/schemas/uuid'
backupLocation:
type: string
passwordEncrypted:
type: boolean
externalKeyShareId:
$ref: '#/components/schemas/uuid'
Gate:
type: object
required:
- id
- name
- rules
- outcome
properties:
id:
$ref: '#/components/schemas/uuid'
name:
description: Human-readable name of the gate. This should be something helpful to organize gates.
example: Super User Gate
type: string
scope:
description: String for the resulting scope of the gate. If the rules of the gate apply to the user being verified, then this scope will be surfaced in the JWT. If a scope is not provided for the gate, the default behavior of the gate would be to block access to users that the rules do not currently apply to.
example: superuser
type: string
enabledAt:
type:
- string
- 'null'
description: If the gate is enabled, then this timestamp will be present.
format: date-time
rules:
type: array
description: The rules which will be used to evaluate users being verified. If multiple rules are present in a single gate, then all the rules need to apply for the user to gain the scope defined by the gate.
items:
$ref: '#/components/schemas/GateRule'
outcome:
$ref: '#/components/schemas/AccessOutcomeEnum'
UnprocessableEntityErrorPayload:
type: object
description: Contains information which the integrating client of this API can use to tailor an experience to a customer to fix the underlying issue that triggered this error.
properties:
email:
type: string
format: email
example: joe@email.com
loginProvider:
$ref: '#/components/schemas/ProviderEnum'
embeddedWalletName:
type: string
embeddedSocialSigninProvider:
$ref: '#/components/schemas/ProviderEnum'
mergeConflicts:
$ref: '#/components/schemas/MergeConflicts'
additionalMessages:
type: array
items:
type: string
MergeUser:
type: object
description: Contains the current field value for the user.
required:
- userId
- value
properties:
userId:
$ref: '#/components/schemas/uuid'
value:
$ref: '#/components/schemas/NonEmptyStringWith255MaxLength'
MergeUserConflict:
type: object
description: Contains a merge conflict between two users with different values for the same user field data
required:
- field
- fromUser
- currentUser
properties:
field:
$ref: '#/components/schemas/ProjectSettingsKyc'
fromUser:
$ref: '#/components/schemas/MergeUser'
currentUser:
$ref: '#/components/schemas/MergeUser'
BaseUser:
type: object
required:
- id
- projectEnvironmentId
properties:
id:
$ref: '#/components/schemas/uuid'
projectEnvironmentId:
$ref: '#/components/schemas/uuid'
verifiedCredentials:
type: array
items:
$ref: '#/components/schemas/JwtVerifiedCredential'
lastVerifiedCredentialId:
$ref: '#/components/schemas/uuid'
sessionId:
$ref: '#/components/schemas/uuid'
alias:
$ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
country:
$ref: '#/components/schemas/CountryCode'
email:
type:
- string
- 'null'
format: email
maxLength: 255
firstName:
$ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
jobTitle:
$ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
lastName:
$ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
phoneNumber:
type:
- string
- 'null'
maxLength: 255
policiesConsent:
type:
- boolean
- 'null'
tShirtSize:
$ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
team:
$ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
username:
$ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
firstVisit:
type: string
format: date-time
lastVisit:
type: string
format: date-time
newUser:
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dynamic-labs/refs/heads/main/openapi/dynamic-xyz-gates-api-openapi.yml