Receive a webhook (called by your external system)
curl --request POST \
--url https://api.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}import requests
url = "https://api.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_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.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}"
req, _ := http.NewRequest("POST", url, nil)
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.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Webhooks
Receive a webhook (called by your external system)
The public receiver endpoint your external system POSTs to. It carries no API-key/JWT auth — the trust boundary is the HMAC signature verified on the raw request body, and the tenant is resolved from the URL slug. An unknown slug or webhook returns 404 (never 401, to avoid leaking existence); a signature failure returns 401; over-limit returns 429. On success it acks 202 within ~50ms and dispatches the batch off-path. See the Receive webhooks guide. This endpoint is not callable from the interactive playground.
POST
/
flows
/
webhooks
/
{slug}
/
{webhook_id}
Receive a webhook (called by your external system)
curl --request POST \
--url https://api.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}import requests
url = "https://api.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_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.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}"
req, _ := http.NewRequest("POST", url, nil)
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.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getdialed.ai/v1/flows/webhooks/{slug}/{webhook_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}