> For the complete documentation index, see [llms.txt](https://docs.wproofreader.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.wproofreader.com/v6.12.0/api-reference/custom-dictionary-api/actions/create-dictionary-create.md).

# Create dictionary (create)

Creates a new dictionary.

The server assigns the numeric dictionary `id`.

### What it does

* Creates an empty dictionary, or seeds it with an initial wordlist.
* Binds the dictionary to a `lang`.
* Enforces unique `description` per account.

### Required parameters

| Parameter     | Type   | Notes                      |
| ------------- | ------ | -------------------------- |
| `cmd`         | string | `custom_dictionary`        |
| `action`      | string | `create`                   |
| `lang`        | string | Example: `en_US`           |
| `description` | string | Must be unique per account |

### Optional parameters

| Parameter  | Type   | Notes                                        |
| ---------- | ------ | -------------------------------------------- |
| `wordlist` | string | Comma-separated words to seed the dictionary |
| `format`   | string | `json` (default) or `xml`                    |
| `callback` | string | JSONP wrapper (JSON only)                    |

{% hint style="info" %}
Do not pass `id` in a `create` request. The server assigns it.
{% endhint %}

### Request example

{% code overflow="wrap" fullWidth="true" %}

```
cmd=custom_dictionary&action=create&lang=en_US&description=Engineering terms&wordlist=GraphQL,Kubernetes,TypeScript
```

{% endcode %}

### Response example

```json
{
  "result": [
    {
      "id": 101565,
      "lang": "en_US",
      "description": "Engineering terms",
      "wordlist": ["GraphQL", "Kubernetes", "TypeScript"],
      "status": "success",
      "message": ["Dictionary created."]
    }
  ]
}
```

### Possible errors

* Description already used: see [Errors reference](/v6.12.0/api-reference/custom-dictionary-api/errors-reference.md).
* Dictionary limit exceeded (HTTP 403).
* Dictionary file too large (HTTP 409).

### Notes and edge cases

* `wordlist` is optional.
* Words already recognized as correct can be filtered out.
* Save the returned `id`. All follow-up actions need it.
