Create a webhook subscription
Registers a new webhook endpoint. Jobiflow will send HTTP POST requests to your URL whenever the selected events occur. Requires scope: `webhooks:manage`
Registers a new webhook endpoint. Jobiflow will send HTTP POST requests to your URL whenever the selected events occur.
Requires scope: webhooks:manage
Authorization
ApiKeyAuth API key issued by Jobiflow. Pass it in the X-API-Key request header.
Create keys via the company dashboard (Settings → API Keys) or via POST /settings/api-keys.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/public/v1/webhooks" \ -H "Content-Type: application/json" \ -d '{ "url": "https://yourapp.example.com/webhooks/jobiflow", "events": [ "application.created", "application.status_changed" ] }'{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda",
"url": "http://example.com",
"events": [
"string"
],
"active": true,
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z"
}{
"status": 400,
"error": "BAD_REQUEST",
"message": "Malformed JSON body",
"timestamp": "2026-05-17T12:00:00Z",
"path": "/public/v1/job-listings"
}{
"status": 401,
"error": "UNAUTHORIZED",
"message": "Invalid or missing API key",
"timestamp": "2026-05-17T12:00:00Z",
"path": "/public/v1/job-listings"
}{
"status": 403,
"error": "FORBIDDEN",
"message": "Scope 'jobs:write' is required",
"timestamp": "2026-05-17T12:00:00Z",
"path": "/public/v1/job-listings"
}{
"status": 422,
"error": "VALIDATION_ERROR",
"message": "Request validation failed",
"timestamp": "2026-05-17T12:00:00Z",
"path": "/public/v1/job-listings",
"details": [
{
"field": "position",
"message": "must not be blank"
}
]
}