# Organization API: DNS

> Org-scoped authoritative DNS zones, records, DNSSEC, import/export, and geo load balancers.

Source: https://www.coritan.com/docs/api/reference/organizations/dns/

Org-scoped authoritative DNS zones, records, DNSSEC, import/export, and geo load balancers.

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

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

## Operations

| Method | Path | Summary |
| --- | --- | --- |
| GET | [`/api/v1/orgs/{org_slug}/dns/lb-regions`](#op-get-api-v1-orgs-org-slug-dns-lb-regions) | Org list LB regions |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones`](#op-get-api-v1-orgs-org-slug-dns-zones) | List zones |
| POST | [`/api/v1/orgs/{org_slug}/dns/zones`](#op-post-api-v1-orgs-org-slug-dns-zones) | Create zone |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id) | Get zone |
| PATCH | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}`](#op-patch-api-v1-orgs-org-slug-dns-zones-zone-id) | Update zone |
| DELETE | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}`](#op-delete-api-v1-orgs-org-slug-dns-zones-zone-id) | Delete zone |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/dnssec`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-dnssec) | Get DNSSEC info |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/export`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-export) | Export zone |
| POST | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/import`](#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-import) | Import zone |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/lb-pools`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-lb-pools) | List LB pools |
| POST | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/lb-pools`](#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-lb-pools) | Create LB pool |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/lb-pools/{pool_id}`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-lb-pools-pool-id) | Get LB pool |
| PATCH | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/lb-pools/{pool_id}`](#op-patch-api-v1-orgs-org-slug-dns-zones-zone-id-lb-pools-pool-id) | Update LB pool |
| DELETE | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/lb-pools/{pool_id}`](#op-delete-api-v1-orgs-org-slug-dns-zones-zone-id-lb-pools-pool-id) | Delete LB pool |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers) | Org list lbs |
| POST | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers`](#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers) | Org create LB |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers/{lb_id}`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers-lb-id) | Org get LB |
| PATCH | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers/{lb_id}`](#op-patch-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers-lb-id) | Org update LB |
| DELETE | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers/{lb_id}`](#op-delete-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers-lb-id) | Org delete LB |
| POST | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers/{lb_id}/preview`](#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers-lb-id-preview) | Org preview LB |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/pools`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-pools) | Org list pools |
| POST | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/pools`](#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-pools) | Org create pool |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/pools/{pool_id}`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-pools-pool-id) | Org get pool |
| PATCH | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/pools/{pool_id}`](#op-patch-api-v1-orgs-org-slug-dns-zones-zone-id-pools-pool-id) | Org update pool |
| DELETE | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/pools/{pool_id}`](#op-delete-api-v1-orgs-org-slug-dns-zones-zone-id-pools-pool-id) | Org delete pool |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/records`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-records) | List records |
| POST | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/records`](#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-records) | Create record |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/records/{record_id}`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-records-record-id) | Get record |
| PUT | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/records/{record_id}`](#op-put-api-v1-orgs-org-slug-dns-zones-zone-id-records-record-id) | Update record |
| DELETE | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/records/{record_id}`](#op-delete-api-v1-orgs-org-slug-dns-zones-zone-id-records-record-id) | Delete record |
| GET | [`/api/v1/orgs/{org_slug}/dns/zones/{zone_id}/stats`](#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-stats) | Get zone stats |

### Org list LB regions {#op-get-api-v1-orgs-org-slug-dns-lb-regions}

`GET /api/v1/orgs/{org_slug}/dns/lb-regions`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `org_slug` | path | string | yes |

#### Responses

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

### List zones {#op-get-api-v1-orgs-org-slug-dns-zones}

`GET /api/v1/orgs/{org_slug}/dns/zones`

#### Parameters

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

#### Responses

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

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

| Field | Type |
| --- | --- |
| `[].id` | integer |
| `[].service_id` | integer or null |
| `[].user_id` | integer |
| `[].org_id` | integer or null |
| `[].domain` | string |
| `[].status` | string |
| `[].dnssec_enabled` | boolean |
| `[].serial` | integer |
| `[].soa_email` | string |
| `[].record_count` | integer or null |
| `[].created_at` | string (date-time) |
| `[].updated_at` | string (date-time) |

### Create zone {#op-post-api-v1-orgs-org-slug-dns-zones}

`POST /api/v1/orgs/{org_slug}/dns/zones`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

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

#### Responses

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

Fields of a `201` response:

| Field | Type |
| --- | --- |
| `id` | integer |
| `service_id` | integer or null |
| `user_id` | integer |
| `org_id` | integer or null |
| `domain` | string |
| `status` | string |
| `dnssec_enabled` | boolean |
| `serial` | integer |
| `soa_email` | string |
| `record_count` | integer or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Get zone {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | 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 |
| `service_id` | integer or null |
| `user_id` | integer |
| `org_id` | integer or null |
| `domain` | string |
| `status` | string |
| `dnssec_enabled` | boolean |
| `serial` | integer |
| `soa_email` | string |
| `record_count` | integer or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Update zone {#op-patch-api-v1-orgs-org-slug-dns-zones-zone-id}

`PATCH /api/v1/orgs/{org_slug}/dns/zones/{zone_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `soa_email` | string or null | no |

#### Responses

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

Fields of a `200` response:

| Field | Type |
| --- | --- |
| `id` | integer |
| `service_id` | integer or null |
| `user_id` | integer |
| `org_id` | integer or null |
| `domain` | string |
| `status` | string |
| `dnssec_enabled` | boolean |
| `serial` | integer |
| `soa_email` | string |
| `record_count` | integer or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Delete zone {#op-delete-api-v1-orgs-org-slug-dns-zones-zone-id}

`DELETE /api/v1/orgs/{org_slug}/dns/zones/{zone_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Responses

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

### Get DNSSEC info {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-dnssec}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/dnssec`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Responses

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

Fields of a `200` response:

| Field | Type |
| --- | --- |
| `enabled` | boolean |
| `algorithm` | string |
| `ksk_key_tag` | integer or null |
| `zsk_key_tag` | integer or null |
| `ds_records` | array of string |
| `zsk_rotated_at` | string (date-time) or null |

### Export zone {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-export}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/export`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Responses

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

### Import zone {#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-import}

`POST /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/import`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

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

#### Responses

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

### List LB pools {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-lb-pools}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/lb-pools`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Responses

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

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

| Field | Type |
| --- | --- |
| `[].id` | integer |
| `[].zone_id` | integer |
| `[].name` | string |
| `[].description` | string or null |
| `[].hostname` | string or null |
| `[].algorithm` | string |
| `[].ttl` | integer |
| `[].session_affinity` | string |
| `[].primary_location_code` | string or null |
| `[].enabled` | boolean |
| `[].members` | array of LbMemberResponse |
| `[].members[].id` | integer |
| `[].members[].pool_id` | integer |
| `[].members[].address` | string |
| `[].members[].address_type` | string |
| `[].members[].weight` | integer |
| `[].members[].priority` | integer |
| `[].members[].enabled` | boolean |
| `[].members[].health_mode` | string |
| `[].members[].health_port` | integer or null |
| `[].members[].health_path` | string |
| `[].members[].health_interval_s` | integer |
| `[].members[].health_timeout_s` | integer |
| `[].members[].health_status` | string |
| `[].members[].last_check_at` | string (date-time) or null |
| `[].members[].last_error` | string or null |
| `[].members[].created_at` | string (date-time) |
| `[].members[].updated_at` | string (date-time) |
| `[].healthy_members` | integer or null |
| `[].total_members` | integer or null |
| `[].created_at` | string (date-time) |
| `[].updated_at` | string (date-time) |

### Create LB pool {#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-lb-pools}

`POST /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/lb-pools`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `name` | string | yes |
| `description` | string or null | no |
| `hostname` | string or null | no |
| `algorithm` | string | no |
| `ttl` | integer | no |
| `session_affinity` | string | no |
| `primary_location_code` | string or null | no |
| `enabled` | 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 |
| `zone_id` | integer |
| `name` | string |
| `description` | string or null |
| `hostname` | string or null |
| `algorithm` | string |
| `ttl` | integer |
| `session_affinity` | string |
| `primary_location_code` | string or null |
| `enabled` | boolean |
| `members` | array of LbMemberResponse |
| `members[].id` | integer |
| `members[].pool_id` | integer |
| `members[].address` | string |
| `members[].address_type` | string |
| `members[].weight` | integer |
| `members[].priority` | integer |
| `members[].enabled` | boolean |
| `members[].health_mode` | string |
| `members[].health_port` | integer or null |
| `members[].health_path` | string |
| `members[].health_interval_s` | integer |
| `members[].health_timeout_s` | integer |
| `members[].health_status` | string |
| `members[].last_check_at` | string (date-time) or null |
| `members[].last_error` | string or null |
| `members[].created_at` | string (date-time) |
| `members[].updated_at` | string (date-time) |
| `healthy_members` | integer or null |
| `total_members` | integer or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Get LB pool {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-lb-pools-pool-id}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/lb-pools/{pool_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `pool_id` | path | integer | yes |
| `org_slug` | path | string | 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 |
| `zone_id` | integer |
| `name` | string |
| `description` | string or null |
| `hostname` | string or null |
| `algorithm` | string |
| `ttl` | integer |
| `session_affinity` | string |
| `primary_location_code` | string or null |
| `enabled` | boolean |
| `members` | array of LbMemberResponse |
| `members[].id` | integer |
| `members[].pool_id` | integer |
| `members[].address` | string |
| `members[].address_type` | string |
| `members[].weight` | integer |
| `members[].priority` | integer |
| `members[].enabled` | boolean |
| `members[].health_mode` | string |
| `members[].health_port` | integer or null |
| `members[].health_path` | string |
| `members[].health_interval_s` | integer |
| `members[].health_timeout_s` | integer |
| `members[].health_status` | string |
| `members[].last_check_at` | string (date-time) or null |
| `members[].last_error` | string or null |
| `members[].created_at` | string (date-time) |
| `members[].updated_at` | string (date-time) |
| `healthy_members` | integer or null |
| `total_members` | integer or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Update LB pool {#op-patch-api-v1-orgs-org-slug-dns-zones-zone-id-lb-pools-pool-id}

`PATCH /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/lb-pools/{pool_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `pool_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `name` | string or null | no |
| `description` | string or null | no |
| `algorithm` | string or null | no |
| `ttl` | integer or null | no |
| `session_affinity` | string or null | no |
| `primary_location_code` | string or null | no |
| `enabled` | boolean or null | no |

#### Responses

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

Fields of a `200` response:

| Field | Type |
| --- | --- |
| `id` | integer |
| `zone_id` | integer |
| `name` | string |
| `description` | string or null |
| `hostname` | string or null |
| `algorithm` | string |
| `ttl` | integer |
| `session_affinity` | string |
| `primary_location_code` | string or null |
| `enabled` | boolean |
| `members` | array of LbMemberResponse |
| `members[].id` | integer |
| `members[].pool_id` | integer |
| `members[].address` | string |
| `members[].address_type` | string |
| `members[].weight` | integer |
| `members[].priority` | integer |
| `members[].enabled` | boolean |
| `members[].health_mode` | string |
| `members[].health_port` | integer or null |
| `members[].health_path` | string |
| `members[].health_interval_s` | integer |
| `members[].health_timeout_s` | integer |
| `members[].health_status` | string |
| `members[].last_check_at` | string (date-time) or null |
| `members[].last_error` | string or null |
| `members[].created_at` | string (date-time) |
| `members[].updated_at` | string (date-time) |
| `healthy_members` | integer or null |
| `total_members` | integer or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Delete LB pool {#op-delete-api-v1-orgs-org-slug-dns-zones-zone-id-lb-pools-pool-id}

`DELETE /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/lb-pools/{pool_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `pool_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Responses

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

### Org list lbs {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Responses

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

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

| Field | Type |
| --- | --- |
| `[].id` | integer |
| `[].zone_id` | integer |
| `[].name` | string |
| `[].hostname` | string |
| `[].enabled` | boolean |
| `[].ttl` | integer |
| `[].session_affinity` | string |
| `[].steering_policy` | string |
| `[].location_strategy` | string |
| `[].fallback_pool_id` | integer or null |
| `[].default_pools` | array of integer |
| `[].location_pools` | Location Pools |
| `[].country_pools` | Country Pools |
| `[].region_pools` | Region Pools |
| `[].created_at` | string (date-time) |
| `[].updated_at` | string (date-time) |

### Org create LB {#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers}

`POST /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `name` | string | yes |
| `hostname` | string | yes |
| `ttl` | integer | no |
| `session_affinity` | string | no |
| `steering_policy` | string | no |
| `location_strategy` | string | no |
| `default_pools` | array of integer | no |
| `fallback_pool_id` | integer or null | no |
| `location_pools` | Location Pools | no |
| `country_pools` | Country Pools | no |
| `region_pools` | Region Pools | no |
| `enabled` | 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 |
| `zone_id` | integer |
| `name` | string |
| `hostname` | string |
| `enabled` | boolean |
| `ttl` | integer |
| `session_affinity` | string |
| `steering_policy` | string |
| `location_strategy` | string |
| `fallback_pool_id` | integer or null |
| `default_pools` | array of integer |
| `location_pools` | Location Pools |
| `country_pools` | Country Pools |
| `region_pools` | Region Pools |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Org get LB {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers-lb-id}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers/{lb_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `lb_id` | path | integer | yes |
| `org_slug` | path | string | 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 |
| `zone_id` | integer |
| `name` | string |
| `hostname` | string |
| `enabled` | boolean |
| `ttl` | integer |
| `session_affinity` | string |
| `steering_policy` | string |
| `location_strategy` | string |
| `fallback_pool_id` | integer or null |
| `default_pools` | array of integer |
| `location_pools` | Location Pools |
| `country_pools` | Country Pools |
| `region_pools` | Region Pools |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Org update LB {#op-patch-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers-lb-id}

`PATCH /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers/{lb_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `lb_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `name` | string or null | no |
| `hostname` | string or null | no |
| `ttl` | integer or null | no |
| `session_affinity` | string or null | no |
| `steering_policy` | string or null | no |
| `location_strategy` | string or null | no |
| `default_pools` | array of integer or null | no |
| `fallback_pool_id` | integer or null | no |
| `location_pools` | object or null | no |
| `country_pools` | object or null | no |
| `region_pools` | object or null | no |
| `enabled` | boolean or null | no |

#### Responses

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

Fields of a `200` response:

| Field | Type |
| --- | --- |
| `id` | integer |
| `zone_id` | integer |
| `name` | string |
| `hostname` | string |
| `enabled` | boolean |
| `ttl` | integer |
| `session_affinity` | string |
| `steering_policy` | string |
| `location_strategy` | string |
| `fallback_pool_id` | integer or null |
| `default_pools` | array of integer |
| `location_pools` | Location Pools |
| `country_pools` | Country Pools |
| `region_pools` | Region Pools |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Org delete LB {#op-delete-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers-lb-id}

`DELETE /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers/{lb_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `lb_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Responses

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

### Org preview LB {#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-load-balancers-lb-id-preview}

`POST /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/load-balancers/{lb_id}/preview`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `lb_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `from_location` | string or null | no |
| `from_ip` | string or null | no |
| `qtype` | string | no |

#### Responses

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

### Org list pools {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-pools}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/pools`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Responses

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

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

| Field | Type |
| --- | --- |
| `[].id` | integer |
| `[].zone_id` | integer |
| `[].name` | string |
| `[].description` | string or null |
| `[].hostname` | string or null |
| `[].algorithm` | string |
| `[].ttl` | integer |
| `[].session_affinity` | string |
| `[].primary_location_code` | string or null |
| `[].enabled` | boolean |
| `[].members` | array of LbMemberResponse |
| `[].members[].id` | integer |
| `[].members[].pool_id` | integer |
| `[].members[].address` | string |
| `[].members[].address_type` | string |
| `[].members[].weight` | integer |
| `[].members[].priority` | integer |
| `[].members[].enabled` | boolean |
| `[].members[].health_mode` | string |
| `[].members[].health_port` | integer or null |
| `[].members[].health_path` | string |
| `[].members[].health_interval_s` | integer |
| `[].members[].health_timeout_s` | integer |
| `[].members[].health_status` | string |
| `[].members[].last_check_at` | string (date-time) or null |
| `[].members[].last_error` | string or null |
| `[].members[].created_at` | string (date-time) |
| `[].members[].updated_at` | string (date-time) |
| `[].healthy_members` | integer or null |
| `[].total_members` | integer or null |
| `[].created_at` | string (date-time) |
| `[].updated_at` | string (date-time) |

### Org create pool {#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-pools}

`POST /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/pools`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `name` | string | yes |
| `description` | string or null | no |
| `hostname` | string or null | no |
| `algorithm` | string | no |
| `ttl` | integer | no |
| `session_affinity` | string | no |
| `primary_location_code` | string or null | no |
| `enabled` | 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 |
| `zone_id` | integer |
| `name` | string |
| `description` | string or null |
| `hostname` | string or null |
| `algorithm` | string |
| `ttl` | integer |
| `session_affinity` | string |
| `primary_location_code` | string or null |
| `enabled` | boolean |
| `members` | array of LbMemberResponse |
| `members[].id` | integer |
| `members[].pool_id` | integer |
| `members[].address` | string |
| `members[].address_type` | string |
| `members[].weight` | integer |
| `members[].priority` | integer |
| `members[].enabled` | boolean |
| `members[].health_mode` | string |
| `members[].health_port` | integer or null |
| `members[].health_path` | string |
| `members[].health_interval_s` | integer |
| `members[].health_timeout_s` | integer |
| `members[].health_status` | string |
| `members[].last_check_at` | string (date-time) or null |
| `members[].last_error` | string or null |
| `members[].created_at` | string (date-time) |
| `members[].updated_at` | string (date-time) |
| `healthy_members` | integer or null |
| `total_members` | integer or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Org get pool {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-pools-pool-id}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/pools/{pool_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `pool_id` | path | integer | yes |
| `org_slug` | path | string | 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 |
| `zone_id` | integer |
| `name` | string |
| `description` | string or null |
| `hostname` | string or null |
| `algorithm` | string |
| `ttl` | integer |
| `session_affinity` | string |
| `primary_location_code` | string or null |
| `enabled` | boolean |
| `members` | array of LbMemberResponse |
| `members[].id` | integer |
| `members[].pool_id` | integer |
| `members[].address` | string |
| `members[].address_type` | string |
| `members[].weight` | integer |
| `members[].priority` | integer |
| `members[].enabled` | boolean |
| `members[].health_mode` | string |
| `members[].health_port` | integer or null |
| `members[].health_path` | string |
| `members[].health_interval_s` | integer |
| `members[].health_timeout_s` | integer |
| `members[].health_status` | string |
| `members[].last_check_at` | string (date-time) or null |
| `members[].last_error` | string or null |
| `members[].created_at` | string (date-time) |
| `members[].updated_at` | string (date-time) |
| `healthy_members` | integer or null |
| `total_members` | integer or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Org update pool {#op-patch-api-v1-orgs-org-slug-dns-zones-zone-id-pools-pool-id}

`PATCH /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/pools/{pool_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `pool_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `name` | string or null | no |
| `description` | string or null | no |
| `algorithm` | string or null | no |
| `ttl` | integer or null | no |
| `session_affinity` | string or null | no |
| `primary_location_code` | string or null | no |
| `enabled` | boolean or null | no |

#### Responses

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

Fields of a `200` response:

| Field | Type |
| --- | --- |
| `id` | integer |
| `zone_id` | integer |
| `name` | string |
| `description` | string or null |
| `hostname` | string or null |
| `algorithm` | string |
| `ttl` | integer |
| `session_affinity` | string |
| `primary_location_code` | string or null |
| `enabled` | boolean |
| `members` | array of LbMemberResponse |
| `members[].id` | integer |
| `members[].pool_id` | integer |
| `members[].address` | string |
| `members[].address_type` | string |
| `members[].weight` | integer |
| `members[].priority` | integer |
| `members[].enabled` | boolean |
| `members[].health_mode` | string |
| `members[].health_port` | integer or null |
| `members[].health_path` | string |
| `members[].health_interval_s` | integer |
| `members[].health_timeout_s` | integer |
| `members[].health_status` | string |
| `members[].last_check_at` | string (date-time) or null |
| `members[].last_error` | string or null |
| `members[].created_at` | string (date-time) |
| `members[].updated_at` | string (date-time) |
| `healthy_members` | integer or null |
| `total_members` | integer or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Org delete pool {#op-delete-api-v1-orgs-org-slug-dns-zones-zone-id-pools-pool-id}

`DELETE /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/pools/{pool_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `pool_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Responses

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

### List records {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-records}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/records`

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `zone_id` | path | integer | yes |  |
| `org_slug` | path | string | yes |  |
| `record_type` | query | string | no |  |
| `name` | query | string | no |  |
| `page` | query | integer | no | Default: `1`. |
| `per_page` | query | integer | no | Default: `100`. |

#### Responses

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

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

| Field | Type |
| --- | --- |
| `[].id` | integer |
| `[].zone_id` | integer |
| `[].name` | string |
| `[].record_type` | string |
| `[].content` | string |
| `[].ttl` | integer |
| `[].priority` | integer or null |
| `[].weight` | integer or null |
| `[].port` | integer or null |
| `[].proxied` | boolean |
| `[].comment` | string or null |
| `[].created_at` | string (date-time) |
| `[].updated_at` | string (date-time) |

### Create record {#op-post-api-v1-orgs-org-slug-dns-zones-zone-id-records}

`POST /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/records`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `name` | string | yes |
| `record_type` | string | yes |
| `content` | string | yes |
| `ttl` | integer | no |
| `priority` | integer or null | no |
| `weight` | integer or null | no |
| `port` | integer or null | no |
| `proxied` | boolean | no |
| `comment` | string or null | 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 |
| `zone_id` | integer |
| `name` | string |
| `record_type` | string |
| `content` | string |
| `ttl` | integer |
| `priority` | integer or null |
| `weight` | integer or null |
| `port` | integer or null |
| `proxied` | boolean |
| `comment` | string or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Get record {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-records-record-id}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/records/{record_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `record_id` | path | integer | yes |
| `org_slug` | path | string | 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 |
| `zone_id` | integer |
| `name` | string |
| `record_type` | string |
| `content` | string |
| `ttl` | integer |
| `priority` | integer or null |
| `weight` | integer or null |
| `port` | integer or null |
| `proxied` | boolean |
| `comment` | string or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Update record {#op-put-api-v1-orgs-org-slug-dns-zones-zone-id-records-record-id}

`PUT /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/records/{record_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `record_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Request body

`application/json` (required)

| Field | Type | Required |
| --- | --- | --- |
| `content` | string or null | no |
| `ttl` | integer or null | no |
| `priority` | integer or null | no |
| `weight` | integer or null | no |
| `port` | integer or null | no |
| `proxied` | boolean or null | no |
| `comment` | string or null | no |

#### Responses

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

Fields of a `200` response:

| Field | Type |
| --- | --- |
| `id` | integer |
| `zone_id` | integer |
| `name` | string |
| `record_type` | string |
| `content` | string |
| `ttl` | integer |
| `priority` | integer or null |
| `weight` | integer or null |
| `port` | integer or null |
| `proxied` | boolean |
| `comment` | string or null |
| `created_at` | string (date-time) |
| `updated_at` | string (date-time) |

### Delete record {#op-delete-api-v1-orgs-org-slug-dns-zones-zone-id-records-record-id}

`DELETE /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/records/{record_id}`

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `zone_id` | path | integer | yes |
| `record_id` | path | integer | yes |
| `org_slug` | path | string | yes |

#### Responses

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

### Get zone stats {#op-get-api-v1-orgs-org-slug-dns-zones-zone-id-stats}

`GET /api/v1/orgs/{org_slug}/dns/zones/{zone_id}/stats`

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `zone_id` | path | integer | yes |  |
| `org_slug` | path | string | yes |  |
| `hours` | query | integer | no | Default: `24`. |

#### Responses

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

Fields of a `200` response:

| Field | Type |
| --- | --- |
| `zone_id` | integer |
| `period_hours` | integer |
| `total_queries` | integer |
| `noerror` | integer |
| `nxdomain` | integer |
| `servfail` | integer |
| `by_type` | By Type |
| `hourly` | array of object |
