Scopes
Endpoints
List Emails
Query parameters:page, per_page (max 100), contact_id, to_email, sent_by (a team member’s user ID), status, since and until (ISO 8601, on the sent time).
status is one of queued (being sent), sent, delivered, opened, replied, bounced, complained or failed (the email provider refused it). Emails scheduled from the composer can also be scheduled (waiting for scheduled_at), cancelled (cancelled before they went) or not_sent (stopped at send time; failure_reason says why). While an email waits, sent_at is the time it is due to go.
If the person’s record access is limited to their own or their team’s contacts, pass contact_id: they can list the emails sent to a contact they can see, one contact at a time.
GET /v1/contact-emails/{id} returns the same fields plus body_html and body_markdown.
Send an Email
POST /v1/contact-emails
Answers
201 with { "data": { "id", "contact_id", "to_email", "status": "sent", "replayed": false } }, or 200 with "replayed": true for a repeated idempotency_key.
Sending is refused when:
- the contact isn’t one the person’s record access shows (
404), or it is in Recently deleted; - the contact unsubscribed, bounced, reported spam or is blocked, or is marked unsubscribed (
409 suppressed); - the person’s access to companies or deals is limited and the email uses company or deal merge fields (
403): send it from the contact page instead; - the workspace has no verified sending domain, or the sender’s address can’t be used (
409, with the reason aserror); - the workspace’s subscription has ended or sending isn’t on its plan (
403); - a sending cap is reached (
429, withRetry-After). The caps are shared with the contact page: 20 emails a minute and 100 an hour per person, and 300 an hour per workspace.
MCP tools
The same operations as MCP tools
Rate Limits
API rate limit details