Skip to content
Pathbound DOCS

Instantly

These two endpoints write to the Instantly account your workspace has connected. One adds a person to a campaign as a lead, so that they enter the campaign’s sending sequence. The other sets a lead’s interest status, for example after a reply tells you whether they are interested.

Both take an email address, not a Pathbound contact id. The person does not have to be a contact in your workspace, and neither request creates or changes a Pathbound contact.

Before the first call, connect Instantly under Integrations → Instantly in the dashboard, create an API key with the actions:write scope, and have a workspace admin switch the action on: see Before you call. The MCP tools instantly_add_lead and instantly_update_lead_interest call the same endpoints: see MCP tools.

EndpointScopeWhat it does
POST /v1/integrations/instantly/leadsactions:writeAdds a lead to an Instantly campaign.
POST /v1/integrations/instantly/leads/interestactions:writeSets the interest status of a lead.

The scope. actions:write is opt-in: a key holds it only when it was selected for that key. See Scopes.

Instantly is connected. The requests are made with your workspace’s Instantly API key.

The admin switches. Each endpoint has a switch of its own, under MCP Tools → Instantly in the dashboard. Both are off until a workspace admin turns them on. The page is named for AI agents, but the API checks the switch on every request: an API key is held to it exactly as an agent is. With the switch off, the endpoint answers 412 with the code tool_disabled.

SwitchName in error messagesEndpoint it governs
Add leads to campaignsinstantly_add_leadsAdd a lead to a campaign.
Update lead interestinstantly_update_interestUpdate a lead’s interest.

GET /v1/tenant/capabilities reports which switches are on, under tool_settings.

POST /v1/integrations/instantly/leads

Required scope: actions:write · Switch: Add leads to campaigns

Adds one person to an Instantly campaign.

HeaderRequiredDescription
Idempotency-KeyyesA key of your choosing for this one lead. See Idempotency.
FieldTypeRequiredDescription
campaign_idstringyesInstantly’s id for the campaign. No endpoint of this API lists campaigns.
emailstringyesThe lead’s email address. It is sent to Instantly in lowercase.
first_namestringnoAt most 255 characters.
last_namestringnoAt most 255 characters.
company_namestringnoAt most 255 characters.
phonestringnoAt most 64 characters.
personalizationstringnoA personalization text for the campaign’s emails. At most 5,000 characters.
custom_variablesobjectnoCustom variables for the lead, passed to Instantly as given. Use string, number or boolean values.
Terminal window
curl -X POST https://api.pathbound.ai/v1/integrations/instantly/leads \
-H "Authorization: Bearer $PATHBOUND_API_KEY" \
-H "Idempotency-Key: 3f8c2d17-6a4b-4e59-9c0d-1b7e5a2f8d63" \
-H "Content-Type: application/json" \
-d '{
"campaign_id": "0198f4d1-3c2a-7b6e-8d15-9e7a4c2b1f03",
"email": "[email protected]",
"first_name": "Ada",
"company_name": "Analytical Engines",
"custom_variables": { "plan": "growth", "seats": 12 }
}'
{
"status": "success",
"action_id": "670bdd31a1b2c3d4e5f607a2",
"lead_id": "0199c7a2-5b1e-7d3f-9a44-2f6c8e1b7d90",
"campaign_id": "0198f4d1-3c2a-7b6e-8d15-9e7a4c2b1f03"
}

lead_id is Instantly’s id for the new lead.

A request with an Idempotency-Key that succeeded in the last 24 hours returns status, action_id, lead_id and replayed: true, and adds nothing.

After a 500, the lead may or may not have been added. Check the campaign in Instantly before you send the request again.

POST /v1/integrations/instantly/leads/interest

Required scope: actions:write · Switch: Update lead interest

Sets the interest status of a lead in Instantly. The lead is named by its email address.

This endpoint takes no Idempotency-Key: setting the same value twice changes nothing.

FieldTypeRequiredDescription
lead_emailstringyesThe lead’s email address. It is sent to Instantly in lowercase.
interest_valueinteger or nullyesInstantly’s code for the interest status. null puts the lead back to the neutral “Lead” status.
campaign_idstringnoLimits the change to one campaign.

interest_value is passed to Instantly unchanged, and Pathbound does not check it against a list. These are the codes Instantly uses:

interest_valueStatus
1Interested
2Meeting booked
3Meeting completed
4Closed
-1Out of office
-2Wrong person
-3Not interested
nullLead (neutral)
Terminal window
curl -X POST https://api.pathbound.ai/v1/integrations/instantly/leads/interest \
-H "Authorization: Bearer $PATHBOUND_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "lead_email": "[email protected]", "interest_value": 1 }'
{
"status": "success",
"action_id": "670bde04a1b2c3d4e5f607b0",
"lead_email": "[email protected]",
"interest_value": 1
}

Both endpoints answer with these.

StatuscodeMeaningWhat to do
400IDEMPOTENCY_KEY_REQUIREDAdd a lead: the Idempotency-Key header is missing.
400noneA field is missing or not valid. details names it.
403noneThe key lacks actions:write. required_scopes names it.
409ACTION_IN_PROGRESSAdd a lead: a request with this Idempotency-Key is still being processed.Ask again with the same key.
412integration_missingInstantly is not connected.Connect Instantly.
412invalid_credentialsThe stored Instantly API key no longer works.Connect Instantly again with a working key.
412tool_disabledA workspace admin has not switched this action on.Switch it on under MCP Tools → Instantly.
429RATE_LIMITEDInstantly’s rate limit was reached.Retry after retry_after_seconds.
500noneThe request failed. A request that Instantly refuses for any reason other than the key or its rate limit is also answered this way, without Instantly’s reason.Check campaign_id and the lead in Instantly.

When Instantly answers a request with 401 or 403, Pathbound treats the key as dead: that request and every later one is answered with 412 invalid_credentials until Instantly is connected again.

These endpoints write only. The emails a campaign exchanged with a person who is a Pathbound contact are read with Get Contact Conversations, in its instantly block.