Skip to main content
Use Instantly through Corsair: one client, typed API calls, local DB sync, and incoming webhooks. Create an API v2 key in Instantly under Settings, Integrations, API keys, with the scopes you need. Things to know before you send:
  • Real email. campaigns.activate starts sending to the campaign’s leads and emails.reply sends a reply straight away. Neither is ever retried automatically; only read operations are.
  • Lifetime contact limit. Every lead uploaded counts toward the plan’s lifetime contact limit (1,000 on Growth), including re-uploads and the same person in a second campaign. leads.create and leads.addBulk default skip_if_in_workspace to true for that reason. Re-adding or moving a lead who already replied restarts their sequence at step 1.
  • Stopping a lead. A lead’s status is read-only. To stop follow-ups (for example after they answered on LinkedIn), call leads.updateInterestStatus, which completes the lead in its campaign.
  • Replies without webhooks. Webhooks need the Hypergrowth plan or higher. On a plan without them, poll emails.list with email_type: 'received' for replies; it allows 20 requests a minute.
  • Credits. emailVerification.verify spends Instantly email-verification credits and is never retried. leadLabels.testAiReplyLabel is limited to 500 calls per 30 days per workspace.
  • Secrets. apiKeys.create returns the new key once; apiKeys.list and apiKeys.delete redact it, as webhook results redact header values.
  • Not covered yet: Instantly’s AI agents (sales, inbox manager, lead finder, deliverability), SuperSearch enrichment, company lists, done-for-you account orders and the Google/Microsoft OAuth account connection.
  • Time zones. Campaign schedules take Instantly’s own time zone list plus 63 common IANA zones it lacks (America/New_York, Europe/London, UTC and more), each sent as the listed zone with the same offsets and DST rules: America/New_York goes out as America/Detroit. The plugin re-checks each pair against the runtime’s time zone data and refuses an alias that no longer matches. Zones with no exact match are rejected, including Pacific time (Instantly’s America/Dawson stays at UTC-7 all year) and Canadian zones, several of which moved to permanent time in 2026.
Webhook verification. Instantly does not sign deliveries, but each webhook can carry custom headers. Store a random secret with corsair.instantly.keys.set_webhook_signature(secret) (or pass webhookSecret); webhooks.create then sends it as the x-corsair-webhook-secret header and the plugin rejects any delivery without it. For a webhook made in the Instantly UI, add that header by hand. Deliveries route to a tenant by their workspace ID: store it with keys.set_tenant_external_id(workspaceId) (the ID workspace.get returns). What you get:
  • 165 typed API operations
  • 4 synced entities (accounts, campaigns, emails, leads) for fast .search() / .list()
  • 19 incoming webhook event types

Setup

1

Install

2

Add the plugin

corsair.ts
Multi-tenancy is the default — scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.
3

Choose authentication

4

Connect a tenant

Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see Connect / OAuth.

Example API calls

Read unread Unibox emails
Add leads to a campaign
See the full list on the API page.

Query synced data

Leads seen through leads.list and leads.get are kept locally.
Synced entities: accounts, campaigns, emails, leads. See Database for filters and operators.

Webhooks

Stop the lead’s other outreach the moment they reply.
Mount your framework handler once (see Frameworks), then point the provider at that URL. Full event list: Webhooks. Concepts: Webhooks, Hooks.

What’s next

API reference

Every instantly.api.* operation with input and output types.

Database

Synced entities, search filters, and operators.

Webhooks

Event paths, payloads, and webhookHooks examples.

Connect / OAuth

createLink, Hub delivery, and tenant connect flows.

Use with agents

Expose this plugin’s operations as MCP tools.