API Reference
The SignalKit REST API lets you manage prompts, brands, reports, alerts, and more. All endpoints require authentication via a Supabase session cookie or an API key passed in the x-api-key header.
Base URL: https://signalkit.ai
Prompts
Create and manage tracking prompts that are queried against LLM platforms.
GET/api/promptsList all prompts
cURL Example
curl -s \ -H "x-api-key: $SIGNALKIT_API_KEY" \ https://signalkit.ai/api/prompts
POST/api/promptsCreate a prompt
Request Body
{
"text": "What is the best project management tool?",
"category": "product",
"tags": [
"saas",
"productivity"
],
"llmsToQuery": [
"chatgpt",
"claude",
"gemini"
]
}cURL Example
curl -s \
-X POST \
-H "x-api-key: $SIGNALKIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "text": "What is the best project management tool?", "category": "product", "tags": [ "saas", "productivity" ], "llmsToQuery": [ "chatgpt", "claude", "gemini" ] }' \
https://signalkit.ai/api/promptsGET/api/prompts/{id}Get a single prompt by ID
cURL Example
curl -s \
-H "x-api-key: $SIGNALKIT_API_KEY" \
https://signalkit.ai/api/prompts/{id}PATCH/api/prompts/{id}Update a prompt
Request Body
{
"isActive": false
}cURL Example
curl -s \
-X PATCH \
-H "x-api-key: $SIGNALKIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "isActive": false }' \
https://signalkit.ai/api/prompts/{id}DELETE/api/prompts/{id}Delete a prompt
cURL Example
curl -s \
-X DELETE \
-H "x-api-key: $SIGNALKIT_API_KEY" \
https://signalkit.ai/api/prompts/{id}Brands
Track your own brand and competitors across AI responses.
GET/api/brandsList tracked brands
cURL Example
curl -s \ -H "x-api-key: $SIGNALKIT_API_KEY" \ https://signalkit.ai/api/brands
POST/api/brandsAdd a tracked brand
Request Body
{
"name": "Acme Inc",
"domain": "acme.com",
"aliases": [
"Acme",
"ACME Corp"
],
"isOwnBrand": true,
"isCompetitor": false
}cURL Example
curl -s \
-X POST \
-H "x-api-key: $SIGNALKIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Acme Inc", "domain": "acme.com", "aliases": [ "Acme", "ACME Corp" ], "isOwnBrand": true, "isCompetitor": false }' \
https://signalkit.ai/api/brandsReports
Generate and download visibility, prompt performance, and competitor analysis reports in CSV, JSON, or PDF.
GET/api/reportsList generated reports
cURL Example
curl -s \ -H "x-api-key: $SIGNALKIT_API_KEY" \ https://signalkit.ai/api/reports
POST/api/reportsGenerate a new report
Request Body
{
"type": "visibility",
"format": "pdf",
"periodStart": "2026-02-01",
"periodEnd": "2026-02-28"
}cURL Example
curl -s \
-X POST \
-H "x-api-key: $SIGNALKIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "type": "visibility", "format": "pdf", "periodStart": "2026-02-01", "periodEnd": "2026-02-28" }' \
https://signalkit.ai/api/reportsGET/api/reports/{id}Get report metadata
cURL Example
curl -s \
-H "x-api-key: $SIGNALKIT_API_KEY" \
https://signalkit.ai/api/reports/{id}GET/api/reports/{id}/downloadDownload a report file
Pass ?format=csv|json|pdf to override the stored format.
cURL Example
curl -s \
-H "x-api-key: $SIGNALKIT_API_KEY" \
https://signalkit.ai/api/reports/{id}/downloadAlerts
View alerts triggered by visibility changes and sentiment shifts.
GET/api/alertsList alerts
Supports ?limit, ?offset, and ?isRead query params.
cURL Example
curl -s \ -H "x-api-key: $SIGNALKIT_API_KEY" \ https://signalkit.ai/api/alerts
Billing
View current plan, usage counts, and subscription details.
GET/api/billingGet billing and usage info
Example Response
{
"plan": "pro",
"promptsUsed": 12,
"promptsLimit": 50,
"competitorsUsed": 3,
"competitorsLimit": 10,
"stripeCustomerId": "cus_xxx"
}cURL Example
curl -s \ -H "x-api-key: $SIGNALKIT_API_KEY" \ https://signalkit.ai/api/billing
Teams
Create and manage team workspaces.
GET/api/teamsGet team and members
cURL Example
curl -s \ -H "x-api-key: $SIGNALKIT_API_KEY" \ https://signalkit.ai/api/teams
POST/api/teamsCreate a team
Request Body
{
"name": "My Team"
}cURL Example
curl -s \
-X POST \
-H "x-api-key: $SIGNALKIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "My Team" }' \
https://signalkit.ai/api/teamsAPI Keys
Manage API keys for programmatic access. The full key is shown only once upon creation.
GET/api/api-keysList API keys (prefix only)
cURL Example
curl -s \ -H "x-api-key: $SIGNALKIT_API_KEY" \ https://signalkit.ai/api/api-keys
POST/api/api-keysCreate an API key
Request Body
{
"name": "CI Pipeline"
}Example Response
{
"id": "uuid",
"name": "CI Pipeline",
"keyPrefix": "sk_live_xxxx",
"key": "sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"createdAt": "2026-03-20T00:00:00.000Z"
}cURL Example
curl -s \
-X POST \
-H "x-api-key: $SIGNALKIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "CI Pipeline" }' \
https://signalkit.ai/api/api-keysSettings
Configure notification preferences, webhooks, and query frequency.
GET/api/settingsGet tracking settings
cURL Example
curl -s \ -H "x-api-key: $SIGNALKIT_API_KEY" \ https://signalkit.ai/api/settings
POST/api/settingsUpdate tracking settings
Request Body
{
"emailAlerts": true,
"queryFrequency": "daily",
"weeklyReport": true
}cURL Example
curl -s \
-X POST \
-H "x-api-key: $SIGNALKIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "emailAlerts": true, "queryFrequency": "daily", "weeklyReport": true }' \
https://signalkit.ai/api/settingsSystem
Operational endpoints.
GET/api/healthHealth check
cURL Example
curl -s \ https://signalkit.ai/api/health
Authentication
You can authenticate in two ways:
- Session cookie -- Automatically set when you log in via the web UI.
- API key -- Generate one at
POST /api/api-keysand pass it in thex-api-keyheader.
curl -s -H "x-api-key: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx" \ https://signalkit.ai/api/prompts
Rate Limiting
Most endpoints are rate-limited to 60 requests per minute per user. Report generation is limited to 20 requests per minute. When a rate limit is exceeded the API returns 429 Too Many Requests with a Retry-After header.