Handle webhook challenge verification
curl --request GET \
--url https://api.superglue.ai/v1/hooks/{toolId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.superglue.ai/v1/hooks/{toolId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.superglue.ai/v1/hooks/{toolId}', 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.superglue.ai/v1/hooks/{toolId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.superglue.ai/v1/hooks/{toolId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.superglue.ai/v1/hooks/{toolId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superglue.ai/v1/hooks/{toolId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body<string>{
"error": {
"message": "Invalid input parameters"
}
}Webhooks
Handle webhook challenge verification
Enterprise feature.
Handle webhook challenge/verification requests from external services. GET requests are only supported for challenge verification (not tool execution).
Supported challenge patterns:
- Meta/Facebook/WhatsApp:
?hub.mode=subscribe&hub.challenge=...→ echoes challenge as plain text - Microsoft Graph:
?validationToken=...→ echoes token as plain text - Nylas/generic:
?challenge=...→ echoes challenge as plain text
GET
/
hooks
/
{toolId}
Handle webhook challenge verification
curl --request GET \
--url https://api.superglue.ai/v1/hooks/{toolId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.superglue.ai/v1/hooks/{toolId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.superglue.ai/v1/hooks/{toolId}', 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.superglue.ai/v1/hooks/{toolId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.superglue.ai/v1/hooks/{toolId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.superglue.ai/v1/hooks/{toolId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superglue.ai/v1/hooks/{toolId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body<string>{
"error": {
"message": "Invalid input parameters"
}
}Authorizations
Static API key authentication using Bearer token scheme.
Include your API key in the Authorization header: Authorization: Bearer YOUR_API_KEY
Alternatively, you can use the token query parameter to authenticate.
API keys can be generated in your superglue dashboard.
Path Parameters
ID of the tool to verify webhook for
Response
Challenge response echoed back to the requesting service
The response is of type string.
Was this page helpful?