API v1.0

SendPigeon Documentation

Everything you need to send transactional emails. SDKs for Node.js, Python, Go, PHP and REST API.

Error Codes

HTTP status codes and error responses.

StatusMeaningResolution
400Bad RequestCheck request body format and required fields.
401UnauthorizedVerify API key is valid and properly formatted.
402Quota ExceededUpgrade your plan or wait for quota reset.
403Domain Not VerifiedAdd DNS records for your sending domain.
404Not FoundCheck the resource ID exists.
429Rate LimitedSlow down requests. Max 100/minute.
500Server ErrorRetry with exponential backoff.

Error Response

{
"message": "Domain not verified. Add DNS records first.",
"code": "DOMAIN_NOT_VERIFIED"
}
CodeMeaning
QUOTA_EXCEEDEDMonthly email limit reached
DOMAIN_NOT_VERIFIEDDomain needs DNS verification
SENDING_DISABLEDAccount disabled (high bounce/complaint rate)
TEMPLATE_NOT_FOUNDTemplate ID doesn't exist
MISSING_VARIABLESRequired template variables not provided
ATTACHMENT_TOO_LARGEAttachment exceeds 7MB or total exceeds 25MB
ATTACHMENT_FETCH_FAILEDCould not fetch attachment from URL
NOT_FOUNDResource not found

Rate Limits

100 requests/minute per API key. Headers included in every response:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1640995200