# Usage # Zone ## Get DNS Record Usage `client.DNS.Usage.Zone.Get(ctx, query) (*UsageZoneGetResponse, error)` **get** `/zones/{zone_id}/dns_records/usage` Get the current DNS record usage for a zone, including the number of records and the quota limit. ### Parameters - `query UsageZoneGetParams` - `ZoneID param.Field[string]` Identifier. ### Returns - `type UsageZoneGetResponse struct{…}` - `RecordQuota int64` Maximum number of DNS records allowed for the zone. Null if using account-level quota. - `RecordUsage int64` Current number of DNS records in the zone. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/dns" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) zone, err := client.DNS.Usage.Zone.Get(context.TODO(), dns.UsageZoneGetParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", zone.RecordQuota) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "record_quota": 200, "record_usage": 150 } } ``` # Account ## Get DNS Record Usage for Account `client.DNS.Usage.Account.Get(ctx, query) (*UsageAccountGetResponse, error)` **get** `/accounts/{account_id}/dns_records/usage` Get the current DNS record usage and quota for an account. May include internal DNS usage and quota. ### Parameters - `query UsageAccountGetParams` - `AccountID param.Field[string]` Identifier. ### Returns - `type UsageAccountGetResponse struct{…}` - `RecordQuota int64` Maximum number of DNS records allowed across all public zones in the account. Null if using zone-level quota. - `RecordUsage int64` Current number of DNS records across all public zones in the account. - `InternalRecordQuota int64` Maximum number of DNS records allowed across all internal zones in the account. Only present if internal DNS is enabled. - `InternalRecordUsage int64` Current number of DNS records across all internal zones in the account. Only present if internal DNS is enabled. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/dns" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) account, err := client.DNS.Usage.Account.Get(context.TODO(), dns.UsageAccountGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", account.RecordQuota) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "record_quota": 1000000, "record_usage": 5000, "internal_record_quota": 1000000, "internal_record_usage": 5000 } } ```