curl --request PUT \
--url https://api.us.cr4ce.com/webhook/{webhook_slug} \
--header 'Accept: <accept>' \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"url": "<string>",
"signing_key": "<string>",
"notification_emails": "<string>",
"form": "<string>",
"fields": [
"<string>"
],
"events": []
}
'import requests
url = "https://api.us.cr4ce.com/webhook/{webhook_slug}"
payload = {
"name": "<string>",
"url": "<string>",
"signing_key": "<string>",
"notification_emails": "<string>",
"form": "<string>",
"fields": ["<string>"],
"events": []
}
headers = {
"Accept": "<accept>",
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
Accept: '<accept>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
url: '<string>',
signing_key: '<string>',
notification_emails: '<string>',
form: '<string>',
fields: ['<string>'],
events: []
})
};
fetch('https://api.us.cr4ce.com/webhook/{webhook_slug}', 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.us.cr4ce.com/webhook/{webhook_slug}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'url' => '<string>',
'signing_key' => '<string>',
'notification_emails' => '<string>',
'form' => '<string>',
'fields' => [
'<string>'
],
'events' => [
]
]),
CURLOPT_HTTPHEADER => [
"Accept: <accept>",
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.us.cr4ce.com/webhook/{webhook_slug}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"signing_key\": \"<string>\",\n \"notification_emails\": \"<string>\",\n \"form\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ],\n \"events\": []\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Accept", "<accept>")
req.Header.Add("x-api-key", "<api-key>")
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.put("https://api.us.cr4ce.com/webhook/{webhook_slug}")
.header("Accept", "<accept>")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"signing_key\": \"<string>\",\n \"notification_emails\": \"<string>\",\n \"form\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ],\n \"events\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.cr4ce.com/webhook/{webhook_slug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Accept"] = '<accept>'
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"signing_key\": \"<string>\",\n \"notification_emails\": \"<string>\",\n \"form\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ],\n \"events\": []\n}"
response = http.request(request)
puts response.read_body{
"created": "2025-12-21T23:11:20Z",
"events": [
"application_created",
"application_submitted"
],
"fields": [],
"form": null,
"method": "post",
"name": "Application notifications",
"signing_key": "REDACTED",
"slug": "AbCdEfGh",
"updated": "2025-12-21T23:11:20Z",
"url": "https://example.com/webhooks"
}{
"message": "<string>",
"status_code": 400
}{
"message": "<string>",
"status_code": 401
}{
"message": "<string>",
"status_code": 403
}{
"message": "<string>",
"status_code": 404
}{
"message": "<string>",
"status_code": 422,
"errors": {}
}{
"message": "<string>",
"status_code": 429
}{
"status": "Maintenance in progress"
}Update webhook
Update the webhook identified by the specified slug.
curl --request PUT \
--url https://api.us.cr4ce.com/webhook/{webhook_slug} \
--header 'Accept: <accept>' \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"url": "<string>",
"signing_key": "<string>",
"notification_emails": "<string>",
"form": "<string>",
"fields": [
"<string>"
],
"events": []
}
'import requests
url = "https://api.us.cr4ce.com/webhook/{webhook_slug}"
payload = {
"name": "<string>",
"url": "<string>",
"signing_key": "<string>",
"notification_emails": "<string>",
"form": "<string>",
"fields": ["<string>"],
"events": []
}
headers = {
"Accept": "<accept>",
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {
Accept: '<accept>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
url: '<string>',
signing_key: '<string>',
notification_emails: '<string>',
form: '<string>',
fields: ['<string>'],
events: []
})
};
fetch('https://api.us.cr4ce.com/webhook/{webhook_slug}', 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.us.cr4ce.com/webhook/{webhook_slug}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'url' => '<string>',
'signing_key' => '<string>',
'notification_emails' => '<string>',
'form' => '<string>',
'fields' => [
'<string>'
],
'events' => [
]
]),
CURLOPT_HTTPHEADER => [
"Accept: <accept>",
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.us.cr4ce.com/webhook/{webhook_slug}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"signing_key\": \"<string>\",\n \"notification_emails\": \"<string>\",\n \"form\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ],\n \"events\": []\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Accept", "<accept>")
req.Header.Add("x-api-key", "<api-key>")
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.put("https://api.us.cr4ce.com/webhook/{webhook_slug}")
.header("Accept", "<accept>")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"signing_key\": \"<string>\",\n \"notification_emails\": \"<string>\",\n \"form\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ],\n \"events\": []\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.us.cr4ce.com/webhook/{webhook_slug}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Accept"] = '<accept>'
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"signing_key\": \"<string>\",\n \"notification_emails\": \"<string>\",\n \"form\": \"<string>\",\n \"fields\": [\n \"<string>\"\n ],\n \"events\": []\n}"
response = http.request(request)
puts response.read_body{
"created": "2025-12-21T23:11:20Z",
"events": [
"application_created",
"application_submitted"
],
"fields": [],
"form": null,
"method": "post",
"name": "Application notifications",
"signing_key": "REDACTED",
"slug": "AbCdEfGh",
"updated": "2025-12-21T23:11:20Z",
"url": "https://example.com/webhooks"
}{
"message": "<string>",
"status_code": 400
}{
"message": "<string>",
"status_code": 401
}{
"message": "<string>",
"status_code": 403
}{
"message": "<string>",
"status_code": 404
}{
"message": "<string>",
"status_code": 422,
"errors": {}
}{
"message": "<string>",
"status_code": 429
}{
"status": "Maintenance in progress"
}Authorizations
API key used to authenticate and authorise every request.
Include it in the x-api-key header.
Headers
Defines the response type.
application/vnd.Creative Force.v2.3+json, application/vnd.Creative Force.v2.3+xml Defines the languages included in the response. If non are provided, the account default language is returned.
Value all overrides any other values present.
You can request multiple languages using a comma-separated string of languages.
The selected language must be supported by your account or a 400 error is returned.
all, ar_AR, bg_BG, bn_IN, ca_ES, cs_CZ, cy_GB, da_DK, de_DE, en_GB, en_US, el_GR, es_NN, es_LA, et_EE, fa_NN, fi_FI, fr_FR, fr_CA, he_IL, hi_IN, hr_HR, hu_HU, hy_AM, it_IT, ja_JP, ko_KR, lt_LT, ms_MY, nl_NL, nb_NO, pl_PL, pt_BR, ro_RO, ru_RU, sk_SK, sl_SI, sq_AL, sr_RS, sv_SE, sw_NN, th_TH, tr_TR, uk_UA, vi_VN, zh_CN, zh_HK Path Parameters
Slug of the webhook.
^[A-Za-z]{8}$Body
Webhook update payload.
HTTP method used to call the webhook URL.
Values are case-sensitive.
get, post Name of the webhook.
URL that receives the webhook payload.
Key used to sign outgoing webhook requests so the receiver can validate the payload. Must be alphanumeric (A–Z, a–z, 0–9).
Omit to keep the existing key. When supplied, it replaces the current key.
128^[A-Za-z0-9]+$Email addresses that receive webhook delivery-failure notifications. Accepts either a single address as a string, or multiple addresses as an array of strings.
Slug of the form to scope the webhook to. When set, the webhook only fires for events on that form. Omit or set to null for an account-wide webhook.
^[A-Za-z]{8}$Slugs of the fields to include in the webhook payload.
^[A-Za-z]{8}$Subscription events that trigger this webhook. For example, ["application_created", "application_submitted"].
1allocation_created, allocation_payment_created, allocation_payment_deleted, allocation_payment_status_changed, allocation_payment_updated, application_category_changed, application_chapter_changed, application_copied, application_created, application_deleted, application_eligible, application_ineligible, application_moderated, application_resubmitted, application_submitted, application_tagged, application_updated, assignment_completed, assignment_created, collaborator_invited, document_created, document_deleted, document_updated, field_value_updated, grant_report_created, grant_report_submitted, grant_status_changed, membership_registered, order_payment_pending, order_payment_success, review_task_created, review_task_submitted, role_granted, user_updated Response
Webhook updated.
Subscription events that trigger this webhook.
Fields included in the webhook payload.
Show child attributes
Show child attributes
Form the webhook is scoped to, or null if not scoped to a specific form.
Show child attributes
Show child attributes
HTTP method used to call the webhook URL.
get, post Name of the webhook.
Slug of the webhook.
Key used to sign outgoing webhook requests.
URL that receives the webhook payload.
Date and time when the webhook was created.
Date and time when the webhook was last updated.