curl --request POST \
--url https://management-api.fpjs.io/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-API-Version: <x-api-version>' \
--data '
{
"url": "https://website.com/webhook",
"description": "My Webhook",
"environment": {}
}
'import requests
url = "https://management-api.fpjs.io/webhooks"
payload = {
"url": "https://website.com/webhook",
"description": "My Webhook",
"environment": {}
}
headers = {
"X-API-Version": "<x-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-Version': '<x-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({url: 'https://website.com/webhook', description: 'My Webhook', environment: {}})
};
fetch('https://management-api.fpjs.io/webhooks', 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://management-api.fpjs.io/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => 'https://website.com/webhook',
'description' => 'My Webhook',
'environment' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-API-Version: <x-api-version>"
],
]);
$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://management-api.fpjs.io/webhooks"
payload := strings.NewReader("{\n \"url\": \"https://website.com/webhook\",\n \"description\": \"My Webhook\",\n \"environment\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Version", "<x-api-version>")
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://management-api.fpjs.io/webhooks")
.header("X-API-Version", "<x-api-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://website.com/webhook\",\n \"description\": \"My Webhook\",\n \"environment\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://management-api.fpjs.io/webhooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Version"] = '<x-api-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://website.com/webhook\",\n \"description\": \"My Webhook\",\n \"environment\": {}\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "wh_HYv9YfsIIUjpvR",
"description": "My Webhook",
"verified": false,
"environment": {},
"url": "https://website.com/webhook",
"legacy": true,
"basic_auth": {},
"created_at": "2023-11-07T05:31:56Z",
"signing_key": "<string>",
"last_enabled_at": {},
"last_disabled_at": {}
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"violations": [
{
"property": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"violations": [
{
"property": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"message": "<string>",
"code": "<string>"
}
}Create webhook
Creates a new webhook in the workspace associated with the Management API key. Webhook needs to be verified before it will start sending identification events to your server. See webhook verification. If webhook signatures are enabled (enterprise only), signing key will be visible in the response after creation. When fetching webhooks after creation, signing key will not be visible! See webhooks documentation for more details. When specifying an environment during creation, webhook should be assigned to the given environment. Setting environment to null creates a global webhook.
curl --request POST \
--url https://management-api.fpjs.io/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-API-Version: <x-api-version>' \
--data '
{
"url": "https://website.com/webhook",
"description": "My Webhook",
"environment": {}
}
'import requests
url = "https://management-api.fpjs.io/webhooks"
payload = {
"url": "https://website.com/webhook",
"description": "My Webhook",
"environment": {}
}
headers = {
"X-API-Version": "<x-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-API-Version': '<x-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({url: 'https://website.com/webhook', description: 'My Webhook', environment: {}})
};
fetch('https://management-api.fpjs.io/webhooks', 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://management-api.fpjs.io/webhooks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => 'https://website.com/webhook',
'description' => 'My Webhook',
'environment' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-API-Version: <x-api-version>"
],
]);
$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://management-api.fpjs.io/webhooks"
payload := strings.NewReader("{\n \"url\": \"https://website.com/webhook\",\n \"description\": \"My Webhook\",\n \"environment\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Version", "<x-api-version>")
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://management-api.fpjs.io/webhooks")
.header("X-API-Version", "<x-api-version>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://website.com/webhook\",\n \"description\": \"My Webhook\",\n \"environment\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://management-api.fpjs.io/webhooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Version"] = '<x-api-version>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://website.com/webhook\",\n \"description\": \"My Webhook\",\n \"environment\": {}\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "wh_HYv9YfsIIUjpvR",
"description": "My Webhook",
"verified": false,
"environment": {},
"url": "https://website.com/webhook",
"legacy": true,
"basic_auth": {},
"created_at": "2023-11-07T05:31:56Z",
"signing_key": "<string>",
"last_enabled_at": {},
"last_disabled_at": {}
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"violations": [
{
"property": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"code": "<string>",
"violations": [
{
"property": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"message": "<string>",
"code": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Management API version.
Body
URL of the webhook endpoint. Must start with https://.
"https://website.com/webhook"
Description of the webhook.
"My Webhook"
Status of the webhook: 'enabled' or 'disabled'.
enabled, disabled Environment ID this webhook is associated with. Null if global.
Response
Webhook created, but needs to be verified before it's active.
Show child attributes
Show child attributes
Was this page helpful?