Skip to main content
Use eSputnik through Corsair: one client, typed API calls. API key. Create a key in eSputnik under your profile > Settings > API and give it the access rights the operations you call need. The plugin sends it with HTTP Basic auth as the password. Keys have no expiry date, but eSputnik disables a key that goes unused for 90 days; turn it back on in the same place. Things to know:
  • Rate limits. Message reads (getEmail, getViberMessage and the like) allow 500 requests an hour. Contact writes allow 200 a second, and addContact rejects the same contact twice within a minute (409). Calls that hit 429 are retried with backoff.
  • Acknowledgements. Deletes, updates and segment or unsubscribe changes return undefined: eSputnik answers them with an empty body or a sentence such as “Email with id=‘42’ has been deleted”. A failure throws, and the error message carries eSputnik’s explanation when it sends one (“Contact not found”).
  • Lists. List operations always return an array, including when eSputnik sends a single match as a bare object (email template search does) or an empty body.
  • Not set up yet. site.getScript and site.getWebPushScript fail until a domain is registered, productFeeds.getProductFeedsConfiguration answers 404 until a feed is configured, and contacts.getGroupContacts works on static segments only.
  • Contact fields. Additional fields are { id, value } pairs. List the ids with contacts.getAdditionalFields.
  • Activity. contacts.contactActivity has to be enabled by eSputnik support first and keeps 90 days. contacts.contactMessages needs a contact identifier and a dateFrom less than a year old.
  • Broadcasts. Broadcast ids are strings. broadcasts.createBroadcast sends a prepared message (messageId) to segment ids (groups).
  • Event tokens. account.generateApiToken returns a bearer token for eSputnik’s event endpoints. Treat the result as a secret.
  • No local sync. Data is read from eSputnik on each call; nothing is stored in the Corsair database.
What you get:
  • 108 typed API operations

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

Find a contact by email
Create or update a contact
See the full list on the API page.

What’s next

API reference

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

Connect / OAuth

createLink, Hub delivery, and tenant connect flows.

Use with agents

Expose this plugin’s operations as MCP tools.