Changelog
Track notable updates to the OpusDNS API and developer documentation here.
2026
18 August 2026
-
Changed the sandbox environment to serve timezone-aware (RFC 3339) datetimes by default, on schedule per the announced staged cutover. Every datetime in public
/v1responses from sandbox now carries the explicit UTC designator (trailingZ); theX-Datetime-Format: rfc3339header remains accepted there and is now a no-op. Production follows on Tuesday, 2026-09-01. See Timezone-aware datetimes (RFC 3339) for migration guidance. -
Added a
read_onlyflag to the domain object: a domain marked read-only is listed in your portfolio but cannot be managed — updates, renewals, and deletions are rejected. OpusDNS sets and removes the flag; it cannot be changed through the API. It is used for domains imported ahead of a migration, domains locked for legal reasons, and domains managed at an external registrar. The flag is included in every domain response andGET /v1/domainsaccepts aread_onlyquery parameter to filter by it. See The domain object and Read-only domains.
14 August 2026
-
Added postal code validation on contacts:
postal_codeis validated against the country's published format for an initial set of 16 countries (AT,BE,CA,CH,CZ,DE,DK,ES,FR,GB,IT,LU,NL,NO,SE,US). Contacts in every other country are unaffected. An invalid postal code returns a422request-validation error whose errortypeisinvalid_postal_code, locating thepostal_codefield. A postal code containing non-ASCII characters is rejected for every country, because it cannot be transmitted to a registry. See Postal codes. -
Changed postal codes to be stored in a canonical form: Dutch postal codes are stored in the official national notation (
1234 AB— both1234ABand1234 abare accepted), cross-border country prefixes are stripped (D-26133→26133for aDEcontact), and US ZIP+4 is normalized to the hyphenated form (12345 6789→12345-6789). Existing Dutch contact data was migrated to the canonical form. See What gets stored. -
Added the registry's own field-level validation messages to registry errors. Where a registry reports which field it refused, an
ERROR_REGISTRY_POLICYon a domain or contact operation now carries that text indetailafter the generic result code, instead of the result code text alone. For a.nlpostcode rejected by SIDN,detailnow ends withContact address group: A postcode has to be four numbers and two letters.
11 August 2026
-
Onboarded the Welsh geographic TLDs
.walesand.cymru(operated by Nominet). Published their TLD Knowledge Base pages.
10 August 2026
-
Onboarded
.pl(Poland) together with its second-level extensions.com.pl,.net.pl, and.org.pl;.gg(Guernsey) together with.co.gg,.net.gg, and.org.gg; and.je(Jersey) together with.co.je,.net.je, and.org.je. Published their TLD Knowledge Base pages. -
Onboarded the Belgian geographic TLDs
.brusselsand.vlaanderen. Published their TLD Knowledge Base pages.
04 August 2026
-
Added sub-zone delegation: NS records below the zone apex are now fully supported on every zone endpoint — include them when creating a zone, or manage them with the RRset and record PATCH endpoints like any other record type. OpusDNS nameservers serve the delegation as a standard DNS referral. Delegations from DNSSEC-signed zones are insecure delegations (child DS records are not supported). See Delegate a subdomain.
-
Changed writes targeting system-managed records to return errors instead of silently doing nothing. Previously, a
PUT/PATCHthat tried to modify or remove the zone apex NS, SOA, DNSKEY, or DS records could return204 No Contentwhile the request had no effect. These now return409 Conflictwith aprotected_reason. Zone responses also reportprotected: trueconsistently for every system-managed RRset. If your integration echoes a full zone read back into a write, filter out RRsets withprotected: truefirst — see Protected records.
03 August 2026
31 July 2026
-
Onboarded
.vegas. Published its TLD Knowledge Base page.
30 July 2026
-
Onboarded
.no(Norway). Published its TLD Knowledge Base page. -
Added outbound transfer resolution — approve or reject a pending transfer of a domain away from OpusDNS directly via the API:
POST /v1/domains/{domain_reference}/transfer/outboundwith anactionofapproveorreject. Approving acknowledges the transfer at the registry; the domain remains in your account until the registry confirms the transfer has completed. Requires the domain to have a pending transfer, and is available for TLDs whose registry lets the losing registrar act on transfers. See Outbound transfers.
22 July 2026
-
Onboarded
.si(Slovenia). Published its TLD Knowledge Base page.
17 July 2026
-
Onboarded
.lv(Latvia) together with its second-level extensions.asn.lv,.com.lv,.conf.lv,.edu.lv,.id.lv,.net.lv, and.org.lv. Published its TLD Knowledge Base page. -
Added independent billing for suborganizations: create a suborganization with
billing_mode: "independent"and it gets its own wallet, invoices, and payment methods instead of rolling up to your account. Consolidated billing remains the default and is unchanged. Also added the monthly suborganization billing transactions report covering spend across your whole organization tree. See Billing modes. -
Added opt-in RFC 3339 datetimes: send the
X-Datetime-Format: rfc3339request header on any public/v1endpoint and every datetime in the response is returned as timezone-aware UTC with a trailingZ. This fixes clients (such as JavaScript'snew Date()) that misparse today's marker-less timestamps as local time. The tz-aware format becomes the default per environment on a staged schedule, after which the header is a no-op. See Timezone-aware datetimes (RFC 3339) for the cutover dates and migration guidance.
10 July 2026
-
Added automatic DNSSEC reconciliation on inbound transfers and nameserver
changes. Stale DS records imported from a previous DNS provider — which could
previously break resolution (
SERVFAIL) once a domain moved to OpusDNS nameservers — are now removed or replaced automatically. Domains on external nameservers are never touched. See Automatic DNSSEC reconciliation.
08 July 2026
-
Onboarded 3 IDN gTLDs operated by Public Interest Registry:
.xn--c1avg(.орг),.xn--i1b6b1a6a2e(.संगठन), and.xn--nqv7f(.机构). Their TLD Knowledge Base pages are published. -
Onboarded
.juegos. Its TLD Knowledge Base page is published.
07 July 2026
-
Onboarded
.lu(Luxembourg). Published its TLD Knowledge Base page.
06 July 2026
-
Onboarded
.co.atand.or.at, the Austrian second-level extensions. See the.atTLD Knowledge Base page.
02 July 2026
-
Onboarded 8 new gTLDs:
.to(Tonga),.country,.diy,.food,.hiv,.lifestyle,.living, and.sexy. Published their TLD Knowledge Base pages.
30 June 2026
-
Made the
contactssection optional on domain transfers. For TLDs that do not require any contacts on an inbound transfer - where every supported contact role has a minimum of0in the TLD specification (for example.caand.ch) - you can now omitcontactsentirely instead of sending an empty object. This applies toPOST /v1/domains/transferas well as thedomain_transferanddomain_transfer_bulkjob commands. TLDs that require one or more contact roles still reject transfers submitted without them.
26 June 2026
-
Onboarded 13 new gTLDs:
.best,.cam,.case,.dealer,.fans,.frl,.help,.inc,.kred,.luxury,.ooo,.reit, and.saarland. Published their TLD Knowledge Base pages.
25 June 2026
24 June 2026
-
Onboarded
.blog. Published its TLD Knowledge Base page.
21 June 2026
-
Added vanity nameservers — serve your DNS zones under your own branded
nameserver names (for example
ns1.example.com) while OpusDNS continues to answer the DNS. Create and manage vanity nameserver sets withPOST/GET/DELETE /v1/vanity-nameserver-sets, choose an organization default withPATCH /v1/vanity-nameserver-sets/{set_id}/default, and brand individual zones viavanity_nameserver_set_id(on zone creation, or withPATCH /v1/dns/{zone_name}/vanity-set). -
Added the
/checkdiagnostic —POST /v1/vanity-nameserver-sets/checkreports whether a set's nameservers resolve to the anycast pool, whether glue is in place, and what (if anything) still needs publishing. - Published the Vanity nameservers guide.
19 June 2026
- Onboarded 21 new TLDs, including the Bahrain ccTLD bundle and its Arabic-script variant:
- Published their TLD Knowledge Base pages.
18 June 2026
-
Onboarded
.it(Italy),.skand.org.sk(Slovakia), and.latino. Published their TLD Knowledge Base pages.
17 June 2026
-
Onboarded
.cloud. Published its TLD Knowledge Base page.
16 June 2026
-
Released the role-based permissions system. Access is now governed by
roles built from
resource:scopepermissions (scopes:read,manage,delete). -
Added built-in roles —
admin,viewer,domain_manager,dns_manager, andbilling_manager— available in every organization. -
Added custom roles — define organization-owned roles with exactly the
permissions you need via
POST /v1/organizations/roles, and manage them withGET/PATCH/DELETE /v1/organizations/roles/{label}. Retrieve the grantable permission catalog fromGET /v1/organizations/role-permissions. -
Added per-user role assignment —
GETandPUT /v1/users/{user_id}/roleset a user's built-in or custom role. API keys are granted a role at issuance. - Published the Roles & permissions guide and a roles section in User management.
15 June 2026
-
Onboarded
.cz(Czechia). Published its TLD Knowledge Base page.
12 June 2026
-
Added host object management — create, retrieve, update, and delete nameserver host objects (glue records) for hostnames subordinate to domains in your account:
POST /v1/hostsandGET/PUT/DELETE /v1/hosts/{host_reference}. Hosts can be referenced by ID or hostname. -
Published the Host objects (glue records) guide and linked it from the nameservers, registration, and transfer guides.
-
Added batch retry — re-attempt jobs in a batch that ended in
failedordead_letterstate without rebuilding the batch.POST /v1/jobs/{batch_id}/retryre-queues all eligible jobs in one call; jobs in any other state are left untouched. -
Added an optional repeatable
error_classquery parameter on batch retry to re-attempt only specific failure types (for example,?error_class=BillingInsufficientFundsErrorafter an account top-up). Multiple values are OR'd. -
Added single-job retry —
POST /v1/job/{job_id}/retryre-queues an individualfailedordead_letterjob. Retrying a job in any other state returns409 Conflict. -
Updated the Managing batches guide with retry usage, including how
error_classfiltering helps recover from mixed-failure batches.
12 May 2026
-
Added status tags — system-managed labels that are automatically assigned
to domains based on their state. The first status tag type is
VERIFICATION_REQUIRED, applied when a registry mandates holder verification. -
Domain list endpoints now support
status_tagsandstatus_tag_modefilters to find domains by their current status conditions. -
When requesting
include=tags, domain responses now return both usertagsandstatus_tagsin separate arrays. - Published the User tags and Status tags documentation guides.
08 May 2026
-
Released the V1 event payload format. All events now use a standardized
event_datastructure withversion,message, optionalerror, and optionaldetailsfields. See the event object for the full schema. - Changed the event ID prefix from
epp_event_toevent_. -
Added typed
detailsfor renewal events (expires_on) and verification events (verification_deadlines,verification_claims,registrants). - Migrated all existing production events to the V1 payload format.
- Removed the
sourcefield from the event response.
05 May 2026
- Launched the new OpusDNS API Docs experience, including guides for authentication, domains, DNS, forwarding, jobs, events, account management, and TLD-specific operations.
- Published authentication documentation covering token retrieval, header usage, and credential management.
- Published the Reports API and Tags API in the public OpenAPI schema.
- Documented bulk DNS-zone command behavior in the Jobs guide.
23 April 2026
- Added the Tags API and expanded tagging across domains, contacts, and DNS zones.
- Added bulk tagging endpoints for applying tags to many resources at once.
-
Added
tag_idsfilters for domain lists and search, plus tag support in inventory and DNS-zone CSV exports. - Added an
is_premiumfilter for domain listings. -
Added additional DNS record type support:
HTTPS,SVCB,NAPTR,SSHFP, andCERT. - Added
dnssec_statussupport to bulk DNS-zone updates. -
Added
domain_forwards,expiring_domains, andemail_forwardsreport types. - Added new default nameservers for staging and sandbox environments.
- Improved DNS record handling for duplicate records and fully qualified domain name comparisons.
16 April 2026
- Added premium-domain handling.
- Added EPP fee and charge support for domain pricing workflows.
- Added trademark-claims support for domain availability and registration workflows.
- Added support for retrieving trademark notices and accepting claims during domain registration.
- Added required attestation handling for
.musicand.travelregistrations. - Expanded TLD and registry coverage:
.co.mobile.music.link.name.cc.us.ua.nl- Google Registry TLDs
31 March 2026
- Published job batches and reports in the public API schema.
- Added the Reports API, including asynchronous report generation, downloads, filtering, pagination, and DNS zone report types.
- Added downloadable report archives.
- Added generic filterable report endpoints and standardized report field names.
- Improved Jobs API list responses with typed payloads, labels, sorting, and server-side status filtering.
- Added multi-value status filtering for batch jobs.
- Added filtering and sorting across jobs and batches, including status, correlation ID, and topic filters.
- Added batch domain-exists checks and streaming domain availability requests.
12 February 2026
- Expanded the Jobs API with bulk domain operations, DNS zone updates, DNS patch operations, contact creation, parking operations, and pause/resume controls.
- Added bulk multi-domain commands, bulk DNS-zone update commands, and DNS-zone patch batches.
- Added bulk contact creation and single contact creation as Jobs API commands.
- Added bulk parking operations.
- Added job ownership checks and the
MANAGE_JOBSpermission. -
Added support for domain names or
domain_idvalues in bulk domain update payloads. - Added Parking API support, including signup, restrictions, agreement validation, and metrics.
15 January 2026
- Added domain forwarding metrics filters, including protocol and status-code breakdowns for redirect traffic.
- Added forward-rule grouping in metrics aggregations.
- Added platform and browser aggregation fields for forwarding metrics.
2025
18 December 2025
- Added the Batch Jobs API and OpenAPI documentation for job workflows.
- Added job lookup and delete endpoints, batch deletion, TypeID job identifiers, and standard pagination for batch jobs.
- Added recurring-job updates and deletion.
- Added bulk job cancellation.
- Added timezone-aware datetime serialization across the Jobs API.
- Added alpha-2 country-code validation on contact creation.
04 December 2025
- Added domain forwarding metrics endpoints.
- Revised email forwarding endpoints around
email_forward_id-based routing. - Revised the Domain Forwarding API surface with clearer create, update, delete, and read operations.
- Added an endpoint to list all domain forwards in an organization.
- Added hostname validation and improved wildcard handling for domain forwards.
- Added cleanup behavior for DNS records when removing enabled forwarding rules.
- Added the Archive API with request-history and object-log endpoints.
- Improved email-forwarding search.
15 November 2025
- Introduced the Jobs service foundation for asynchronous API operations and bulk workflow orchestration.
- Added the foundation for job context propagation across asynchronous API workflows.
- Aligned DNS and Domains list endpoints with the public pagination format.
- Added DNSSEC operations to the Domains API.
14 October 2025
- Added domain forwarding to the API documentation and expanded the Domain Forwarding API.
- Added domain-forward rule models, domain-forward enabled zones, sub-zone handling, wildcard forwarding, and per-rule enable tracking.
- Added a TLD-specification list endpoint with
keyandtldfilters. - Increased TXT record support up to 65,535 bytes.
- Added
namestoreextension support for host commands on supported registries.
01 October 2025
- OpusDNS launches! 🚀
- Added the Domain API for core domain lifecycle operations.
- Added the DNS API for hosted zones, DNS records, and DNSSEC.
- Added the Contacts API for domain contact management.
- Added the Organizations and Users APIs for account management.
- Added API authentication with API keys and bearer tokens.

