API Documentation
Integrate GetSignalHooks into your workflow. All authenticated endpoints accept a Bearer token via the Authorization header.
Authentication
You can authenticate using either your master bearer token (set in your environment) or a self-serve API key (prefixed with gsh_).
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://app.getsignalhooks.com/api/leads
# Using API key
curl -H "Authorization: Bearer gsh_your_api_key" \
https://app.getsignalhooks.com/api/leads
Endpoints
/api/leadsAuth requiredCreate leads in batch. Duplicates by email are silently skipped.
Request Body
{
"leads": [
{
"email": "jane@acme.com",
"name": "Jane Doe",
"title": "VP Sales",
"company_name": "Acme Inc",
"company_website": "https://acme.com",
"source": "apollo"
}
]
}Response
{ "created": 1, "leads": [{ "id": "...", "email": "jane@acme.com", ... }] }/api/leadsAuth requiredList leads. Optional query params: status (cold|in_conversation|won|lost|unreachable), limit (max 500).
Response
{ "leads": [{ "id": "...", "email": "...", "status": "cold", ... }] }/api/generate-hooksGenerate signal-backed opening lines from a company URL or name. Returns results with confidence scores and evidence tiers.
Request Body
{
"url": "https://acme.com",
"company_name": "Acme Inc"
}Response
{
"hooks": [
{
"text": "...",
"angle": "trigger",
"confidence": "high",
"evidence_tier": "A",
"source_snippet": "..."
}
]
}/api/generate-hooks-batchBatch hook generation for multiple URLs (up to 75 for Pro tier).
Request Body
{ "urls": ["https://acme.com", "https://example.com"] }Response
{ "results": [{ "url": "...", "hooks": [...] }] }/api/generate-followupAuth requiredGenerate a follow-up email for a lead at a given sequence step. Uses angle rotation to avoid repeating hooks.
Request Body
{
"lead_id": "uuid-here",
"step": 1,
"mode": "send",
"avoid_angle": "trigger"
}Response
{
"email": { "subject": "...", "body": "..." },
"meta": { "angle": "risk", "confidence": "high" }
}/api/followup/dueAuth requiredCheck which leads are due for follow-up. Used by the n8n Follow-Up Engine workflow.
Response
{
"leads": [
{
"lead_id": "...",
"email_to": "...",
"followup_step": 1,
"mode": "send"
}
]
}/api/n8n-templatesAuth requiredList available n8n workflow templates. Add ?id=<template-id> to get the full workflow JSON for import.
Response
{
"templates": [
{
"id": "followup-core",
"name": "Follow-Up Engine Core",
"category": "automation",
"requiredCredentials": ["GSH_AUTH", "GMAIL_CRED"]
}
]
}/api/api-keysAuth requiredCreate a new API key. The full key is only shown once in the response. Requires the master bearer token.
Request Body
{
"name": "My Integration",
"scopes": ["leads", "hooks", "followups"],
"expires_at": "2026-12-31T00:00:00Z"
}Response
{
"id": "...",
"name": "My Integration",
"key": "gsh_abc123...",
"key_prefix": "gsh_abc12345",
"scopes": ["leads", "hooks", "followups"]
}Rate Limits
| Tier | Hooks / month | Batch size | Follow-Up Engine |
|---|---|---|---|
| Starter ($35) | ~200 | 10 URLs | - |
| Pro ($179) | ~750 | 75 URLs | Included |
| Concierge ($599) | Unlimited | 75 URLs | Managed |