Skip to main content

Error Codes

Standard error response format and codes.

Error Response Format

{
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Human-readable error message",
"requestId": "req_abc123"
}
}

HTTP Status Codes

StatusMeaning
200Success
201Created
400Bad Request
401Unauthorized
403Forbidden
404Not Found
409Conflict
422Validation Error
429Rate Limited
500Server Error

Error Codes

Authentication Errors

CodeDescription
UNAUTHORIZEDMissing or invalid authentication
FORBIDDENInsufficient permissions
TOKEN_EXPIREDJWT token has expired
INVALID_SCOPEMissing required scope

Resource Errors

CodeDescription
RESOURCE_NOT_FOUNDRequested resource does not exist
DUPLICATE_RESOURCEResource already exists
RESOURCE_CONFLICTConflicting state (e.g., campaign already active)

Validation Errors

CodeDescription
VALIDATION_ERRORRequest body failed validation
INVALID_FIELDUnknown field in request
MISSING_FIELDRequired field not provided
INVALID_FORMATField format incorrect

Segment Errors

CodeDescription
INVALID_SEGMENT_RULESegment rule syntax invalid
UNKNOWN_FIELDField not available for segmentation
INVALID_OPERATOROperator not supported for field type

Campaign Errors

CodeDescription
CAMPAIGN_ALREADY_ACTIVECannot modify active campaign
CAMPAIGN_NOT_SCHEDULEDCampaign must be scheduled first
SEGMENT_REQUIREDCampaign requires a target segment
INVALID_SCHEDULEScheduled time is in the past

Social Errors

CodeDescription
CONNECTION_EXPIREDSocial connection token expired
PUBLISHING_FAILEDFailed to publish to platform
RATE_LIMIT_EXCEEDEDPlatform rate limit hit
CONTENT_REJECTEDPlatform rejected content

Rate Limiting

When rate limited, response includes:

HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1734184800
Retry-After: 60
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests. Please retry after 60 seconds.",
"retryAfter": 60
}
}