# `createLicensee`

Create

Creates a licensee on a key and returns it with its generated `sl_` key. The key must be enabled for sublicensing.

## Endpoint

`POST /keys/{key}/licensees`

See the [API reference](/docs/api/create-licensee.md) for this endpoint.

This operation needs a Management Key. Set it as `userToken` on the client, which sends it in the `Authorization` header. See [setup](/docs/sdks/typescript/setup.md).

## Import

```ts
import { createLicensee } from "@ideal-postcodes/sdk";
```

## Path Parameters

| Name  | Type     | Required | Description                                        |
| ----- | -------- | -------- | -------------------------------------------------- |
| `key` | `string` | yes      | **API Key** The API Key to retrieve. Begins `ak_`. |

## Query Parameters

*None.*

## Request Body

```ts
LicenseeEditable
```

## Response Type

```ts
import type { CreateLicenseeResponse } from "@ideal-postcodes/sdk";
```

## Errors

HTTP errors throw an `ApiError` with the HTTP `status` and the API error `code` and `message`. Network failures and aborts reject with the runtime's native error. Pass `throwOnError: false` to get `{ data, error }` instead. See [error handling](/docs/sdks/typescript/errors.md).

## Example

create-licensee.tsts

```ts
import { createIdpcClient, createLicensee } from "@ideal-postcodes/sdk";

export const example = async () => {
  const client = createIdpcClient({
    apiKey: "ak_test",
    userToken: "uk_example",
  });
  const { data } = await createLicensee({
    client,
    path: { key: "ak_test" },
    body: { name: "Example Company" },
  });
  return data;
};
```
