# List TLD keywords

`GET https://api.unique.domains/v1/tlds/{tld}/keywords`

The keywords the catalog attaches to the ending, by type.

From `TldKeyword`, ordered by type then the catalog's position; a word with a deny class is left out.

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

## Request

| Field | Type | Needs | Where | Description |
| --- | --- | --- | --- | --- |
| `tld` | string | Required | Path | The ending without the dot (`ai`), ASCII or `xn--` form; lowercased, a leading dot stripped. |
| `type` | string: semantic, activity, location, audience, intent, tone, lexical | Optional | Query | `semantic` or one facet. |
| `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/tlds/ai/keywords"
```

## Response

| Field | Type | Description |
| --- | --- | --- |
| `type` | string |  |
| `keyword` | string |  |
| `power` | integer | The strength of the keyword for the ending. |

## Errors

| Code | Status | What it means |
| --- | --- | --- |
| [`not_found`](https://unique.domains/api/problems/not_found) | 404 | Not found |
| [`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": [
    {
      "type": "activity",
      "keyword": "studio",
      "power": 82
    }
  ],
  "meta": {
    "asOf": "2026-11-05T08:00:00Z",
    "cursor": null,
    "limit": null
  },
  "links": {
    "self": "https://api.unique.domains/v1/tlds/ai/keywords",
    "next": null,
    "register": null,
    "product": null,
    "dataset": null
  }
}
```

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

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