Domain Group · Authentication Profile

Domain Group Authentication

Authentication

Domain Group secures its APIs with apiKey and oauth2 across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode and clientCredentials flow(s).

Real EstateAustraliaProperty ListingsProperty DataValuationAVMRentalsListing ManagementPropTechPortal Marketplace
Methods: apiKey, oauth2 Schemes: 2 OAuth flows: authorizationCode, clientCredentials API key in: header

Security Schemes

apikey apiKey
· in: header (x-api-key)
oauth2 oauth2
· flows: clientCredentials, authorizationCode

Source

Authentication Profile

Raw ↑
generated: '2026-07-26'
method: searched
source: openapi/domain-group-openapi-latest.json, openapi/domain-group-openapi-v1.json, openapi/domain-group-openapi-v2.json,
  https://developer.domain.com.au/docs/latest/authentication, well-known/domain-group-openid-configuration.json
summary:
  types:
  - apiKey
  - oauth2
  api_key_in:
  - header
  oauth2_flows:
  - authorizationCode
  - clientCredentials
schemes:
- name: apikey
  type: apiKey
  in: header
  parameter: x-api-key
  description: API Key in Header
  sources:
  - openapi/domain-group-openapi-latest.json
  - openapi/domain-group-openapi-v1.json
  - openapi/domain-group-openapi-v2.json
- name: oauth2
  type: oauth2
  flows:
  - flow: clientCredentials
    tokenUrl: https://auth.domain.com.au/v1/connect/token
    scopes: 25
  - flow: authorizationCode
    authorizationUrl: https://auth.domain.com.au/v1/connect/authorize
    tokenUrl: https://auth.domain.com.au/v1/connect/token
    scopes: 25
  description: OAuth 2
  sources:
  - openapi/domain-group-openapi-latest.json
  - openapi/domain-group-openapi-v1.json
  - openapi/domain-group-openapi-v2.json
docs: https://developer.domain.com.au/docs/latest/authentication
guidance: 'Domain documents exactly two authentication methods: API Key and OAuth 2.0. Domain recommends
  OAuth 2.0 wherever the application can securely store a secret server-side. API Keys cannot reach user-specific
  data at all - any call requiring user context (agency-scoped webhook subscriptions, GET /v1/me and its
  sub-resources) must use an Authorization Code or Implicit token. No endpoint is reachable until the
  required API package has been added to the project in the developer portal.'
identity_provider:
  issuer: https://auth.domain.com.au/v1
  discovery: https://auth.domain.com.au/v1/.well-known/openid-configuration
  jwks: https://auth.domain.com.au/v1/.well-known/jwks
  local_discovery: well-known/domain-group-openid-configuration.json
  id_token_signing:
  - RS256
  pkce:
  - plain
  - S256
  dpop: true
  par: true
  ciba: true
  device_code: true
  token_endpoint_auth_methods:
  - client_secret_basic
  - client_secret_post
  introspection_endpoint: https://auth.domain.com.au/v1/connect/introspect
  revocation_endpoint: https://auth.domain.com.au/v1/connect/revocation
token_handling:
  cache: Access tokens must be cached and reused until expiry.
  authorisation_rate_limit: up to 3000 token requests per hour
  sla_condition: The 99% uptime / 900ms p95 SLA is conditional on following these authentication best
    practices.
  source: https://developer.domain.com.au/docs/latest/conventions/rate-limiting
flow_selection:
- flow: clientCredentials
  use: 'Machine-to-machine reads: properties, listings, market statistics, schools, sales results. No
    user context.'
- flow: authorizationCode
  use: Any call needing user context - agency-scoped webhook subscriptions, GET /v1/me, GET /v1/me/agencies,
    GET /v1/me/providers.
- flow: implicit
  use: Documented by Domain as an alternative user-context grant; the OpenAPI documents declare clientCredentials
    and authorizationCode only.
failure_diagnostics:
  header: X-Domain-Security-Reason
  note: Returned on 401/403 and usually names the cause. See errors/domain-group-problem-types.yml.
  source: https://developer.domain.com.au/docs/latest/troubleshooting
environments:
- name: Primary
  api: https://api.domain.com.au/
  auth: https://auth.domain.com.au/
- name: Sandbox
  api: https://api.domain.com.au/sandbox/
  auth: https://auth.domain.com.au/
  note: Auth host is shared; only the API base URL differs.
scopes_artifact: scopes/domain-group-scopes.yml