canonical: https://jentic.com/apis/engage.so/engage-so

# Engage.so API

Jentic publishes the only available OpenAPI specification for Engage.so API, keeping it validated and agent-ready. Engage.so is a customer messaging and lifecycle platform; the API exposes user creation, attribute updates, event tracking, list and segment management, and a batch endpoint for combining many operations in one request. Product and growth teams use it to feed user behaviour into Engage.so so the platform can run multi-channel campaigns based on real activity. The 11-endpoint surface keeps integration simple while covering the full lifecycle data model.

## For AI agents

Create users, track events, update attributes, and manage lists in Engage.so for lifecycle messaging campaigns.

## Scope

Does not handle email template design, in-product surveys, or push-notification device registration - use for managing users, events, lists, and batch operations in Engage.so only.

## Capabilities

- Create or update a user record so campaigns have someone to target
- Track a user event such as 'order placed' or 'feature used'
- Update user attributes used by campaign segmentation rules
- Manage lists and add or remove subscribers from them
- Send many requests at once via the batch endpoint to reduce round trips

## Use cases

### Product Event Tracking

When a user takes a meaningful action - sign-up, plan upgrade, churn - the agent calls POST `/users/{id}/events` to record it in Engage.so. Engage.so's segmentation engine then uses those events to trigger lifecycle messages without the product team having to maintain campaign logic in their own backend.

Example prompt: On 'subscription_started' in the product, POST the event to Engage.so for the relevant user with plan and amount attributes

### User Sync from Product Database

Use POST /users to create or update user records and PUT `/users/{id}` to keep their attributes current. Combined with /batch, this enables periodic syncs from a product database into Engage.so so audience segments stay accurate.

Example prompt: Sync a list of 50 newly signed-up users into Engage.so via POST /batch with one create-user operation per user

### List Management for Campaigns

Create campaign lists with POST /lists, then add or remove subscribers with POST and DELETE `/lists/{list_id}/subscribers.` This lets a marketing automation agent maintain audience lists in response to real product events without manual list management.

Example prompt: Create a list called 'beta-users' and add user_ids 100 through 110 as subscribers

### Agent-Driven Lifecycle Messaging

An AI agent monitoring product events searches Jentic for 'track a user event' or 'add user to list', loads the Engage.so operation, and executes against the matching endpoint. This wires Engage.so into a single agent that handles the whole 'detect > track > segment' loop.

Example prompt: When a user upgrades, update their plan attribute and add them to the 'paid' list in two operations via POST /batch

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/users` | Create a user |
| GET | `/users/{id}` | Get a user |
| PUT | `/users/{id}` | Update user attributes |
| DELETE | `/users/{id}` | Delete a user |
| POST | `/users/{id}/events` | Track a user event |
| GET | `/lists` | Get all lists |
| POST | `/lists/{list_id}/subscribers` | Add subscribers to a list |
| POST | `/batch` | Batch many operations in one request |

## Key resources

- **Users** — User records targeted by campaigns
- **Events** — Behavioural events tied to users
- **Lists** — Audience lists for messaging
- **Subscribers** — Membership of users in lists
- **Batch** — Bundle multiple operations into one request

## Why Jentic

- **Setup:** Wiring the Engage.so API by hand means setting up its basic auth, formatting user, event, list, and batch calls, and handling your own errors against https://api.engage.so/v1. Through Jentic you install once, import the Engage.so API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** The Engage.so API puts the user id in the URL path (`/users/{id}`), so a rule can pin your agent to one user: it can read and update that user and track events for it and nothing else. You choose the operations it may call, so ones like deleting a user or running a batch are not included unless you add them.
- **Credential handling:** Your Engage.so credentials 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 'update a user profile' or 'track a user event', and Jentic returns the matching Engage.so operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **EngageBay CRM REST API** — EngageBay is a full CRM with sales and support modules; Engage.so is focused specifically on lifecycle messaging.
- **Endear API** — Endear holds retail customer profiles that Engage.so can target with lifecycle messages.
- **EndorseFlow API** — EndorseFlow handles testimonial requests; Engage.so handles broader lifecycle communications.

## FAQ

### Why is there no official OpenAPI spec for Engage.so API?

Engage.so does not publish an OpenAPI specification through public channels. Jentic generates and maintains this spec so that AI agents and developers can call Engage.so 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 Engage.so API use?

Engage.so uses HTTP Basic authentication via the `basicAuth` security scheme. Through Jentic, the credentials are stored encrypted in the vault and applied at execution time so they never appear in the agent's context.

### Can I track product events in Engage.so via the API?

Yes. POST `/users/{id}/events` records a behavioural event against a user. Engage.so then uses those events to power segmentation rules and lifecycle campaigns.

### How does the batch endpoint work?

POST /batch accepts an array of sub-requests so an agent can create users, track events, and add subscribers in a single round trip. This is the recommended path for high-volume syncs.

### What are the rate limits for the Engage.so API?

The OpenAPI spec does not declare rate limits. Engage.so applies workspace-scoped throttles in production; back off on HTTP 429 responses and consult their developer docs for the exact ceiling on your plan.

### How do I track a user event through Jentic?

Run `pip install jentic`, search 'track a user event in engage.so', and Jentic returns POST `/users/{id}/events` with its input schema. The agent supplies the user id, event name, and properties, then executes against base URL https://api.engage.so/v1.

### Can I limit what my agent is allowed to do with the Engage.so API?

Yes. Because you run Jentic One yourself, your own rules decide which Engage.so operations and credentials the agent may use. Since the API carries the user id in the URL path (`/users/{id}`), a rule can pin the agent to a single user so it only reads and updates that user and tracks events for it. You also choose which operations are exposed, so higher-impact calls like deleting a user (DELETE `/users/{id}`) or running POST /batch stay off unless you add them.
