# Domain availability API

Ask whether a domain name is free and read its status, drop day, price today and registry facts as JSON. The free call reads the stored answer; a key adds a live check, and lists of up to 100 names need a paid RapidAPI subscription or the Investor plan.

- Without a key: the stored status, drop day, price today and registry facts of one name.
- With a key: a live check with the registry and a registrar. Up to 100 names in one call need a paid RapidAPI subscription or the Investor plan.
- Free calls need no key: 60 calls an hour and 100 a day from one address.

## Try it

```bash
curl -X GET "https://api.unique.domains/v1/names/get.plumbing"
```

## Example answer

200, application/json

```json
{
  "data": {
    "id": "dom_4efccac7-d9df-4c96-a076-3e0cc64220ec",
    "name": "get.plumbing",
    "ending": "plumbing",
    "tracked": true,
    "status": "for_sale",
    "lifecycle": "active",
    "drop": {
      "kind": "none"
    },
    "ownableNow": false,
    "price": {
      "kind": "aftermarket",
      "firstYear": null,
      "registrar": null,
      "renewal": null,
      "transfer": null,
      "isPromo": null,
      "renewalTrap": false
    },
    "registry": {
      "createdAt": "2020-06-03T08:30:53.000Z",
      "updatedAt": "2026-08-12T04:41:40.000Z",
      "expiresAt": "2027-06-03T08:30:53.000Z",
      "registryUpdatedAt": "2026-10-22T13:39:28.000Z",
      "registrar": {
        "name": "GoDaddy.com, LLC",
        "ianaId": 146,
        "url": null
      }
    },
    "parking": "afternic",
    "length": 3,
    "format": null,
    "shape": "single",
    "word": {
      "id": "wrd_23922",
      "word": "get",
      "slug": "get"
    },
    "rating": {
      "band": "prime"
    },
    "comps": {
      "tier": "same_word",
      "count": 10,
      "medianUsd": 2677,
      "endingsSoldOn": 0
    }
  },
  "meta": {
    "asOf": null,
    "cursor": null,
    "limit": null
  },
  "links": {
    "self": "https://api.unique.domains/v1/names/get.plumbing",
    "next": null,
    "register": null,
    "product": null,
    "dataset": null
  }
}
```

## Endpoints

- [GET /names/{name}](https://unique.domains/api/get-name) (Free): The stored answer for one domain name: status, drop day, price today, registry facts, word facts and similar sales.
- [POST /names/{name}/check](https://unique.domains/api/check-name) (Paid): Reads one name live from its registry and a registrar, stores the answer and returns the keyed name resource.
- [POST /names/batch](https://unique.domains/api/batch-names) (Paid): The keyed name resource for up to 100 names in one call.

## Ways to call it

- On RapidAPI: Domain Availability API, https://rapidapi.com/dopamyn-network-dopamyn-network-default/api/domain-availability14
- From Node.js: `npm install @uniquedomains/domain-availability`, or `npx @uniquedomains/domain-availability get.plumbing`
- From any language: https://unique.domains/api

## Questions

### Is the availability check live?

The free call reads the stored answer, never live. POST /names/{name}/check reads the name live from its registry and a registrar; it needs a key and counts one live check when the live read runs, within the key's monthly live checks and at most 200 a day per account.

### How many calls are free?

One name at a time is free: no key, 60 calls an hour and 100 a day from one address. Up to 100 names in one call needs a paid RapidAPI subscription to the Domain Availability API, or a member key on the Investor plan.

### What does a name nobody has checked return?

A name the catalog has not stored answers 200 with empty facts and tracked set to false, never a 404. The live check stores it.

Full reference: https://unique.domains/api
