Hiro Names API

Read-only endpoints realted to the Blockchain Naming System on Stacks

OpenAPI Specification

hiro-names-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Signer Metrics Accounts Names API
  description: Welcome to the API reference overview for the Signer Metrics API.
  version: 1.0.3
servers:
- url: https://api.hiro.so/
  description: mainnet
- url: https://api.testnet.hiro.so/
  description: testnet
tags:
- name: Names
  description: Read-only endpoints realted to the Blockchain Naming System on Stacks
  externalDocs:
    description: Stacks Documentation - Blockchain Naming System
    url: https://docs.stacks.co/network-fundamentals/bitcoin-name-system
paths:
  /v1/names/{name}/zonefile/{zoneFileHash}:
    get:
      operationId: get_historical_zone_file
      summary: Get Historical Zone File
      tags:
      - Names
      description: Retrieves the historical zonefile specified by the username and zone hash.
      parameters:
      - schema:
          default: false
          type: boolean
        example: true
        in: query
        name: unanchored
        required: false
        description: Include data from unanchored (i.e. unconfirmed) microblocks
      - schema:
          type: string
        example: muneeb.id
        in: path
        name: name
        required: true
        description: fully-qualified name
      - schema:
          type: string
        example: b100a68235244b012854a95f9114695679002af9
        in: path
        name: zoneFileHash
        required: true
        description: zone file hash
      responses:
        '200':
          description: Fetches the historical zonefile specified by the username and zone hash.
          content:
            application/json:
              schema:
                title: BnsFetchHistoricalZoneFileResponse
                description: Fetches the historical zonefile specified by the username and zone hash.
                type: object
                properties:
                  zonefile:
                    type: string
                required:
                - zonefile
        4XX:
          description: Error
          content:
            application/json:
              schema:
                title: BnsError
                description: Error
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
  /v1/names/{name}/subdomains:
    get:
      operationId: fetch_subdomains_list_for_name
      summary: Get Name Subdomains
      tags:
      - Names
      description: Retrieves the list of subdomains for a specific name
      parameters:
      - schema:
          default: false
          type: boolean
        example: true
        in: query
        name: unanchored
        required: false
        description: Include data from unanchored (i.e. unconfirmed) microblocks
      - schema:
          type: string
        example: id.blockstack
        in: path
        name: name
        required: true
        description: fully-qualified name
      responses:
        '200':
          description: Fetch a list of subdomains in a name.
          content:
            application/json:
              schema:
                title: GetAllSubdomainsInName
                description: Fetch a list of subdomains in a name.
                type: array
                items:
                  type: string
              example:
              - address_test.id.blockstack
              - previous_subdomain.id.blockstack
              - subdomain.id.blockstack
              - zonefile_test.id.blockstack
              - zone_test.id.blockstack
        4XX:
          description: Default Response
          content:
            application/json:
              schema:
                title: Error Response
                additionalProperties: true
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
  /v1/names/{name}/zonefile:
    get:
      operationId: fetch_zone_file
      summary: Get Zone File
      tags:
      - Names
      description: Retrieves a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files.
      parameters:
      - schema:
          default: false
          type: boolean
        example: true
        in: query
        name: unanchored
        required: false
        description: Include data from unanchored (i.e. unconfirmed) microblocks
      - schema:
          type: string
        example: bar.test
        in: path
        name: name
        required: true
        description: fully-qualified name
      responses:
        '200':
          description: Fetch a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files.
          content:
            application/json:
              schema:
                title: BnsFetchFileZoneResponse
                description: Fetch a user's raw zone file. This only works for RFC-compliant zone files. This method returns an error for names that have non-standard zone files.
                type: object
                properties:
                  zonefile:
                    type: string
                    example: '$ORIGIN bar.test

                      $TTL 3600

                      _https._tcp URI 10 1 "https://gaia.blockstack.org/hub/17Zijx61Sp7SbVfRTdETo7PhizJHYEUxbY/profile.json"

                      '
                required:
                - zonefile
        4XX:
          description: Error
          content:
            application/json:
              schema:
                title: BnsError
                description: Error
                type: object
                properties:
                  error:
                    type: string
                    example: Invalid name or subdomain
                required:
                - error
  /v1/names/:
    get:
      operationId: get_all_names
      summary: Get All Names
      tags:
      - Names
      description: Retrieves a list of all names known to the node.
      parameters:
      - schema:
          default: false
          type: boolean
        example: true
        in: query
        name: unanchored
        required: false
        description: Include data from unanchored (i.e. unconfirmed) microblocks
      - schema:
          minimum: 0
          default: 0
          type: integer
        in: query
        name: page
        required: false
        description: names are defaulted to page 1 with 100 results. You can query specific page results by using the 'page' query parameter.
      responses:
        '200':
          description: Fetch a list of all names known to the node.
          content:
            application/json:
              schema:
                title: BnsGetAllNamesResponse
                description: Fetch a list of all names known to the node.
                type: array
                items:
                  type: string
              examples:
                aldenquimby.id:
                  value: aldenquimby.id
                aldeoryn.id:
                  value: aldeoryn.id
                alderete.id:
                  value: alderete.id
                aldert.id:
                  value: aldert.id
                aldi.id:
                  value: aldi.id
                aldighieri.id:
                  value: aldighieri.id
        4XX:
          description: Error
          content:
            application/json:
              schema:
                title: BnsError
                description: Error
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
  /v1/names/{name}:
    get:
      operationId: get_name_info
      summary: Get Name Details
      tags:
      - Names
      description: Retrieves details of a given name including the `address`, `status` and last transaction id - `last_txid`.
      parameters:
      - schema:
          default: false
          type: boolean
        example: true
        in: query
        name: unanchored
        required: false
        description: Include data from unanchored (i.e. unconfirmed) microblocks
      - schema:
          type: string
        example: muneeb.id
        in: path
        name: name
        required: true
        description: fully-qualified name
      responses:
        '200':
          description: Get name details
          content:
            application/json:
              schema:
                title: BnsGetNameInfoResponse
                description: Get name details
                type: object
                properties:
                  address:
                    type: string
                  blockchain:
                    type: string
                    example: stacks
                  expire_block:
                    minimum: 0
                    type: integer
                  grace_period:
                    minimum: 0
                    type: integer
                  last_txid:
                    type: string
                  resolver:
                    type: string
                  status:
                    type: string
                  zonefile:
                    type: string
                  zonefile_hash:
                    type: string
                required:
                - address
                - blockchain
                - last_txid
                - status
                - zonefile_hash
              example:
                address: 1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs
                blockchain: stacks
                expire_block: 599266
                grace_period: false
                last_txid: 1edfa419f7b83f33e00830bc9409210da6c6d1db60f99eda10c835aa339cad6b
                renewal_deadline: 604266
                resolver: null
                status: registered
                zonefile: '$ORIGIN muneeb.id

                  $TTL 3600

                  _http._tcp IN URI 10 1 "https://gaia.blockstack.org/hub/1J3PUxY5uDShUnHRrMyU6yKtoHEUPhKULs/0/profile.json"

                  '
                zonefile_hash: 37aecf837c6ae9bdc9dbd98a268f263dacd00361
        4XX:
          description: Default Response
          content:
            application/json:
              schema:
                title: Error Response
                additionalProperties: true
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
  /v1/namespaces/:
    get:
      operationId: get_all_namespaces
      summary: Get All Namespaces
      tags:
      - Names
      description: Retrieves a list of all namespaces known to the node.
      parameters:
      - schema:
          default: false
          type: boolean
        example: true
        in: query
        name: unanchored
        required: false
        description: Include data from unanchored (i.e. unconfirmed) microblocks
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  namespaces:
                    title: BnsGetAllNamespacesResponse
                    description: Fetch a list of all namespaces known to the node.
                    type: array
                    items:
                      type: string
                required:
                - namespaces
        4XX:
          description: Default Response
          content:
            application/json:
              schema:
                title: Error Response
                additionalProperties: true
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
  /v1/namespaces/{tld}/names:
    get:
      operationId: get_namespace_names
      summary: Get Namespace Names
      tags:
      - Names
      description: Retrieves a list of names within a given namespace.
      parameters:
      - schema:
          type: number
        example: 22
        in: query
        name: page
        required: false
        description: namespace values are defaulted to page 1 with 100 results. You can query specific page results by using the 'page' query parameter.
      - schema:
          default: false
          type: boolean
        example: true
        in: query
        name: unanchored
        required: false
        description: Include data from unanchored (i.e. unconfirmed) microblocks
      - schema:
          type: string
        example: id
        in: path
        name: tld
        required: true
        description: the namespace to fetch names from.
      responses:
        '200':
          description: Fetch a list of names from the namespace.
          content:
            application/json:
              schema:
                title: BnsGetAllNamespacesNamesResponse
                description: Fetch a list of names from the namespace.
                type: array
                items:
                  type: string
              example:
              - aldenquimby.id
              - aldeoryn.id
              - alderete.id
              - aldert.id
              - aldi.id
              - aldighieri.id
        4XX:
          description: Default Response
          content:
            application/json:
              schema:
                title: Error Response
                additionalProperties: true
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
  /v1/addresses/{blockchain}/{address}:
    get:
      operationId: get_names_owned_by_address
      summary: Get Names Owned by Address
      tags:
      - Names
      description: Retrieves a list of names owned by the address provided.
      parameters:
      - schema:
          default: false
          type: boolean
        example: true
        in: query
        name: unanchored
        required: false
        description: Include data from unanchored (i.e. unconfirmed) microblocks
      - schema:
          type: string
        example: stacks
        in: path
        name: blockchain
        required: true
        description: the layer-1 blockchain for the address
      - schema:
          type: string
        example: SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKNRV9EJ7
        in: path
        name: address
        required: true
        description: the address to lookup
      responses:
        '200':
          description: Retrieves a list of names owned by the address provided.
          content:
            application/json:
              schema:
                title: BnsNamesOwnByAddressResponse
                description: Retrieves a list of names owned by the address provided.
                type: object
                properties:
                  names:
                    type: array
                    items:
                      type: string
                      example: muneeb.id
                required:
                - names
        4XX:
          description: Default Response
          content:
            application/json:
              schema:
                title: Error Response
                additionalProperties: true
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
  /v2/prices/namespaces/{tld}:
    get:
      operationId: get_namespace_price
      summary: Get Namespace Price
      tags:
      - Names
      description: Retrieves the price of a namespace. The `amount` given will be in the smallest possible units of the currency.
      parameters:
      - schema:
          type: string
        example: id
        in: path
        name: tld
        required: true
        description: the namespace to fetch price for
      responses:
        '200':
          description: Fetch price for namespace.
          content:
            application/json:
              schema:
                title: BnsGetNamespacePriceResponse
                description: Fetch price for namespace.
                type: object
                properties:
                  units:
                    type: string
                  amount:
                    type: string
                required:
                - units
                - amount
        '400':
          description: Error
          content:
            application/json:
              schema:
                title: BnsError
                description: Error
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        4XX:
          description: Default Response
          content:
            application/json:
              schema:
                title: Error Response
                additionalProperties: true
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
  /v2/prices/names/{name}:
    get:
      operationId: get_name_price
      summary: Get Name Price
      tags:
      - Names
      description: Retrieves the price of a name. The `amount` given will be in the smallest possible units of the currency.
      parameters:
      - schema:
          type: string
        example: muneeb.id
        in: path
        name: name
        required: true
        description: the name to query price information for
      responses:
        '200':
          description: Fetch price for name.
          content:
            application/json:
              schema:
                title: BnsGetNamePriceResponse
                description: Fetch price for name.
                type: object
                properties:
                  units:
                    type: string
                  amount:
                    type: string
                required:
                - units
                - amount
        '400':
          description: Error
          content:
            application/json:
              schema:
                title: BnsError
                description: Error
                type: object
                properties:
                  error:
                    type: string
                required:
                - error
        4XX:
          description: Default Response
          content:
            application/json:
              schema:
                title: Error Response
                additionalProperties: true
                type: object
                properties:
                  error:
                    type: string
                  message:
                    type: string
                required:
                - error
externalDocs:
  url: https://github.com/hirosystems/signer-metrics-api
  description: Source Repository