## List DNS Records `client.DNS.Records.List(ctx, params) (*V4PagePaginationArray[RecordResponse], error)` **get** `/zones/{zone_id}/dns_records` List, search, sort, and filter a zones' DNS records. ### Parameters - `params RecordListParams` - `ZoneID param.Field[string]` Path param: Identifier. - `Comment param.Field[RecordListParamsComment]` Query param - `Absent string` If this parameter is present, only records *without* a comment are returned. - `Contains string` Substring of the DNS record comment. Comment filters are case-insensitive. - `Endswith string` Suffix of the DNS record comment. Comment filters are case-insensitive. - `Exact string` Exact value of the DNS record comment. Comment filters are case-insensitive. - `Present string` If this parameter is present, only records *with* a comment are returned. - `Startswith string` Prefix of the DNS record comment. Comment filters are case-insensitive. - `Content param.Field[RecordListParamsContent]` Query param - `Contains string` Substring of the DNS record content. Content filters are case-insensitive. - `Endswith string` Suffix of the DNS record content. Content filters are case-insensitive. - `Exact string` Exact value of the DNS record content. Content filters are case-insensitive. - `Startswith string` Prefix of the DNS record content. Content filters are case-insensitive. - `Direction param.Field[SortDirection]` Query param: Direction to order DNS records in. - `Match param.Field[RecordListParamsMatch]` Query param: Whether to match all search requirements or at least one (any). If set to `all`, acts like a logical AND between filters. If set to `any`, acts like a logical OR instead. Note that the interaction between tag filters is controlled by the `tag-match` parameter instead. - `const RecordListParamsMatchAny RecordListParamsMatch = "any"` - `const RecordListParamsMatchAll RecordListParamsMatch = "all"` - `Name param.Field[RecordListParamsName]` Query param - `Contains string` Substring of the DNS record name. Name filters are case-insensitive. - `Endswith string` Suffix of the DNS record name. Name filters are case-insensitive. - `Exact string` Exact value of the DNS record name. Name filters are case-insensitive. - `Startswith string` Prefix of the DNS record name. Name filters are case-insensitive. - `Order param.Field[RecordListParamsOrder]` Query param: Field to order DNS records by. - `const RecordListParamsOrderType RecordListParamsOrder = "type"` - `const RecordListParamsOrderName RecordListParamsOrder = "name"` - `const RecordListParamsOrderContent RecordListParamsOrder = "content"` - `const RecordListParamsOrderTTL RecordListParamsOrder = "ttl"` - `const RecordListParamsOrderProxied RecordListParamsOrder = "proxied"` - `Page param.Field[float64]` Query param: Page number of paginated results. - `PerPage param.Field[float64]` Query param: Number of DNS records per page. - `Proxied param.Field[bool]` Query param: Whether the record is receiving the performance and security benefits of Cloudflare. - `Search param.Field[string]` Query param: Allows searching in multiple properties of a DNS record simultaneously. This parameter is intended for human users, not automation. Its exact behavior is intentionally left unspecified and is subject to change in the future. This parameter works independently of the `match` setting. For automated searches, please use the other available parameters. - `Tag param.Field[RecordListParamsTag]` Query param - `Absent string` Name of a tag which must *not* be present on the DNS record. Tag filters are case-insensitive. - `Contains string` A tag and value, of the form `:`. The API will only return DNS records that have a tag named `` whose value contains ``. Tag filters are case-insensitive. - `Endswith string` A tag and value, of the form `:`. The API will only return DNS records that have a tag named `` whose value ends with ``. Tag filters are case-insensitive. - `Exact string` A tag and value, of the form `:`. The API will only return DNS records that have a tag named `` whose value is ``. Tag filters are case-insensitive. - `Present string` Name of a tag which must be present on the DNS record. Tag filters are case-insensitive. - `Startswith string` A tag and value, of the form `:`. The API will only return DNS records that have a tag named `` whose value starts with ``. Tag filters are case-insensitive. - `TagMatch param.Field[RecordListParamsTagMatch]` Query param: Whether to match all tag search requirements or at least one (any). If set to `all`, acts like a logical AND between tag filters. If set to `any`, acts like a logical OR instead. Note that the regular `match` parameter is still used to combine the resulting condition with other filters that aren't related to tags. - `const RecordListParamsTagMatchAny RecordListParamsTagMatch = "any"` - `const RecordListParamsTagMatchAll RecordListParamsTagMatch = "all"` - `Type param.Field[RecordListParamsType]` Query param: Record type. - `const RecordListParamsTypeA RecordListParamsType = "A"` - `const RecordListParamsTypeAAAA RecordListParamsType = "AAAA"` - `const RecordListParamsTypeCAA RecordListParamsType = "CAA"` - `const RecordListParamsTypeCERT RecordListParamsType = "CERT"` - `const RecordListParamsTypeCNAME RecordListParamsType = "CNAME"` - `const RecordListParamsTypeDNSKEY RecordListParamsType = "DNSKEY"` - `const RecordListParamsTypeDS RecordListParamsType = "DS"` - `const RecordListParamsTypeHTTPS RecordListParamsType = "HTTPS"` - `const RecordListParamsTypeLOC RecordListParamsType = "LOC"` - `const RecordListParamsTypeMX RecordListParamsType = "MX"` - `const RecordListParamsTypeNAPTR RecordListParamsType = "NAPTR"` - `const RecordListParamsTypeNS RecordListParamsType = "NS"` - `const RecordListParamsTypeOpenpgpkey RecordListParamsType = "OPENPGPKEY"` - `const RecordListParamsTypePTR RecordListParamsType = "PTR"` - `const RecordListParamsTypeSMIMEA RecordListParamsType = "SMIMEA"` - `const RecordListParamsTypeSRV RecordListParamsType = "SRV"` - `const RecordListParamsTypeSSHFP RecordListParamsType = "SSHFP"` - `const RecordListParamsTypeSVCB RecordListParamsType = "SVCB"` - `const RecordListParamsTypeTLSA RecordListParamsType = "TLSA"` - `const RecordListParamsTypeTXT RecordListParamsType = "TXT"` - `const RecordListParamsTypeURI RecordListParamsType = "URI"` ### Returns - `type RecordResponse interface{…}` - `type RecordResponseA struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseAAAA struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseCNAME struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseMX struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseNS struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseOpenpgpkey struct{…}` - `ID string` Identifier. - `Comment string` Comments or notes about the DNS record. This field has no effect on DNS responses. - `Content string` A single Base64-encoded OpenPGP Transferable Public Key (RFC 4880 Section 11.1) - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Name string` Complete DNS record name, including the zone name, in Punycode. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `Proxied bool` Whether the record is receiving the performance and security benefits of Cloudflare. - `Settings RecordResponseOpenpgpkeySettings` Settings for the DNS record. - `IPV4Only bool` When enabled, only A records will be generated, and AAAA records will not be created. This setting is intended for exceptional cases. Note that this option only applies to proxied records and it has no effect on whether Cloudflare communicates with the origin using IPv4 or IPv6. - `IPV6Only bool` When enabled, only AAAA records will be generated, and A records will not be created. This setting is intended for exceptional cases. Note that this option only applies to proxied records and it has no effect on whether Cloudflare communicates with the origin using IPv4 or IPv6. - `Tags []RecordTags` Custom tags for the DNS record. This field has no effect on DNS responses. - `TTL TTL` Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'. Value must be between 60 and 86400, with the minimum reduced to 30 for Enterprise zones. - `float64` - `type TTL float64` Time To Live (TTL) of the DNS record in seconds. Setting to 1 means 'automatic'. Value must be between 60 and 86400, with the minimum reduced to 30 for Enterprise zones. - `const TTL1 TTL = 1` - `Type RecordResponseOpenpgpkeyType` Record type. - `const RecordResponseOpenpgpkeyTypeOpenpgpkey RecordResponseOpenpgpkeyType = "OPENPGPKEY"` - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponsePTR struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseTXT struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseCAA struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseCERT struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseDNSKEY struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseDS struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseHTTPS struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseLOC struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseNAPTR struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseSMIMEA struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseSRV struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseSSHFP struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseSVCB struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseTLSA struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. - `type RecordResponseURI struct{…}` - `ID string` Identifier. - `CreatedOn Time` When the record was created. - `Meta unknown` Extra Cloudflare-specific information about the record. - `ModifiedOn Time` When the record was last modified. - `Proxiable bool` Whether the record can be proxied by Cloudflare or not. - `CommentModifiedOn Time` When the record comment was last modified. Omitted if there is no comment. - `TagsModifiedOn Time` When the record tags were last modified. Omitted if there are no tags. ### 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"), ) page, err := client.DNS.Records.List(context.TODO(), dns.RecordListParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### 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": [ { "name": "example.com", "ttl": 3600, "type": "A", "comment": "Domain verification record", "content": "198.51.100.4", "private_routing": true, "proxied": true, "settings": { "ipv4_only": true, "ipv6_only": true }, "tags": [ "owner:dns-team" ], "id": "023e105f4ecef8ad9ca31a8372d0c353", "created_on": "2014-01-01T05:20:00.12345Z", "meta": {}, "modified_on": "2014-01-01T05:20:00.12345Z", "proxiable": true, "comment_modified_on": "2024-01-01T05:20:00.12345Z", "tags_modified_on": "2025-01-01T05:20:00.12345Z" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ```