HeyReach
Run LinkedIn outreach from HeyReach: campaigns and sequences, lead lists with personalized enrollment, the inbox, sender accounts, blacklists and webhooks. Connect with a workspace API key.
- rest
https://api.superagnt.com/v1/connections/heyreachplus the vendor's own path, with your superagnt_ API key asAuthorization: Bearer.- mcp
- Tools named
connection_heyreach_*onhttps://mcp.superagnt.com/mcp, served once the account is connected. - billing
- HeyReach bills your own account. Calls cost no superagnt_ data credits.
- rate limit
- 5 requests a second, 300 a minute: the vendor's ceiling as the registry records it, for sizing bursts. Your plan's own limit is on Connections.
- sync
- Can copy 8 tables into your workspace database and keep them fresh: the tables.
The HeyReach connection lets an agent run LinkedIn outreach around your HeyReach campaigns: create or copy campaigns with full sequences (InMail steps included), enroll leads into campaigns and lead lists with their personalization, manage a campaign's senders and the blacklists, work the LinkedIn inbox, read sender accounts, networks and stats, look up a lead's email, and register webhooks for replies and connection acceptances.
HeyReach owns delivery
Once a lead is enrolled, the campaign runs the sequence: step timing, waiting for the connection to be accepted, stopping when the lead replies. Agents should own the judgment around it (choosing leads, drafting personalization, enrolling, handling replies), never send sequence steps themselves or keep delivery state such as "accepted" in their own tables, which drifts from what HeyReach did. Read that state live (connection_heyreach_inbox_read, connection_heyreach_network_read, connection_heyreach_stats_read) or from a HeyReach sync's tables.
01
Setup
- Create a workspace API key. In HeyReach open Settings → Workspace → Integrations → HeyReach API and click Get API key. A key from this screen reaches only the active workspace. Do not use your account-level master key.
- Connect HeyReach. In the superagnt app open Integrations, pick HeyReach and paste the key.
- Prepare the campaign. Build the campaign and its sequence in HeyReach, copy an existing one with
connection_heyreach_campaigns_writeactioncreate_from_template, or create one with actioncreate, which needs a lead list and at least one sender and takes the sequence now or later. Put every{{tag}}you plan to fill into the sequence steps: the sequence is the contract your enrollment calls must satisfy. A new campaign stays inDRAFTuntil it is started.
02
Things to know
Enrolling leads
There are two targets, with different rules:
- A running campaign (
connection_heyreach_campaign_leads_write, actionadd). The campaign must beIN_PROGRESS(HeyReach has noACTIVEstatus) and have at least one sender, and one call takes up to 100 leads. LeaveresumePausedCampaignandresumeFinishedCampaignoff: either one resumes the whole campaign, which restarts sending for every lead in it. - A lead list (
connection_heyreach_list_members_write, actionadd_leads). This works even while the campaign behind the list is paused: the leads wait until a person resumes it. A list lead is not enrolled in a campaign, though, and a campaign that finished or already used every lead of its list does not start new list leads.
a 200 is not every lead
Leads whose profileUrl is already in the campaign's or the list's leads are skipped silently, so read the added, updated and failed counts in the response. Pausing or resuming a campaign is a person's call, never an agent's own.
Personalization
Personalization rides on the enrollment call as each lead's customUserFields: { name, value } pairs that sequence steps reference as {{name}} tags (names take only letters, digits and _). The standard fields (firstName, lastName, companyName, position) feed the standard tags the same way, and a step renders the values when it runs.
- Read the sequence first (
connection_heyreach_campaigns_read, actionsequence) and fill every tag it references on every lead you enroll. A missing value does not error: the step falls back to its fallback text, or renders blank, for that lead. - Correct a value later with action
update_fieldsonconnection_heyreach_campaign_leads_write, or actionupdate_lead_fieldsonconnection_heyreach_list_members_write, one lead per call. Only steps that have not run yet pick up the change. - Draft the whole message for full per-lead personalization: pass the first message as one variable (for example
fullMessage) and make the campaign's message step just{{fullMessage}}. HeyReach still owns delivery, and the same variable can back an InMail step for leads who never accept the connection request.
Other behavior
- Changing a campaign's settings, schedule, sequence or whole sender list works only while it is
DRAFT,SCHEDULEDorPAUSED, and a running campaign answers 400. A new sequence on a paused campaign is safe: leads keep their state and move to the matching step. - Many HeyReach reads are POSTs (listing campaigns, campaign and list leads, conversations, stats). Over REST, send
Content-Type: application/jsonand a JSON body,{}at least, or HeyReach answers 415. The MCP tools send one for you. - The connection does not cover connecting a LinkedIn account (it takes the account's password or session cookies, so connect senders in the HeyReach app), a custom proxy's host and login, or sending voice notes. Agents can still check a sender's status, reconnect it with the login HeyReach stores, re-authenticate Sales Navigator or Recruiter, and move it to a HeyReach-managed proxy country.
03
Permissions
These defaults decide whether a superagnt_ agent runs a call or waits for a person (Permissions):
- Run: most reads, creating campaigns and lists, changing a campaign's settings, schedule or sequence, pausing it, replacing its whole sender list, stopping a lead, adding leads to a list, tagging leads, marking conversations read, and creating or changing webhooks.
- Ask: starting or resuming a campaign, enrolling leads in a campaign, correcting a lead's custom fields, adding or removing a campaign sender, blacklisting, email lookups (they spend HeyReach credits), and reconnecting, re-authenticating or resyncing a sender or changing its proxy or inbox sync.
- Always ask: sending an inbox message, removing leads from a list, lifting a blacklist entry, removing a sender account, deleting a webhook and, with an organization key, reading a workspace's API keys.
04
Examples
List running campaigns
curl -X POST "https://api.superagnt.com/v1/connections/heyreach/campaign/GetAll" \
-H "Authorization: Bearer $AGNTDATA_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "statuses": ["IN_PROGRESS"], "limit": 100 }'Check a campaign before enrolling
curl "https://api.superagnt.com/v1/connections/heyreach/campaign/GetById?campaignId=$CAMPAIGN_ID" \
-H "Authorization: Bearer $AGNTDATA_API_KEY"Enroll a lead with a personalized message
curl -X POST "https://api.superagnt.com/v1/connections/heyreach/campaign/AddLeadsToCampaignV2" \
-H "Authorization: Bearer $AGNTDATA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"campaignId": '"$CAMPAIGN_ID"',
"accountLeadPairs": [{
"lead": {
"profileUrl": "https://www.linkedin.com/in/example",
"firstName": "Ada",
"lastName": "Lovelace",
"companyName": "Analytical Engines",
"position": "Founder",
"customUserFields": [
{ "name": "fullMessage", "value": "Ada, congrats on the engine launch. ..." }
]
}
}],
"resumePausedCampaign": false
}'Leave linkedInAccountId off a pair and HeyReach picks one of the campaign's senders. Set it to pin the lead to one of them.
Read a conversation after a reply
curl "https://api.superagnt.com/v1/connections/heyreach/inbox/GetChatroom/$LINKEDIN_ACCOUNT_ID/$CONVERSATION_ID" \
-H "Authorization: Bearer $AGNTDATA_API_KEY"$LINKEDIN_ACCOUNT_ID is the conversation's linkedInAccountId and $CONVERSATION_ID its id, as the conversation listings return them.
05
Receiving HeyReach webhooks
Subscribe a URL to one event per webhook with connection_heyreach_webhooks_write (action create) or in the HeyReach app, and point it at a superagnt_ inbound webhook endpoint to trigger a reply-handling agent. EVERY_MESSAGE_REPLY_RECEIVED fires on every reply, MESSAGE_REPLY_RECEIVED and INMAIL_REPLY_RECEIVED on a lead's first reply only, and CONNECTION_REQUEST_ACCEPTED on an accepted request. Payload shapes differ per event (an InMail reply's text sits in a different field from a normal reply's), so inspect a real delivery before you write the parser. On any reply, read the whole conversation (connection_heyreach_inbox_read, action thread) before classifying or drafting: the payload alone lacks context.
With a HeyReach sync on, the sync registers webhooks of its own and can wake an agent on a reply itself, so there is no need for a second webhook on the same events.
06
Sync
A HeyReach sync copies your sender accounts, campaigns and their leads, the inbox and daily campaign stats into tables in your workspace database and keeps them fresh, so agents read local tables instead of paging HeyReach on every run. Turn it on from the Sync panel on the HeyReach connection page in the superagnt app. The panel previews the rows and webhook events against your plan before anything is created. How syncs work in general: Vendor sync.
How updates arrive. The sync registers its own HeyReach webhooks, one per event: every reply, connection request accepted, campaign completed and lead tags changed are on by default, and the rest poll unless you switch them on in Customize. A delivery makes the sync re-read what it touched, so the tables hold what HeyReach's API returns. Polling alone keeps them correct: by default every 15 minutes to an hour, plus a daily re-read of running campaigns and the last three days of the inbox. The sync's webhooks show in HeyReach with names starting superagnt_, and turning the sync off removes them.
Plans and scope.
- The sync needs a workspace API key: an organization key is refused when you preview or turn on the sync. Its filters are campaigns and sender accounts.
- It keeps to 200 of the 300 requests a minute HeyReach allows each key, leaving the rest for your agents.
- It writes nothing to HeyReach but its own webhooks: it never sends messages or touches campaigns, leads or tags.
What a HeyReach sync copies
A sync copies these tables into your workspace database and keeps them fresh, so an agent reads local rows instead of calling HeyReach on every run. Turn tables on and off from the Sync panel on the connection. Every table also carries _raw, _hash, _synced_at and _deleted_at. How syncs work: Vendor sync.
| Table | What it holds | Default |
|---|---|---|
heyreach_sendersSender accounts | The LinkedIn accounts connected to the HeyReach workspace, re-read every hour. | on |
heyreach_campaignsCampaigns | Every campaign with its status and lead progress, re-read every hour and when a campaign completes. | on |
heyreach_campaign_leadsCampaign leads | One row per lead in each campaign with its connection, message and sequence status, kept current by reply and acceptance webhooks, a 15-minute poll and a daily re-read of running campaigns. | on |
heyreach_conversationsConversations | LinkedIn inbox threads of the sender accounts in the history window, kept current by reply and tag webhooks, a 15-minute poll and a daily re-read of the last three days. | on |
heyreach_messagesMessages | Every message of the synced conversations, one row each. Kept for 90 days by default. | on |
heyreach_campaign_daily_statsCampaign daily stats | Per campaign and day: views, likes, follows, messages, InMails, connections and reply rates. The last 7 days are re-read daily because counts land late. Kept for 90 days by default. | on |
heyreach_listsLead lists | Lead and company lists in the workspace, re-read daily. | off |
heyreach_eventsWebhook events | One row per webhook delivery: the only record of individual sends, views and likes when those events are switched on. Kept for 90 days by default. | off |
41 tools, one per resource and risk
MCP servers and agents on the grouped surface list HeyReach as these tools. Each takes an action, and the ones that work across record types an object. Every operation also keeps its own per-operation name, in the next table, which works on every server. How grouping works: Grouped tools.
| Tool | Risk | Actions |
|---|---|---|
connection_heyreach_campaigns_readRead HeyReach campaigns List campaigns (a running one is IN_PROGRESS; there is no ACTIVE), get one with its senders, lead list and run state, or read its sequence. | read | listgetsequence |
connection_heyreach_campaigns_writeCreate and run HeyReach campaigns Create a campaign in DRAFT, change its settings, schedule or sequence, and start, pause or resume it. A started or resumed campaign runs its LinkedIn steps on its leads on the campaign's schedule: never resume a campaign the user paused unless asked. An update sends a SCHEDULED campaign back to DRAFT, so start it again; update_settings replaces the whole settings object, and an exclusion left out resets to its default. Senders: connection_heyreach_campaign_senders_write; leads: connection_heyreach_campaign_leads_write. | write | createcreate_from_templateupdate_settingsupdate_scheduleupdate_sequencestartpauseresume |
connection_heyreach_campaign_senders_writeAdd senders to a HeyReach campaign Add sender accounts to a campaign; the senders already on it stay. Replacing or removing senders: connection_heyreach_campaign_senders_delete. | write | add |
connection_heyreach_campaign_senders_deleteReplace or remove HeyReach campaign senders Remove sender accounts from a campaign, or replace its whole sender list: any sender left out is removed, and on a PAUSED campaign a removed sender's leads stop for good. Replacing sends a SCHEDULED campaign back to DRAFT. | destructive | replaceremove |
connection_heyreach_campaign_leads_readRead a HeyReach campaign's leads Page through a campaign's leads with their campaign, connection and message status, or find the campaigns a lead is in. | read | listcampaigns_for_lead |
connection_heyreach_campaign_leads_writeEnroll HeyReach campaign leads Add up to 100 leads to a running campaign, or correct a campaign lead's custom fields. Stopping a lead: connection_heyreach_campaign_leads_delete. Added leads get the campaign's LinkedIn steps on its schedule, so send their personalization on the add call. Leave resumePausedCampaign and resumeFinishedCampaign off unless the user asks: either one resumes the whole campaign, which restarts sending for every lead in it. | write | addupdate_fields |
connection_heyreach_campaign_leads_deleteStop a lead in a HeyReach campaign Stop one lead in a campaign so no further steps run for them. No call here restarts a stopped lead, and adding it again is skipped while it is in the campaign's list. | destructive | stop |
connection_heyreach_lists_readRead HeyReach lists List the lead and company lists, get one, or find the lead lists a lead is on. | read | listgetlists_for_lead |
connection_heyreach_lists_writeCreate a HeyReach list Create an empty lead list (USER_LIST, a campaign's lead list) or company list. | write | create |
connection_heyreach_list_members_readRead the leads and companies in a HeyReach list Page through the leads in a lead list or the companies in a company list, up to 1000 per call. | read | leadscompanies |
connection_heyreach_list_members_writeAdd leads to a HeyReach list Add up to 100 leads to a lead list (leads already on it are skipped silently), or correct a list lead's custom fields. A lead added to a list is not enrolled in a campaign: a campaign that finished, or already used every lead of its list, does not start new list leads, so enroll leads with connection_heyreach_campaign_leads_write. Send each lead's personalization on the add call. | write | add_leadsupdate_lead_fields |
connection_heyreach_list_members_deleteRemove leads from a HeyReach list Remove leads from a lead list, by LinkedIn member id or by profile URL. | destructive | remove_leadsremove_leads_by_url |
connection_heyreach_leads_readRead HeyReach leads Get the profile HeyReach holds for a lead by LinkedIn profile URL, or read its tags. | read | gettags |
connection_heyreach_leads_writeTag HeyReach leads Add tags to a lead, or replace its whole tag set (tags left out are removed). createTagIfNotExisting: true creates unknown tag names. Workspace tags: connection_heyreach_lead_tags_write. | write | add_tagsreplace_tags |
connection_heyreach_lead_tags_writeCreate HeyReach lead tags Create workspace lead tags, which can then be put on leads. | write | create |
connection_heyreach_inbox_readRead the HeyReach inbox Read LinkedIn conversations newest first, filtered by sender, campaign, lead, tags, read state or text: list pages by offset, and list_by_cursor walks by cursor (send the previous page's nextCursor as cursor while hasNextPage is true), past list's deep-paging limit and within a from/to window. thread reads one conversation in full. | read | listlist_by_cursorthread |
connection_heyreach_inbox_writeMark HeyReach conversations read Mark a conversation read or unread. Nothing is sent: connection_heyreach_inbox_send sends. | write | mark_seen |
connection_heyreach_inbox_sendSend a HeyReach message Send a LinkedIn message into an existing conversation from a sender account. It reaches a real person, so get the user's sign-off first; on a deployed agent, a send asks for approval by default. HeyReach requires subject, shown only in InMail threads. | write | send |
connection_heyreach_senders_readRead HeyReach sender accounts List or get the LinkedIn sender accounts connected to the workspace, read one's connection status, or list the countries a managed proxy can be in. | read | listgetstatusproxy_countries |
connection_heyreach_senders_writeMaintain HeyReach sender accounts Reconnect a sender account, re-authenticate its Sales Navigator or Recruiter session, resync its profile, move it to a HeyReach-managed proxy country, or change how far back its inbox syncs. LinkedIn sees a proxy move: change one only when the operator asks. Reconnect, relogin and resync return at once: poll status on connection_heyreach_senders_read. Connecting an account with LinkedIn credentials is done in the HeyReach app. | write | reconnectrelogin_navigatorrelogin_recruiterresyncupdate_proxyupdate_inbox_config |
connection_heyreach_senders_deleteRemove a HeyReach sender account Remove a sender account from the workspace. force=true first takes it off every active campaign, and its leads there stop; reconnecting it needs the LinkedIn login again, which this connection never takes. | destructive | remove |
connection_heyreach_network_readRead a HeyReach sender's network Page through a sender account's 1st-degree LinkedIn connections, or check whether a lead is one. | read | connectionsis_connection |
connection_heyreach_stats_readRead HeyReach stats Read outreach counters (views, likes, follows, messages, InMails, connection requests, replies, acceptance and reply rates) as a total and per day, overall or per campaign. accountIds and campaignIds are required: [] means every sender / campaign. | read | overallby_campaign |
connection_heyreach_blacklist_readRead the HeyReach blacklist List the blacklisted leads or companies, which campaigns skip by default. | read | leadscompanies |
connection_heyreach_blacklist_writeBlacklist HeyReach leads and companies Blacklist up to 100 leads or companies per call so campaigns skip them, e.g. when a lead opts out. A lead given by an email the workspace does not hold yet spends one reverse-lookup credit when reverse lookup is on. A 200 does not mean every entry landed: read entries, duplicates and validationErrors. | write | add_leadsadd_companies |
connection_heyreach_blacklist_deleteRemove from the HeyReach blacklist Take leads or companies off the blacklist by entry id, which lets campaigns reach them again. Blacklisting the same one later restores the entry. | destructive | remove_leadsremove_companies |
connection_heyreach_emails_findFind a lead's email with HeyReach Spend HeyReach enrichment credits: start a job that looks up one lead's email address. Read the job with connection_heyreach_email_jobs_read. | paid | find |
connection_heyreach_email_jobs_readRead a HeyReach email lookup Read an email lookup job's status and, once it is COMPLETED, what it found. | read | get |
connection_heyreach_webhooks_readRead HeyReach webhooks List the workspace's webhooks or get one. Custom headers are left out unless includeCustomHeaders is true; they can hold other integrations' secrets. | read | listget |
connection_heyreach_webhooks_writeCreate and change HeyReach webhooks Subscribe a URL to one HeyReach event type, or change a webhook. | write | createupdate |
connection_heyreach_webhooks_deleteDelete a HeyReach webhook Delete a webhook; HeyReach stops sending its events. HeyReach refuses to delete an active webhook, so first set isActive to false with connection_heyreach_webhooks_write action "update". | destructive | delete |
connection_heyreach_org_workspaces_readRead HeyReach workspaces (organization) Organization key only (a workspace key is refused): list the workspaces of the organization. | read | list |
connection_heyreach_org_workspaces_writeCreate a HeyReach workspace (organization) Organization key only (a workspace key is refused): create a workspace, optionally with a seat limit. | write | create |
connection_heyreach_org_workspace_settings_writeRename a HeyReach workspace or change its seat limit (organization) Organization key only (a workspace key is refused): rename a workspace or change its seat limit. Leave seatsLimit out to keep the current limit. | write | update |
connection_heyreach_org_api_keys_readRead a HeyReach workspace's API keys (organization) Organization key only (a workspace key is refused): read a workspace's live integration keys, which come back in plain text. They are secrets: show them only to the person who asked. | read | get |
connection_heyreach_org_api_keys_rotateRotate a HeyReach workspace's API key (organization) Organization key only (a workspace key is refused): generate a new key of a type for a workspace, which deactivates that workspace's previous key of the type. Anything using the old key stops working, including any other connection that holds it. | destructive | rotate |
connection_heyreach_org_users_readRead HeyReach users (organization) Organization key only (a workspace key is refused): list the organization's users or a workspace's users, or get one user with their permissions. | read | listgetworkspace_users |
connection_heyreach_org_users_writeInvite HeyReach users (organization) Organization key only (a workspace key is refused): invite admins to the organization, or members or managers to workspaces. HeyReach sends no email: admin and member invitations return an invitationUrl to share, and managers are added to the workspaces directly. | write | invite_adminsinvite_managersinvite_members |
connection_heyreach_org_senders_readRead HeyReach sender accounts (organization) Organization key only (a workspace key is refused): list the sender accounts of every workspace in the organization, with each one's workspace. | read | list |
connection_heyreach_org_senders_writeMove a HeyReach sender account (organization) Organization key only (a workspace key is refused): move a sender account to another workspace of the organization. | write | move |
connection_heyreach_org_senders_deleteDelete a HeyReach sender account (organization) Organization key only (a workspace key is refused): soft-delete a sender account in any workspace of the organization. forceDelete=true first takes it off its active campaigns. | destructive | delete |
All 84 operations
Each operation is a REST path under https://api.superagnt.com/v1/connections/heyreach and an MCP tool. The per-operation tool name is the one permissions, approvals and usage records use.
| Operation | MCP tool |
|---|---|
GET /auth/CheckApiKeyCheck API Key | connection_heyreach_auth_check_api_keygrouped servers list it under this name |
POST /campaign/GetAllList campaigns | connection_heyreach_campaign_get_allgrouped: connection_heyreach_campaigns_read, action list |
GET /campaign/GetByIdGet campaign by ID | connection_heyreach_campaign_get_by_idgrouped: connection_heyreach_campaigns_read, action get |
POST /campaign/PausePause campaign | connection_heyreach_campaign_pausegrouped: connection_heyreach_campaigns_write, action pause |
POST /campaign/ResumeResume campaign | connection_heyreach_campaign_resumegrouped: connection_heyreach_campaigns_write, action resume |
POST /campaign/StartCampaignStart campaign | connection_heyreach_campaign_startgrouped: connection_heyreach_campaigns_write, action start |
POST /campaign/CreateCreate campaign | connection_heyreach_campaign_creategrouped: connection_heyreach_campaigns_write, action create |
POST /campaign/CreateCampaignFromTemplateCreate campaign from template | connection_heyreach_campaign_create_from_templategrouped: connection_heyreach_campaigns_write, action create_from_template |
POST /campaign/UpdateSettingsUpdate campaign settings | connection_heyreach_campaign_update_settingsgrouped: connection_heyreach_campaigns_write, action update_settings |
POST /campaign/UpdateScheduleUpdate campaign schedule | connection_heyreach_campaign_update_schedulegrouped: connection_heyreach_campaigns_write, action update_schedule |
POST /campaign/UpdateAccountsUpdate campaign sender accounts | connection_heyreach_campaign_update_accountsgrouped: connection_heyreach_campaign_senders_delete, action replace |
POST /campaign/AddLinkedInAccountsToCampaignAdd sender accounts to campaign | connection_heyreach_campaign_add_accountsgrouped: connection_heyreach_campaign_senders_write, action add |
POST /campaign/RemoveLinkedInAccountsFromCampaignRemove sender accounts from campaign | connection_heyreach_campaign_remove_accountsgrouped: connection_heyreach_campaign_senders_delete, action remove |
POST /campaign/UpdateSequenceUpdate campaign sequence | connection_heyreach_campaign_update_sequencegrouped: connection_heyreach_campaigns_write, action update_sequence |
GET /campaign/GetCampaignSequenceGet campaign sequence | connection_heyreach_campaign_get_sequencegrouped: connection_heyreach_campaigns_read, action sequence |
POST /campaign/AddLeadsToCampaignV2Add leads to campaign | connection_heyreach_campaign_add_leads_v2grouped: connection_heyreach_campaign_leads_write, action add |
POST /campaign/AddLeadsToCampaignAdd leads to campaign (v1, legacy) | connection_heyreach_campaign_add_leadsnot listed on grouped servers; call it by this name |
POST /campaign/StopLeadInCampaignStop lead in campaign | connection_heyreach_campaign_stop_leadgrouped: connection_heyreach_campaign_leads_delete, action stop |
POST /campaign/GetLeadsFromCampaignGet leads in campaign | connection_heyreach_campaign_get_leadsgrouped: connection_heyreach_campaign_leads_read, action list |
POST /campaign/GetCampaignsForLeadGet campaigns for lead | connection_heyreach_campaign_get_for_leadgrouped: connection_heyreach_campaign_leads_read, action campaigns_for_lead |
PATCH /campaign/UpdateLeadCustomFields/campaigns/{campaignId}/leads/custom-fieldsUpdate a campaign lead's custom fields | connection_heyreach_campaign_update_lead_fieldsgrouped: connection_heyreach_campaign_leads_write, action update_fields |
POST /inbox/GetConversationsV2Get conversations | connection_heyreach_inbox_get_conversations_v2grouped: connection_heyreach_inbox_read, action list |
POST /inbox/GetConversationsV3Get conversations (cursor-paged) | connection_heyreach_inbox_get_conversations_v3grouped: connection_heyreach_inbox_read, action list_by_cursor |
GET /inbox/GetChatroom/{accountId}/{conversationId}Get chatroom (single conversation thread) | connection_heyreach_inbox_get_chatroomgrouped: connection_heyreach_inbox_read, action thread |
POST /inbox/SendMessageSend message in conversation | connection_heyreach_inbox_send_messagegrouped: connection_heyreach_inbox_send, action send |
POST /inbox/SetSeenStatusSet conversation seen status | connection_heyreach_inbox_set_seen_statusgrouped: connection_heyreach_inbox_write, action mark_seen |
POST /li_account/GetAllList connected LinkedIn accounts | connection_heyreach_li_account_get_allgrouped: connection_heyreach_senders_read, action list |
GET /li_account/GetByIdGet connected LinkedIn account by ID | connection_heyreach_li_account_get_by_idgrouped: connection_heyreach_senders_read, action get |
GET /li_account/GetAccountStatus/{accountId}Get sender account connection status | connection_heyreach_li_account_get_statusgrouped: connection_heyreach_senders_read, action status |
POST /li_account/ReconnectReconnect sender account | connection_heyreach_li_account_reconnectgrouped: connection_heyreach_senders_write, action reconnect |
POST /li_account/ReloginSalesNavigatorRe-authenticate Sales Navigator | connection_heyreach_li_account_relogin_navigatorgrouped: connection_heyreach_senders_write, action relogin_navigator |
POST /li_account/ReloginRecruiterRe-authenticate Recruiter | connection_heyreach_li_account_relogin_recruitergrouped: connection_heyreach_senders_write, action relogin_recruiter |
POST /li_account/ResyncResync sender account profile | connection_heyreach_li_account_resyncgrouped: connection_heyreach_senders_write, action resync |
GET /li_account/GetProxyCountriesList proxy countries | connection_heyreach_li_account_get_proxy_countriesgrouped: connection_heyreach_senders_read, action proxy_countries |
POST /li_account/UpdateProxyUpdate sender account proxy | connection_heyreach_li_account_update_proxygrouped: connection_heyreach_senders_write, action update_proxy |
POST /li_account/UpdateInboxConfigurationUpdate sender inbox sync | connection_heyreach_li_account_update_inbox_configgrouped: connection_heyreach_senders_write, action update_inbox_config |
DELETE /li_account/RemoveAccount/{accountId}Remove sender account | connection_heyreach_li_account_removegrouped: connection_heyreach_senders_delete, action remove |
POST /list/GetAllList lead/company lists | connection_heyreach_list_get_allgrouped: connection_heyreach_lists_read, action list |
GET /list/GetByIdGet list by ID | connection_heyreach_list_get_by_idgrouped: connection_heyreach_lists_read, action get |
POST /list/CreateEmptyListCreate empty list | connection_heyreach_list_create_emptygrouped: connection_heyreach_lists_write, action create |
POST /list/GetLeadsFromListGet leads from a list | connection_heyreach_list_get_leadsgrouped: connection_heyreach_list_members_read, action leads |
POST /list/GetCompaniesFromListGet companies from a list | connection_heyreach_list_get_companiesgrouped: connection_heyreach_list_members_read, action companies |
POST /list/AddLeadsToListV2Add leads to list | connection_heyreach_list_add_leads_v2grouped: connection_heyreach_list_members_write, action add_leads |
POST /list/AddLeadsToListAdd leads to list (v1, legacy) | connection_heyreach_list_add_leadsnot listed on grouped servers; call it by this name |
DELETE /list/DeleteLeadsFromListDelete leads from list by member ID | connection_heyreach_list_delete_leadsgrouped: connection_heyreach_list_members_delete, action remove_leads |
DELETE /list/DeleteLeadsFromListByProfileUrlDelete leads from list by profile URL | connection_heyreach_list_delete_leads_by_profile_urlgrouped: connection_heyreach_list_members_delete, action remove_leads_by_url |
POST /list/GetListsForLeadGet lists a lead belongs to | connection_heyreach_list_get_for_leadgrouped: connection_heyreach_lists_read, action lists_for_lead |
PATCH /list/UpdateLeadCustomFields/lists/{listId}/leads/custom-fieldsUpdate a list lead's custom fields | connection_heyreach_list_update_lead_fieldsgrouped: connection_heyreach_list_members_write, action update_lead_fields |
POST /lead/GetLeadGet lead by profile URL | connection_heyreach_lead_get_by_profile_urlgrouped: connection_heyreach_leads_read, action get |
POST /lead/AddTagsAdd tags to lead | connection_heyreach_lead_add_tagsgrouped: connection_heyreach_leads_write, action add_tags |
POST /lead/ReplaceTagsReplace lead tags | connection_heyreach_lead_replace_tagsgrouped: connection_heyreach_leads_write, action replace_tags |
POST /lead/GetTagsGet tags for a lead | connection_heyreach_lead_get_tagsgrouped: connection_heyreach_leads_read, action tags |
POST /lead_tags/CreateTagsCreate workspace lead tags | connection_heyreach_lead_tags_creategrouped: connection_heyreach_lead_tags_write, action create |
POST /blacklist/GetLeadsList blacklisted leads | connection_heyreach_blacklist_get_leadsgrouped: connection_heyreach_blacklist_read, action leads |
POST /blacklist/AddLeadsBlacklist leads | connection_heyreach_blacklist_add_leadsgrouped: connection_heyreach_blacklist_write, action add_leads |
POST /blacklist/RemoveLeadsRemove blacklisted leads | connection_heyreach_blacklist_remove_leadsgrouped: connection_heyreach_blacklist_delete, action remove_leads |
POST /blacklist/GetCompaniesList blacklisted companies | connection_heyreach_blacklist_get_companiesgrouped: connection_heyreach_blacklist_read, action companies |
POST /blacklist/AddCompaniesBlacklist companies | connection_heyreach_blacklist_add_companiesgrouped: connection_heyreach_blacklist_write, action add_companies |
POST /blacklist/RemoveCompaniesRemove blacklisted companies | connection_heyreach_blacklist_remove_companiesgrouped: connection_heyreach_blacklist_delete, action remove_companies |
POST /enrichment/enrich-emailStart an email enrichment | connection_heyreach_enrich_emailgrouped: connection_heyreach_emails_find, action find |
GET /enrichment/enrich-email/check-job/{jobId}Check an email enrichment | connection_heyreach_enrich_email_check_jobgrouped: connection_heyreach_email_jobs_read, action get |
POST /stats/GetOverallStatsGet overall stats | connection_heyreach_stats_get_overallgrouped: connection_heyreach_stats_read, action overall |
POST /stats/GetOverallStatsByCampaignGet overall stats grouped by campaign | connection_heyreach_stats_get_by_campaigngrouped: connection_heyreach_stats_read, action by_campaign |
POST /MyNetwork/GetMyNetworkForSenderGet sender's LinkedIn network | connection_heyreach_network_get_for_sendergrouped: connection_heyreach_network_read, action connections |
POST /MyNetwork/IsConnectionCheck if a lead is a 1st-degree connection | connection_heyreach_network_is_connectiongrouped: connection_heyreach_network_read, action is_connection |
POST /webhooks/CreateWebhookCreate webhook subscription | connection_heyreach_webhook_creategrouped: connection_heyreach_webhooks_write, action create |
GET /webhooks/GetWebhookByIdGet webhook by ID | connection_heyreach_webhook_get_by_idgrouped: connection_heyreach_webhooks_read, action get |
POST /webhooks/GetAllWebhooksList webhooks | connection_heyreach_webhook_get_allgrouped: connection_heyreach_webhooks_read, action list |
PATCH /webhooks/UpdateWebhookUpdate webhook subscription | connection_heyreach_webhook_updategrouped: connection_heyreach_webhooks_write, action update |
DELETE /webhooks/DeleteWebhookDelete webhook subscription | connection_heyreach_webhook_deletegrouped: connection_heyreach_webhooks_delete, action delete |
GET /management/organizations/workspacesList workspaces (organization-scoped key) | connection_heyreach_org_workspaces_get_allgrouped: connection_heyreach_org_workspaces_read, action list |
POST /management/organizations/workspacesCreate workspace | connection_heyreach_org_workspaces_creategrouped: connection_heyreach_org_workspaces_write, action create |
PATCH /management/organizations/workspaces/{workspaceId}Update workspace | connection_heyreach_org_workspaces_updategrouped: connection_heyreach_org_workspace_settings_write, action update |
GET /management/organizations/api-keys/workspaces/{workspaceId}Get workspace API keys | connection_heyreach_org_workspace_api_keys_getgrouped: connection_heyreach_org_api_keys_read, action get |
POST /management/organizations/api-keys/workspaces/{workspaceId}Create workspace API key | connection_heyreach_org_workspace_api_keys_creategrouped: connection_heyreach_org_api_keys_rotate, action rotate |
POST /management/organizations/usersList users in the organization | connection_heyreach_org_users_get_allgrouped: connection_heyreach_org_users_read, action list |
GET /management/organizations/users/{userId}Get user by ID | connection_heyreach_org_user_get_by_idgrouped: connection_heyreach_org_users_read, action get |
POST /management/organizations/users/workspaces/{workspaceId}List users in workspace | connection_heyreach_org_workspace_users_get_allgrouped: connection_heyreach_org_users_read, action workspace_users |
POST /management/organizations/users/invite/adminsInvite admins | connection_heyreach_org_invite_adminsgrouped: connection_heyreach_org_users_write, action invite_admins |
POST /management/organizations/users/invite/managersInvite managers | connection_heyreach_org_invite_managersgrouped: connection_heyreach_org_users_write, action invite_managers |
POST /management/organizations/users/invite/membersInvite members | connection_heyreach_org_invite_membersgrouped: connection_heyreach_org_users_write, action invite_members |
POST /management/organizations/linkedin-accountsList sender accounts across workspaces | connection_heyreach_org_li_accounts_get_allgrouped: connection_heyreach_org_senders_read, action list |
DELETE /management/organizations/linkedin-accounts/{linkedInAccountId}Delete a sender account (organization) | connection_heyreach_org_li_account_deletegrouped: connection_heyreach_org_senders_delete, action delete |
POST /management/organizations/linkedin-accounts/MoveToWorkspaceMove a sender account to another workspace | connection_heyreach_org_li_account_movegrouped: connection_heyreach_org_senders_write, action move |