Domain

Owned domain with its nameservers, contacts, EPP statuses, DNSSEC, RGP statuses, registry timestamps, and latest-version metadata.

  • object
    Type: string

    Resource type identifier

  • id
    Type: string

    Domain typeid (prefix dom_)

  • org_id
    Type: string

    Owning organisation

  • primary_team_id
    Type: string

    Primary team responsible for the domain. Drives contact resolution (team-level registrant/admin/tech/billing) and is the team a user-bearing caller must be a member of to read the row by default.

  • team_ids
    Type: array string[]

    Additional teams granted access to the domain. Excludes the primary team. Empty array when no extra grants are in effect.

  • domain
    Type: string

    Fully-qualified domain name

  • label
    Type: string

    Label portion of the FQDN (everything left of the TLD)

  • tld
    Type: string

    Top-level domain

  • registry
    Type: object · Registry

    Upstream EPP registry sponsoring the TLD. Embedded as a typed handle so SDK consumers can render the registry without dereferencing config; nil only when the row has no resolved registry (should not happen for valid managed/external rows).

    Upstream EPP registry that sponsors a TLD.

    • object
      Type: string

      Resource type identifier

    • slug
      Type: string

      Registry slug as used by eppclientd (e.g. "verisign", "donuts")

  • kind
    Type: string

    Sponsorship classification. One of managed, external, backorder. Determines which other fields are populated.

  • status
    Type: string

    Lifecycle state. Valid values depend on kind.

  • auto_renew
    Type: boolean

    Whether the domain auto-renews at expiry

  • period
    Type: object · Period

    Registered term as a typed (count, unit) pair. Omitted when unknown.

    Registration term carrying a count and the unit it is denominated in.

    • object
      Type: string

      Resource type identifier

    • count
      Type: integer

      Count denominated in Unit

    • unit
      Type: string · period.Unitenum

      Unit, "y" (years) or "m" (months)

      values
      • y = UnitYear
      • m = UnitMonth
  • premium
    Type: boolean

    True when the domain was registered at a premium tier price

  • external_registrar
    Type: object · Registrar

    External registrar holding the domain. Populated for kind=external rows when RDAP returns it; nil on managed rows and on externals where the registrar is unknown.

    External registrar that currently holds a domain we monitor.

    • object
      Type: string

      Resource type identifier

    • name
      Type: string

      Registrar slug (e.g. "godaddy", "namecheap")

  • contacts
    Type: array object[] · DomainContact[]

    Contact assignments by role (registrant, admin, tech, billing). One entry per assigned slot; empty when no contacts are bound (typical for kind=external and kind=backorder).

    One role/contact binding on a domain.

    • object
      Type: string

      Resource type identifier

    • role
      Type: string

      Role this contact fulfils. One of registrant, admin, tech, billing.

    • contact
      Type: object · Contact

      The contact assigned to the role

      A registrant contact record submitted to domain registries. Two shapes are supported: member contacts derive their registrant payload from an existing user, organization location, and optional personal phone; external contacts are free-form rows whose payload is operator-edited end-to-end. The snapshot fields (first_name, last_name, org_name, email, phone, fax, address, country_code) carry a stable copy of the registrant payload so the registry sees a consistent submission even when the upstream rows change. On a member contact those fields are refresher-owned and reflect the latest upstream values; on an external contact they are taken directly from the request body. location carries the full linked organization location on member contacts. It is null on external contacts, and also null on a member contact whose location has since been deleted. disclose is the per-contact privacy flag forwarded to the registry. It is not derived from upstream and remains operator-editable on both shapes.

  • nameservers
    Type: array object[] · DomainNameserver[]

    Delegation set ordered by position. Empty array on rows that have not had nameservers configured yet.

    One nameserver delegation entry on a domain.

    • object
      Type: string

      Resource type identifier

    • id
      Type: string

      Link row typeid (prefix dns_)

    • host_id
      Type: string

      Host object typeid (prefix hst_). Shared across every domain that delegates to the same hostname under the same registry.

    • position
      Type: integer

      Ordinal position (1..13) — the order we send to the registry

    • hostname
      Type: string

      Fully-qualified hostname of the nameserver

  • epp_statuses
    Type: array string[]

    RFC 5731 EPP status codes currently applied to the domain. Verbatim registry strings (e.g. clientTransferProhibited, serverHold).

  • ds_records
    Type: array object[] · DomainDS[]

    RFC 5910 DNSSEC DS records. Empty when DNSSEC is not configured.

    One RFC 5910 DNSSEC DS record published for a domain.

    • object
      Type: string

      Resource type identifier

    • id
      Type: string

      Row typeid (prefix dsr_)

    • key_tag
      Type: integer

      Key tag (0..65535) per RFC 4034 §5.1

    • algorithm
      Type: integer

      IANA DNSSEC algorithm number (e.g., 13 = ECDSA P-256, 15 = Ed25519)

    • digest_type
      Type: integer

      IANA DNSSEC digest type (e.g., 2 = SHA-256, 4 = SHA-384)

    • digest
      Type: string

      Hex-encoded digest of the DNSKEY public key

    • max_sig_life
      Type: integer

      Optional RFC 5910 maxSigLife (seconds). Zero/omitted when the registry did not publish a maxSigLife for this record.

  • rgp_statuses
    Type: array string[]

    RFC 3915 Registry Grace Period status codes currently applied. Empty outside active grace/redemption windows.

  • has_auth_code
    Type: boolean

    Whether a transfer authorization code is stored for this domain. The code itself is never returned.

  • is_transferable
    Type: boolean

    Transfer-in eligibility estimate from the last-synced registration data. Only ever true for kind=external rows; authoritative only at order placement.

  • transfer_ineligible_reason
    Type: string

    Why the domain is not transferable. One of not_registered, expired, redemption, pending_delete, pending_transfer, locked, too_recently_registered. Omitted when transferable or when kind is not external.

  • version
    Type: integer

    Monotonically-incrementing version of the domain. Bumps once per change; matches the version whose actor attribution is reported in last_changed_by.

  • created_by
    Type: object · Actor

    Immutable creator attribution. Polymorphic by method.

    Principal behind an action. kind is the principal and method is the credential it acted through; the matching nested field (user, personal_key, org_key) is populated when one applies.

    • object
      Type: string

      Resource type identifier

    • kind
      Type: string

      The kind of principal: user, org, visitor, or system.

    • method
      Type: string

      The credential the principal acted through: session, personal_key, org_key, or system.

    • user
      Type: object · User

      Full user profile. Populated for the user kind when the user row is resolvable; null otherwise, including when the user was deleted after the action was recorded.

      User profile with identity and display metadata

    • personal_key
      Type: object · ActorPersonalKey

      Personal API key pointer. Populated only for method personal_key.

      Personal API key pointer inside an Actor envelope.

    • org_key
      Type: object · ActorOrgKey

      Org API key pointer. Populated only for the org kind.

      Org API key pointer inside an Actor envelope.

  • last_changed_by
    Type: object · Actor

    Actor responsible for the live version. Polymorphic by method; omitted on rows that pre-date the version table (none in v1).

    Principal behind an action. kind is the principal and method is the credential it acted through; the matching nested field (user, personal_key, org_key) is populated when one applies.

    • object
      Type: string

      Resource type identifier

    • kind
      Type: string

      The kind of principal: user, org, visitor, or system.

    • method
      Type: string

      The credential the principal acted through: session, personal_key, org_key, or system.

    • user
      Type: object · User

      Full user profile. Populated for the user kind when the user row is resolvable; null otherwise, including when the user was deleted after the action was recorded.

      User profile with identity and display metadata

    • personal_key
      Type: object · ActorPersonalKey

      Personal API key pointer. Populated only for method personal_key.

      Personal API key pointer inside an Actor envelope.

    • org_key
      Type: object · ActorOrgKey

      Org API key pointer. Populated only for the org kind.

      Org API key pointer inside an Actor envelope.

  • last_changed_at
    Type: string

    Timestamp of the live version's creation

  • registered_at
    Type: string

    Original registry create date. Null for backorder probes and some external-monitoring rows.

  • registry_updated_at
    Type: string

    Last update date reported by the registry

  • expires_at
    Type: string

    Registry expiry timestamp

  • renews_at
    Type: string

    When auto-renewal first attempts this domain: the configured renewal window before expires_at. A value in the past means the renewal is due now or overdue. Null when the domain does not auto-renew, is not a managed registration, has no expiry, or auto-renewal is disabled platform-wide.

  • last_transferred_at
    Type: string

    Last successful transfer date. Null when never transferred.

  • created_at
    Type: string

    Row creation timestamp (when we first tracked this domain)

  • updated_at
    Type: string

    Row last-update timestamp (any column change)