Sending
Error Codes
HTTP status codes and error responses returned by the LDM API.
Error response format
All errors follow a consistent JSON structure:
{
"error": {
"code": "error_code",
"message": "Human-readable description.",
"details": {}
}
}HTTP status codes
| Code | Status | Description |
|---|---|---|
| 400 | Bad Request | Request body is malformed or missing required fields. |
| 401 | Unauthorized | Missing or invalid API key. |
| 402 | Payment Required | Free tier exhausted. Upgrade to continue. |
| 403 | Forbidden | Creative not approved or insufficient permissions. |
| 404 | Not Found | Resource does not exist. |
| 429 | Too Many Requests | Rate limit exceeded. Check Retry-After header. |
| 500 | Internal Server Error | Unexpected server error. Retry or contact support. |
Error examples
400 Bad Request
{
"error": {
"code": "validation_error",
"message": "Request body validation failed.",
"details": {
"fields": {
"to": "Must be a valid email address.",
"subject": "Required field is missing."
}
}
}
}401 Unauthorized
{
"error": {
"code": "invalid_api_key",
"message": "The API key provided is invalid or has been revoked."
}
}402 Payment Required
{
"error": {
"code": "free_tier_exhausted",
"message": "Your free tier of 500 deliveries has been used. Upgrade to a paid plan.",
"details": {
"deliveries_used": 500,
"deliveries_limit": 500
}
}
}403 Forbidden
{
"error": {
"code": "creative_not_approved",
"message": "The creative cr_9f2a... has not been approved. Messages cannot be sent with a pending or rejected creative.",
"details": {
"creative_id": "cr_9f2a...",
"moderation_status": "rejected"
}
}
}404 Not Found
{
"error": {
"code": "not_found",
"message": "Message msg_01HQX7kP... not found."
}
}429 Too Many Requests
{
"error": {
"code": "rate_limited",
"message": "Too many requests. Please wait 42 seconds before retrying.",
"details": {
"retry_after": 42
}
}
}500 Internal Server Error
{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred. Please try again later.",
"details": {
"request_id": "req_abc123..."
}
}
}