# Client API: Domains

> Domain search, registration, renewals, nameservers, and locks.

Source: https://docs.coritan.com/api/reference/client/domains/

Domain search, registration, renewals, nameservers, and locks.

Base URL: `https://api.coritan.com/api/v1`. Paths below are complete.

To try these requests in the browser, open the [interactive Client API reference](https://api.coritan.com/docs).

## Operations

| Method | Path | Summary |
| --- | --- | --- |
| GET | [`/api/v1/domains/pricing`](#op-get-api-v1-domains-pricing) | Get available TLD pricing |
| POST | [`/api/v1/domains/register`](#op-post-api-v1-domains-register) | Register a new domain name |
| GET | [`/api/v1/domains/registrations`](#op-get-api-v1-domains-registrations) | List user's domain registrations |
| GET | [`/api/v1/domains/registrations/{reg_id}`](#op-get-api-v1-domains-registrations-reg-id) | Get details of a specific domain registration |
| GET | [`/api/v1/domains/registrations/{reg_id}/auth-code`](#op-get-api-v1-domains-registrations-reg-id-auth-code) | Get the EPP/auth code for domain transfer out |
| PUT | [`/api/v1/domains/registrations/{reg_id}/auto-renew`](#op-put-api-v1-domains-registrations-reg-id-auto-renew) | Toggle auto-renewal for a domain |
| PUT | [`/api/v1/domains/registrations/{reg_id}/lock`](#op-put-api-v1-domains-registrations-reg-id-lock) | Lock or unlock a domain |
| PUT | [`/api/v1/domains/registrations/{reg_id}/nameservers`](#op-put-api-v1-domains-registrations-reg-id-nameservers) | Update nameservers for a domain |
| POST | [`/api/v1/domains/registrations/{reg_id}/renew`](#op-post-api-v1-domains-registrations-reg-id-renew) | Request domain renewal |
| PUT | [`/api/v1/domains/registrations/{reg_id}/whois-privacy`](#op-put-api-v1-domains-registrations-reg-id-whois-privacy) | Toggle WHOIS privacy for a domain |
| POST | [`/api/v1/domains/search`](#op-post-api-v1-domains-search) | Check domain availability and pricing (includes markup) |
| POST | [`/api/v1/domains/transfer`](#op-post-api-v1-domains-transfer) | Initiate an inbound domain transfer |

### Get available TLD pricing {#op-get-api-v1-domains-pricing}

`GET /api/v1/domains/pricing`

Get available TLD pricing.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |

A `200` response is a list; each item has these fields:

| Field | Type |
| --- | --- |
| `[].tld` | string |
| `[].register_price` | string |
| `[].renew_price` | string |
| `[].transfer_price` | string or null |
| `[].currency` | string |

### Register a new domain name {#op-post-api-v1-domains-register}

`POST /api/v1/domains/register`

Register a new domain name. Charges user credit balance first, then provisions.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `domain` | string | yes |
| `duration` | integer | no |
| `nameservers` | array of string or null | no |
| `auto_ssl` | boolean | no |
| `auto_proxy` | boolean | no |
| `whois_privacy` | boolean | no |

#### Responses

| Status | Meaning |
| --- | --- |
| `201` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

Fields of a `201` response:

| Field | Type |
| --- | --- |
| `id` | integer |
| `domain` | string |
| `status` | string |
| `registered_at` | string (date-time) or null |
| `expires_at` | string (date-time) or null |
| `nameservers` | array of string or null |
| `whois_privacy` | boolean |
| `locked` | boolean |
| `auto_renew` | boolean |
| `auto_ssl` | boolean |
| `auto_proxy` | boolean |
| `dns_zone_id` | integer or null |
| `proxy_route_id` | integer or null |
| `ssl_certificate_id` | integer or null |

### List user's domain registrations {#op-get-api-v1-domains-registrations}

`GET /api/v1/domains/registrations`

List user's domain registrations.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `page` | query | integer | no | Default: `1`. |
| `per_page` | query | integer | no | Default: `25`. |
| `status` | query | string | no |  |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

Fields of a `200` response:

| Field | Type |
| --- | --- |
| `registrations` | array of DomainRegistrationResponse |
| `registrations[].id` | integer |
| `registrations[].domain` | string |
| `registrations[].status` | string |
| `registrations[].registered_at` | string (date-time) or null |
| `registrations[].expires_at` | string (date-time) or null |
| `registrations[].nameservers` | array of string or null |
| `registrations[].whois_privacy` | boolean |
| `registrations[].locked` | boolean |
| `registrations[].auto_renew` | boolean |
| `registrations[].auto_ssl` | boolean |
| `registrations[].auto_proxy` | boolean |
| `registrations[].dns_zone_id` | integer or null |
| `registrations[].proxy_route_id` | integer or null |
| `registrations[].ssl_certificate_id` | integer or null |
| `total` | integer |

### Get details of a specific domain registration {#op-get-api-v1-domains-registrations-reg-id}

`GET /api/v1/domains/registrations/{reg_id}`

Get details of a specific domain registration.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `reg_id` | path | integer | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

Fields of a `200` response:

| Field | Type |
| --- | --- |
| `id` | integer |
| `domain` | string |
| `status` | string |
| `registered_at` | string (date-time) or null |
| `expires_at` | string (date-time) or null |
| `nameservers` | array of string or null |
| `whois_privacy` | boolean |
| `locked` | boolean |
| `auto_renew` | boolean |
| `auto_ssl` | boolean |
| `auto_proxy` | boolean |
| `dns_zone_id` | integer or null |
| `proxy_route_id` | integer or null |
| `ssl_certificate_id` | integer or null |

### Get the EPP/auth code for domain transfer out {#op-get-api-v1-domains-registrations-reg-id-auth-code}

`GET /api/v1/domains/registrations/{reg_id}/auth-code`

Get the EPP/auth code for domain transfer out.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `reg_id` | path | integer | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Toggle auto-renewal for a domain {#op-put-api-v1-domains-registrations-reg-id-auto-renew}

`PUT /api/v1/domains/registrations/{reg_id}/auto-renew`

Toggle auto-renewal for a domain.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `reg_id` | path | integer | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `enabled` | boolean | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Lock or unlock a domain {#op-put-api-v1-domains-registrations-reg-id-lock}

`PUT /api/v1/domains/registrations/{reg_id}/lock`

Lock or unlock a domain.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `reg_id` | path | integer | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `enabled` | boolean | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Update nameservers for a domain {#op-put-api-v1-domains-registrations-reg-id-nameservers}

`PUT /api/v1/domains/registrations/{reg_id}/nameservers`

Update nameservers for a domain.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `reg_id` | path | integer | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `nameservers` | array of string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Request domain renewal {#op-post-api-v1-domains-registrations-reg-id-renew}

`POST /api/v1/domains/registrations/{reg_id}/renew`

Request domain renewal.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `reg_id` | path | integer | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `duration` | integer | no |

#### Responses

| Status | Meaning |
| --- | --- |
| `202` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Toggle WHOIS privacy for a domain {#op-put-api-v1-domains-registrations-reg-id-whois-privacy}

`PUT /api/v1/domains/registrations/{reg_id}/whois-privacy`

Toggle WHOIS privacy for a domain.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `reg_id` | path | integer | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `enabled` | boolean | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

### Check domain availability and pricing (includes markup) {#op-post-api-v1-domains-search}

`POST /api/v1/domains/search`

Check domain availability and pricing (includes markup).

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `domain` | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `200` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |

Fields of a `200` response:

| Field | Type |
| --- | --- |
| `domain` | string |
| `available` | boolean |
| `price` | string or null |
| `currency` | string |
| `premium` | boolean |

### Initiate an inbound domain transfer {#op-post-api-v1-domains-transfer}

`POST /api/v1/domains/transfer`

Initiate an inbound domain transfer.

Authentication: an access token, sent as `Authorization: Bearer <token>`.

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `domain` | string | yes |
| `auth_code` | string | yes |

#### Responses

| Status | Meaning |
| --- | --- |
| `202` | Success. |
| `422` | The request is not valid. `detail` lists each problem. |
