Dynamic Environments API
The Environments API from Dynamic — 4 operation(s) for environments.
The Environments API from Dynamic — 4 operation(s) for environments.
openapi: 3.0.1
info:
title: Dashboard Allowlists Environments 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: Environments
paths:
/environments/{environmentId}:
get:
summary: Find an environment by ID
operationId: getEnvironmentById
tags:
- Environments
parameters:
- $ref: '#/components/parameters/environmentId'
responses:
'200':
description: Environment response
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectEnvironment'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
description: Not found
'500':
$ref: '#/components/responses/InternalServerError'
security:
- bearerAuth: []
put:
operationId: updateProjectSettings
tags:
- Environments
summary: Updates the environment settings
parameters:
- $ref: '#/components/parameters/environmentId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectSettings'
responses:
'200':
description: Project settings response
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectSettings'
'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'
security:
- bearerAuth: []
/environments/{environmentId}/statistics/visitors:
get:
operationId: getVisitorsCountByEnvironmentId
tags:
- Environments
summary: Get the unique number of visitors for an environment by environment ID
parameters:
- $ref: '#/components/parameters/environmentId'
responses:
'200':
description: Environment Unique Visitor Count Response
content:
application/json:
schema:
$ref: '#/components/schemas/EnvironmentVisitorsResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
security:
- bearerAuth: []
/environments/{environmentId}/keys:
get:
operationId: getKeysForEnvironment
tags:
- Environments
summary: Get keys for an environment given environmentId
parameters:
- $ref: '#/components/parameters/environmentId'
responses:
'200':
description: Environment Key response
content:
application/json:
schema:
$ref: '#/components/schemas/KeyResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
description: Key not found
'500':
description: Error response
security:
- bearerAuth: []
/projects/{projectId}/environments:
get:
operationId: getEnvironmentsByProjectId
tags:
- Environments
summary: Get Live and Sandbox environments by projectId
parameters:
- $ref: '#/components/parameters/projectId'
responses:
'200':
description: Project environments response
content:
application/json:
schema:
$ref: '#/components/schemas/EnvironmentsResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'500':
$ref: '#/components/responses/InternalServerError'
security:
- bearerAuth: []
components:
schemas:
SdkViewSectionType:
type: string
enum:
- email
- emailAndPhone
- phone
- separator
- social
- text
- wallet
- passkey
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
NetworkConfiguration:
type: object
properties:
lcdUrl:
type: string
example: https://lcd.osmosis.zone
description: A light client, compared to a full node, tracks only pieces of certain information on a blockchain. Light clients do not track the entire state of a blockchain and also do not contain every transaction/block of a chain.
chainName:
type: string
description: '[Deprecated] use `name` property instead'
example: Ethereum Mainnet
key:
type: string
example: ethereum
name:
type: string
example: Ethereum Mainnet
shortName:
type: string
example: ETH
isTestnet:
type: boolean
example: false
chain:
type: string
example: ETH
chainId:
type: string
example: '1'
nameService:
$ref: '#/components/schemas/NameService'
networkId:
type: string
example: '1'
iconUrls:
type: array
items:
type: string
nativeCurrency:
$ref: '#/components/schemas/NativeCurrency'
rpcUrls:
type: array
items:
type: string
example: https://mainnet.infura.io/v3/
privateCustomerRpcUrls:
type: array
description: Contains the client private RPC urls
items:
type: string
example: https://mainnet.infura.io/v3/
blockExplorerUrls:
type: array
items:
type: string
example: https://etherscan.io/
vanityName:
type: string
example: Ethereum
bech32Prefix:
type: string
example: cosmos
genesisHash:
type: string
example: 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
cluster:
type: string
example: mainnet, devnet, etc
required:
- name
- shortName
- chain
- chainId
- networkId
- iconUrls
- nativeCurrency
- rpcUrls
- blockExplorerUrls
SignInProviderEnum:
type: string
description: The 'turnkey' value is deprecated and will be removed in a future version.
enum:
- dynamic
- magicLink
- blocto
- turnkey
- coinbaseWaas
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
KeyResponse:
type: object
properties:
key:
$ref: '#/components/schemas/Key'
ThresholdSignatureScheme:
type: string
enum:
- TWO_OF_TWO
- TWO_OF_THREE
- THREE_OF_FIVE
OptionalNullableNonEmptyStringWith255MaxLength:
type: string
pattern: ^$|^(?=\S)[\p{L}\p{N} _.,:!?&%@\/+-]+(?<=\S)$
example: An example name
nullable: true
maxLength: 255
SecurityNotifications:
type: object
properties:
waasPrivateKeyExport:
type: boolean
description: Send email notification when a user exports their embedded wallet private key. Defaults to true.
waasSignedTransaction:
type: boolean
description: Send email notification when a transaction is signed with an embedded wallet. Defaults to true.
NativeCurrency:
type: object
properties:
decimals:
type: number
example: '18'
name:
type: string
example: Ether
symbol:
type: string
example: ETH
denom:
type: string
example: uatom
iconUrl:
type: string
pricingProviderTokenId:
type: string
required:
- decimals
- name
- symbol
ChainConfiguration:
type: object
required:
- name
- enabled
- primary
properties:
name:
type: string
enabled:
type: boolean
primary:
type: boolean
ProjectSettingsGeneral:
type: object
properties:
displayName:
$ref: '#/components/schemas/OptionalNonEmptyString'
supportEmail:
type: string
format: email
maxLength: 255
nullable: true
supportText:
type: string
maxLength: 255
nullable: true
appLogo:
type: string
format: url
nullable: true
imageUserNotInAccessList:
type: string
format: url
nullable: true
imageUserInAccessList:
type: string
format: url
nullable: true
supportUrls:
$ref: '#/components/schemas/ProjectSettingsGeneralApps'
collectUserDataWelcomeHeader:
type: string
maxLength: 255
nullable: true
collectUserDataWelcomeMessage:
type: string
maxLength: 100
nullable: true
skipOptionalKYCFieldDuringOnboarding:
type: boolean
emailCompanyName:
$ref: '#/components/schemas/OptionalNonEmptyString'
ProjectSettingsDesign:
type: object
properties:
modal:
$ref: '#/components/schemas/ProjectSettingsDesignModal'
button:
$ref: '#/components/schemas/ProjectSettingsDesignButton'
widget:
$ref: '#/components/schemas/ProjectSettingsDesignWidget'
WaasWalletSettings:
type: object
properties:
hasDeniedDelegatedAccess:
type: boolean
shouldRefreshOnNextSignOn:
type: boolean
reshareOnNextSignOn:
$ref: '#/components/schemas/ThresholdSignatureScheme'
revokeOnNextSignOn:
type: boolean
EnvironmentsResponse:
type: object
properties:
environments:
type: object
properties:
live:
$ref: '#/components/schemas/ProjectEnvironment'
sandbox:
$ref: '#/components/schemas/ProjectEnvironment'
required:
- live
- sandbox
required:
- environments
NonEmptyIsoCountryCode:
type: string
pattern: ^[a-zA-Z]{2,4}\d?$
maxLength: 4
example: US
EnvironmentEnum:
type: string
enum:
- sandbox
- live
WalletKeyShareInfo:
type: object
required:
- id
- backupLocation
- passwordEncrypted
properties:
id:
$ref: '#/components/schemas/uuid'
backupLocation:
type: string
passwordEncrypted:
type: boolean
externalKeyShareId:
$ref: '#/components/schemas/uuid'
ecdsaValidatorOptions:
type: string
enum:
- zerodev_signer_to_ecdsa
- zerodev_multi_chain
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
JwtVerifiedCredentialFormatEnum:
type: string
enum:
- blockchain
- email
- oauth
- passkey
- phoneNumber
- externalUser
NameServiceSdkSettings:
type: object
required:
- evm
properties:
evm:
type: object
properties:
domain:
type: string
description: Top-level ENS domain for the environment for EVM embedded wallets in this environment
SupportedSecurityMethods:
type: object
properties:
passkey:
$ref: '#/components/schemas/SupportedSecurityMethod'
email:
$ref: '#/components/schemas/SupportedSecurityMethod'
password:
$ref: '#/components/schemas/SupportedSecurityMethod'
NameService:
type: object
properties:
registry:
type: string
example: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e'
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'
ProjectSettings:
type: object
properties:
environmentName:
$ref: '#/components/schemas/EnvironmentEnum'
chains:
type: array
items:
$ref: '#/components/schemas/ProjectSettingsChains'
customFields:
type: array
items:
$ref: '#/components/schemas/ProjectSettingsKyc'
kyc:
type: array
items:
$ref: '#/components/schemas/ProjectSettingsKyc'
design:
$ref: '#/components/schemas/ProjectSettingsDesign'
general:
$ref: '#/components/schemas/ProjectSettingsGeneral'
privacy:
$ref: '#/components/schemas/ProjectSettingsPrivacy'
providers:
type: array
description: External integrations like e-mail, social credentials, mpc providers, etc.
items:
$ref: '#/components/schemas/Provider'
exchanges:
type: array
description: exchanges such as coinbase, binance, etc
items:
$ref: '#/components/schemas/Exchange'
sdk:
$ref: '#/components/schemas/ProjectSettingsSdk'
security:
$ref: '#/components/schemas/ProjectSettingsSecurity'
networks:
type: array
items:
$ref: '#/components/schemas/NetworkConfigurationResponse'
required:
- chains
- kyc
- design
- general
- privacy
- sdk
- security
InternalServerError:
type: object
properties:
error:
type: string
example: Internal Server Error
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
OptionalNonEmptyUrl:
type: string
pattern: ^$|^(https?:\/\/)?[a-z0-9]+([-.]+[a-z0-9]+)*\.[a-z]{2,10}([0-9]{1,5})?(\/.*)?$
example: https://website-sample.com
ExternalAuth:
type: object
properties:
enabled:
type: boolean
iss:
$ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
aud:
$ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
jwksUrl:
$ref: '#/components/schemas/OptionalNonEmptyUrl'
cookieName:
$ref: '#/components/schemas/OptionalNullableNonEmptyStringWith255MaxLength'
ProjectSettingsSdkWaasDelegatedAccess:
type: object
properties:
enabled:
type: boolean
description: Whether delegated access is enabled for the environment. If enabled, developer can trigger user to accept delegated access.
promptUsersOnSignIn:
type: boolean
description: Prompt for delegated access when user logs in.
requiresDelegation:
type: boolean
description: If enabled, users will be required to delegate access.
MfaBackupCodeAcknowledgement:
type: string
nullable: true
enum:
- pending
- complete
KycFieldType:
type: string
enum:
- standard
- custom
NameServiceData:
type: object
properties:
avatar:
type: string
name:
type: string
FeatureFlags:
type: object
required:
- connectOnlyMultiAsset
- enableExchanges
properties:
connectOnlyMultiAsset:
type: boolean
enableExchanges:
type: boolean
SdkViewSectionAlignment:
type: string
enum:
- center
- left
- right
ProjectSettingsSdk:
type: object
properties:
nameService:
$ref: '#/components/schemas/NameServiceSdkSettings'
featureFlags:
$ref: '#/components/schemas/FeatureFlags'
emailSignIn:
type: object
properties:
signInProvider:
$ref: '#/components/schemas/SignInProviderEnum'
socialSignIn:
type: object
properties:
signInProvider:
$ref: '#/components/schemas/SignInProviderEnum'
providers:
type: array
items:
$ref: '#/components/schemas/SocialSignInProvider'
exchangeOptions:
type: array
items:
$ref: '#/components/schemas/ExchangeOption'
multiWallet:
type: boolean
multiWalletUnlinkDisabled:
type: boolean
mobile:
$ref: '#/components/schemas/MobileSettings'
confirmWalletTransfers:
type: boolean
onrampFunding:
type: boolean
passkeyEmbeddedWalletEnabled:
type: boolean
description: passkeyEmbeddedWalletEnabled is deprecated as of v0.19. Please enable embedded wallets using the provider API.
deprecated: true
automaticEmbeddedWalletCreation:
type: boolean
passkeyEmbeddedWalletRecoveryEnabled:
type: boolean
embeddedWalletSecurityMethods:
type: array
description: Embedded wallet authenticator security methods required upon creation of the embedded wallet at onboarding
items:
$ref: '#/components/schemas/EmbeddedWalletSecurityMethod'
embeddedWallets:
type: object
properties:
automaticEmbeddedWalletCreation:
type: boolean
description: When true embedded wallets will be generated during onboarding for the users. When false customer needs to trigger the creation.
automaticEmbeddedWalletCreationForExternal:
type: boolean
description: When true embedded wallets will be created for external wallets during sign in. When false embedded wallets are not generated for external wallets during sign in.
showEmbeddedWalletActionsUI:
type: boolean
description: When true users will see embedded wallets action confirmation views.
emailRecoveryEnabled:
type: boolean
description: When true users will be able to start recovery for their accounts.
forceAuthenticatorAtSignup:
type: boolean
description: When true user will be prompted to add a security method during onboarding. When false user will need to add a security method before a transaction
allowSkippingAuthenticatorAtSignup:
type: boolean
description: When combined with forceAuthenticatorAtSignup it allows user to skip adding a security method during onboarding. User will need to add it before a transaction.
sessionKeyDuration:
$ref: '#/components/schemas/Duration'
supportedSecurityMethods:
$ref: '#/components/schemas/SupportedSecurityMethods'
chainConfigurations:
$ref: '#/components/schemas/ChainConfigurations'
domainEnabledByProvider:
type: boolean
description: When a client domain needs to be whitelisted explicitly by one of our embedded wallet providers, this will be true when Dynamic has confirmed that this is the case.
defaultWalletVersion:
$ref: '#/components/schemas/EmbeddedWalletVersionEnum'
promptForKeyExport:
type: boolean
description: When true, the user will be prompted to export their private key after creating a wallet.
transactionSimulation:
type: boolean
description: When true, user transactions will show asset transfers in the Confirmation UI.
svmGasSponsorshipEnabled:
type: boolean
description: When true, network fees for Solana embedded wallet transactions will be sponsored.
waas:
type: object
properties:
allowMultipleWaasWalletsPerChain:
type: boolean
description: When true, users can have multiple WAAS wallets per chain.
passcodeRequired:
type: boolean
description: When true, passcode security method is forced for v3 embedded wallets. Usually it is an optional security method.
onSignUp:
type: object
properties:
promptBackupOptions:
type: boolean
description: When true, backup options are shown during sign up for v3 embedded wallets.
promptClientShareExport:
type: boolean
description: When true, users will be prompted to export their client share.
required:
- promptBackupOptions
- promptClientShareExport
backupOptions:
type: array
items:
$ref: '#/components/schemas/WaasBackupOptionsEnum'
iCloud:
type: object
description: Apple iCloud configuration for key share backup.
properties:
containerIdentifier:
type: string
description: The iCloud container identifier for storing key share backups.
apiToken:
type: string
description: CloudKit Web Services API token for public operations.
environment:
type: string
enum:
- development
- production
description: The CloudKit environment to use.
relayUrl:
type: string
description: The URL of the relay server for the environment. If not provided, the default relay server will be used.
delegatedAccessEndpoint:
type: string
description: The URL of the delegated access endpoint for WAAS. If not provided, no delegated access endpoint will be used.
delegatedAccess:
$ref: '#/components/schemas/ProjectSettingsSdkWaasDelegatedAccess'
enableForwardMPCClient:
type: boolean
description: When true, the sdk will utilize the forward MPC client for select MPC operations.
customKeyshareRelayBaseUrl:
type: string
description: When applicable, this is the custom base URL hostname to use for the WAAS keyshare backup relay. If not provided, the default will be used.
exportDisabled:
type: boolean
description: When true, private key exports are disabled at both API and wallet enclave levels. When false (default), users can export their private keys from v3 embedded wallets.
required:
- passcodeRequired
- onSignUp
- backupOptions
walletConnect:
type: object
properties:
projectId:
type: string
v2Enabled:
type: boolean
walletProjectId:
type: string
confirmEmailProviderForVerify:
type: boolean
displayDynamicMessaging:
type: boolean
hideNetworkInDynamicWidget:
type: boolean
preventOrphanedAccounts:
type: boolean
views:
type: array
description: Configs used to create the views in the sdk.
items:
$ref: '#/components/schemas/SdkView'
accountAbstraction:
type: object
properties:
allWallets:
description: If set to false, will create smart wallets for embedded wallets only.
type: boolean
allUsers:
description: If set to false, will create smart wallets for new users only.
type: boolean
separateSmartWalletAndSigner:
description: if set to false, only smart wallet will be in user wallets list.
type: boolean
enablePasskeys:
description: If set to false, will disable passkeys (if specified) for zksync wallets.
type: boolean
blockEmailSubaddresses:
type: boolean
enableMultiAsset:
type: boolean
showFiat:
type: boolean
disabledWalletConnectors:
type: array
description: Ids of wallet connectors to filter out from available options in the sdk
items:
$ref: '#/components/schemas/WalletConnectorKey'
funding:
$ref: '#/components/schemas/Funding'
OptionalNonEmptyString:
type: string
pattern: ^$|^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'|]+(?<=\S)$
example: An example name
ZerodevBundlerProvider:
type: string
enum:
- STACKUP
- PIMLICO
- ALCHEMY
- GELATO
SdkViewType:
type: string
enum:
- login
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'
Key:
type: object
properties:
id:
$ref: '#/components/schemas/uuid'
publicKey:
type: string
description: Base64-encoded public key of the corresponding private key used to encode a Dynamic JWT
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
ProjectSettingsSecurity:
type: object
properties:
jwtDuration:
$ref: '#/components/schemas/Duration'
hCaptcha:
$ref: '#/components/schemas/HCaptchaSettings'
mfa:
$ref: '#/components/schemas/MFASettings'
auth:
$ref: '#/components/schemas/AuthSettings'
externalAuth:
$ref: '#/components/schemas/ExternalAuth'
environmentLocked:
type: boolean
description: When enabled, all SDK requests to this environment will be blocked.
notifications:
$ref: '#/components/schemas/SecurityNotifications'
WalletProperties:
anyOf:
- $ref: '#/components/schemas/TurnkeyWalletProperties'
- $ref: '#/components/schemas/HardwareWalletProperties'
- $ref: '#/components/schemas/CoinbaseMpcWalletProperties'
- $ref: '#/components/schemas/SmartWalletProperties'
- $ref: '#/components/schemas/WaasWalletProperties'
EnvironmentVisitorsResponse:
type: object
properties:
users:
type: object
properties:
count:
type: integer
uniquePastMonth:
type: integer
visitors:
type: object
properties:
count:
type: integer
uniquePastMonth:
type: integer
SdkView:
type: object
description: Configs used to create the view in the sdk.
required:
- type
properties:
type:
$ref: '#/components/schemas/SdkViewType'
sections:
type: array
description: The sections which will be used create the view in the sdk. The sections will be displayed in the order that they appear in the array.
items:
$ref: '#/components/schemas/SdkViewSection'
NonEmptyStringWith255MaxLengthAndSpecialChars:
type: string
pattern: ^(?=\S)[\p{L}\p{N}a-zA-Z _.,:!?&%@\/+\-'()\[\]*]+(?<=\S)$
maxLength: 255
example: An example name
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
EmbeddedWalletVersionEnum:
type: string
enum:
- V1
- V2
- V3
ChainConfigurations:
type: array
description: Chain specific configuration for dynamic embedded wallets
items:
$ref: '#/components/schemas/ChainConfiguration'
CountryCode:
type: string
nullable: true
description: Standard ISO 3166-1 alpha-2 two-letter country code
pattern: ^[A-Z]{2}$
example: US
maxLength: 255
CoinbaseMpcWalletProperties:
type: object
properties:
claimed:
type: boolean
description: Dynamic pregenerated this wallet and stored the passcode
source:
$ref: '#/components/schemas/PasswordSourceTypeEnum'
ExternalWalletFundingTokenRule:
type: string
enum:
- recommended
- exact
ProjectSettingsDesignButton:
type: object
# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dynamic-xyz/refs/heads/main/openapi/dynamic-xyz-environments-api-openapi.yml