Skip to content
Preview: outbound-sdk is not on npm yet and its repository is private. Instantly and HeyReach are beta, Smartlead is unverified.What is verified
outbound-sdk
Esc
↑↓navigate↵open⌘Jpreview
On this page

HeyReach coverage

Every endpoint in HeyReach's public API reference and how outbound-sdk reaches it: a normalized read, a native read, excluded with a reason, or a write.

Inventoried on 2026-11-14 from HeyReach’s public API reference at https://docs.heyreach.io: the page index (llms.txt) and the machine-readable reference (openapi.json), checked against the Postman collection the docs link to (published 2026-09-16, 88 requests, every one of them also in the reference). The reference documents 106 endpoints, all on https://api.heyreach.io/api/public: 17 are used by normalized reads, 25 are in the native catalog (packages/outbound-sdk/src/heyreach/native.ts), 3 are excluded and 61 are writes.

The five /management/organizations reads belong to the Organization Management API. They need the organization API key in place of a workspace key and answer 401 without it. HeyReach documents no sister service on another host.

Two of the excluded rows return secrets. The third, a voice message’s audio file, returns a file and not JSON: the request engine reads every response as text, so a binary body cannot be returned intact. It becomes a native read once the engine can hand back bytes.

Two reads stay in the native catalog and are also used by a normalized read: lookup by profile or email (leads.lookup) asks POST /campaign/GetCampaignsForLead for the campaigns and, for an email address, POST /list/GetListsForLead for a list to find the profile in.

