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

# Dynosend API

Jentic publishes the only available OpenAPI specification for the Dynosend API, keeping it validated and agent-ready. Dynosend is an email marketing and transactional messaging platform that exposes endpoints for managing audiences and contacts, controlling campaign lifecycle, sending transactional messages, recording customer events, and maintaining a deliverability blacklist. The API is built around the audience-and-contact model used by marketing teams running drip campaigns and event-triggered transactional sends from one provider.

## For AI agents

Send transactional emails, manage contacts and audiences, control campaign lifecycle (start, pause, resume), record customer events, and check or update the deliverability blacklist.

## Scope

Does not provide template authoring, SMS or voice sending, or detailed deliverability analytics dashboards - use for contact management, campaign control, and email transactional sends only.

## Capabilities

- Send a transactional message to an individual recipient with template content
- Add, update, subscribe, unsubscribe, or delete contacts within an audience
- Tag contacts to drive segmented campaigns and dedupe with the duplicate-finder endpoint
- Start, pause, and resume campaigns to control marketing send windows
- Record customer events that trigger event-based automations and journeys
- Check whether an email address is on the deliverability blacklist before sending
- Add an email address to the blacklist to suppress future sends

## Use cases

### Transactional Welcome and Receipt Emails

When a user signs up or completes a purchase, the application calls /transactional with the template ID, recipient details, and merge data so Dynosend renders and sends the email. This separates transactional sends from marketing campaigns and keeps deliverability isolated per stream.

Example prompt: POST /transactional with template_id, recipient email, and merge variables to send a welcome email to a newly registered user

### Event-Triggered Marketing Automation

An e-commerce app posts customer events ('cart_abandoned', 'order_completed') to /events, and Dynosend automations route those into the appropriate sequence (recovery, upsell). This pattern replaces ad-hoc trigger code in the application with a single event sink that the marketing team controls.

Example prompt: POST /events with event_name 'cart_abandoned', the contact email, and product details so the abandoned-cart automation picks it up

### Audience Hygiene with Tagging and Blacklisting

An audience-management workflow finds duplicates via `/contacts/duplicate`, tags engaged contacts with PATCH `/contacts/addtag`, and pushes hard-bounced addresses onto the blacklist via `/blacklist/add.` Combined, these endpoints keep the active audience clean without manual list edits.

Example prompt: GET `/contacts/duplicate` to find duplicates, then POST `/blacklist/add` for each hard-bounced address before the next campaign send

### Agent-Driven Campaign Control via Jentic

When a deliverability issue spikes, an AI ops agent calls Dynosend through Jentic to pause active campaigns, then resumes them once health metrics recover. The agent searches Jentic for 'pause a Dynosend campaign', loads the operation, and executes it - the bearer token never enters the agent context.

Example prompt: Use Jentic to search 'pause a Dynosend campaign', load the operation for POST `/campaigns/pause`, and execute it for the affected campaign ID

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/transactional` | Send a transactional message |
| POST | `/contacts` | Add a new contact to an audience |
| PATCH | `/contacts/update` | Update contact data |
| POST | `/events` | Send a customer event for automation triggers |
| POST | `/campaigns/start` | Start sending a campaign |
| POST | `/campaigns/pause` | Pause an active campaign |
| POST | `/blacklist` | Check whether an email is blacklisted |
| POST | `/blacklist/add` | Add an email to the blacklist |

## Key resources

- **Audiences** — List all audiences in the account
- **Contacts** — List, add, delete, deduplicate, update, tag, subscribe, and unsubscribe contacts within an audience
- **Events** — Send customer events that trigger automations and journeys
- **Campaigns** — List campaigns and start, pause, or resume them
- **Transactional** — Send a transactional message to an individual recipient
- **Blacklist** — Check whether an email is blacklisted and add emails to the blacklist

## Why Jentic

- **Setup:** Wiring Dynosend by hand means setting up its bearer auth against the `/api/v2` host and coding the separate contact, event, campaign, and transactional calls yourself. Through Jentic you install once, import Dynosend from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Dynosend addresses contacts and campaigns through the request body rather than the URL path, so scope your agent to the operations it needs, such as sending a transactional email or creating a contact. Campaign control like starting or pausing, and blacklist changes, stay out of the allowed set unless you add them.
- **Credential handling:** Your Dynosend token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'send a transactional email' or 'pause a campaign', and Jentic returns the matching Dynosend operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **E-goi Marketing API** — Multi-channel marketing automation (email, SMS, push, voice) with broader scope than Dynosend's email-first surface
- **DynTube API** — Embed DynTube-hosted videos in Dynosend transactional or campaign emails
- **DynaPictures API** — Generate personalised banner images for use inside Dynosend transactional or campaign emails

## FAQ

### Why is there no official OpenAPI spec for the Dynosend API?

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

The API uses bearer token authentication - pass your Dynosend API key in the 'Authorization: Bearer <token>' header. Through Jentic, the token is held in the vault and replaced with a scoped execution token at call time.

### Can I send transactional emails with the Dynosend API?

Yes. POST /transactional accepts a template ID, recipient details, and merge variables and sends the email through Dynosend's transactional stream, separate from campaign sends. This isolates transactional deliverability from marketing volume.

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

The OpenAPI spec does not declare a numeric rate limit. Dynosend applies plan-based send and event quotas - high-volume callers should batch contact updates via /contacts and rely on /events for trigger fan-out rather than issuing many transactional calls.

### How do I trigger a marketing automation through Jentic?

Run pip install jentic, search for 'send a customer event to Dynosend', load the operation for POST /events, then execute it with the event name, contact email, and event payload. Dynosend's automations subscribed to that event will fire automatically.

### Can I check if an email is blacklisted before sending?

Yes. POST /blacklist returns whether an address is on the suppression list, and POST `/blacklist/add` adds a new address to the list. Use this before importing a new audience to avoid sending to known bounces.

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

Yes. Because you run Jentic One yourself, your own rules decide which Dynosend operations and credentials the agent can use, so you can allow only what a task needs, such as sending a transactional email via POST /transactional or creating a contact via POST /contacts. Dynosend addresses contacts and campaigns through the request body rather than the URL path, so you scope by operation rather than by resource ID. Campaign control such as POST `/campaigns/start` and POST `/campaigns/pause`, and blacklist changes via POST `/blacklist/add`, stay outside the allowed set unless you add them.
