canonical: https://jentic.com/apis/esputnik.com/esputnik

# eSputnik API

Jentic publishes the only available OpenAPI specification for eSputnik API, keeping it validated and agent-ready. eSputnik is an omnichannel marketing automation platform that delivers email, SMS, web push, mobile push, Viber, and Telegram messages. The API exposes contacts, segmentation groups, address books, behavioural events, orders, and workflows so that marketers can keep the platform's audience and triggers in lockstep with their site, app, and commerce backend. Bulk contact upload and event-driven workflow triggers cover most lifecycle messaging needs.

## For AI agents

Sync contacts, fire behavioural events, push orders, and trigger workflows in eSputnik to drive omnichannel email, SMS, push, Viber, and Telegram messaging.

## Scope

Does not handle template authoring, deliverability metrics, or DNS/domain authentication - use for contact, event, order, and workflow-trigger operations only.

## Capabilities

- Add or update individual contacts and their channel preferences in eSputnik
- Bulk upload contacts from an external file and poll the import status
- Fire behavioural events (cart abandonment, order placed, view) to trigger workflows
- Push order data to power post-purchase and replenishment messaging
- List segmentation groups and pull the contact membership of a given segment
- Subscribe a contact to a specific channel or address book before sending
- List active workflows so an agent can trigger the right one

## Use cases

### Cart abandonment recovery via behavioural events

When a shopper leaves items in a cart, the storefront fires a 'cart_abandoned' event to `/v1/event` with the contact identifier and the cart payload. eSputnik's matching workflow picks up the event and sends a sequenced email and SMS reminder using the contact's saved channel preferences. Marketers update copy in eSputnik without touching the storefront integration.

Example prompt: POST to `/v1/event` with eventTypeKey 'cart_abandoned', the contact's externalCustomerId, and the cart line items so the corresponding eSputnik workflow runs.

### Post-purchase lifecycle messaging from order data

Each completed order in the commerce backend is pushed to `/v1/orders`, giving eSputnik the products, totals, and shipping fields. Workflows then trigger thank-you emails, replenishment reminders, and review requests at the right cadence. Returns and cancellations can be flagged with DELETE `/v1/orders` to suppress those flows.

Example prompt: POST a new order payload to `/v1/orders` for each completed checkout so the post-purchase workflow fires for that customer.

### Audience sync from a CRM into eSputnik segments

Operations teams keep eSputnik audiences in sync with their CRM by uploading nightly contact files via `/v1/contacts/upload`, polling `/v1/importstatus/{sessionId}` until the import finishes, and then verifying segment membership via `/v1/group/{id}/contacts.` The same flow handles unsubscribes, since contacts removed from the source file age out of segments as scheduled.

Example prompt: Upload today's contact CSV to `/v1/contacts/upload`, poll `/v1/importstatus/{sessionId}` every 30 seconds until status is finished, then GET `/v1/group/{vipId}/contacts` to verify the VIP segment count.

### AI agent triggering targeted messaging on behalf of a marketer

A marketing agent in a chat tool takes a natural-language brief such as 'message everyone in the VIP segment about the holiday sale', looks up the segment via the groups endpoint, then either bulk-updates a tag through `/v1/contacts` or fires a workflow via an event. Through Jentic, the eSputnik basic auth credentials remain in the vault and the agent operates on a scoped execution token.

Example prompt: List groups via GET `/v1/groups`, locate 'VIP', then POST a 'holiday_sale' event to `/v1/event` for each contact returned by GET `/v1/group/{id}/contacts.`

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v1/contact` | Add or update a contact |
| POST | `/v1/contacts` | Bulk add or update contacts |
| POST | `/v1/contacts/upload` | Upload contacts from an external file |
| GET | `/v1/importstatus/{sessionId}` | Get the status of a contact import session |
| POST | `/v1/event` | Fire a behavioural event to trigger a workflow |
| POST | `/v1/orders` | Push order data into eSputnik |
| GET | `/v1/group/{id}/contacts` | List contacts in a segment |
| GET | `/v1/workflows` | List available workflows |

## Key resources

- **Contacts** — Add, update, search, and delete individual or bulk contacts
- **Events** — Generate behavioural events that trigger workflows
- **Orders** — Push and remove order records that drive lifecycle messaging
- **Groups** — List segments and retrieve their contact membership
- **Workflows** — Discover active automation workflows
- **Address Books** — List address books and catalogs for newsletter and channel routing

## Why Jentic

- **Setup:** Wiring eSputnik by hand means setting up HTTP basic auth, polling import status by session id, and shaping contact, event, and order payloads yourself. Through Jentic you install once, import eSputnik from the API Directory, store the basic auth credentials once, and your agent calls it.
- **Permission scoping:** eSputnik carries the contact, event, and order targets in the request body, so scope the agent to the operations it needs, such as adding a contact or firing an event. You choose which operations are allowed, so a bulk upload or order write is not included unless you add it.
- **Credential handling:** Your eSputnik basic auth username and password are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'fire a cart abandonment event' or 'bulk import contacts', and Jentic returns the matching eSputnik operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Klaviyo API** — Klaviyo is a US-headquartered ecommerce-focused marketing automation platform with similar event-driven flows.
- **Brevo (Sendinblue) API** — Brevo offers omnichannel email, SMS, and chat with a similar contacts and events model.
- **Etrigue API** — Etrigue provides B2B demand-generation lead and campaign tracking that complements consumer messaging in eSputnik.

## FAQ

### Why is there no official OpenAPI spec for eSputnik API?

eSputnik does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call eSputnik API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the eSputnik API use?

The eSputnik API uses HTTP basic authentication with the account username and an API password issued in the eSputnik dashboard. Through Jentic, that credential pair is encrypted in the vault and the agent only ever holds a scoped execution token.

### Can I trigger a workflow with the eSputnik API?

Workflows are triggered indirectly by firing a matching behavioural event to POST `/v1/event` with the contact's externalCustomerId and the workflow's event key. The active workflow definitions can be listed with GET `/v1/workflows` so you can confirm which event keys are wired up.

### What are the rate limits for the eSputnik API?

eSputnik does not document a fixed rate-limit number in this spec. Treat bulk endpoints (`/v1/contacts`, `/v1/contacts/upload`, `/v1/orders`) as the right path for large jobs and back off on any 429 response rather than retrying single-record endpoints in tight loops.

### How do I bulk-import contacts to eSputnik through Jentic?

Search Jentic for 'bulk import contacts to eSputnik'. Jentic returns POST `/v1/contacts/upload` with the file payload schema. Execute it, then call GET `/v1/importstatus/{sessionId}` on a short loop until the import finishes and verify the resulting count via GET `/v1/contacts.`

### Does the eSputnik API support push and Viber channels?

Channel routing is handled inside eSputnik based on each contact's saved preferences and the workflow design. The API exposes the inputs (contacts with channel fields, events, orders) that drive those workflows; the actual push, Viber, and Telegram delivery happens in the platform.

### Can I limit what my agent is allowed to do with the eSputnik API?

Yes. Because you run Jentic One yourself, your own rules decide which eSputnik operations and credentials the agent may use, so you can allow only what a task needs, such as adding a contact via POST `/v1/contact` or firing a behavioural event via POST `/v1/event.` Higher-impact calls like a bulk upload to POST `/v1/contacts/upload` or an order write to POST `/v1/orders` stay out of reach unless you explicitly add them. Since eSputnik carries the contact, event, and order targets in the request body, scoping the allowed operations is how you control what the agent can touch.
