Hiro Names API

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

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/hiro-names-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 email required.

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

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