API Reference
Full programmatic access to accounts, signals, runs, ICPs, and workspace data. Authenticate with a Bearer API key generated from your settings panel.
Base URL
https://app.gethunch.ai
Auth
Authorization: Bearer sk-...
Format
JSON (application/json)
Authentication
All API requests require a Bearer token in the Authorization header. Generate API keys from Settings > API Keys. Keys are shown once at creation and cannot be retrieved afterward.
curl https://app.gethunch.ai/api/v1/accounts \
-H "Authorization: Bearer sk-your-api-key"Accounts
/api/v1/accountsList accountsReturns all accounts in your workspace, sorted by score descending. Paginated at 50/page by default (max 100).
Query parameters
| Name | Type | Description |
|---|---|---|
| page | integer | Page number (default: 1) |
| per_page | integer | Results per page (max: 100) |
| status | string | Filter by status: active, suggested, inactive, rejected |
| owner_id | string | Filter by assigned team member ID |
| tag | string | Filter by account tag |
| domain | string | Filter by domain (partial match) |
/api/v1/accountsAdd accountsAdd one or more accounts to your workspace. Send a single object or an array of up to 500.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | required | Company name |
| domain | string | optional | Company domain |
| status | string | optional | Initial status (default: suggested) |
| tags | string[] | optional | Array of tags |
| owner_id | string | optional | Assign to a team member |
/api/v1/accounts/:idGet accountReturns the full account record including firmographics, ICP score, and the why-now brief.
/api/v1/accounts/:idUpdate accountUpdate status, tags, owner, or other mutable fields on a single account.
/api/v1/accounts/:id/signalsGet signals for accountReturns every signal detected on this account, including headline, narrative, evidence sources, and suggested outreach copy.
Signals
/api/v1/signalsList signal definitionsReturns all signal definitions in your workspace, including their plain English description, priority, status, and last run info.
/api/v1/signals/:id/runTrigger a signal runKicks off a signal research run for all active accounts. Useful for programmatic scheduling or CI pipeline triggers.
Runs
/api/v1/runsList signal runsReturns recent signal run history including status, stats (accounts matched, cost), and timestamps.
/api/v1/runs/:idGet run detailsReturns the full details of a single run including per-account results.
ICPs
/api/v1/icpsList ICP profilesReturns all Ideal Customer Profiles defined in your workspace.
/api/v1/icpsCreate ICPCreate a new ICP profile with a plain English description. Hunch uses this when evaluating account fit.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
| raw_text | string | required | Plain English ICP description |
| is_active | boolean | optional | Whether this ICP is the active one (default: false) |
/api/v1/icps/:idUpdate ICPUpdate the text or active status of an existing ICP.
/api/v1/icps/:idDelete ICPPermanently deletes an ICP profile.
Workspace
/api/v1/workspaceGet workspaceReturns workspace metadata including name, plan account limit, active account count, and credits remaining.
/api/v1/membersList team membersReturns all members of the workspace with their email, display name, and role.
API keys
/api/v1/keysList API keysReturns all API keys for your workspace. The full key is only shown at creation time.
/api/v1/keysCreate API keyCreates a new API key. The full key is returned once and cannot be retrieved again.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | required | Human-readable label for this key |
/api/v1/keys/:idRevoke API keyImmediately revokes an API key. Any requests using this key will return 401.
Response format
All responses return JSON. List endpoints include pagination metadata. Single-resource endpoints return the object directly.
List response
{
"data": [...],
"meta": {
"total": 42,
"page": 1,
"per_page": 50,
"total_pages": 1
}
}Error response
{
"error": "Invalid or missing API key",
"status": 401
}Need push-based delivery?
The REST API is pull-based. For real-time push delivery, configure an outbound webhook to receive signed payloads the moment a signal fires.