curl --request PATCH \
--url https://api.stackone.com/v2/webhooks/{id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"webhook_url": "https://example.com/stackone/webhooks",
"events": [
"account.created",
"account.updated",
"account.deleted"
],
"label": "<string>",
"provider_events": {}
}
'import requests
url = "https://api.stackone.com/v2/webhooks/{id}"
payload = {
"webhook_url": "https://example.com/stackone/webhooks",
"events": ["account.created", "account.updated", "account.deleted"],
"label": "<string>",
"provider_events": {}
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
webhook_url: 'https://example.com/stackone/webhooks',
events: ['account.created', 'account.updated', 'account.deleted'],
label: '<string>',
provider_events: {}
})
};
fetch('https://api.stackone.com/v2/webhooks/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stackone.com/v2/webhooks/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'webhook_url' => 'https://example.com/stackone/webhooks',
'events' => [
'account.created',
'account.updated',
'account.deleted'
],
'label' => '<string>',
'provider_events' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.stackone.com/v2/webhooks/{id}"
payload := strings.NewReader("{\n \"webhook_url\": \"https://example.com/stackone/webhooks\",\n \"events\": [\n \"account.created\",\n \"account.updated\",\n \"account.deleted\"\n ],\n \"label\": \"<string>\",\n \"provider_events\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.stackone.com/v2/webhooks/{id}")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"webhook_url\": \"https://example.com/stackone/webhooks\",\n \"events\": [\n \"account.created\",\n \"account.updated\",\n \"account.deleted\"\n ],\n \"label\": \"<string>\",\n \"provider_events\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stackone.com/v2/webhooks/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"webhook_url\": \"https://example.com/stackone/webhooks\",\n \"events\": [\n \"account.created\",\n \"account.updated\",\n \"account.deleted\"\n ],\n \"label\": \"<string>\",\n \"provider_events\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"label": "<string>",
"webhook_url": "<string>",
"events": [
"<string>"
],
"status": "active",
"status_reasons": [
{
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"description": "<string>"
}
],
"provider_events": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"signing_secret": "<string>"
}{
"statusCode": 400,
"message": "Bad Request",
"timestamp": "2023-05-30T00:00:00.000Z",
"data": {
"statusCode": 400,
"message": "Bad Request",
"headers": {
"content-type": "application/json",
"x-request-id": "5678c28b211dace4e0a0f9171e6b88c5"
}
},
"provider_errors": [
{
"status": 400,
"url": "https://api.provider.com/v1/resource",
"raw": {
"message": "Invalid input parameters"
},
"headers": {
"content-type": "application/json",
"x-request-id": "5678c28b211dace4e0a0f9171e6b88c5"
}
}
]
}{
"statusCode": 401,
"message": "Unauthorized",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 403,
"message": "Forbidden resource",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 404,
"message": "Not Found",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 408,
"message": "Request timed out",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 409,
"message": "Conflict",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 422,
"message": "Unprocessable Entity",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 429,
"message": "Too many requests",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 500,
"message": "Internal server error",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 501,
"message": "Not Implemented",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 502,
"message": "Bad Gateway",
"timestamp": "2023-05-30T00:00:00.000Z"
}Update a webhook
Applies a partial update; omitted fields are left unchanged. Set status to inactive to pause deliveries without deleting the webhook.
curl --request PATCH \
--url https://api.stackone.com/v2/webhooks/{id} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"webhook_url": "https://example.com/stackone/webhooks",
"events": [
"account.created",
"account.updated",
"account.deleted"
],
"label": "<string>",
"provider_events": {}
}
'import requests
url = "https://api.stackone.com/v2/webhooks/{id}"
payload = {
"webhook_url": "https://example.com/stackone/webhooks",
"events": ["account.created", "account.updated", "account.deleted"],
"label": "<string>",
"provider_events": {}
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
webhook_url: 'https://example.com/stackone/webhooks',
events: ['account.created', 'account.updated', 'account.deleted'],
label: '<string>',
provider_events: {}
})
};
fetch('https://api.stackone.com/v2/webhooks/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.stackone.com/v2/webhooks/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'webhook_url' => 'https://example.com/stackone/webhooks',
'events' => [
'account.created',
'account.updated',
'account.deleted'
],
'label' => '<string>',
'provider_events' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.stackone.com/v2/webhooks/{id}"
payload := strings.NewReader("{\n \"webhook_url\": \"https://example.com/stackone/webhooks\",\n \"events\": [\n \"account.created\",\n \"account.updated\",\n \"account.deleted\"\n ],\n \"label\": \"<string>\",\n \"provider_events\": {}\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.stackone.com/v2/webhooks/{id}")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"webhook_url\": \"https://example.com/stackone/webhooks\",\n \"events\": [\n \"account.created\",\n \"account.updated\",\n \"account.deleted\"\n ],\n \"label\": \"<string>\",\n \"provider_events\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.stackone.com/v2/webhooks/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"webhook_url\": \"https://example.com/stackone/webhooks\",\n \"events\": [\n \"account.created\",\n \"account.updated\",\n \"account.deleted\"\n ],\n \"label\": \"<string>\",\n \"provider_events\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"label": "<string>",
"webhook_url": "<string>",
"events": [
"<string>"
],
"status": "active",
"status_reasons": [
{
"timestamp": "2023-11-07T05:31:56Z",
"code": "<string>",
"description": "<string>"
}
],
"provider_events": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"signing_secret": "<string>"
}{
"statusCode": 400,
"message": "Bad Request",
"timestamp": "2023-05-30T00:00:00.000Z",
"data": {
"statusCode": 400,
"message": "Bad Request",
"headers": {
"content-type": "application/json",
"x-request-id": "5678c28b211dace4e0a0f9171e6b88c5"
}
},
"provider_errors": [
{
"status": 400,
"url": "https://api.provider.com/v1/resource",
"raw": {
"message": "Invalid input parameters"
},
"headers": {
"content-type": "application/json",
"x-request-id": "5678c28b211dace4e0a0f9171e6b88c5"
}
}
]
}{
"statusCode": 401,
"message": "Unauthorized",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 403,
"message": "Forbidden resource",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 404,
"message": "Not Found",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 408,
"message": "Request timed out",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 409,
"message": "Conflict",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 422,
"message": "Unprocessable Entity",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 429,
"message": "Too many requests",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 500,
"message": "Internal server error",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 501,
"message": "Not Implemented",
"timestamp": "2023-05-30T00:00:00.000Z"
}{
"statusCode": 502,
"message": "Bad Gateway",
"timestamp": "2023-05-30T00:00:00.000Z"
}Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Path Parameters
The unique identifier of the webhook.
Query Parameters
A comma-separated list of additional fields to expand. Supported values: provider_events (the per-provider event configuration). These are returned as null unless requested.
"provider_events"
Body
The https URL events are delivered to. localhost and numeric IP addresses are rejected, and a hostname that does not resolve in DNS fails the request with a 502.
"https://example.com/stackone/webhooks"
The events the webhook is subscribed to. Replaces the stored list.
A unified webhook event type.
account.created, account.updated, account.deleted, hris_employees.created, hris_employees.updated, hris_employees.deleted, hris_employments.created, hris_employments.updated, hris_employments.deleted, hris_time_off.created, hris_time_off.updated, hris_time_off.deleted, hris_tasks.created, hris_tasks.updated, hris_tasks.deleted, hris_shifts.created, hris_shifts.updated, hris_shifts.deleted, ats_assessments.created, ats_background_checks.created, ats_candidates.created, ats_candidates.updated, ats_candidates.deleted, ats_applications.created, ats_applications.updated, ats_applications.deleted, ats_interviews.created, ats_interviews.updated, ats_interviews.deleted, ats_jobs.created, ats_jobs.updated, ats_jobs.deleted, ats_job_postings.created, ats_job_postings.updated, ats_job_postings.deleted, ats_users.created, ats_users.updated, ats_users.deleted, ats_lists.created, ats_lists.updated, ats_lists.deleted, crm_contacts.created, crm_contacts.updated, crm_contacts.deleted, crm_accounts.created, crm_accounts.updated, crm_accounts.deleted, lms_completions.created, lms_completions.updated, lms_completions.deleted, lms_content.created, lms_content.updated, lms_content.deleted, lms_assignments.created, lms_assignments.updated, lms_assignments.deleted, lms_courses.created, lms_courses.updated, lms_courses.deleted, lms_users.created, lms_users.updated, lms_users.deleted, documents_files.created, documents_files.updated, documents_files.deleted, documents_folders.created, documents_folders.updated, documents_folders.deleted, documents_drives.created, documents_drives.updated, documents_drives.deleted, screening_results.created, screening_results.updated, screening_results.deleted [
"account.created",
"account.updated",
"account.deleted"
]
A display label for the webhook.
Set to inactive to pause deliveries and active to resume them.
active, inactive The per-provider event configuration, keyed by provider key and then by unified event name. Replaces the whole stored configuration when present.
Show child attributes
Show child attributes
Response
The webhook was updated.
The unique identifier of the webhook.
The display label of the webhook.
The URL webhook events are delivered to.
The unified event names the webhook is subscribed to (e.g. employee.created).
The status of the webhook.
active, inactive, suspended, archived, expired, error, unmapped_value, null The reasons explaining the current status; empty when none are recorded.
Show child attributes
Show child attributes
The per-provider event configuration, keyed by provider key and then by unified event name. Only resolved when expand=provider_events is requested; null otherwise.
Show child attributes
Show child attributes
When the webhook was created.
When the webhook was last updated.
The secret used to sign webhook payloads, for signature verification; null when none is stored.
Was this page helpful?