Skip to main content
POST
/
api
/
public
/
v2
/
webhooks
Create a new webhook subscription
curl --request POST \
  --url https://app.titanx.io/api/public/v2/webhooks \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Production Contact Webhook",
  "url": "https://api.example.com/webhooks/titanx",
  "events": [
    "job.contact.scored"
  ],
  "status": "active"
}
'
{
  "payload": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Production Contact Webhook",
    "url": "https://api.example.com/webhooks/titanx",
    "triggers": [
      "job.contact.scored"
    ],
    "status": "active",
    "secret": "wh_sk_Xp2s9K4mN8vR1qW5tY7uI0oP3aS6dF9gH2jK4lZ8xC1vB5nM7",
    "createdAt": "2024-01-15T10:30:00Z",
    "updatedAt": "2024-01-15T10:30:00Z"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
name
string
required

Name for the webhook (for your reference)

Minimum string length: 1
Example:

"Production Contact Webhook"

url
string<uri>
required

HTTPS endpoint URL where webhook events will be sent (must be HTTPS)

Example:

"https://api.example.com/webhooks/titanx"

events
enum<string>[]
required

Array of event types to subscribe to

Minimum array length: 1
Available options:
job.contact.scored
Example:
["job.contact.scored"]
status
enum<string>
default:active

Initial status of the webhook

Available options:
active,
inactive
Example:

"active"

Response

Webhook created successfully. The secret is only shown once - store it securely.

payload
object
required