Create DNS Record
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.
Security
API Token
The preferred authorization scheme for interacting with the Cloudflare API. Create a token.
Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYYAPI Email + API Key
The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.
X-Auth-Email: user@example.comThe previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.
X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194Accepted Permissions (at least one required)
DNS WriteParametersExpand Collapse
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.
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.
Whether to include shadow metadata in the meta field of each record in the response. See Shadowed records.
Comments or notes about the DNS record. This field has no effect on DNS responses.
Settings for the DNS record.
Settings for the DNS record.
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.
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.
ReturnsExpand Collapse
class ARecord: …
meta: ARecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class AAAARecord: …
meta: AAAARecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class CNAMERecord: …
meta: CNAMERecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class MXRecord: …
meta: MXRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class NSRecord: …
meta: NSRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class OpenpgpkeyRecord: …
meta: OpenpgpkeyRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
settings: OpenpgpkeyRecordSettingsSettings for the DNS record.
Settings for the DNS record.
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.
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.
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.
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.
class PTRRecord: …
meta: PTRRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class TXTRecord: …
meta: TXTRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class CAARecord: …
meta: CAARecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class CERTRecord: …
meta: CERTRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class DNSKEYRecord: …
meta: DNSKEYRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class DSRecord: …
meta: DSRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class HTTPSRecord: …
meta: HTTPSRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class LOCRecord: …
meta: LOCRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class NAPTRRecord: …
meta: NAPTRRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class SMIMEARecord: …
meta: SMIMEARecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class SRVRecord: …
meta: SRVRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class SSHFPRecord: …
meta: SSHFPRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class SVCBRecord: …
meta: SVCBRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class TLSARecord: …
meta: TLSARecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
class URIRecord: …
meta: URIRecordMetaExtra Cloudflare-specific metadata about the record.
Extra Cloudflare-specific metadata about the record.
Whether this glue record is not served because a shallower NS delegation takes precedence over the deeper delegation that needs it. Present only when true; reachable glue carries only is_glue. See Unreachable glue records.
Whether this A or AAAA record is glue for a subdomain NS delegation. See Glue records.
IDs of the NS records that shadow this record. See Shadowed records.
Number of records shadowed by this NS delegation. See Shadowed records.
Create DNS Record
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){
"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": {
"dead_glue": true,
"is_glue": true,
"shadowed_by": [
"372e67954025e0ba6aaa6d586b9e0b59"
],
"shadowed_records_count": 42
},
"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"
}
}Returns Examples
{
"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": {
"dead_glue": true,
"is_glue": true,
"shadowed_by": [
"372e67954025e0ba6aaa6d586b9e0b59"
],
"shadowed_records_count": 42
},
"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"
}
}