docs · for agents
REST API
For integrations that speak plain HTTP rather than MCP: cron scripts, Zapier/Make, CRM syncs. Same API keys as the MCP server, same lead shape, created in Settings.
Fetch leads
request
curl "https://www.threadsonar.com/api/v1/leads?status=new&band=hot&limit=20" \ -H "Authorization: Bearer tsnr_YOUR_KEY"
| param | values |
|---|---|
status | new · saved · contacted · dismissed |
band | hot · warm · review |
audience | in_market_buyer · current_customer · feature_request · competitor_user · other |
sort | newest (default) · oldest · score |
since | ISO 8601 timestamp; only leads delivered after this |
signal_id | Limit to one signal |
limit | 1-50, default 20 |
Response
200 OK
{
"count": 2,
"leads": [
{
"id": "8f0c1f6a-...",
"signal_id": "b1d2e3f4-...",
"signal": "Competitor switchers",
"platform": "reddit",
"url": "https://reddit.com/r/sales/comments/...",
"author": "u/quota_crusher",
"content": "We're paying $$$ for X and support has been awful...",
"intent_score": 88,
"band": "hot",
"intent_class": "switching_intent",
"rationale": "Actively unhappy with a named competitor and asking for alternatives",
"reply_draft": "Sounds rough. We moved off X last year for...",
"status": "new",
"posted_at": "2026-08-24T14:02:11.000Z",
"delivered_at": "2026-08-24T14:09:40.000Z"
}
]
}All timestamps are ISO 8601 in UTC. Lead content is truncated at 1,200 characters; follow url for the full post.
Errors
| status | meaning |
|---|---|
| 400 | Invalid parameter value; the body names the parameter. |
| 401 | Missing, invalid, or revoked API key. |
| 403 | The key's workspace has no active plan. |