Webhooks
Test webhook
Sends a synthetic test event to the webhook endpoint and returns the delivery result. Use this to verify the endpoint is reachable and that your server can parse and verify the Signal webhook signature before going live.
Requirements
- Permission:
webhooks:write. - Project access: the path project must match the API key’s project.
- HTTP rate limit: 60 requests per 60 seconds per API key.
POST
/
v1
/
projects
/
{projectId}
/
webhooks
/
{endpointId}
/
test
TypeScript
import { createApolloSignalApiClient } from "@apollo-deploy/signal-sdk";
const signal = createApolloSignalApiClient({ apiKey: "ap_signal_..." });
const result = await signal.webhooks.testWebhook(/* params */);
console.log(result);from apollo_signal import SignalClient
signal = SignalClient(api_key="ap_signal_...")
result = signal.webhooks.testWebhook(# params)
print(result)import signal "github.com/apollo-deploy/signal-sdk-go"
client := signal.NewClient("ap_signal_...")
result, err := client.Webhooks.TestWebhook(context.Background() /* params */)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)import com.apollodeploy.signal.SignalClient;
SignalClient signal = new SignalClient("ap_signal_...");
var result = signal.webhooks().testWebhook(/* params */);
System.out.println(result);import com.apollodeploy.signal.SignalClient
val signal = SignalClient("ap_signal_...")
val result = signal.webhooks.testWebhook(/* params */)
println(result)require "apollo_signal"
signal = ApolloSignal::Client.new(api_key: "ap_signal_...")
result = signal.webhooks.testWebhook(# params)
puts resultuse ApolloSignal\SignalClient;
$signal = new SignalClient("ap_signal_...");
$result = $signal->webhooks->testWebhook(/* params */);
var_dump($result);use apollo_signal::SignalClient;
let signal = SignalClient::new("ap_signal_...");
let result = signal.webhooks.testWebhook(/* params */).await?;
println!("{:?}", result);using ApolloSignal;
var signal = new SignalClient("ap_signal_...");
var result = await signal.Webhooks.TestWebhookAsync(/* params */);
Console.WriteLine(result);curl --request POST \
--url https://api.signal.apollodeploy.com/v1/projects/{projectId}/webhooks/{endpointId}/test \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signal.apollodeploy.com/v1/projects/{projectId}/webhooks/{endpointId}/test', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"attemptCount": 123,
"createdAt": "<string>",
"eventType": "<string>",
"id": "<string>",
"projectId": "<string>",
"status": "<string>",
"updatedAt": "<string>",
"webhookEndpointId": "<string>",
"lastError": "<string>",
"lastStatusCode": 123,
"nextAttemptAt": "<string>",
"responseBodySnippet": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}Authorizations
Project-bound Apollo Signal API key. Keys begin with ap_signal_ and must carry the permission shown on the operation.
Path Parameters
The project the webhook belongs to.
The unique identifier of the webhook endpoint to test.
Response
Test event dispatched. Returns the delivery attempt record.
Was this page helpful?
⌘I
TypeScript
import { createApolloSignalApiClient } from "@apollo-deploy/signal-sdk";
const signal = createApolloSignalApiClient({ apiKey: "ap_signal_..." });
const result = await signal.webhooks.testWebhook(/* params */);
console.log(result);from apollo_signal import SignalClient
signal = SignalClient(api_key="ap_signal_...")
result = signal.webhooks.testWebhook(# params)
print(result)import signal "github.com/apollo-deploy/signal-sdk-go"
client := signal.NewClient("ap_signal_...")
result, err := client.Webhooks.TestWebhook(context.Background() /* params */)
if err != nil {
log.Fatal(err)
}
fmt.Println(result)import com.apollodeploy.signal.SignalClient;
SignalClient signal = new SignalClient("ap_signal_...");
var result = signal.webhooks().testWebhook(/* params */);
System.out.println(result);import com.apollodeploy.signal.SignalClient
val signal = SignalClient("ap_signal_...")
val result = signal.webhooks.testWebhook(/* params */)
println(result)require "apollo_signal"
signal = ApolloSignal::Client.new(api_key: "ap_signal_...")
result = signal.webhooks.testWebhook(# params)
puts resultuse ApolloSignal\SignalClient;
$signal = new SignalClient("ap_signal_...");
$result = $signal->webhooks->testWebhook(/* params */);
var_dump($result);use apollo_signal::SignalClient;
let signal = SignalClient::new("ap_signal_...");
let result = signal.webhooks.testWebhook(/* params */).await?;
println!("{:?}", result);using ApolloSignal;
var signal = new SignalClient("ap_signal_...");
var result = await signal.Webhooks.TestWebhookAsync(/* params */);
Console.WriteLine(result);curl --request POST \
--url https://api.signal.apollodeploy.com/v1/projects/{projectId}/webhooks/{endpointId}/test \
--header 'Authorization: Bearer <token>'const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.signal.apollodeploy.com/v1/projects/{projectId}/webhooks/{endpointId}/test', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"attemptCount": 123,
"createdAt": "<string>",
"eventType": "<string>",
"id": "<string>",
"projectId": "<string>",
"status": "<string>",
"updatedAt": "<string>",
"webhookEndpointId": "<string>",
"lastError": "<string>",
"lastStatusCode": 123,
"nextAttemptAt": "<string>",
"responseBodySnippet": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"instance": "<string>",
"requestId": "<string>"
}