Unstoppable Domains account API

Manage your account details

Operations 11

GET /account Get account details #
PATCH /account Update account details #
GET /account/billing Get account billing balance #
GET /account/billing/transactions List billing transactions #
GET /account/domain-registrations List account domains #
GET /account/webhooks List webhooks #
POST /account/webhooks Create a webhook #
GET /account/webhooks/{id} Get a webhook #
DELETE /account/webhooks/{id} Delete a webhook #
POST /api/oauth/signup Create an account via email and password (headless) #
POST /api/oauth/signup/verify Verify signup code and get OAuth tokens #

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/unstoppable-domains-account-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

unstoppable-domains-account-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Unstoppable Domains Account API
  x-refined-note:
  - x-logo differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged account across 3 of this provider''s published API definitions: unstoppable-domains-partner-api-openapi.yaml, unstoppable-domains-reseller-api-openapi.yaml, unstoppable-domains-user-api-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.unstoppabledomains.com/partner/v3
  description: Production
- url: https://api.ud-sandbox.com/partner/v3
  description: Sandbox
- url: https://api.unstoppabledomains.com
  description: Production server
tags:
- name: account
  x-displayName: Account
  description: Manage your account details
paths:
  /account:
    get:
      operationId: getAccount
      summary: Get account details
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountSummaryResponse'
      tags:
      - account
      security:
      - bearer: []
    patch:
      operationId: updateAccount
      summary: Update account details
      description: 'Change your default wallet address, which is used when no wallet address is specified during domain registration.

        '
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AccountUpdateRequestBody'
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountUpdateResponse'
        400:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                ValidationError:
                  $ref: '#/components/examples/ValidationError'
      tags:
      - account
      security:
      - bearer: []
    servers:
    - url: https://api.unstoppabledomains.com/partner/v3
      description: Production
    - url: https://api.ud-sandbox.com/partner/v3
      description: Sandbox
  /account/billing:
    get:
      operationId: getBilling
      parameters: []
      responses:
        '200':
          description: Account billing balance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountBillingResponse'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
      tags:
      - account
      summary: Get account billing balance
      description: 'Retrieve the current billing balance for your account in USD cents. Negative values represent credits available; positive values represent amounts owed.

        '
      security:
      - bearer: []
    servers:
    - url: https://api.unstoppabledomains.com/partner/v3
      description: Production
    - url: https://api.ud-sandbox.com/partner/v3
      description: Sandbox
  /account/billing/transactions:
    get:
      operationId: getTransactions
      parameters:
      - name: $cursor
        required: false
        in: query
        schema:
          type: string
        description: Opaque cursor for paginating through results. Use the value from `next.$cursor` in a previous response.
      - name: type
        required: false
        in: query
        schema:
          type: array
          items:
            $ref: '#/components/schemas/BalanceChangeType'
        description: Filter transactions by type. Repeat the parameter or pass a comma-separated list to filter on multiple types.
      - name: groupBy
        required: false
        in: query
        schema:
          type: string
          enum:
          - operationId
        description: When set to `operationId`, transactions are grouped by their originating operation and returned as `BillingTransactionGroup` items.
      responses:
        '200':
          description: List of billing transactions
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/BillingTransactionListResponse'
                - $ref: '#/components/schemas/BillingTransactionGroupListResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
      tags:
      - account
      summary: List billing transactions
      description: 'List billing transactions for your account. Each transaction represents a credit or debit applied to your balance (orders, refunds, settlements, grants, revenue share, etc.).


        Filter by `type` to narrow results to specific balance-change categories. Pass `groupBy=operationId` to receive transactions grouped by their originating operation, with each group reporting the total amount and associated domain.


        Results are paginated — use the `$cursor` parameter to retrieve subsequent pages.

        '
      security:
      - bearer: []
    servers:
    - url: https://api.unstoppabledomains.com/partner/v3
      description: Production
    - url: https://api.ud-sandbox.com/partner/v3
      description: Sandbox
  /account/domain-registrations:
    get:
      operationId: getAccountDomainRegistrations
      parameters:
      - name: $cursor
        required: false
        in: query
        schema:
          type: string
        description: Opaque cursor for paginating through results. Omit it to fetch the first page, then pass the value from `next.$cursor` in the previous response to fetch each subsequent page.
      - name: $expand
        required: false
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - flags
        description: Use `$expand=flags` to additionally include the EPP domain flags for each returned domain.
      responses:
        '200':
          description: A page of domains in your account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountDomainListResponse'
              examples:
                AccountDomains:
                  summary: A page of domains in your account
                  value:
                    '@type': unstoppabledomains.com/partner.v3.CursorList
                    items:
                    - '@type': unstoppabledomains.com/partner.v3.AccountDomain
                      name: example.com
                      status: REGISTERED
                      namingSystem: ICANN
                      expirationTimestamp: 1684356429790
                    - '@type': unstoppabledomains.com/partner.v3.AccountDomain
                      name: example.org
                      status: REGISTERED
                      namingSystem: ICANN
                      expirationTimestamp: null
                    next:
                      $cursor: k7Hs9Lm2Pq4Rt6Vw8Xz0Yb1Nc3Df5Gh
                AccountDomainsWithFlags:
                  summary: A page of domains expanded with EPP domain flags via `$expand=flags`
                  value:
                    '@type': unstoppabledomains.com/partner.v3.CursorList
                    items:
                    - '@type': unstoppabledomains.com/partner.v3.AccountDomain
                      name: example.com
                      status: REGISTERED
                      namingSystem: ICANN
                      expirationTimestamp: 1684356429790
                      flags:
                        DNS_RESOLUTION:
                          '@type': unstoppabledomains.com/partner.v3.DomainFlag
                          status: ENABLED
                        DNS_TRANSFER_OUT:
                          '@type': unstoppabledomains.com/partner.v3.DomainFlag
                          status: DISABLED
                          readonly:
                            state: true
                            reasons:
                            - type: REGISTRY
                              id: LOCKED_REGISTRY
                              status: ENABLED
                        DNS_DELETE:
                          '@type': unstoppabledomains.com/partner.v3.DomainFlag
                          status: DISABLED
                        DNS_UPDATE:
                          '@type': unstoppabledomains.com/partner.v3.DomainFlag
                          status: ENABLED
                        DNS_RENEW:
                          '@type': unstoppabledomains.com/partner.v3.DomainFlag
                          status: ENABLED
                        DNS_WHOIS_PROXY:
                          '@type': unstoppabledomains.com/partner.v3.DomainFlag
                          status: ENABLED
                    next: null
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
      tags:
      - account
      summary: List account domains
      description: 'Retrieve a paginated list of the domains in your account.


        Results are returned using cursor-based pagination. Omit `$cursor` to fetch the first page, then pass the `next.$cursor` value from the previous page response to fetch each subsequent page. When `next` is `null` there are no more pages.


        Use `$expand=flags` to additionally include the EPP domain flags for each returned domain.

        '
      security:
      - bearer: []
    servers:
    - url: https://api.unstoppabledomains.com/partner/v3
      description: Production
    - url: https://api.ud-sandbox.com/partner/v3
      description: Sandbox
  /account/webhooks:
    get:
      operationId: getWebhooks
      parameters: []
      responses:
        '200':
          description: List of webhooks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookListResponse'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
      tags:
      - account
      summary: List webhooks
      description: 'Retrieve all webhook subscriptions configured for your account.

        '
      security:
      - bearer: []
    post:
      operationId: createWebhook
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookCreateRequestBody'
      responses:
        '201':
          description: Webhook created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookCreateResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '409':
          description: Resource conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
      tags:
      - account
      summary: Create a webhook
      description: 'Create a new webhook subscription. Webhooks notify your server of asynchronous events such as operation completions and status changes.


        You can follow our getting started guide here: [Webhooks in the Reseller API](https://docs.unstoppabledomains.com/domain-distribution-and-management/guides/implementing-webhooks/)

        '
      security:
      - bearer: []
    servers:
    - url: https://api.unstoppabledomains.com/partner/v3
      description: Production
    - url: https://api.ud-sandbox.com/partner/v3
      description: Sandbox
  /account/webhooks/{id}:
    get:
      operationId: getWebhook
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
          pattern: ^wh-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
          example: wh-a1b2c3d4-e5f6-7890-abcd-ef1234567890
        description: 'Webhook ID (format: wh-<uuid>)'
      responses:
        '200':
          description: Webhook details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
      tags:
      - account
      summary: Get a webhook
      description: 'Retrieve details of a specific webhook subscription by ID.

        '
      security:
      - bearer: []
    delete:
      operationId: deleteWebhook
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
          pattern: ^wh-[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
          example: wh-a1b2c3d4-e5f6-7890-abcd-ef1234567890
        description: 'Webhook ID (format: wh-<uuid>)'
      responses:
        '200':
          description: Webhook deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDeleteResponse'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse_2'
      tags:
      - account
      summary: Delete a webhook
      description: 'Delete a webhook subscription by ID.

        '
      security:
      - bearer: []
    servers:
    - url: https://api.unstoppabledomains.com/partner/v3
      description: Production
    - url: https://api.ud-sandbox.com/partner/v3
      description: Sandbox
  /api/oauth/signup:
    post:
      operationId: oauthSignup
      summary: Create an account via email and password (headless)
      description: Step 1 of headless account creation. Registers a new user with email and password, sends a verification code via email, and returns a signup_session_token. Use POST /api/oauth/signup/verify with the token and code to get OAuth tokens. Returns identical responses for new and existing users to prevent account enumeration.
      tags:
      - account
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              - password
              properties:
                email:
                  type: string
                  format: email
                  description: Email address for the new account
                password:
                  type: string
                  minLength: 8
                  description: Password with at least 8 characters, one uppercase, one lowercase, one digit, and one special character
      responses:
        '200':
          description: Signup session created
          content:
            application/json:
              schema:
                type: object
                properties:
                  signup_session_token:
                    type: string
                    description: Token to use with /api/oauth/signup/verify
                  expires_in:
                    type: number
                    description: Session TTL in seconds (900)
        '400':
          description: Invalid email, password, or disposable email
        '429':
          description: Rate limit exceeded
    servers:
    - url: https://api.unstoppabledomains.com
      description: Production server
  /api/oauth/signup/verify:
    post:
      operationId: oauthSignupVerify
      summary: Verify signup code and get OAuth tokens
      description: Step 2 of headless account creation. Exchanges the signup_session_token and the 6-character verification code (sent via email) for OAuth access and refresh tokens.
      tags:
      - account
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - signup_session_token
              - verification_code
              properties:
                signup_session_token:
                  type: string
                  description: Token from POST /api/oauth/signup
                verification_code:
                  type: string
                  description: 6-character alphanumeric code from the verification email
      responses:
        '200':
          description: OAuth tokens issued
          content:
            application/json:
              schema:
                type: object
                properties:
                  access_token:
                    type: string
                  token_type:
                    type: string
                    enum:
                    - Bearer
                  expires_in:
                    type: number
                  refresh_token:
                    type: string
                  scope:
                    type: string
        '400':
          description: Invalid or expired session, wrong code, or too many attempts
        '429':
          description: Rate limit exceeded
    servers:
    - url: https://api.unstoppabledomains.com
      description: Production server
components:
  schemas:
    WalletCreateResultResponse:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/OwnerAddress'
      required:
      - address
    OperationCheckResponse:
      type: object
      properties:
        id:
          type: string
          example: op-4abb409c-9283-4589-bd36-d27a757a2165
        '@type':
          type: string
          enum:
          - unstoppabledomains.com/partner.v3.Operation
        status:
          $ref: '#/components/schemas/OperationStatus'
        type:
          $ref: '#/components/schemas/OperationType'
        domain:
          $ref: '#/components/schemas/DomainName'
        lastUpdatedTimestamp:
          type: number
          example: 1684356429790
        dependencies:
          type: array
          items:
            anyOf:
            - $ref: '#/components/schemas/MintSubOperationResponse'
            - $ref: '#/components/schemas/UpdateRecordsSubOperationResponse'
            - $ref: '#/components/schemas/TransferSubOperationResponse'
            - $ref: '#/components/schemas/ReturnSubOperationResponse'
            - $ref: '#/components/schemas/WalletCreateSubOperationResponse'
            - $ref: '#/components/schemas/WalletSetDefaultSubOperationResponse'
            - $ref: '#/components/schemas/WebhookCreateSubOperationResponse'
            - $ref: '#/components/schemas/WebhookDeleteSubOperationResponse'
      required:
      - id
      - status
      - type
      - dependencies
      - '@type'
      - lastUpdatedTimestamp
    ReturnSubOperationResponse:
      allOf:
      - $ref: '#/components/schemas/BlockchainSubOperationResponse'
      - type: object
        properties:
          type:
            type: string
            enum:
            - RETURN
        required:
        - type
    OwnerAddress:
      oneOf:
      - $ref: '#/components/schemas/EvmOwnerAddress'
    WebhookDeleteSubOperationResponse:
      allOf:
      - $ref: '#/components/schemas/PlatformSubOperationResponse'
      - type: object
        properties:
          parameters:
            $ref: '#/components/schemas/WebhookDeleteParametersResponse'
          type:
            type: string
            enum:
            - WEBHOOK_DELETE
        required:
        - parameters
        - type
    WalletCreateSubOperationResponse:
      allOf:
      - $ref: '#/components/schemas/PlatformSubOperationResponse'
      - type: object
        properties:
          result:
            $ref: '#/components/schemas/WalletCreateResultResponse'
          type:
            type: string
            enum:
            - WALLET_CREATE
        required:
        - type
    WebhookCreateParametersResponse:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/WebhookType'
        url:
          type: string
          format: uri
      required:
      - type
      - url
    AccountSummaryResponse:
      type: object
      properties:
        '@type':
          type: string
          enum:
          - unstoppabledomains.com/partner.v3.AccountSummary
        id:
          type: string
        defaultWalletAddress:
          oneOf:
          - type: string
          - type: 'null'
      required:
      - '@type'
      - id
      - defaultWalletAddress
    OperationStatus:
      type: string
      enum:
      - QUEUED
      - SIGNATURE_REQUIRED
      - PROCESSING
      - COMPLETED
      - FAILED
      - CANCELLED
    WalletSetDefaultParametersResponse:
      type: object
      properties:
        address:
          $ref: '#/components/schemas/OwnerAddress'
      required:
      - address
    UpdateRecordsParametersResponse:
      type: object
      properties:
        recordUpdates:
          $ref: '#/components/schemas/DomainRecords'
        resetRecords:
          type: boolean
      required:
      - recordUpdates
      - resetRecords
    ErrorResponseContextEntityMulti:
      type: object
      properties:
        type:
          type: string
          enum:
          - MULTI_VALUE
        values:
          type: array
          items:
            $ref: '#/components/schemas/ErrorResponseContextEntitySingle'
      required:
      - type
      - values
    TransferParametersResponse:
      type: object
      properties:
        fromAddress:
          $ref: '#/components/schemas/OwnerAddress'
        toAddress:
          $ref: '#/components/schemas/OwnerAddress'
        resetRecords:
          type: boolean
      required:
      - fromAddress
      - toAddress
      - resetRecords
    TransferSubOperationResponse:
      allOf:
      - $ref: '#/components/schemas/BlockchainSubOperationResponse'
      - type: object
        properties:
          type:
            type: string
            enum:
            - TRANSFER
          parameters:
            $ref: '#/components/schemas/TransferParametersResponse'
        required:
        - type
        - parameters
    AccountUpdateResponse:
      type: object
      properties:
        '@type':
          type: string
          enum:
          - unstoppabledomains.com/partner.v3.AccountUpdateResult
        operation:
          $ref: '#/components/schemas/OperationCheckResponse'
      required:
      - '@type'
      - operation
    ErrorResponseContext:
      type: object
      properties:
        entities:
          type: array
          items:
            $ref: '#/components/schemas/ErrorResponseContextEntity'
      required:
      - entities
    WebhookDeleteParametersResponse:
      type: object
      properties:
        id:
          type: string
      required:
      - id
    ErrorResponse:
      oneOf:
      - $ref: '#/components/schemas/ErrorResponseSingle'
      - $ref: '#/components/schemas/ErrorResponseMulti'
    ErrorResponseContextEntitySingle:
      type: object
      properties:
        type:
          type: string
        value:
          type: string
      required:
      - type
      - value
    WebhookCreateResultResponse:
      type: object
      properties:
        id:
          type: string
      required:
      - id
    WebhookType:
      type: string
      enum:
      - OPERATION_FINISHED
      - OPERATION_ACTION_REQUIRED
    BlockchainSubOperationResponse:
      allOf:
      - $ref: '#/components/schemas/SubOperationResponse'
      - type: object
        properties:
          '@type':
            type: string
            enum:
            - unstoppabledomains.com/partner.v3.BlockchainOperation
          transaction:
            $ref: '#/components/schemas/SubOperationTransactionResponse'
        required:
        - '@type'
    BlockchainType:
      type: string
      enum:
      - MATIC
      - ETH
      - BASE
    MintParametersResponse:
      type: object
      properties:
        initialRecords:
          $ref: '#/components/schemas/DomainRecords'
        toAddress:
          $ref: '#/components/schemas/OwnerAddress'
      required:
      - toAddress
    UpdateRecordsSubOperationResponse:
      allOf:
      - $ref: '#/components/schemas/BlockchainSubOperationResponse'
      - type: object
        properties:
          type:
            type: string
            enum:
            - UPDATE_RECORDS
          parameters:
            $ref: '#/components/schemas/UpdateRecordsParametersResponse'
        required:
        - type
        - parameters
    AccountUpdateRequestBody:
      type: object
      properties:
        defaultWalletAddress:
          $ref: '#/components/schemas/OwnerAddress'
      required:
      - defaultWalletAddress
    SubOperationResponse:
      type: object
      properties:
        id:
          type: string
          example: bc-2db427bd-5613-40c7-85b1-ab38beed0ed0
        status:
          $ref: '#/components/schemas/OperationStatus'
      required:
      - status
      - id
    EvmOwnerAddress:
      type: string
      example: '0xb4783AeF93923a2d4eEA29C84f347F26E62e4321'
      pattern: ^0x[a-fA-F0-9]{40}$
    OperationType:
      type: string
      enum:
      - DOMAIN_CLAIM
      - DOMAIN_UPDATE
      - DOMAIN_RETURN
      - WALLET_CREATE
      - WALLET_UPDATE
      - WALLET_VERIFY
      - ACCOUNT_UPDATE
    DomainRecords:
      type: object
      additionalProperties:
        type: string
      example:
        crypto.ETH.address: '0xb4783AeF93923a2d4eEA29C84f347F26E62e4321'
        crypto.MATIC.version.MATIC.address: '0xb4783AeF93923a2d4eEA29C84f347F26E62e5678'
        crypto.MATIC.version.ERC20.address: '0xb4783AeF93923a2d4eEA29C84f347F26E62e0921'
    MintSubOperationResponse:
      allOf:
      - $ref: '#/components/schemas/BlockchainSubOperationResponse'
      - type: object
        properties:
          type:
            type: string
            enum:
            - MINT
          parameters:
            $ref: '#/components/schemas/MintParametersResponse'
        required:
        - type
        - parameters
    DomainName:
      type: string
      example: matt.crypto
    WebhookCreateSubOperationResponse:
      allOf:
      - $ref: '#/components/schemas/PlatformSubOperationResponse'
      - type: object
        properties:
          parameters:
            $ref: '#/components/schemas/WebhookCreateParametersResponse'
          result:
            $ref: '#/components/schemas/WebhookCreateResultResponse'
          type:
            type: string
            enum:
            - WEBHOOK_CREATE
        required:
        - parameters
        - type
    ErrorResponseSingle:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        context:
          $ref: '#/components/schemas/ErrorResponseContext'
    ErrorResponseMulti:
      type: object
      properties:
        code:
          type: string
          enum:
          - MULTIPLE_ERRORS
        message:
          type: string
        context:
          $ref: '#/components/schemas/ErrorResponseContext'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorResponseSingle'
      required:
      - code
      - errors
    ErrorResponseContextEntity:
      oneOf:
      - $ref: '#/components/schemas/ErrorResponseContextEntitySingle'
      - $ref: '#/components/schemas/ErrorResponseContextEntityMulti'
    PlatformSubOperationResponse:
      allOf:
      - $ref: '#/components/schemas/SubOperationResponse'
      - type: object
        properties:
          '@type':
            type: string
            enum:
            - unstoppabledomains.com/partner.v3.PlatformOperation
        required:
        - '@type'
    WalletSetDefaultSubOperationResponse:
      allOf:
      - $ref: '#/components/schemas/PlatformSubOperationResponse'
      - type: object
        properties:
          parameters:
            $ref: '#/components/schemas/WalletSetDefaultParametersResponse'
          type:
            type: string
            enum:
            - WALLET_SET_DEFAULT
        required:
        - parameters
        - type
    SubOperationTransactionResponse

# --- truncated at 32 KB (65 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/unstoppable-domains/refs/heads/main/openapi/unstoppable-domains-account-api-openapi.yml