ContactDetail
A registrant contact, as the contact endpoints return it. It carries every field of Contact under the same name, then pending_profile and registries. A member contact's first_name, last_name and email follow the profile until a domain or a registry uses the contact; after that a profile change marks the contact out_of_sync with sync_reason: profile_changed, and pending_profile shows the values POST /contacts/{contact_id}/sync would apply. registries lists each registry holding a copy of the contact, with that registry's own sync state. An edit marks every entry out_of_sync until the registry accepts the update; the contact's own sync_status never reflects registries.
- objectType: string
Resource type identifier, always "contact_detail".
- emailType: string
Registrant email address.
- phoneType: string
Registrant phone in canonical E.164 form.
- faxType: string
Registrant fax in canonical E.164 form. Optional; many registries accept an empty value.
- street1Type: string
First line of the street address.
- street2Type: string
Second line of the street address. Optional.
- cityType: string
City or locality.
- regionType: string
State, province, or administrative region.
- postalType: string
_code Postal or ZIP code.
- countryType: string
_code ISO 3166-1 alpha-2 country code.
- discloseType: boolean
Per-contact privacy flag submitted to the registry. False (default) requests redaction; true permits the registry to disclose the registrant payload via WHOIS/RDAP. Not derived from upstream; operator-editable on both kinds.
- idType: string
Stable identifier for the contact.
- verificationType: enum
_status Explicit verification state of the contact: "unverified" or "verified". Member contacts are stamped "verified" at create time because their snapshot is composed from already-validated upstream rows; external contacts start "unverified" and transition only via the verification flow. Not operator-editable via PATCH.
values- unverified =
Status Unverified - verified =
Status Verified
- unverified =
- isType: boolean
_active Whether the contact is available for assignment. Defaults to true; flipping to false is the reversible operator switch above soft-delete. A contact still in use, by a team role slot, a domain, an order in progress or a contact change being applied, cannot be deactivated until that use ends.
- verifiedType: string
_at Timestamp of the last successful verification, in RFC 3339 UTC form. Supporting observability for verification_status; null when the contact has never been verified.
- locationType:Properties: 16
Full linked organization location. Present on member contacts; null on external contacts and on member contacts whose location has been deleted.
- syncType: enum
_status Whether the contact matches its member's profile. Always "in_sync" on an external contact.
values- in
_sync = Sync Status In Sync - out
_of _sync = Sync Status Out Of Sync
- in
- syncenum
_reason const:profile_changedWhy the contact is out of sync; null exactly when it is in sync. "profile_changed": the member changed their name or email while a domain or a registry used the contact.
values- profile
_changed = Sync Reason Profile Changed
- profile
- syncType: string
_status _changed _at When sync_status last changed, in RFC 3339 UTC form: while out of sync, the time the contact first fell out of sync.
- pendingType:
_profile Properties: 4The member's profile as it reads now, which a sync would apply. Null unless sync_reason is "profile_changed" and the member still belongs to the organization.
- registriesType:Properties: 7
One entry per registry where the contact holds a handle, each with that registry's own sync state; empty when it holds none. A registry that runs thin and thick TLDs holds one handle, so it appears once.
- createdType: string
_at Creation timestamp in RFC 3339 UTC form.
- orgType: string
_id Identifier of the owning organization.
- updatedType: string
_at Last-update timestamp in RFC 3339 UTC form.
- kindType: enum
Contact shape: "member" (derived from user + location + optional phone) or "external" (free-form).
valuesmember = KindMemberexternal = KindExternal - userType: string
_id Identifier of the linked user. Present on member contacts only.
- phoneType: string
_id Identifier of the linked personal phone. Optional on member contacts; when absent the snapshot's
phoneis composed from the location's office phone. Always null on external contacts. - firstType: string
_name Registrant first name.
- lastType: string
_name Registrant last name.
- orgType: string
_name Registrant organization name. Derived from the org's legal name on member contacts; free-form on external contacts.