---
title: DNSSEC
---

[Skip to content](#_top)

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

[DNS](https://developers.cloudflare.com/api/typescript/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/typescript/resources/dns/subresources/dnssec/methods/get)

client.dns.dnssec.get(DNSSECGetParams {zone\_id } params, RequestOptionsoptions?): [DNSSEC](<https://developers.cloudflare.com/api/typescript/resources/dns#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)>) {algorithm, digest, digest\_algorithm, 11 more }

GET/zones/{zone\_id}/dnssec

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

client.dns.dnssec.edit(DNSSECEditParams {zone\_id, dnssec\_multi\_signer, dnssec\_presigned, 2 more } params, RequestOptionsoptions?): [DNSSEC](<https://developers.cloudflare.com/api/typescript/resources/dns#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec%20%3E%20(schema)>) {algorithm, digest, digest\_algorithm, 11 more }

PATCH/zones/{zone\_id}/dnssec

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

client.dns.dnssec.delete(DNSSECDeleteParams {zone\_id } params, RequestOptionsoptions?): [DNSSECDeleteResponse](<https://developers.cloudflare.com/api/typescript/resources/dns#(resource)%20dns.dnssec%20%3E%20(model)%20dnssec_delete_response%20%3E%20(schema)>)

DELETE/zones/{zone\_id}/dnssec

##### ModelsExpand Collapse

<details>

<summary>

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

</summary>

algorithm?: string| null

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?: string| null

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?: string| null

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?: string| null

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?: 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?: 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?: 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?: string| null

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?: number| null

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?: number| null

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?: string| null

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?: string| null

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?: string| null

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?: "active"| "pending"| "disabled"| 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/typescript/resources/dns/subresources/dnssec/subresources/zsk/methods/list)

client.dns.dnssec.zsk.list(ZskListParams {zone\_id } params, RequestOptionsoptions?): SinglePage< [ZskListResponse](<https://developers.cloudflare.com/api/typescript/resources/dns#(resource)%20dns.dnssec.zsk%20%3E%20(model)%20zsk_list_response%20%3E%20(schema)>) {DNSKEY, Location, Name, 2 more } >

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

##### ModelsExpand Collapse

<details>

<summary>

ZskListResponse {DNSKEY, Location, Name, 2 more }

</summary>

<details>

<summary>

DNSKEY?: DNSKEY {Algorithm, Flags, Hdr, 2 more }

</summary>

Algorithm?: number| null

<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?: number| null

<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?: Hdr {Class, Name, Rdlength, 2 more }

</summary>

Class?: number| null

<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?: string| null

<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?: number| null

<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?: number| null

<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?: number| null

<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?: number| null

<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?: string| null

<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?: "database"| "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?: 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?: SigningKey {kek, privkey, pubkey }

</summary>

kek?: string| null

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?: string| null

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?: string| null

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?: "active"| "publish"| "external"| 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)>)