---
title: Get Custom Hostname Quota
---

[Skip to content](#%5Ftop) 

[API Reference](https://developers.cloudflare.com/api/go)

[Custom Hostnames](https://developers.cloudflare.com/api/go/resources/custom%5Fhostnames)

[Quota](https://developers.cloudflare.com/api/go/resources/custom%5Fhostnames/subresources/quota)

Copy Markdown

Open in **Claude**

Open in **ChatGPT**

Open in **Cursor**

---

**Copy Markdown**

**View as Markdown**

# Get Custom Hostname Quota

client.CustomHostnames.Quota.Get(ctx, query) (\*[QuotaGetResponse](https://developers.cloudflare.com/api/go/resources/custom%5Fhostnames#%28resource%29%20custom%5Fhostnames.quota%20%3E%20%28model%29%20QuotaGetResponse%20%3E%20%28schema%29), error)

GET/zones/{zone\_id}/custom\_hostnames/quota

Returns custom hostname quota usage for a zone. The allocated quota is a soft limit; creating custom hostnames after usage exceeds this limit can still succeed until the hard cap is reached. Use the exceeded and hard\_cap fields to track when usage is above the soft limit and when new custom hostname creation will be rejected.

##### Security

API Token

The preferred authorization scheme for interacting with the Cloudflare API. [Create a token](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/).

**Example:**`Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY`

API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

**Example:**`X-Auth-Email: user@example.com`

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

**Example:**`X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194`

##### Accepted Permissions (at least one required)

`SSL and Certificates Write` `SSL and Certificates Read`

##### ParametersExpand Collapse 

query QuotaGetParams

ZoneID param.Field\[string\]

Identifier.

maxLength32

##### ReturnsExpand Collapse 

type QuotaGetResponse struct{…}

Allocated int64

The allocated custom hostname quota.

formatint64

Exceeded bool

Whether the current usage has exceeded the allocated quota.

HardCap int64

The maximum number of custom hostnames allowed before create requests are rejected.

formatint64

Used int64

The number of custom hostnames currently in use.

formatint64

### Get Custom Hostname Quota

Go

HTTPHTTP

TypeScriptTypeScript

PythonPython

GoGo

TerraformTerraform

```
package main

import (
  "context"
  "fmt"

  "github.com/cloudflare/cloudflare-go"
  "github.com/cloudflare/cloudflare-go/custom_hostnames"
  "github.com/cloudflare/cloudflare-go/option"
)

func main() {
  client := cloudflare.NewClient(
    option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
  )
  quota, err := client.CustomHostnames.Quota.Get(context.TODO(), custom_hostnames.QuotaGetParams{
    ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", quota.Allocated)
}

```

200 example

```
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    "string"
  ],
  "success": true,
  "result": {
    "allocated": 100,
    "exceeded": false,
    "hard_cap": 200,
    "used": 50
  }
}
```

##### Returns Examples

200 example

```
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    "string"
  ],
  "success": true,
  "result": {
    "allocated": 100,
    "exceeded": false,
    "hard_cap": 200,
    "used": 50
  }
}
```