# Resolve word

`GET https://api.unique.domains/v1/words/resolve`

Turns what a caller typed into the catalog word it names, or up to five candidates.

Tries the spelling as typed, its lowercase, accents stripped, spaces and hyphens removed, one inflection suffix stripped, then the lookalike spelling. A miss answers 200 with `candidates` (words starting with the query), never 404. Words with a deny class are never a match nor a candidate.

- Access: No key. Limited per address; a key adds the paid fields.
- Billing: One call.
- Formats: JSON
- API: Word Intelligence API

## Request

| Field | Type | Needs | Where | Description |
| --- | --- | --- | --- | --- |
| `q` | string | Required | Query | What the caller typed, 1 to 255 characters. |
| `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/words/resolve?q=harbors"
```

## Response

| Field | Type | Description |
| --- | --- | --- |
| `match` | object |  |
| `candidates` | object[] |  |

## Errors

| Code | Status | What it means |
| --- | --- | --- |
| [`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": {
    "match": {
      "id": "wrd_48213",
      "slug": "harbor",
      "word": "harbor",
      "shape": "single",
      "origin": "dictionary",
      "via": "inflected"
    }
  },
  "meta": {
    "asOf": "2026-11-05T08:00:00Z",
    "cursor": null,
    "limit": null
  },
  "links": {
    "self": "https://api.unique.domains/v1/words/resolve?q=harbors",
    "next": null,
    "register": null,
    "product": null,
    "dataset": null
  }
}
```

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

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