Developer docs
Connect ReachLoop to any AI assistant or agent over the Model Context Protocol (MCP) or REST. Find buyers, launch outreach, read replies, and book calls, programmatically.
Overview
ReachLoop is an AI sales agent that runs LinkedIn and email outbound. The connector exposes the same safe operations you see in the app, so an assistant or agent can find leads, manage agents, read conversations, and report on pipeline.
There are two ways to connect:
- Chat apps such as Claude, ChatGPT, and Grok: add the connector URL and sign in with OAuth. No API key is pasted into the chat.
- Custom agents and scripts: generate an API key and call the MCP endpoint or the REST routes with a bearer token.
Connect over MCP (OAuth)
Works with Claude, ChatGPT, Grok, Cursor, and any client that supports custom MCP connectors.
- In your assistant, open Settings, Connectors and add a custom MCP connector.
- Paste the connector URL:
https://getreachloop.com/api/agent/v1/mcp - The connector sends you to ReachLoop to sign in and approve. It receives a token automatically over OAuth (authorization code + PKCE, S256).
Connect with an API key (REST)
For custom agents and header-capable clients.
- Sign in to ReachLoop, open Settings, API, and create a free key.
- Send it as a bearer token on every request.
POST https://getreachloop.com/api/agent/v1/mcp Authorization: Bearer <reachloop_agent_token> Content-Type: application/json
The MCP server
The server uses Streamable HTTP and negotiates the current stable MCP protocol version. Supported JSON-RPC methods: initialize, ping, tools/list, and tools/call.
curl -X POST https://getreachloop.com/api/agent/v1/mcp \
-H "Authorization: Bearer <reachloop_agent_token>" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Tools
The same tools are available over MCP and REST. Grouped by product surface:
| Tool | What it does |
|---|---|
| Workspace | |
| reachloop_get_context | Setup status, counts, settings, time zone, and today's remaining send allowance. |
| reachloop_get_stats | Pipeline stats: opportunities, invites, connections, replies, booked calls. |
| reachloop_update_settings | Update workspace settings such as time zone and daily send limits. |
| reachloop_list_linkedin_accounts | Connected LinkedIn sending accounts. |
| reachloop_list_groups | Lead groups in the workspace. |
| My Product | |
| reachloop_get_product_profile | The product profile used for buyer-fit scoring and personalization. |
| reachloop_update_product_profile | Update the product profile, including the scheduling (booking) link. |
| Agents | |
| reachloop_list_agents | All lead finders, including Steal Customers, with status and next run. |
| reachloop_create_agent | Create a classic lead finder or a Steal Customers agent. |
| reachloop_update_agent | Change targeting, reply handling, booking link, and send window. |
| reachloop_pause_agent / resume_agent / delete_agent | Pause, resume, or delete an agent. |
| Leads and outreach | |
| reachloop_list_leads | Discovered leads with fit score and engagement context. |
| reachloop_get_lead | Full lead context, including the post and comment for Steal Customers leads. |
| reachloop_list_scheduled_actions | Exactly what outreach is queued and when it sends. |
| reachloop_list_activity | Recent automation activity to explain progress. |
| Conversations | |
| reachloop_list_conversations | Existing reply threads with intent and buyer score. |
| reachloop_reply_to_lead | Continue an existing conversation (show the draft and get approval before sending). |
REST endpoints
Every tool has a REST equivalent under https://getreachloop.com/api/agent/v1/*. Send the same bearer token you use for MCP.
GET https://getreachloop.com/api/agent/v1/stats GET https://getreachloop.com/api/agent/v1/agents POST https://getreachloop.com/api/agent/v1/agents GET https://getreachloop.com/api/agent/v1/leads GET https://getreachloop.com/api/agent/v1/conversations GET https://getreachloop.com/api/agent/v1/scheduled-actions
Authentication
OAuth (chat clients): point the client at the MCP URL with no credential and follow WWW-Authenticate to the protected-resource metadata, then the authorization server at /.well-known/oauth-authorization-server, completing an authorization-code flow with PKCE (S256).
API key (custom agents): create a key in Settings, API and send it as Authorization: Bearer <reachloop_agent_token>. Never expose the token, connector URL, or a customer’s LinkedIn credentials.
Errors and rate limits
Every API error is JSON, including a mistyped route. The body has four fields: error (a message for people), code (a stable value to branch on, such as unauthorized, not_found or rate_limited), hint (what to do next) and docs (a link back to this page).
Rate limit: 120 requests a minute per token. Every response carries RateLimit-Limit and RateLimit-Policy. A 429 adds Retry-After in seconds; wait that long, then retry.
Versioning
The version is in the path: /api/agent/v1. Within v1 we only add: new routes, new optional fields, new tools. We do not remove or rename a field, or change what one means. A breaking change ships as /v2, and v1 keeps working for at least 90 days after that. During those days v1 responses carry Deprecation and Sunset headers with the shut-off date.
Limits and requirements
- Requires a ReachLoop account and a connected LinkedIn account. Pro is $79/month with a 7-day free trial.
- Human-paced sending. Daily caps (default 10 connection requests and 20 messages) reset at local midnight;
reachloop_get_contextreturns today’s remaining allowance. - Send windows per agent:
always,business, orextended, measured in each lead’s own time zone. - AI replies to a lead who just wrote skip the send window and go out after a random 2 to 15 minutes.
- Every timestamp is a UTC ISO instant; convert to
workspace.timeZonebefore showing a time.