Skip to main content

Base URL

The SendKit API is available at:
https://api.sendkit.dev

Authentication

All API requests require a Bearer token in the Authorization header. You can create API keys from the dashboard.
Authorization: Bearer sk_your_api_key
Keep your API key secret. Do not expose it in client-side code or public repositories.

Rate limiting

API requests are rate limited per team based on your plan. When you exceed the limit, the API returns a 429 status code with a Retry-After header indicating how many seconds to wait.

Send email — POST /emails

PlanRate limitMonthly quota
Free60 req/min3,000 emails
10K120 req/min10,000 emails
25K120 req/min25,000 emails
50K300 req/min50,000 emails
75K300 req/min75,000 emails
100K600 req/min100,000 emails
150K600 req/min150,000 emails
250K600 req/min250,000 emails
500K1,200 req/min500,000 emails
750K1,200 req/min750,000 emails
1M1,200 req/min1,000,000 emails
2M1,200 req/min2,000,000 emails
5M1,200 req/min5,000,000 emails

Validate email — POST /emails/validate

Fixed at 60 requests per minute for all plans.

Rate limit error response

{
  "name": "rate_limit_exceeded",
  "message": "Rate limit exceeded. Please retry after 30 seconds."
}

Errors

The API uses conventional HTTP status codes. All error responses include a name and message field.
StatusDescription
200Success
202Accepted — request received and will be processed asynchronously
401Missing or invalid API key
422Validation error (invalid parameters, unverified domain, etc.)
429Rate limit exceeded
{
  "name": "validation_error",
  "message": "The from address domain is not verified."
}

Common validation errors

Error messageCause
The from address domain is not verified.The domain in the from address is not verified in your account.
Monthly email quota exceeded.Your team has reached its monthly sending limit.
Sending is paused for this account.Sending has been paused for your account. Contact support.