Webhooks

Register a webhook

Changed on

Register a webhook URL to receive event notifications.

Omit posting_id to subscribe to every posting in the workspace, including ones created later. Pass it to scope the webhook to a single posting. A workspace-scoped and a posting-scoped webhook that both match an event each receive their own delivery.

The response includes a signing_secret (whsec_…) returned only once — store it securely. Deliveries are signed with it; see the signing_secret field for the verification scheme.

post/api/v2/webhooks

Request

  • Base URL
    https://api.heymilo.ai
  • URL
    https://api.heymilo.ai/api/v2/webhooks
  • Auth
    API key in header X-API-KEY

Headers

X-API-KEYstring nullable
Authorizationstring nullable
X-Workspace-Idstring nullable

Request body

posting_idstring nullable

Posting to scope this webhook to. Omit to subscribe to every posting in the workspace, including ones created later.

webhook_urlstring required

Destination URL for webhook delivery.

event_typestring required

Type of event that triggers the webhook. Supported values: 'interview_started', 'interview_completed', 'report_available', 'candidate_shortlisted', 'candidate_rejected'.

Example request

{
  "posting_id": "13D77095",
  "webhook_url": "https://webhook.site/test",
  "event_type": "interview_completed"
}

Response

Successful Response

metaobject nullable

Optional metadata. Shape varies by endpoint.

Example response

{
  "data": {
    "webhook_id": "42AE4CFA720B1C35D499E9E39C14F321",
    "posting_id": "13D77095",
    "webhook_url": "https://webhook.site/test",
    "event_type": "interview_completed",
    "created_at": 1739612400,
    "updated_at": 1739617200,
    "signing_secret": "whsec_a1b2c3d4e5f6..."
  }
}

Changes

    • breaking

      the response property / became optional for the status

    • breaking

      response property data/posting_id list-of-types was widened by adding types null to media type application/json of response 201

    • info

      the request property became optional

    • info

      request property list-of-types was widened by adding types null to media type application/json

    • info

      added the required property / to the response with the status