Authentication
Include your project API key in every request:401 with { "error": "..." }.
Learn more in Public API.
Endpoints
GET /v1/activity/:id
Get the details of a specific send by its ID. Parameters:
Request:
- cURL
200 OK
Possible
current_status values:
With
?include=events — adds an events array with the full timeline, ordered by event_timestamp ascending:
event_type can be: sent, delivered, bounce, complaint, reject, open, click, rendering_failure, delivery_delay.
With ?include=html — adds the html_content field with the full rendered HTML of the email (it can be large, only request it when needed).
Errors:
Error responses have the form
{ "error": "message" }.
GET /v1/activity
Lists sends with filters to obtain historical datasets and analyze delivery patterns. Parameters (query):
Typical case with
automation_run_id: save the automation_run_id returned by POST /v1/automations/:id/enroll. Once the flow has sent N emails, retrieve them all by filtering on that ID.
Typical case with sender_domain: if you send on behalf of several customers from a single project, this filter isolates the sends of just one. It’s how you debug “what happened to this customer’s emails?” without splitting them into separate projects.
sender_domain matches the full domain, not a prefix: filtering by acme.com will not return sends from acme.com.mx. A value that isn’t a valid domain returns 400 INVALID_SENDER_DOMAIN.- cURL
automation_run_id:200 OK
data includes the same base fields as GET /v1/activity/:id (abbreviated here). Ordered by created_at DESC (most recent first).
Errors:
Error responses have the form
{ "error": "message" }.
Pull vs Webhook
- Pull (this endpoint): query whenever you need. Simple to integrate, but with latency — opens and clicks are processed in the background and may take a few seconds (~5s) to appear in
opened_first_at/clicked_first_atand in the event timeline. - Webhook: real-time push events. Better for reactive triggers.
GET /v1/domain-stats
Aggregated metrics by sender domain. If you send on behalf of several customers from a single project, this endpoint gives you each one’s summary:GET /v1/activity?sender_domain= lists sends one by one, this aggregates them.
Parameters (query):
Request:
Rate limits
- Max 200 results per page in
GET /v1/activity(per_pagegreater than 200 is clamped to 200). GET /v1/domain-statsaggregates over the requested period; very long ranges take longer.