Skip to main content

API Reference

Base URL

https://api.mailtactic.com/v1

All requests must be made over HTTPS. HTTP requests are rejected.

Authentication

Pass your API key as a Bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY

API keys are created in your dashboard under Settings → API Keys. Keys can be scoped to specific permissions (send, read logs, manage domains).

Endpoints overview

Messages

MethodEndpointDescription
POST/v1/messagesSend a message
GET/v1/messages/{id}Get message status
GET/v1/messagesList messages (paginated)

Templates

MethodEndpointDescription
POST/v1/templatesCreate a template
GET/v1/templates/{id}Get a template
PUT/v1/templates/{id}Update a template
DELETE/v1/templates/{id}Delete a template

Domains

MethodEndpointDescription
POST/v1/domainsAdd a sending domain
GET/v1/domains/{id}/verifyCheck DNS verification status
DELETE/v1/domains/{id}Remove a domain

Suppressions

MethodEndpointDescription
POST/v1/suppressionsAdd a suppressed address
DELETE/v1/suppressions/{email}Remove a suppression

Request format

All request bodies are JSON. Set Content-Type: application/json.

Response format

All responses are JSON. Successful responses include the resource object. Error responses follow this shape:

{
  "error": {
    "code": "invalid_recipient",
    "message": "The 'to' address is not a valid email address.",
    "request_id": "req_01abc..."
  }
}

HTTP status codes

CodeMeaning
200Success
201Created
400Bad request — check your payload
401Unauthorized — invalid or missing API key
403Forbidden — key lacks required permission
404Not found
422Unprocessable — domain not verified, suppressed recipient, etc.
429Rate limit exceeded — retry after the time in Retry-After header
500Internal server error

Rate limits

Rate limit headers are returned on every response:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 847
X-RateLimit-Reset: 1713960000

When you exceed the limit, a 429 response is returned with a Retry-After header indicating when you can retry.

What’s next

  • SDKs — use a typed wrapper instead of raw HTTP
  • Getting started — your first email in 5 minutes