curl --request POST \
--url https://api.deck.co/v2/event-destinations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"events": [
"<string>"
],
"hookdeck": {
"token": "<string>"
}
}
'import requests
url = "https://api.deck.co/v2/event-destinations"
payload = {
"name": "<string>",
"events": ["<string>"],
"hookdeck": { "token": "<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({name: '<string>', events: ['<string>'], hookdeck: {token: '<string>'}})
};
fetch('https://api.deck.co/v2/event-destinations', 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.deck.co/v2/event-destinations",
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([
'name' => '<string>',
'events' => [
'<string>'
],
'hookdeck' => [
'token' => '<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.deck.co/v2/event-destinations"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"hookdeck\": {\n \"token\": \"<string>\"\n }\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.deck.co/v2/event-destinations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"hookdeck\": {\n \"token\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deck.co/v2/event-destinations")
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 \"name\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"hookdeck\": {\n \"token\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "evtd_AbC123xYz456",
"object": "<string>",
"name": "<string>",
"status": "<string>",
"type": "webhook",
"events": [
"<string>"
],
"created_at": "2026-08-24T12:00:00Z",
"updated_at": "2026-08-24T12:00:00Z",
"request_id": "<string>",
"test_endpoint": {
"inspect_url": "<string>"
},
"webhook": {
"url": "<string>"
},
"aws_sqs": {
"queue_url": "<string>"
},
"aws_kinesis": {
"stream_name": "<string>",
"region": "<string>"
},
"aws_s3": {
"bucket": "<string>",
"region": "<string>"
},
"gcp_pubsub": {
"project_id": "<string>",
"topic": "<string>"
},
"rabbitmq": {
"exchange": "<string>",
"server_url": "<string>"
},
"azure_servicebus": {
"name": "<string>"
},
"hookdeck": {}
}{
"errors": {},
"type": "<string>",
"title": "<string>",
"status": 123,
"traceId": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}Create an event destination
Creates a new event destination (e.g. a webhook endpoint) to receive platform events.
curl --request POST \
--url https://api.deck.co/v2/event-destinations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"events": [
"<string>"
],
"hookdeck": {
"token": "<string>"
}
}
'import requests
url = "https://api.deck.co/v2/event-destinations"
payload = {
"name": "<string>",
"events": ["<string>"],
"hookdeck": { "token": "<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({name: '<string>', events: ['<string>'], hookdeck: {token: '<string>'}})
};
fetch('https://api.deck.co/v2/event-destinations', 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.deck.co/v2/event-destinations",
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([
'name' => '<string>',
'events' => [
'<string>'
],
'hookdeck' => [
'token' => '<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.deck.co/v2/event-destinations"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"hookdeck\": {\n \"token\": \"<string>\"\n }\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.deck.co/v2/event-destinations")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"hookdeck\": {\n \"token\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deck.co/v2/event-destinations")
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 \"name\": \"<string>\",\n \"events\": [\n \"<string>\"\n ],\n \"hookdeck\": {\n \"token\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "evtd_AbC123xYz456",
"object": "<string>",
"name": "<string>",
"status": "<string>",
"type": "webhook",
"events": [
"<string>"
],
"created_at": "2026-08-24T12:00:00Z",
"updated_at": "2026-08-24T12:00:00Z",
"request_id": "<string>",
"test_endpoint": {
"inspect_url": "<string>"
},
"webhook": {
"url": "<string>"
},
"aws_sqs": {
"queue_url": "<string>"
},
"aws_kinesis": {
"stream_name": "<string>",
"region": "<string>"
},
"aws_s3": {
"bucket": "<string>",
"region": "<string>"
},
"gcp_pubsub": {
"project_id": "<string>",
"topic": "<string>"
},
"rabbitmq": {
"exchange": "<string>",
"server_url": "<string>"
},
"azure_servicebus": {
"name": "<string>"
},
"hookdeck": {}
}{
"errors": {},
"type": "<string>",
"title": "<string>",
"status": 123,
"traceId": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}{
"errors": [
{
"type": "<string>",
"code": "<string>",
"message": "<string>",
"field": "<string>"
}
],
"request_id": "<string>"
}Authorizations
Secret key (sk_live_...)
Headers
Optional key that makes the request idempotent. Retrying with the same key returns the original response instead of repeating the operation; keys expire after 24 hours. Any string up to 256 characters. See Idempotency.
256"550e8400-e29b-41d4-a716-446655440000"
Body
Request body for creating a new event destination. Provide name, type, events, and exactly one type-specific configuration object whose property name matches type (for example {"type": "webhook", "webhook": {"url": "..."}}).
Display name for the event destination.
Destination type. Defaults to webhook if omitted. Send the matching configuration object under a property whose name equals this value (for example, when type is aws_sqs, include an aws_sqs object).
webhook, aws_sqs, aws_kinesis, aws_s3, gcp_pubsub, rabbitmq, azure_servicebus, hookdeck Event types to subscribe to (for example task_run.completed, credential.verified). Use ["*"] to subscribe to all event types; * cannot be combined with specific types, and the list must not be empty.
Configuration for a webhook destination. Provide this object under the webhook property when type is webhook.
Show child attributes
Show child attributes
Configuration for a aws_sqs destination. Provide this object under the aws_sqs property when type is aws_sqs.
Show child attributes
Show child attributes
Configuration for a aws_kinesis destination. Provide this object under the aws_kinesis property when type is aws_kinesis.
Show child attributes
Show child attributes
Configuration for a aws_s3 destination. Provide this object under the aws_s3 property when type is aws_s3.
Show child attributes
Show child attributes
Configuration for a gcp_pubsub destination. Provide this object under the gcp_pubsub property when type is gcp_pubsub.
Show child attributes
Show child attributes
Configuration for a rabbitmq destination. Provide this object under the rabbitmq property when type is rabbitmq.
Show child attributes
Show child attributes
Configuration for a azure_servicebus destination. Provide this object under the azure_servicebus property when type is azure_servicebus.
Show child attributes
Show child attributes
Configuration for a hookdeck destination. Provide this object under the hookdeck property when type is hookdeck.
Show child attributes
Show child attributes
Response
Created
An event destination object representing an endpoint that receives platform events.
Unique identifier for the event destination, prefixed with evtd_.
^evtd_"evtd_AbC123xYz456"
Always event_destination.
Display name for the event destination.
Destination status: pending_verification, active, or inactive.
Destination type. The endpoint configuration is returned under a property whose name equals this value (for example, a webhook destination returns a webhook object).
webhook, aws_sqs, aws_kinesis, aws_s3, gcp_pubsub, rabbitmq, azure_servicebus, hookdeck Event types this destination is subscribed to.
ISO 8601 timestamp of when the resource was created.
"2026-08-24T12:00:00Z"
ISO 8601 timestamp of when the resource was last updated.
"2026-08-24T12:00:00Z"
Unique identifier for the API request. Include this when contacting support.
Present when the destination is a webhook backed by a disposable Hookdeck Console test endpoint created in the Console. Read-only.
Show child attributes
Show child attributes
Configuration returned for a webhook destination (credentials are never returned).
Show child attributes
Show child attributes
Configuration returned for a aws_sqs destination (credentials are never returned).
Show child attributes
Show child attributes
Configuration returned for a aws_kinesis destination (credentials are never returned).
Show child attributes
Show child attributes
Configuration returned for a aws_s3 destination (credentials are never returned).
Show child attributes
Show child attributes
Configuration returned for a gcp_pubsub destination (credentials are never returned).
Show child attributes
Show child attributes
Configuration returned for a rabbitmq destination (credentials are never returned).
Show child attributes
Show child attributes
Configuration returned for a azure_servicebus destination (credentials are never returned).
Show child attributes
Show child attributes
Configuration returned for a hookdeck destination (credentials are never returned).
Was this page helpful?