# List domain hacks

`GET https://api.unique.domains/v1/domains/hacks`

Domain hacks: names whose ending completes the word.

The domain hacks list. Free: the public hacks list, at most 20 rows, one page. Keyed: pages in a neutral column order with `sort`, else in the engine's own order.

- Access: No key. Limited per address; a key adds the paid fields.
- Billing: One call.
- Formats: JSON, CSV (`.csv`)
- API: One-Word Domains API

## Request

| Field | Type | Needs | Where | Description |
| --- | --- | --- | --- | --- |
| `ending` | string | Optional | Query | Comma list of endings without the dot. |
| `status` | string | Optional | Query | Comma list of statuses: available, premium, resell, expiring, expired, taken, dormant, sold, unknown. Default: available, premium, resell. |
| `lengthMin` | integer | Optional | Query | Shortest word, in characters. |
| `lengthMax` | integer | Optional | Query | Longest word, in characters. |
| `shape` | string | Optional | Query | Comma list of word shapes: single, properNoun, acronym, twoWords, phrase. `properNoun` is ignored on the free tier. |
| `style` | string | Optional | Query | Comma list of styles: modern, elegant, slab, handwritten, playful, futuristic. |
| `priceMax` | number | Optional | Query | Highest price today, USD. |
| `renewalMax` | number | Optional | Query | Highest renewal, USD. |
| `prefix` | string | Paid | Query | The word starts with. |
| `contains` | string | Paid | Query | The word contains. |
| `pos` | string | Optional | Query | Comma list of parts of speech: adjective, adjective satellite, adverb, conjunction, contraction, determiner, interjection, letter, noun, particle, pnoun, pnound, preposition, prepPhrase, pronoun, proverb, symbol, verb, unknown. |
| `expiresBefore` | string | Optional | Query | Registry expiry on or before this day. |
| `sort` | string | Paid | Query | A neutral order: askPrice, price, renewal, seoRandomKey, domain; prefix `-` for descending. Without it, the engine's own order. No quality order exists. |
| `limit` | integer | Optional | Query | Rows a page: 20 by default, at most 20 without a key and 100 with a paid subscription; a larger value is clamped. |
| `cursor` | string | Paid | Query | The `meta.cursor` of the previous page; the last page answers `null`. |
| `fields` | string | Optional | Query | Comma-separated top-level keys to keep; an unknown key answers 400 `unsupported_field`. |

## Sample request

```bash
curl -X GET "https://api.unique.domains/v1/domains/hacks?ending=com%2Cio&status=available&lengthMax=8&priceMax=50"
```

## Response

| Field | Type | Description |
| --- | --- | --- |
| `id` | string | `dom_<uuid>`. |
| `name` | string |  |
| `ending` | string |  |
| `status` | string | The stored status of the row. One name's own answer groups it for a buyer: `resell` reads `for_sale` there (`at_auction` at a drop-catch venue), `premium` reads `free_premium`. |
| `price` | number \| null | Price today, USD. |
| `priceKind` | string \| null |  |
| `renewal` | number \| null |  |
| `ratingBand` | string \| null | A simple band. |
| `format` | string \| null |  |
| `shape` | string \| null |  |
| `length` | integer \| null |  |
| `coverage` | object \| null | The same word on other endings: available, premium, for sale. |
| `value` | object \| null | Keyed: the current estimate, USD. |
| `upsidePercent` | number \| null | Keyed. |
| `liquidity` | string \| null | Keyed. |
| `verdict` | object | Keyed. |

## Errors

| Code | Status | What it means |
| --- | --- | --- |
| [`validation_failed`](https://unique.domains/api/problems/validation_failed) | 400 | A value is not valid |
| [`cursor_invalid`](https://unique.domains/api/problems/cursor_invalid) | 400 | The cursor is not valid |
| [`keyed_only`](https://unique.domains/api/problems/keyed_only) | 403 | A paid subscription is required |
| [`rate_limited`](https://unique.domains/api/problems/rate_limited) | 429 | Too many requests |
| [`internal`](https://unique.domains/api/problems/internal) | 500 | Unexpected error |

## Example answer

200, application/json

```json
{
  "data": [
    {
      "id": "dom_1d4f9b02-3c6a-4e8d-b7f1-0a2c5e9d3b18",
      "name": "del.icio.us",
      "ending": "us",
      "status": "taken",
      "price": null,
      "priceKind": null,
      "renewal": null,
      "ratingBand": "niche",
      "format": "hack",
      "shape": "single",
      "length": 9,
      "coverage": {
        "available": 0,
        "premium": 0,
        "forSale": 1,
        "unavailable": 2
      }
    }
  ],
  "meta": {
    "asOf": "2026-11-05T08:00:00Z",
    "cursor": null,
    "limit": 20
  },
  "links": {
    "self": "https://api.unique.domains/v1/domains/hacks?ending=com%2Cio&status=available&lengthMax=8&priceMax=50",
    "next": null,
    "register": null,
    "product": null,
    "dataset": null
  }
}
```

API status: https://uniquedomains.instatus.com

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