Error Codes
HTTP status codes, error response formats, and troubleshooting guidance.
Error Response Format
Error responses use RFC 9457 Problem Details withContent-Type: application/problem+jsonand a stable machine-readablecodefield.
Every API response includes anX-Request-Idheader. You can send your own UUIDv4 request ID for trace stitching; otherwise Project Feed generates one and includes it in error responses asrequestId.
{
"type": "https://projectfeed.app/docs/api/errors#validation_error.title_too_long",
"title": "Bad Request",
"status": 400,
"detail": "Post title must be 200 characters or less",
"code": "validation_error.title_too_long",
"instance": "urn:projectfeed:request:550e8400-e29b-41d4-a716-446655440000",
"requestId": "550e8400-e29b-41d4-a716-446655440000"
}HTTP Status Codes
Invalid request body or missing required parameters
{ "type": "https://projectfeed.app/docs/api/errors#validation_error.title_too_long", "title": "Bad Request", "status": 400, "detail": "Post title must be 200 characters or less", "code": "validation_error.title_too_long", "requestId": "550e8400-e29b-41d4-a716-446655440000" }Missing, invalid, expired, or revoked API key
{ "type": "https://projectfeed.app/docs/api/errors#authentication_required", "title": "Unauthorized", "status": 401, "detail": "Authentication required.", "code": "authentication_required", "requestId": "550e8400-e29b-41d4-a716-446655440000" }Not a member of the workspace or insufficient permissions
{ "type": "https://projectfeed.app/docs/api/errors#permission_denied", "title": "Forbidden", "status": 403, "detail": "API key lacks required permission.", "code": "permission_denied", "requestId": "550e8400-e29b-41d4-a716-446655440000" }Resource not found or doesn't belong to your workspace
{ "type": "https://projectfeed.app/docs/api/errors#not_found", "title": "Not Found", "status": 404, "detail": "Post not found", "code": "not_found", "requestId": "550e8400-e29b-41d4-a716-446655440000" }Rate limit exceeded, wait and retry
{ "type": "https://projectfeed.app/docs/api/errors#rate_limit_exceeded", "title": "Too Many Requests", "status": 429, "detail": "Rate limit exceeded. Try again later.", "code": "rate_limit_exceeded", "requestId": "550e8400-e29b-41d4-a716-446655440000" }Server error, contact support if persistent
{ "type": "https://projectfeed.app/docs/api/errors#internal_error", "title": "Internal Server Error", "status": 500, "detail": "Internal Server Error", "code": "internal_error", "requestId": "550e8400-e29b-41d4-a716-446655440000" }Success Responses
Successful GET, PATCH, or DELETE request
Successful POST request that created a new resource
Successful request with no response body (e.g., mark all read)
Troubleshooting
For 500 errors, include theX-Request-Idvalue when contacting support, and check the status page for ongoing incidents before contacting support.