Documentation for scw dns

April 10, 2026 ยท View on GitHub

This API allows you to manage your domains, DNS zones and records.

TLS certificate management

TLS certificate management.

Create or get the DNS zone's TLS certificate

Create a new TLS certificate or retrieve information about an existing TLS certificate.

Usage:

scw dns certificate create <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequired
alternative-dns-zones.{index}

Delete a TLS certificate

Delete an existing TLS certificate specified by its DNS zone. Deleting a TLS certificate is permanent and cannot be undone.

Usage:

scw dns certificate delete <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequired

Get a DNS zone's TLS certificate

Get the DNS zone's TLS certificate. If you do not have a certificate, the output returns no certificate found.

Usage:

scw dns certificate get <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequired

List a user's TLS certificates

List all the TLS certificates a user has created, specified by the user's Project ID and the DNS zone.

Usage:

scw dns certificate list <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequired
project-id

DNS records management

DNS records management.

Add a new DNS record

Usage:

scw dns record add <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequiredDNS zone in which to add the record
dataRequired
name
priority
ttlRequired
Default: 3600
typeRequired
One of: A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR
comment
geo-ip-config.matches.{index}.countries.{index}
geo-ip-config.matches.{index}.continents.{index}
geo-ip-config.matches.{index}.data
geo-ip-config.default
http-service-config.ips.{index}
http-service-config.must-contain
http-service-config.url
http-service-config.user-agent
http-service-config.strategyOne of: random, hashed
weighted-config.weighted-ips.{index}.ip
weighted-config.weighted-ips.{index}.weight
view-config.views.{index}.subnet
view-config.views.{index}.data

Examples:

Add a CNAME

scw dns record add my-domain.tld data=www name=www2 type=CNAME

Add an IP

scw dns record add my-domain.tld data=1.2.3.4 name=vpn type=A

Update records within a DNS zone

Update records within a DNS zone that has default name servers and perform several actions on your records.

Actions include:

  • add: allows you to add a new record or add a new IP to an existing A record, for example
  • set: allows you to edit a record or edit an IP from an existing A record, for example
  • delete: allows you to delete a record or delete an IP from an existing A record, for example
  • clear: allows you to delete all records from a DNS zone

All edits will be versioned.

Usage:

scw dns record bulk-update <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequiredDNS zone in which to update the DNS zone records
changes.{index}.add.records.{index}.data
changes.{index}.add.records.{index}.name
changes.{index}.add.records.{index}.priority
changes.{index}.add.records.{index}.ttl
changes.{index}.add.records.{index}.typeOne of: unknown, A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR, DNAME, SVCB, HTTPS
changes.{index}.add.records.{index}.comment
changes.{index}.add.records.{index}.geo-ip-config.matches.{index}.countries.{index}
changes.{index}.add.records.{index}.geo-ip-config.matches.{index}.continents.{index}
changes.{index}.add.records.{index}.geo-ip-config.matches.{index}.data
changes.{index}.add.records.{index}.geo-ip-config.default
changes.{index}.add.records.{index}.http-service-config.ips.{index}
changes.{index}.add.records.{index}.http-service-config.must-contain
changes.{index}.add.records.{index}.http-service-config.url
changes.{index}.add.records.{index}.http-service-config.user-agent
changes.{index}.add.records.{index}.http-service-config.strategyOne of: random, hashed, all
changes.{index}.add.records.{index}.weighted-config.weighted-ips.{index}.ip
changes.{index}.add.records.{index}.weighted-config.weighted-ips.{index}.weight
changes.{index}.add.records.{index}.view-config.views.{index}.subnet
changes.{index}.add.records.{index}.view-config.views.{index}.data
changes.{index}.add.records.{index}.id
changes.{index}.add.records.{index}.updated-at
changes.{index}.set.id
changes.{index}.set.id-fields.name
changes.{index}.set.id-fields.typeOne of: unknown, A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR, DNAME, SVCB, HTTPS
changes.{index}.set.id-fields.data
changes.{index}.set.id-fields.ttl
changes.{index}.set.records.{index}.data
changes.{index}.set.records.{index}.name
changes.{index}.set.records.{index}.priority
changes.{index}.set.records.{index}.ttl
changes.{index}.set.records.{index}.typeOne of: unknown, A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR, DNAME, SVCB, HTTPS
changes.{index}.set.records.{index}.comment
changes.{index}.set.records.{index}.geo-ip-config.matches.{index}.countries.{index}
changes.{index}.set.records.{index}.geo-ip-config.matches.{index}.continents.{index}
changes.{index}.set.records.{index}.geo-ip-config.matches.{index}.data
changes.{index}.set.records.{index}.geo-ip-config.default
changes.{index}.set.records.{index}.http-service-config.ips.{index}
changes.{index}.set.records.{index}.http-service-config.must-contain
changes.{index}.set.records.{index}.http-service-config.url
changes.{index}.set.records.{index}.http-service-config.user-agent
changes.{index}.set.records.{index}.http-service-config.strategyOne of: random, hashed, all
changes.{index}.set.records.{index}.weighted-config.weighted-ips.{index}.ip
changes.{index}.set.records.{index}.weighted-config.weighted-ips.{index}.weight
changes.{index}.set.records.{index}.view-config.views.{index}.subnet
changes.{index}.set.records.{index}.view-config.views.{index}.data
changes.{index}.set.records.{index}.id
changes.{index}.set.records.{index}.updated-at
changes.{index}.delete.id
changes.{index}.delete.id-fields.name
changes.{index}.delete.id-fields.typeOne of: unknown, A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR, DNAME, SVCB, HTTPS
changes.{index}.delete.id-fields.data
changes.{index}.delete.id-fields.ttl
return-all-recordsSpecifies whether or not to return all the records
disallow-new-zone-creationDisable the creation of the target zone if it does not exist. Target zone creation is disabled by default
serialUse the provided serial (0) instead of the auto-increment serial