Method Path Reads Coverage Through
GET /auth/CheckApiKey Whether the API key works native checkApiKey
POST /blacklist/AddCompanies Adds companies to the blacklist write
POST /blacklist/AddLeads Adds leads to the blacklist write
POST /blacklist/GetCompanies Blacklisted companies normalized blocklist
POST /blacklist/GetLeads Blacklisted leads normalized blocklist
POST /blacklist/RemoveCompanies Removes companies from the blacklist write
POST /blacklist/RemoveLeads Removes leads from the blacklist write
POST /campaign/AddLeadsToCampaign Adds leads to a campaign write
POST /campaign/AddLeadsToCampaignV2 Adds leads to a campaign and reports the counts write
POST /campaign/AddLinkedInAccountsToCampaign Adds senders to a campaign write
POST /campaign/Create Creates a campaign write
POST /campaign/CreateCampaignFromTemplate Creates a campaign from another campaign write
POST /campaign/CreateV2 Creates a campaign with voice message versions write
POST /campaign/GetAll Campaigns, filtered by status, sender or name normalized campaigns.list, campaigns.status
GET /campaign/GetById One campaign with its progress counts and sender ids normalized campaigns.get, senders.byCampaign
GET /campaign/GetCampaignSequence A campaign’s sequence tree normalized sequence
GET /campaign/GetCampaignSequenceV2 A campaign’s sequence tree with voice message versions native campaignSequenceV2
POST /campaign/GetCampaignsForLead The campaigns one lead is in native campaignsForLead
POST /campaign/GetLeadsFromCampaign A campaign’s leads with their status normalized leads.byCampaign, leads.since
POST /campaign/Pause Pauses a campaign write
POST /campaign/RemoveLinkedInAccountsFromCampaign Removes senders from a campaign write
POST /campaign/Resume Resumes a campaign write
POST /campaign/StartCampaign Starts a campaign write
POST /campaign/StopLeadInCampaign Stops one lead in a campaign write
POST /campaign/UpdateAccounts Replaces a campaign’s senders write
PATCH /campaign/UpdateLeadCustomFields/campaigns/{campaignId}/leads/custom-fields Changes a campaign lead’s custom fields write
POST /campaign/UpdateSchedule Changes a campaign’s schedule write
POST /campaign/UpdateSequence Replaces a campaign’s sequence write
POST /campaign/UpdateSequenceV2 Replaces a campaign’s sequence, voice versions included write
POST /campaign/UpdateSettings Changes a campaign’s name, list and exclusions write
POST /enrichment/enrich-email Starts an email-enrichment job for a lead write
GET /enrichment/enrich-email/check-job/{jobId} The state and result of an email-enrichment job native enrichEmailJob
GET /inbox/GetChatroom/{accountId}/{conversationId} One conversation with all its messages normalized messages.byThread
POST /inbox/GetConversationsV2 Conversations with messages, paged by offset native conversationsV2
POST /inbox/GetConversationsV3 Conversations with messages, paged by cursor and bounded by date normalized messages.list, messages.since, replies.list, replies.since, leads.timeline
GET /inbox/GetVoiceMessageAudio/{accountId}/{conversationId}/{messageId} A voice message’s audio file excluded Not one of the three accepted reasons: it returns an audio file, not JSON, and the request engine reads every body as text, so the bytes cannot be handed back intact; the transcript and duration are in the conversation reads.
POST /inbox/SendMessage Sends a message in a conversation write
POST /inbox/SetSeenStatus Marks a conversation seen or unseen write
POST /lead/AddTags Adds tags to a lead write
POST /lead/GetLead One lead’s profile, by profile URL normalized leads.get, leads.lookup
POST /lead/GetTags One lead’s tags normalized leads.get
POST /lead/ReplaceTags Replaces a lead’s tags write
POST /lead_tags/CreateTags Creates workspace tags write
POST /li_account/Connect Connects a LinkedIn account with credentials write
POST /li_account/ConnectWithCookies Connects a LinkedIn account with cookies write
GET /li_account/GetAccountProxy/{accountId} A LinkedIn account’s proxy excluded It returns secrets: the host, username and password of a custom proxy.
GET /li_account/GetAccountStatus/{accountId} A LinkedIn account’s connection status normalized senders.health
POST /li_account/GetAll LinkedIn accounts normalized senders.list, senders.byCampaign
GET /li_account/GetById One LinkedIn account normalized senders.get
GET /li_account/GetProxyCountries Supported proxy countries native proxyCountries
POST /li_account/Reconnect Reconnects a LinkedIn account write
POST /li_account/ReloginRecruiter Signs an account back in to Recruiter write
POST /li_account/ReloginSalesNavigator Signs an account back in to Sales Navigator write
DELETE /li_account/RemoveAccount/{accountId} Removes a LinkedIn account write
POST /li_account/Resync Starts a resync of an account’s inbox write
POST /li_account/SubmitPin Submits a LinkedIn verification PIN write
POST /li_account/UpdateInboxConfiguration Changes how an account’s inbox is scraped write
POST /li_account/UpdateProxy Changes an account’s proxy write
POST /list/AddLeadsToList Adds leads to a list write
POST /list/AddLeadsToListV2 Adds leads to a list and reports the counts write
POST /list/CreateEmptyList Creates an empty list write
DELETE /list/DeleteLeadsFromList Deletes leads from a list by member id write
DELETE /list/DeleteLeadsFromListByProfileUrl Deletes leads from a list by profile URL write
POST /list/GetAll Lead and company lists normalized lists.list
GET /list/GetById One lead or company list native listById
POST /list/GetCompaniesFromList The companies in a company list native companiesFromList
POST /list/GetLeadsFromList The leads in a lead list normalized lists.leads, leads.since, leads.lookup
POST /list/GetListsForLead The lists one lead is in native listsForLead
PATCH /list/UpdateLeadCustomFields/lists/{listId}/leads/custom-fields Changes a list lead’s custom fields write
GET /management/organizations/api-keys/workspaces/{workspaceId} A workspace’s API and integration keys excluded It returns secrets: every API and integration key of the workspace.
POST /management/organizations/api-keys/workspaces/{workspaceId} Generates a new API key for a workspace write
POST /management/organizations/linkedin-accounts LinkedIn accounts across every workspace native organizationLinkedInAccounts
POST /management/organizations/linkedin-accounts/MoveToWorkspace Moves a LinkedIn account to another workspace write
DELETE /management/organizations/linkedin-accounts/{linkedInAccountId} Deletes a LinkedIn account write
POST /management/organizations/users Users of the organization, invited ones included native organizationUsers
POST /management/organizations/users/invite/admins Invites admins write
POST /management/organizations/users/invite/managers Invites managers to workspaces write
POST /management/organizations/users/invite/members Invites members with permissions write
POST /management/organizations/users/workspaces/{workspaceId} Users of one workspace with roles and permissions native workspaceUsers
GET /management/organizations/users/{userId} One user with roles and permissions native organizationUser
GET /management/organizations/workspaces Workspaces with seat limits and seats used native organizationWorkspaces
POST /management/organizations/workspaces Creates a workspace write
PATCH /management/organizations/workspaces/{workspaceId} Changes a workspace’s name or seat limit write
POST /MyNetwork/GetMyNetworkForSender One sender’s LinkedIn connections native myNetworkForSender
POST /MyNetwork/IsConnection Whether a lead is a connection of a sender native isConnection
POST /stats/GetOverallStats Totals and daily counts for the workspace, a campaign or a sender normalized stats.workspace, stats.campaign, stats.byDay, stats.bySender
POST /stats/GetOverallStatsByCampaign Totals and daily counts, one row per campaign native statsByCampaign
POST /voice/BulkCommit Assigns voices to several senders at once write
POST /voice/CreateCustomVoice Clones a voice from an uploaded sample write
DELETE /voice/DeleteCustomVoice/{id} Deletes a cloned voice write
GET /voice/GetElevenLabsConnection The workspace’s ElevenLabs connection status native elevenLabsConnection
GET /voice/GetElevenLabsVoices Imported ElevenLabs voices native elevenLabsVoices
GET /voice/GetSenderVoice/{accountId} The voice assigned to a sender native senderVoice
GET /voice/GetStaticClip/{clipId} One uploaded voice clip, metadata and transcript native staticClip
GET /voice/GetStaticClips Uploaded voice clips, metadata and transcripts native staticClips
GET /voice/GetVoices Predefined and cloned voices native voices
GET /voice/GetVoiceUsage/{id} The senders a voice is assigned to native voiceUsage
POST /voice/RefreshElevenLabsLibrary Re-imports the ElevenLabs voice library write
DELETE /voice/RemoveSenderVoice/{accountId} Removes a sender’s voice write
PUT /voice/SetSenderVoice/{accountId} Assigns a voice to a sender write
POST /voice/UploadStaticClip Uploads a voice clip write
POST /webhooks/CreateWebhook Creates a webhook write
DELETE /webhooks/DeleteWebhook Deletes a webhook write
POST /webhooks/GetAllWebhooks Webhooks normalized webhooks.list
GET /webhooks/GetWebhookById One webhook native webhookById
PATCH /webhooks/UpdateWebhook Changes a webhook write

Was this page helpful?