Skip to main content

Lead agents

Agents that find people asking for what you sell and draft replies, billed in runs

A lead agent has one job on one platform. Give it a brief and it scans for conversations, judges each post against the brief, drafts replies in your voice and fills a queue you approve. Lead agents bill in runs from your plan, as they always have, and never use credits.

Endpoints/api/v1/agents, /api/v1/agents/{id}/runs, /api/v1/runs/{id}, /api/v1/leads?agent_id=
MCP toolssmore_list_agents, smore_create_agent, smore_update_agent, smore_run_agent, smore_get_run, smore_cancel_run, smore_list_leads
Scopesagents:read, agents:write, runs:start, runs:read, runs:cancel, leads:read
BillingRuns from your plan. A run that is out of runs answers 402 no_runs_remaining

List agents​

curl -s https://app.makesmores.com/api/v1/agents \
-H "Authorization: Bearer $SMORE_API_KEY"

Create an agent​

curl -s https://app.makesmores.com/api/v1/agents \
-H "Authorization: Bearer $SMORE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Buyer research",
"brief": {
"who": "B2B founders",
"signals": "Asking for help finding customers",
"never": "Job seekers",
"goal": "Find useful conversations"
}
}'

brief takes only who, signals, never and goal. job and platform default to find_leads and x. Creating an agent is not idempotent; after an uncertain answer, list your agents before you retry.

Start a run and read its leads​

curl -s -X POST "https://app.makesmores.com/api/v1/agents/$AGENT_ID/runs" \
-H "Authorization: Bearer $SMORE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"idempotency_key": "buyer-research-2026-10-24"}'

Repeating a run with the same idempotency_key returns the same run with created: false and reused: true. Read progress with GET /api/v1/runs/{id} and stop a run with POST /api/v1/runs/{id}/cancel.

curl -s "https://app.makesmores.com/api/v1/leads?agent_id=$AGENT_ID&limit=50" \
-H "Authorization: Bearer $SMORE_API_KEY"

Lead pages hold 1 to 100 leads, default 50. Follow next_cursor until it is gone. Leads are ordered by the source post's time, so a page is not a frozen snapshot of a running scan.

Errors​

StatusCodeMeaning
402no_runs_remaining, plan_limit, agent_limitYour plan's limits. Credits do not lift them
403insufficient_scopeThe key lacks the agent or run scope
409run_conflict, agent_conflictThe run or agent changed under you; read it and retry
429rate_limitedWait for Retry-After

See examples.