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
Auth: Required

cURL Example

curl -s \
  -H "x-api-key: $SIGNALKIT_API_KEY" \
  https://signalkit.ai/api/prompts
POST/api/promptsCreate a prompt
Auth: Required

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/prompts
GET/api/prompts/{id}Get a single prompt by ID
Auth: Required

cURL Example

curl -s \
  -H "x-api-key: $SIGNALKIT_API_KEY" \
  https://signalkit.ai/api/prompts/{id}
PATCH/api/prompts/{id}Update a prompt
Auth: Required

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
Auth: Required

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
Auth: Required

cURL Example

curl -s \
  -H "x-api-key: $SIGNALKIT_API_KEY" \
  https://signalkit.ai/api/brands
POST/api/brandsAdd a tracked brand
Auth: Required

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/brands

Reports

Generate and download visibility, prompt performance, and competitor analysis reports in CSV, JSON, or PDF.

GET/api/reportsList generated reports
Auth: Required

cURL Example

curl -s \
  -H "x-api-key: $SIGNALKIT_API_KEY" \
  https://signalkit.ai/api/reports
POST/api/reportsGenerate a new report
Auth: Required

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/reports
GET/api/reports/{id}Get report metadata
Auth: Required

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.

Auth: Required

cURL Example

curl -s \
  -H "x-api-key: $SIGNALKIT_API_KEY" \
  https://signalkit.ai/api/reports/{id}/download

Alerts

View alerts triggered by visibility changes and sentiment shifts.

GET/api/alertsList alerts

Supports ?limit, ?offset, and ?isRead query params.

Auth: Required

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
Auth: Required

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
Auth: Required

cURL Example

curl -s \
  -H "x-api-key: $SIGNALKIT_API_KEY" \
  https://signalkit.ai/api/teams
POST/api/teamsCreate a team
Auth: Required

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/teams

API Keys

Manage API keys for programmatic access. The full key is shown only once upon creation.

GET/api/api-keysList API keys (prefix only)
Auth: Required

cURL Example

curl -s \
  -H "x-api-key: $SIGNALKIT_API_KEY" \
  https://signalkit.ai/api/api-keys
POST/api/api-keysCreate an API key
Auth: Required

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-keys

Settings

Configure notification preferences, webhooks, and query frequency.

GET/api/settingsGet tracking settings
Auth: Required

cURL Example

curl -s \
  -H "x-api-key: $SIGNALKIT_API_KEY" \
  https://signalkit.ai/api/settings
POST/api/settingsUpdate tracking settings
Auth: Required

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/settings

System

Operational endpoints.

GET/api/healthHealth check
Auth: None

cURL Example

curl -s \
  https://signalkit.ai/api/health

Authentication

You can authenticate in two ways:

  1. Session cookie -- Automatically set when you log in via the web UI.
  2. API key -- Generate one at POST /api/api-keys and pass it in the x-api-key header.
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.