## Create DNS Record `dns.records.create(RecordCreateParams**kwargs) -> RecordResponse` **post** `/zones/{zone_id}/dns_records` Create a new DNS record for a zone. Notes: - A/AAAA records cannot exist on the same name as CNAME records. - NS records cannot exist on the same name as any other record type. - Domain names are always represented in Punycode, even if Unicode characters were used when creating the record. ### Parameters - `zone_id: str` Identifier. - `name: str` Complete DNS record name, including the zone name, in Punycode. - `ttl: TTLParam` 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. - `float` - `Literal[1]` 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. - `1` - `type: Literal["A"]` Record type. - `"A"` - `comment: Optional[str]` Comments or notes about the DNS record. This field has no effect on DNS responses. - `content: Optional[str]` A valid IPv4 address. - `private_routing: Optional[bool]` Enables private network routing to the origin. - `proxied: Optional[bool]` Whether the record is receiving the performance and security benefits of Cloudflare. - `settings: Optional[ARecordSettings]` Settings for the DNS record. - `ipv4_only: Optional[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. - `ipv6_only: Optional[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: Optional[SequenceNotStr[RecordTags]]` Custom tags for the DNS record. This field has no effect on DNS responses. ### Returns - `RecordResponse` - `class A: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class AAAA: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class CNAME: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class MX: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class NS: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class Openpgpkey: …` - `id: str` Identifier. - `comment: str` Comments or notes about the DNS record. This field has no effect on DNS responses. - `content: str` A single Base64-encoded OpenPGP Transferable Public Key (RFC 4880 Section 11.1) - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `name: str` 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: OpenpgpkeySettings` Settings for the DNS record. - `ipv4_only: Optional[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. - `ipv6_only: Optional[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: List[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. - `float` - `Literal[1]` 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. - `1` - `type: Literal["OPENPGPKEY"]` Record type. - `"OPENPGPKEY"` - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class PTR: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class TXT: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class CAA: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class CERT: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class DNSKEY: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class DS: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class HTTPS: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class LOC: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class NAPTR: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class SMIMEA: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class SRV: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class SSHFP: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class SVCB: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class TLSA: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. - `class URI: …` - `id: str` Identifier. - `created_on: datetime` When the record was created. - `meta: object` Extra Cloudflare-specific information about the record. - `modified_on: datetime` When the record was last modified. - `proxiable: bool` Whether the record can be proxied by Cloudflare or not. - `comment_modified_on: Optional[datetime]` When the record comment was last modified. Omitted if there is no comment. - `tags_modified_on: Optional[datetime]` When the record tags were last modified. Omitted if there are no tags. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) record_response = client.dns.records.create( zone_id="023e105f4ecef8ad9ca31a8372d0c353", name="example.com", ttl=3600, type="A", ) print(record_response) ``` #### 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" } } ```