---
title: DNSSEC
---

[Skip to content](#_top)

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

[DNS](https://developers.cloudflare.com/api/resources/dns)

Copy Markdown

Open in **Claude**Open in **ChatGPT**Open in **Cursor**

---

**Copy Markdown****View as Markdown**

# DNSSEC

##### [DNSSEC Details](https://developers.cloudflare.com/api/resources/dns/subresources/dnssec/methods/get)

GET/zones/{zone\_id}/dnssec

##### [Edit DNSSEC Status](https://developers.cloudflare.com/api/resources/dns/subresources/dnssec/methods/edit)

PATCH/zones/{zone\_id}/dnssec

##### [Delete DNSSEC records](https://developers.cloudflare.com/api/resources/dns/subresources/dnssec/methods/delete)

DELETE/zones/{zone\_id}/dnssec

##### ModelsExpand Collapse

<details>

<summary>

DNSSEC object {algorithm, digest, digest\_algorithm, 11 more }

</summary>

algorithm: optional string

Algorithm key code.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20algorithm">Link to this property</a>

digest: optional string

Digest hash.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20digest">Link to this property</a>

digest\_algorithm: optional string

Type of digest algorithm.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20digest_algorithm">Link to this property</a>

digest\_type: optional string

Coded type for digest algorithm.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20digest_type">Link to this property</a>

dnssec\_multi\_signer: optional boolean

If true, multi-signer DNSSEC is enabled on the zone, allowing multiple providers to serve a DNSSEC-signed zone at the same time. This is required for DNSKEY records (except those automatically generated by Cloudflare) to be added to the zone.

See <a href="https://developers.cloudflare.com/dns/dnssec/multi-signer-dnssec/">Multi-signer DNSSEC</a> for details.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20dnssec_multi_signer">Link to this property</a>

dnssec\_presigned: optional boolean

If true, allows Cloudflare to transfer in a DNSSEC-signed zone including signatures from an external provider, without requiring Cloudflare to sign any records on the fly.

Note that this feature has some limitations. See <a href="https://developers.cloudflare.com/dns/zone-setups/zone-transfers/cloudflare-as-secondary/setup/#dnssec">Cloudflare as Secondary</a> for details.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20dnssec_presigned">Link to this property</a>

dnssec\_use\_nsec3: optional boolean

If true, enables the use of NSEC3 together with DNSSEC on the zone. Combined with setting dnssec\_presigned to true, this enables the use of NSEC3 records when transferring in from an external provider. If dnssec\_presigned is instead set to false (default), NSEC3 records will be generated and signed at request time.

See <a href="https://developers.cloudflare.com/dns/dnssec/enable-nsec3/">DNSSEC with NSEC3</a> for details.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20dnssec_use_nsec3">Link to this property</a>

ds: optional string

Full DS record.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20ds">Link to this property</a>

flags: optional number

Flag for DNSSEC record.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20flags">Link to this property</a>

key\_tag: optional number

Code for key tag.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20key_tag">Link to this property</a>

key\_type: optional string

Algorithm key type.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20key_type">Link to this property</a>

modified\_on: optional string

When DNSSEC was last modified.

formatdate-time

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20modified_on">Link to this property</a>

public\_key: optional string

Public key for DS record.

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20public_key">Link to this property</a>

<details>

<summary>

status: optional "active"or "pending"or "disabled"or 2 more

Status of DNSSEC, based on user-desired state and presence of necessary records.

</summary>

One of the following:

"active"

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%200">Link to this property</a>

"pending"

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%201">Link to this property</a>

"disabled"

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%202">Link to this property</a>

"pending-disabled"

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%203">Link to this property</a>

"error"

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%204">Link to this property</a>

</details>

<a href="#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)%20%3E%20(property)%20status">Link to this property</a>

</details>

[Link to this property](<#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)>)

DNSSECDeleteResponse = string

[Link to this property](<#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec_delete_response%20%3E%20(schema)>)

#### DNSSECZsk

##### [List DNSSEC ZSKs](https://developers.cloudflare.com/api/resources/dns/subresources/dnssec/subresources/zsk/methods/list)

GET/zones/{zone\_id}/dnssec/zsk

##### ModelsExpand Collapse

<details>

<summary>

ZskListResponse object {DNSKEY, Location, Name, 2 more }

</summary>

<details>

<summary>

DNSKEY: optional object {Algorithm, Flags, Hdr, 2 more }

</summary>

Algorithm: optional number

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20DNSKEY%20%3E%20(property)%20Algorithm">Link to this property</a>

Flags: optional number

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20DNSKEY%20%3E%20(property)%20Flags">Link to this property</a>

<details>

<summary>

Hdr: optional object {Class, Name, Rdlength, 2 more }

</summary>

Class: optional number

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20DNSKEY%20%3E%20(property)%20Hdr%20%3E%20(property)%20Class">Link to this property</a>

Name: optional string

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20DNSKEY%20%3E%20(property)%20Hdr%20%3E%20(property)%20Name">Link to this property</a>

Rdlength: optional number

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20DNSKEY%20%3E%20(property)%20Hdr%20%3E%20(property)%20Rdlength">Link to this property</a>

Rrtype: optional number

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20DNSKEY%20%3E%20(property)%20Hdr%20%3E%20(property)%20Rrtype">Link to this property</a>

Ttl: optional number

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20DNSKEY%20%3E%20(property)%20Hdr%20%3E%20(property)%20Ttl">Link to this property</a>

</details>

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20DNSKEY%20%3E%20(property)%20Hdr">Link to this property</a>

Protocol: optional number

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20DNSKEY%20%3E%20(property)%20Protocol">Link to this property</a>

PublicKey: optional string

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20DNSKEY%20%3E%20(property)%20PublicKey">Link to this property</a>

</details>

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20DNSKEY">Link to this property</a>

<details>

<summary>

Location: optional "database"or "vault"

Storage backend where the DNSSEC key material is stored.

</summary>

One of the following:

"database"

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20Location%20%3E%20(member)%200">Link to this property</a>

"vault"

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20Location%20%3E%20(member)%201">Link to this property</a>

</details>

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20Location">Link to this property</a>

Name: optional string

Internal key name for the ZSK.

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20Name">Link to this property</a>

<details>

<summary>

SigningKey: optional object {kek, privkey, pubkey }

</summary>

kek: optional string

Key encryption key name used to encrypt the private key.

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20SigningKey%20%3E%20(property)%20kek">Link to this property</a>

privkey: optional string

Encrypted private key material for the signing key.

formatbyte

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20SigningKey%20%3E%20(property)%20privkey">Link to this property</a>

pubkey: optional string

Public key content associated with the signing key.

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20SigningKey%20%3E%20(property)%20pubkey">Link to this property</a>

</details>

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20SigningKey">Link to this property</a>

<details>

<summary>

Tag: optional "active"or "publish"or "external"or 3 more

Lifecycle state tag attached to the DNSSEC key.

</summary>

One of the following:

"active"

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20Tag%20%3E%20(member)%200">Link to this property</a>

"publish"

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20Tag%20%3E%20(member)%201">Link to this property</a>

"external"

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20Tag%20%3E%20(member)%202">Link to this property</a>

"retired"

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20Tag%20%3E%20(member)%203">Link to this property</a>

"revoked"

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20Tag%20%3E%20(member)%204">Link to this property</a>

"removed"

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20Tag%20%3E%20(member)%205">Link to this property</a>

</details>

<a href="#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)%20%3E%20(property)%20Tag">Link to this property</a>

</details>

[Link to this property](<#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)>)