canonical: https://jentic.com/apis/emaillabs.io/emaillabs

# EmailLabs API

Jentic publishes the only available OpenAPI specification for EmailLabs API, keeping it validated and agent-ready. EmailLabs is a transactional email delivery platform with 16 endpoints covering sending, templates, tracked emails, blacklist management, sending statistics, SMTP accounts, sending domains, and webhooks. Authentication is HTTP Basic against https://api.emaillabs.net.pl/api. The send and stats endpoints are the heart of the API; the blacklist and webhooks endpoints exist to keep deliverability and event reporting in good shape.

## For AI agents

Send transactional emails, manage templates, track events, maintain blacklists, and configure webhooks via EmailLabs. Authenticated with HTTP Basic.

## Scope

Does not handle SMS, push notifications, marketing-campaign builder UIs, or contact-list management - use for transactional email sending, events, blacklists, and webhooks only.

## Capabilities

- Send transactional emails via POST /new_sendmail with attachments and templates
- List and fetch named email templates for reuse across campaigns
- Pull a list of sent emails and per-message details for support investigations
- Manage the suppression blacklist by listing, adding, and removing addresses
- Read fine-grained delivery events (opens, clicks, bounces) from /events and aggregated stats from /stats
- Provision and list SMTP accounts and sending domains for multi-tenant setups
- Register and revoke webhooks to receive real-time delivery events

## Use cases

### Transactional Email Sending

Send password resets, receipts, and notification emails through EmailLabs by calling POST /new_sendmail with the recipient, subject, body, and optional template reference. The send endpoint returns a message_id used later with GET `/emails/{message_id}` to confirm delivery. Suitable for production traffic of millions of transactional messages per month per account.

Example prompt: POST a transactional email to user@example.com using template_id=welcome with name=Alex; on response, log the message_id

### Deliverability Monitoring and Blacklist Hygiene

Run a daily job that reads /events for bounces and complaints, adds the offending addresses to the blacklist via POST /blacklist, and removes addresses from the blacklist on customer request via DELETE `/blacklist/{email}.` Combined with /stats, this keeps sender reputation healthy and provides a clear audit trail.

Example prompt: Read bounce events from GET /events, then POST each bouncing address to /blacklist with reason='hard bounce'

### Webhook-Driven Event Processing

Register a webhook via POST /webhooks to receive delivery, open, click, and bounce events in real time. The webhook list can be inspected with GET /webhooks and a noisy or deprecated webhook can be removed with DELETE `/webhooks/{webhook_id}.` This lets a downstream system (CRM, analytics, support tool) react to email events without polling.

Example prompt: POST a new webhook pointed at https://my.app/webhooks/emaillabs subscribing to delivery, open, and bounce events

### AI Agent Integration via Jentic

Build an AI customer-support agent that drafts a personalised reply, sends it via EmailLabs using a templated layout, and looks up the resulting message_id to confirm delivery. Through Jentic, the agent searches by intent, loads the send schema, and executes without holding the HTTP Basic credentials in its prompt.

Example prompt: Search Jentic for 'send a transactional email', load the schema for POST /new_sendmail, and send a templated reply to the customer's email

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/new_sendmail` | Send an email |
| GET | `/sendmail_templates` | List email templates |
| GET | `/emails` | List sent emails |
| GET | `/events` | List email events |
| GET | `/stats` | Get sending statistics |
| POST | `/blacklist` | Add an address to the blacklist |
| POST | `/webhooks` | Create a webhook |

## Key resources

- **Sending** — Send transactional emails via /new_sendmail
- **Templates** — List and fetch named email templates
- **Emails** — List sent emails and inspect per-message details
- **Blacklist** — List, add, and remove addresses on the suppression blacklist
- **Events** — Read open, click, bounce, and other delivery events
- **Statistics** — Pull aggregated sending stats for reporting
- **Account** — Read account information
- **SMTP Accounts** — List SMTP accounts on the workspace
- **Domains** — List configured sending domains
- **Webhooks** — List, create, and delete webhooks for real-time events

## Why Jentic

- **Setup:** Wiring EmailLabs by hand means handling its HTTP Basic auth, encoding credentials on every call, and pointing at its Polish api.emaillabs.net.pl host yourself. Through Jentic you install once, import the EmailLabs API from the API Directory, store the Basic credential once, and your agent calls it.
- **Permission scoping:** EmailLabs operations carry their target in the request body or query rather than a resource id in the URL path, so scope the agent by operation: limit it to the calls it needs, such as POST /new_sendmail and GET /events. You choose the operations it may call, so blacklist or webhook writes are not included unless you add them.
- **Credential handling:** Your EmailLabs Basic credential 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 'add an address to the blacklist', and Jentic returns the matching EmailLabs operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **SendGrid Mail Send API** — SendGrid is the global incumbent for transactional email at higher volumes
- **Postmark Account API** — Postmark focuses on high-deliverability transactional sending similar to EmailLabs
- **Mailjet API** — Mailjet is another EU-based transactional and marketing email provider

## FAQ

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

EmailLabs publishes its API documentation as a marketing-and-docs site at emaillabs.io rather than as a versioned OpenAPI specification. Jentic generates and maintains this spec so AI agents and developers can call EmailLabs 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 EmailLabs API use?

EmailLabs uses HTTP Basic authentication. Through Jentic, the username and password pair is stored encrypted in the vault and added to outgoing requests at execution time so the agent never sees the raw credentials.

### Can I send a transactional email with EmailLabs?

Yes. POST /new_sendmail accepts the recipient, subject, body, optional template reference, and attachments, and returns a message_id you can later use with GET `/emails/{message_id}` to confirm delivery.

### How do I receive delivery events in real time?

Register a webhook via POST /webhooks pointing at your callback URL. Webhooks deliver open, click, bounce, and other events as they happen; the GET /webhooks endpoint lists currently registered callbacks and DELETE `/webhooks/{webhook_id}` removes them.

### How do I send a templated email through Jentic?

Run the Jentic search query 'send a transactional email', load the input schema for POST /new_sendmail, then execute with the recipient, template ID, and merge fields. Jentic injects the HTTP Basic credentials at execution time.

### Where is the EmailLabs API hosted?

The API base URL is https://api.emaillabs.net.pl/api - a Polish-domain endpoint that reflects EmailLabs' EU operating base. This is relevant for teams that need an EU-hosted transactional email provider for GDPR or data-residency reasons.

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

Yes. Because you run Jentic One yourself, your own rules decide which EmailLabs operations the agent may call and which credential it may use. Since EmailLabs carries its target in the request body or query rather than in the URL path, you scope the agent by operation, for example allowing only POST /new_sendmail to send and GET /events to read delivery events. Blacklist writes to POST /blacklist and webhook changes via POST /webhooks or DELETE `/webhooks/{webhook_id}` stay out of reach unless you explicitly add them.
