Domain Group · AsyncAPI Specification

Domain Group Webhooks

Version

View Spec View on GitHub Real-EstateAustraliaProperty ListingsProperty DataValuationAVMRentalsListing ManagementPropTechPortal MarketplaceAsyncAPIEvents

AsyncAPI Specification

Raw ↑
generated: '2026-07-26'
method: searched
source: https://developer.domain.com.au/docs/latest/apis/pkg_webhooks
spec_type: WebhookCatalog
summary: >-
  Domain runs a first-class webhook system: the developer registers an endpoint
  URL on a portal project, proves control of it through a verification
  challenge, then creates one subscription per (resourceType, ownerType, ownerId)
  combination. Notifications are POSTed as a JSON array, signed with HMAC-SHA1,
  and must be acknowledged with 204 No Content before processing.

management_api:
  package: Domain Webhooks API
  docs: https://developer.domain.com.au/docs/latest/apis/pkg_webhooks
  scope: api_webhooks_write
  operations:
  - method: PUT
    path: '/v1/webhooks/{id}/subscriptions'
    description: Create a subscription to notifications
  - method: GET
    path: '/v1/webhooks/{id}/subscriptions'
    description: List all subscriptions to the specified webhook
  - method: GET
    path: '/v1/subscriptions/{id}'
    description: Retrieve the details of a single subscription
  - method: DELETE
    path: '/v1/subscriptions/{id}'
    description: Delete a single subscription
  id_prefixes:
    webhook: whk_
    subscription: subs_
    verification_code: vfy_

endpoint_verification:
  docs: https://developer.domain.com.au/docs/latest/apis/pkg_webhooks/guides/configuration/
  mechanism: >-
    Domain issues two GET requests to the registered URL - one carrying the
    correct ?verification= code, to which the endpoint must return 204 No
    Content, and one carrying an invalid code, to which it must return 404 Not
    Found. The endpoint must keep responding correctly at all times.
  common_failures:
  - Non-public URL (localhost / RFC1918 address)
  - DNS not yet propagated (wait at least 24 hours after DNS changes)
  - Invalid or self-signed TLS certificate

delivery:
  docs: https://developer.domain.com.au/docs/latest/apis/pkg_webhooks/guides/processing/
  method: POST
  body: JSON array of notification objects (batched - always an array, even for a single event)
  expected_response: 204 No Content
  response_deadline: respond as quickly as possible, ideally within 2 seconds
  processing_rule: >-
    Consumers MUST NOT process notification detail before acknowledging. Domain
    monitors response time and disables webhooks that consistently respond slowly
    or with errors.
  signature:
    header: X-Domain-Signature
    algorithm: HMAC-SHA1
    key: the webhook's Verification Code
    body: hex-encoded lowercase HMAC of the raw notification body
    on_failure: discard the message and return 404

notification_payload:
  fields:
  - {name: resourceType, type: string, description: The subscribed resource type}
  - {name: resourceId, type: string, description: Identifier of the changed resource, usable on the matching GET endpoint}
  - {name: date, type: string, format: date-time, description: When the event occurred (ISO 8601 with offset)}
  - {name: subscriptionId, type: string, description: The subscription that produced this notification}
  - {name: ownerId, type: string, description: Identifier of the owner filter}
  - {name: ownerType, type: string, description: 'One of: group, agency, provider'}
  - {name: notificationId, type: string, format: uuid, description: Unique id for this notification}
  - {name: isDeleted, type: boolean, description: Whether the resource was deleted}

owner_types:
- name: group
  description: >-
    Notifications relevant to more than one owner. The only valid group name is
    "public"; access may need to be requested.
  valid_owner_ids: [public]
- name: agency
  description: Notifications relevant to a particular agency.
  owner_id_source: GET /v1/me/agencies
  auth_requirement: authorization code flow (user context) required
- name: provider
  description: Notifications relevant to any agency linked to the given provider.
  owner_id_source: GET /v1/me/providers

events:
- resource_type: agencies
  resource_id: agencyId
  read_operation: GET /v1/agencies/{id}/
  owner_types: [agency, group, provider]
  description: Notified when agency details are changed.
- resource_type: agents
  resource_id: agentId
  read_operation: GET /v1/agents/{id}/
  owner_types: [agency, group, provider]
  description: Notified when agent details are changed.
- resource_type: enquiries
  resource_id: enquiryId
  read_operation: GET /v1/enquiries/{id}/
  owner_types: [agency, provider]
  description: Enquiries submitted to agents from listings.
- resource_type: listings
  resource_id: listingId
  read_operation: GET /v1/listings/{id}/
  owner_types: [agency, group, provider]
  description: Updates as listings are created, updated or deleted.
- resource_type: projects
  resource_id: projectId
  read_operation: GET /v1/projects/{id}/
  owner_types: [agency, group, provider]
  description: Updates as projects are created, updated or deleted.
- resource_type: listingProcessingReports
  resource_id: reportId
  read_operation: GET /v1/listings/processingReports/{id}/
  owner_types: [agency, provider]
  description: >-
    Status of listings submitted through the CRM endpoints; sent whenever a new
    listing processing report is available.
- resource_type: heartbeat
  resource_id: unique guid
  owner_types: [group]
  owner_ids: [public]
  description: >-
    Liveness signal for the webhook system - at least one heartbeat notification
    every 5 minutes. Useful for troubleshooting.

asyncapi_published: false
asyncapi_note: >-
  Domain publishes no AsyncAPI document. asyncapi/domain-group-webhooks-asyncapi.yml
  in this repo is an API Evangelist generation of this catalog, not a provider
  artifact.

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/domain-group-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.