Clear records within a DNS zone

Delete all records within a DNS zone that has default name servers.
All edits will be versioned.

Usage:

scw dns record clear <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequiredDNS zone to clear

Delete a DNS record

Usage:

scw dns record delete <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequiredDNS zone in which to delete the record
data
name
ttl
typeRequired
One of: A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR

Examples:

Delete a CNAME

scw dns record delete my-domain.tld name=www type=CNAME

Delete a single IP from a record with more than one

scw dns record delete my-domain.tld data=1.2.3.4 name=vpn type=A

List records within a DNS zone

Retrieve a list of DNS records within a DNS zone that has default name servers. You can filter records by type and name.

Usage:

scw dns record list <dns-zone ...> [arg=value ...]

Args:

NameDescription
project-idProject ID on which to filter the returned DNS zone records
order-byOne of: name_asc, name_descSort order of the returned DNS zone records
dns-zoneRequiredDNS zone on which to filter the returned DNS zone records
nameName on which to filter the returned DNS zone records
typeOne of: unknown, A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR, DNAME, SVCB, HTTPSRecord type on which to filter the returned DNS zone records
idRecord ID on which to filter the returned DNS zone records

List name servers within a DNS zone

Retrieve a list of name servers within a DNS zone and their optional glue records.

Usage:

scw dns record list-nameservers <dns-zone ...> [arg=value ...]

Args:

NameDescription
project-idProject ID on which to filter the returned DNS zone name servers
dns-zoneRequiredDNS zone on which to filter the returned DNS zone name servers

Update a DNS record

This command will replace all the data for this record with the given values.

Usage:

scw dns record set <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequiredDNS zone in which to set the record
values.{index}RequiredA list of values for replacing the record data. (multiple values cannot be used for all type)
nameRequired
priority
ttlRequired
Default: 3600
typeRequired
One of: A, AAAA, CNAME, TXT, SRV, TLSA, MX, NS, PTR, CAA, ALIAS, LOC, SSHFP, HINFO, RP, URI, DS, NAPTR
comment
geo-ip-config.matches.{index}.countries.{index}
geo-ip-config.matches.{index}.continents.{index}
geo-ip-config.matches.{index}.data
geo-ip-config.default
http-service-config.ips.{index}
http-service-config.must-contain
http-service-config.url
http-service-config.user-agent
http-service-config.strategyOne of: random, hashed
weighted-config.weighted-ips.{index}.ip
weighted-config.weighted-ips.{index}.weight
view-config.views.{index}.subnet
view-config.views.{index}.data

Examples:

Add or replace a CNAME

scw dns record set my-domain.tld values.0=www name=www2 type=CNAME

Add or replace a list of IP

scw dns record set my-domain.tld values.0=1.2.3.4 values.1=1.2.3.5 name=vpn type=A

Update name servers within a DNS zone

Update name servers within a DNS zone and set optional glue records.

Usage:

scw dns record update-nameservers <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequiredDNS zone in which to update the DNS zone name servers
ns.{index}.name
ns.{index}.ip.{index}

Transaction SIGnature key management

Transaction SIGnature key management.

Delete the DNS zone's TSIG key

Delete an existing TSIG key specified by its DNS zone. Deleting a TSIG key is permanent and cannot be undone.

Usage:

scw dns tsig-key delete <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequired

Get the DNS zone's TSIG key

Retrieve information about the TSIG key of a given DNS zone to allow AXFR requests.

Usage:

scw dns tsig-key get <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequired

DNS zones version management

DNS zones version management.

Access differences from a specific DNS zone version

Access a previous DNS zone version to see the differences from another specific version.

Usage:

scw dns version diff <dns-zone-version-id ...> [arg=value ...]

Args:

NameDescription
dns-zone-version-idRequired

List versions of a DNS zone

Retrieve a list of a DNS zone's versions.
The maximum version count is 100. If the count reaches this limit, the oldest version will be deleted after each new modification.

Usage:

scw dns version list <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequired

Restore a DNS zone version

Restore and activate a version of a specific DNS zone.

Usage:

scw dns version restore <dns-zone-version-id ...> [arg=value ...]

Args:

NameDescription
dns-zone-version-idRequired

List records from a given version of a specific DNS zone

Retrieve a list of records from a specific DNS zone version.

Usage:

scw dns version show <dns-zone-version-id ...> [arg=value ...]

Args:

NameDescription
dns-zone-version-idRequired

DNS Zones management

DNS Zones management.

Clone a DNS zone

Clone an existing DNS zone with all its records into a new DNS zone.

Usage:

scw dns zone clone [arg=value ...]

Args:

NameDescription
dns-zoneRequiredDNS zone to clone
dest-dns-zoneRequiredDestination DNS zone in which to clone the chosen DNS zone
overwriteSpecifies whether or not the destination DNS zone will be overwritten
project-idProject ID of the destination DNS zone

Create a DNS zone

Create a new DNS zone specified by the domain name, the subdomain and the Project ID.

Usage:

scw dns zone create [arg=value ...]

Args:

NameDescription
domainRequiredDomain in which to create the DNS zone
subdomainRequiredSubdomain of the DNS zone to create
project-idProject ID to use. If none is passed the default project ID will be used

Delete a DNS zone

Delete a DNS zone and all its records.

Usage:

scw dns zone delete <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequiredDNS zone to delete
project-idProject ID to use. If none is passed the default project ID will be used

Export a raw DNS zone

Export a DNS zone with default name servers, in a specific format.

Usage:

scw dns zone export <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequiredDNS zone to export
formatDefault: bind
One of: unknown_raw_format, bind
DNS zone format

Import a raw DNS zone

Import and replace the format of records from a given provider, with default name servers.

Usage:

scw dns zone import <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequiredDNS zone to import
contentDeprecated
project-idProject ID to use. If none is passed the default project ID will be used
formatDeprecated
One of: unknown_raw_format, bind
bind-source.content
axfr-source.name-server
axfr-source.tsig-key.name
axfr-source.tsig-key.key
axfr-source.tsig-key.algorithm

List DNS zones

Retrieve the list of DNS zones you can manage and filter DNS zones associated with specific domain names.

Usage:

scw dns zone list [arg=value ...]

Args:

NameDescription
project-idProject ID on which to filter the returned DNS zones
order-byOne of: domain_asc, domain_desc, subdomain_asc, subdomain_desc, created_at_asc, created_at_desc, updated_at_asc, updated_at_descSort order of the returned DNS zones
domainDomain on which to filter the returned DNS zones
dns-zoneDeprecatedDNS zone on which to filter the returned DNS zones
dns-zones.{index}DNS zones on which to filter the returned DNS zones
created-afterOnly list DNS zones created after this date
created-beforeOnly list DNS zones created before this date
updated-afterOnly list DNS zones updated after this date
updated-beforeOnly list DNS zones updated before this date
organization-idOrganization ID on which to filter the returned DNS zones

Refresh a DNS zone

Refresh an SOA DNS zone to reload the records in the DNS zone and update the SOA serial. You can recreate the given DNS zone and its sub DNS zone if needed.

Usage:

scw dns zone refresh <dns-zone ...> [arg=value ...]

Args:

NameDescription
dns-zoneRequiredDNS zone to refresh
recreate-dns-zoneSpecifies whether or not to recreate the DNS zone
recreate-sub-dns-zoneSpecifies whether or not to recreate the sub DNS zone

Update a DNS zone

Update the name and/or the Organizations for a DNS zone.

Usage:

scw dns zone update [arg=value ...]

Args:

NameDescription
dns-zoneRequiredThe full name of the DNS zone to modify. For a root zone (e.g., example.com), enter example.com. For a specific sub-zone (e.g., prod.example.com), enter prod.example.com.
new-dns-zoneRequiredName of the new DNS zone to create
project-idProject ID to use. If none is passed the default project ID will be used