Get alert API
curl --request GET \
--url https://api.technologychecker.io/v1/alerts/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.technologychecker.io/v1/alerts/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.technologychecker.io/v1/alerts/{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.technologychecker.io/v1/alerts/{id}",
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.technologychecker.io/v1/alerts/{id}"
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.technologychecker.io/v1/alerts/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.technologychecker.io/v1/alerts/{id}")
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{
"success": true,
"data": {
"alert": {
"id": "alrt_9f2c4a1e",
"name": "Who leaves Shopify (US, 51-200)",
"signal_types": [
"switch"
],
"scope": {
"kind": "technology",
"technology_id": 2184,
"technology_name": "Shopify",
"category_id": 123,
"domains": [
"<string>"
],
"segment_id": "<string>"
},
"direction": "from",
"missing_category_id": 123,
"filters": {
"min_confidence": 0.5,
"churn_reliability": [
"high",
"medium"
],
"min_confidence_label": "medium",
"country": "united states",
"city": "<string>",
"state": "<string>",
"industry": "<string>",
"industry_code": 123,
"employees": "51-200",
"company_type": "<string>",
"founded_min": 123,
"founded_max": 123,
"company": true,
"has_email": true,
"has_phone": true,
"social": "<string>",
"language": "<string>",
"web_country": "<string>"
},
"webhook_url": "https://example.com/hooks/tc",
"status": "active",
"delivery_frequency": "daily",
"crawl_cadence": "monthly",
"last_fired_at": "2026-06-10 17:39:39",
"consecutive_failures": 0,
"created_at": "2026-06-10T16:39:39.000Z",
"updated_at": "2026-06-10T16:39:39.000Z",
"webhook_secret": "whsec_3f9a2b7c1d4e5f60"
}
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid API key"
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid API key"
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid API key"
}
}Alerts
Get alert API
Full detail for one alert including the webhook secret your consumer needs to verify signatures. Free.
GET
/
v1
/
alerts
/
{id}
Get alert API
curl --request GET \
--url https://api.technologychecker.io/v1/alerts/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.technologychecker.io/v1/alerts/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.technologychecker.io/v1/alerts/{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.technologychecker.io/v1/alerts/{id}",
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.technologychecker.io/v1/alerts/{id}"
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.technologychecker.io/v1/alerts/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.technologychecker.io/v1/alerts/{id}")
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{
"success": true,
"data": {
"alert": {
"id": "alrt_9f2c4a1e",
"name": "Who leaves Shopify (US, 51-200)",
"signal_types": [
"switch"
],
"scope": {
"kind": "technology",
"technology_id": 2184,
"technology_name": "Shopify",
"category_id": 123,
"domains": [
"<string>"
],
"segment_id": "<string>"
},
"direction": "from",
"missing_category_id": 123,
"filters": {
"min_confidence": 0.5,
"churn_reliability": [
"high",
"medium"
],
"min_confidence_label": "medium",
"country": "united states",
"city": "<string>",
"state": "<string>",
"industry": "<string>",
"industry_code": 123,
"employees": "51-200",
"company_type": "<string>",
"founded_min": 123,
"founded_max": 123,
"company": true,
"has_email": true,
"has_phone": true,
"social": "<string>",
"language": "<string>",
"web_country": "<string>"
},
"webhook_url": "https://example.com/hooks/tc",
"status": "active",
"delivery_frequency": "daily",
"crawl_cadence": "monthly",
"last_fired_at": "2026-06-10 17:39:39",
"consecutive_failures": 0,
"created_at": "2026-06-10T16:39:39.000Z",
"updated_at": "2026-06-10T16:39:39.000Z",
"webhook_secret": "whsec_3f9a2b7c1d4e5f60"
}
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid API key"
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid API key"
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Missing or invalid API key"
}
}Frequently asked questions
Why does this endpoint return the webhook secret?
Why does this endpoint return the webhook secret?
Because your consumer needs it to verify the HMAC signature on every delivery, and there is no other way to recover it after creation. Treat the response as sensitive and never log it.
I get a 404 for an alert I know exists.
I get a 404 for an alert I know exists.
Alerts are owned strictly per API key. An alert created with one key is invisible to another key on the same account, and returns 404 rather than 403 so that ids cannot be probed. Use the key that created it.
Was this page helpful?
⌘I