# POST /license/register

> Register DS Server locally with a license string requested from the Text Control store: post RegistrationInfo with licenseString and renew as JSON.

- **Product:** DS Server
- **Section:** Documentation
- **Kind:** Endpoint
- **Path:** DS Server > API Reference > Web API > Licensing > /register > POST /license/register
- **664 words**
- **Web URL:** https://docs.textcontrol.com/ds-server/reference/web-api/licensing/register/post/
- **LLMs URL:** https://docs.textcontrol.com/ds-server/reference/web-api/licensing/register/post/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/ds-server/reference/web-api/licensing/register/post/llms-full.txt

---

`POST` `https://example.com/license/register`

### Description

Registers DS Server locally based on a given license string (not serial number). The **Register** button on the **Manually** tab of the admin portal's [Licensing](https://docs.textcontrol.com/ds-server/administration/licensing/llms-full.txt) page calls it.

### Examples

The following sample registers DS Server with a license string that was requested from the Text Control store with a license request string (see [GET /license/requeststring](https://docs.textcontrol.com/ds-server/reference/web-api/licensing/requeststring/get/llms-full.txt)).

```bash
# Request:
curl --request POST 'https://trial.dsserver.io/license/register' \
    --header 'Authorization: Basic e3t1c2VyX25hbWV9fTp7e3Bhc3N3b3JkfX0=' \
    --header 'Content-Type: application/json' \
    --data-raw '{
            "licenseString": "yourlicensestring"
        }'
```

### Authorization

This endpoint supports the Basic authorization method:

#### Basic

| Header field | Description |
|---|---|
| Authorization | The username "admin" and your admin password are combined into a string separated by a colon, e.g.: admin:password. The resulting string is encoded using the RFC2045-MIME variant of Base64, except not limited to 76 char/line. The authorization method and a space i.e. "Basic " is then put before the encoded string. For example: `Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l` |

### Request Payload

| Type | Value |
|---|---|
| RegistrationInfo | The RegistrationInfo object contains the given license string and information, if this request is a renewal or new installation. It is sent as JSON (`application/json`). |

#### RegistrationInfo

| Name | Type | Value | Optional |
|---|---|---|---|
| licenseString | String | The given license string. | no |
| renew | Boolean | Specifies whether this request is a new license or a renew request. **Default value is false.** | yes |

### Success Response

| Status | Description |
|---|---|
| 200 | On success, the HTTP status code in the response header is 200 (OK). |

### Error Response

| Status | Description |
|---|---|
| 401 | A 401 (Unauthorized) with an empty body and the header `WWW-Authenticate: Basic realm=Access to the Admin page` is returned, if the admin credentials are missing or wrong. |
| 400 | A 400 (Bad Request) with a plain text message (`text/plain`) is returned, if the registration failed: "Empty license string." without a `licenseString`, or the reason why the license string could not be read. |

---

## Nearby

- **Previous:** [/license/register](https://docs.textcontrol.com/ds-server/reference/web-api/licensing/register/llms-full.txt)
- **Next:** [/license/unregister](https://docs.textcontrol.com/ds-server/reference/web-api/licensing/unregister/llms-full.txt)
