{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"scheduledAt": "2023-11-07T05:31:56Z",
"warnings": [
"<string>"
],
"suppressedRecipients": [
{
"email": "[email protected]",
"reason": "<string>"
}
]
}
}{
"error": {
"code": "invalid_request",
"message": "Request validation failed",
"details": {
"validation": {
"subject": [
"Subject is required"
]
}
},
"suggestion": "Check the request body against the API documentation"
}
}{
"error": {
"code": "invalid_api_key",
"message": "Invalid API key provided",
"suggestion": "Include a valid API key in the Authorization header: Bearer grl_live_..."
}
}{
"error": {
"code": "insufficient_permissions",
"message": "Insufficient permissions. Required scope: email:send"
}
}{
"error": {
"code": "domain_not_verified",
"message": "The sending domain has not been verified",
"suggestion": "Verify your domain DNS records at /v1/domains/{id}/verify"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Try again in 60 seconds."
}
}{
"error": {
"code": "internal_error",
"message": "An internal error occurred",
"suggestion": "Please try again later or contact support if the issue persists"
}
}Send a single email
Queue a single email for delivery. Returns immediately with a queued or scheduled status.
Requires email:send scope.
Supports idempotency via the X-Idempotency-Key header — duplicate requests within 24h
return the original response.
Either html or text body is required. Total recipients (to + cc + bcc) cannot exceed 50.
{
"data": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"scheduledAt": "2023-11-07T05:31:56Z",
"warnings": [
"<string>"
],
"suppressedRecipients": [
{
"email": "[email protected]",
"reason": "<string>"
}
]
}
}{
"error": {
"code": "invalid_request",
"message": "Request validation failed",
"details": {
"validation": {
"subject": [
"Subject is required"
]
}
},
"suggestion": "Check the request body against the API documentation"
}
}{
"error": {
"code": "invalid_api_key",
"message": "Invalid API key provided",
"suggestion": "Include a valid API key in the Authorization header: Bearer grl_live_..."
}
}{
"error": {
"code": "insufficient_permissions",
"message": "Insufficient permissions. Required scope: email:send"
}
}{
"error": {
"code": "domain_not_verified",
"message": "The sending domain has not been verified",
"suggestion": "Verify your domain DNS records at /v1/domains/{id}/verify"
}
}{
"error": {
"code": "rate_limit_exceeded",
"message": "Rate limit exceeded. Try again in 60 seconds."
}
}{
"error": {
"code": "internal_error",
"message": "An internal error occurred",
"suggestion": "Please try again later or contact support if the issue persists"
}
}Authorizations
API key authentication. Pass your Gorillaa Mail API key as a Bearer token.
Example: Authorization: Bearer grl_live_xxxxxxxxxxxx
Keys prefixed grl_test_ operate in test mode with reduced limits.
Headers
Unique idempotency key (max 255 chars). Duplicate requests within 24h return the original response.
255Body
An email address — either a plain string or an object with name
Primary recipients (1–50)
1 - 50 elementsAn email address — either a plain string or an object with name
1 - 99850An email address — either a plain string or an object with name
50An email address — either a plain string or an object with name
An email address — either a plain string or an object with name
HTML body (max 5MB). Either html or text is required.
5242880Plain text body (max 1MB). Either html or text is required.
1048576Custom email headers
Show child attributes
Show child attributes
Tags for categorization (max 10)
10100Schedule delivery for a future time (must be ≥1 minute in the future)
Client-generated idempotency key
255File attachments (max 10)
10Show child attributes
Show child attributes
Arbitrary metadata stored with the email
Response
Email accepted for delivery
Show child attributes
Show child attributes