curl --request POST \
--url https://api.journeybee.io/v1/event-subscriptions/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "<string>",
"event_types": [
"<string>"
],
"description": "<string>"
}
'import requests
url = "https://api.journeybee.io/v1/event-subscriptions/"
payload = {
"url": "<string>",
"event_types": ["<string>"],
"description": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>', event_types: ['<string>'], description: '<string>'})
};
fetch('https://api.journeybee.io/v1/event-subscriptions/', 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.journeybee.io/v1/event-subscriptions/",
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' => '<string>',
'event_types' => [
'<string>'
],
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.journeybee.io/v1/event-subscriptions/"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"event_types\": [\n \"<string>\"\n ],\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.journeybee.io/v1/event-subscriptions/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"event_types\": [\n \"<string>\"\n ],\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.journeybee.io/v1/event-subscriptions/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"event_types\": [\n \"<string>\"\n ],\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"uuid": "<string>",
"url": "<string>",
"event_types": [
"<string>"
],
"status": "active",
"version": 123,
"description": "<string>",
"secret_hint": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"secret": "<string>"
}Create an event subscription
Creates a v2 event subscription. The response includes secret, the signing secret for this subscription’s deliveries — it is returned ONCE and never again (Idempotency-Key replays return the same subscription without it; GET/LIST/PATCH return secret_hint only). Store it immediately.
curl --request POST \
--url https://api.journeybee.io/v1/event-subscriptions/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "<string>",
"event_types": [
"<string>"
],
"description": "<string>"
}
'import requests
url = "https://api.journeybee.io/v1/event-subscriptions/"
payload = {
"url": "<string>",
"event_types": ["<string>"],
"description": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>', event_types: ['<string>'], description: '<string>'})
};
fetch('https://api.journeybee.io/v1/event-subscriptions/', 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.journeybee.io/v1/event-subscriptions/",
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' => '<string>',
'event_types' => [
'<string>'
],
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.journeybee.io/v1/event-subscriptions/"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"event_types\": [\n \"<string>\"\n ],\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.journeybee.io/v1/event-subscriptions/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"event_types\": [\n \"<string>\"\n ],\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.journeybee.io/v1/event-subscriptions/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"event_types\": [\n \"<string>\"\n ],\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"uuid": "<string>",
"url": "<string>",
"event_types": [
"<string>"
],
"status": "active",
"version": 123,
"description": "<string>",
"secret_hint": "<string>",
"created_at": "<string>",
"updated_at": "<string>",
"secret": "<string>"
}Authorizations
API key authentication. Use "Bearer <api_key>" or "Api-Key <api_key>".
Body
Response
Default Response
HTTPS endpoint the events are POSTed to. Checked for SSRF at write time; delivery re-checks at send time.
2048Event types to subscribe to. Each entry is an exact v2 event type (e.g. lead.status_changed) or a trailing wildcard segment naming an object (e.g. lead.* for every lead type). See GET /v1/event-types for the catalogue.
paused stops delivery without deleting the subscription.
active, paused Envelope schema version delivered to this endpoint. Always 2 from /v1; immutable.
500Last four characters of the signing secret, for identification only. The full secret is returned once, in the POST response.
The signing secret for this subscription's deliveries. Returned only on the first response — an Idempotency-Key replay returns the same subscription with secret omitted. Store it now; it is never returned again.