Read stored domain contact assignments through the v2 API

Use GET /v2/domains/{domainId}/contacts to read the contact assignments stored for a domain in your reseller account. This helps you display the registered contact roles, prepare a reviewed update and investigate differences between your billing system and the domain record.

01 Find the correct domain

  1. Authenticate with a current credential that has domains:read.
  2. Search /v2/domains, compare the full domain name and retain its returned identifier.
  3. Request the contacts route without a mutation body.
  4. Follow the collection metadata if the result is paginated.
API request example
GET /v2/domains/DOMAIN_ID/contacts

02 Interpret assignments and snapshots

Contact assignments identify a role and its associated stored contact information. Read the returned role and snapshot structure rather than assuming the old integration's flat contact object. The current connector maps supported roles such as registrant, admin, technical and billing according to the registry workflow.

A reusable contact profile and the snapshot assigned to a domain serve different purposes. Editing the saved profile does not necessarily update every domain that previously used its details.

03 Use contact data carefully

Display only information the authorised user needs. Contact details can include names, organisation, address, telephone and email. Keep the response out of public diagnostics and do not assume that a field absent from public RDAP is absent from the authenticated domain record.

If you compare the result with WHMCS, map field names explicitly. The current API uses names such as first_name, last_name, phone_e164, postal_code and country_code in supported contact payloads. Do not reuse malformed old examples with different field naming.

04 Example: retrieve contacts without exposing them in a public log

Use the server-side PHP request helper in the API getting-started article with an authorised domains:read credential. Resolve DOMAIN_ID from your owned domain inventory first. Run this in your private integration process, not in a browser script that exposes the API key.

Code or configuration example
$domainId = 'DOMAIN_ID';
$result = nabtechRequest('GET', '/v2/domains/' . rawurlencode($domainId) . '/contacts');
if ($result['http_status'] !== 200 ||
    !is_array($result['response']['data'] ?? null)) {
    throw new RuntimeException('Could not read domain contacts.');
}
$assignments = $result['response']['data'];
// Map only the required contact roles into the authorised account view.

Read the result: The successful data collection contains the stored assignments for that owned domain. Keep the contact snapshots associated with their roles rather than assuming the first returned row is the registrant. Do not print the full response into a publicly accessible debug page.

This read does not synchronize registrar data or update a contact profile. If the stored details are unexpected, inspect the relevant operation and approved synchronization workflow before submitting an identity change. Retain a redacted request reference for support.

What should I do when the returned domain contacts look wrong?

Check the last synchronization and relevant operation history. If a contact update is pending, wait for its outcome instead of submitting another copy. Confirm the intended registrant with the owner before changing identity data.

For an actual update, use the separate PUT contacts workflow and satisfy registry verification requirements. Reading a stored assignment is not proof that a newly requested registrar update completed or that a contact change is exempt from transfer restrictions.

  • 0 Users Found This Useful
  • domain-nexus, development
Was this answer helpful?

Related Articles

Get started with the current Nabtech Domain Nexus v2 API

The current Nabtech reseller API uses Domain Nexus v2. It provides domain ordering and...

Renew a domain through the Domain Nexus v2 API

Renew an owned domain with POST /v2/domains/{domainId}/renew. The request uses the current...

Request and retrieve a domain EPP authorisation code through the API

The current EPP workflow uses POST /v2/domains/{domainId}/epp-code to request an authorisation...

Read a domain's desired nameservers through the v2 API

Use GET /v2/domains/{domainId}/nameservers to read the desired nameserver records stored for an...

Update domain contact roles with the current v2 API

Use PUT /v2/domains/{domainId}/contacts to request changes to the contact assignments of an...