API Reference
Accounts
The companies in your workspace. Read, create, update, and delete them, manage tags and owners, activate and scan them, read signal intelligence, and push them to your CRM.
List accounts
/accountsReturns accounts ordered by score (highest first), paginated. Supports filters:
statusstringoptionalFilter by suggested, active, rejected, or unqualified.
owner_idstringoptionalFilter by assigned owner (user id).
tagstringoptionalFilter to accounts carrying this tag.
domainstringoptionalSubstring match on domain.
industrystringoptionalSubstring match on industry.
min_scoreintegeroptionalOnly accounts scoring at or above this value.
searchstringoptionalSubstring match on name or domain.
sortstringoptionalscore (default), last_signal_at, or created_at.
orderstringoptionalasc or desc. Default desc.
pageintegeroptionalPage number. Default 1.
per_pageintegeroptionalMax 100. Default 50.
curl "https://usehunch.co/api/v1/accounts?status=active&min_score=70&per_page=25" \
-H "Authorization: Bearer hunch_YOUR_KEY"{
"data": [
{
"id": "...",
"name": "Ramp",
"domain": "ramp.com",
"status": "active",
"score": 88,
"employees": 1000,
"industry": "Financial Services",
"location": "New York, NY",
"country": "United States",
"tags": ["strategic"],
"owner_id": null,
"linkedin_url": "https://www.linkedin.com/company/ramp",
"short_description": "Finance automation platform...",
"logo_url": "...",
"created_at": "2026-07-01T...",
"last_signal_at": "2026-07-03T...",
"is_hot": true,
"qualified": true
}
],
"pagination": { "total": 42, "page": 1, "per_page": 25, "has_more": true }
}Create accounts
/accountsAccepts a single account object or an array (max 500). Deduplicates by domain within the workspace, so re-posting an existing domain is a no-op. Created accounts default to suggested status.
namestringrequiredCompany name.
domainstringoptionalCompany domain, e.g. acme.com. Used for deduplication.
statusstringoptionalsuggested (default) or active.
tagsstring[]optionalTags to attach.
owner_idstringoptionalAssign to a workspace member.
curl -X POST https://usehunch.co/api/v1/accounts \
-H "Authorization: Bearer hunch_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '[
{ "name": "Acme", "domain": "acme.com", "tags": ["inbound"] },
{ "name": "Globex", "domain": "globex.com" }
]'Get an account
/accounts/:idReturns the full account including firmographics, why_now_md, source, and last_scanned_at.
Update an account
/accounts/:idPatchable fields:
namestringoptionalCompany name.
domainstringoptionalCompany domain.
tagsstring[]optionalReplaces the tag list.
owner_idstringoptionalAssign or reassign owner.
employees / industry / location / countrymixedoptionalFirmographic overrides.
linkedin_url / short_descriptionstringoptionalProfile overrides.
Delete an account
/accounts/:idPermanently deletes the account and tears down its monitor.
{ "data": { "id": "...", "deleted": true } }Activate an account
/accounts/:id/activateFlips a suggested account to active, consuming a plan credit, then enriches it and starts monitoring it, the same flow as the in-app Activate button. Optionally set the owner in the body.
owner_idstringoptionalOptional. Assign an owner on activation.
402 with no subscription or when the plan account limit is reached.Reject an account
/accounts/:id/rejectRejects a suggested account, setting its status to rejected. Active accounts cannot be rejected, deactivate or delete them instead.
Scan an account
/accounts/:id/scanEnqueues a fresh research pass for the account across every active signal. Returns immediately with the run id, work executes in the background.
402.{ "data": { "run_id": "...", "jobs": 4, "status": "running" } }Add tags
/accounts/:id/tagsMerges tags into the account's existing tag list (deduplicated).
tagsstring[]requiredTags to add.
{ "data": { "id": "...", "tags": ["inbound", "strategic"] } }Remove tags
/accounts/:id/tagsRemoves the given tags from the account.
tagsstring[]requiredTags to remove.
Assign owner
/accounts/:id/ownerAssigns or clears the account owner. owner_idmust be a workspace member's user id, or null to unassign.
owner_idstring | nullrequiredA member's user id, or null to clear.
{ "data": { "id": "...", "owner_id": "..." } }Get an account's signal detections
/accounts/:id/signalsReturns every signal detection for the account, newest first, including signal_present, alpha (score), icp_fit, headline, narrative, why_reach_out_md, drafted_message_md, evidence, key_facts, personas, and sources.
{
"data": [
{
"id": "...",
"signal_id": "...",
"signal_present": true,
"alpha": 88,
"icp_fit": 91,
"detected_at": "2026-06-28",
"headline": "New CRO hired, pipeline build begins",
"narrative": "...",
"why_reach_out_md": "...",
"drafted_message_md": "...",
"evidence": [ { "claim": "...", "source_url": "...", "published_date": "..." } ],
"key_facts": ["..."],
"personas": ["VP Revenue Operations"],
"sources": ["https://..."],
"created_at": "2026-06-28T..."
}
]
}Get an account's monitor events
/accounts/:id/monitor-eventsReturns the paginated activity feed for the account's monitor, what it surfaced on each pass and how each item was judged.
pageintegeroptionalPage number. Default 1.
per_pageintegeroptionalMax 100. Default 25.
{
"data": [
{
"id": "...",
"url": "https://...",
"status": "processed",
"search_status": "hit",
"meaningful": true,
"confidence": 0.82,
"reason": "New executive announcement matches signal",
"run_id": "...",
"created_at": "2026-07-03T..."
}
],
"pagination": { "total": 120, "page": 1, "per_page": 25, "has_more": true }
}Push accounts to CRM
/accounts/crm-pushPushes the given accounts to the connected CRM (HubSpot) with their signal context. Requires a connected CRM integration.
account_idsstring[]requiredAccounts to push.
curl -X POST https://usehunch.co/api/v1/accounts/crm-push \
-H "Authorization: Bearer hunch_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "account_ids": ["...", "..."] }'