Skip to main content

Error Handling

The API uses standard HTTP status codes and returns detailed error information in JSON format.

Error Response Format

{
"error": {
"code": "VALIDATION_ERROR",
"message": "The request body is invalid",
"details": [
{
"field": "email",
"message": "Must be a valid email address"
}
]
}
}

HTTP Status Codes

StatusDescription
200Success
201Resource created
400Bad request - Invalid parameters
401Unauthorized - Invalid or missing authentication
403Forbidden - Insufficient permissions
404Not found - Resource doesn't exist
409Conflict - Resource state conflict
422Unprocessable - Validation failed
429Too many requests - Rate limit exceeded
500Server error

Common Error Codes

CodeDescription
VALIDATION_ERRORRequest validation failed
AUTHENTICATION_ERRORInvalid credentials
AUTHORIZATION_ERRORInsufficient permissions
NOT_FOUNDResource not found
RATE_LIMIT_EXCEEDEDToo many requests
DOCUMENT_ALREADY_SIGNEDDocument cannot be modified

Handling Errors

try {
const response = await fetch('https://api.propper.ai/v1/documents', {
method: 'POST',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify(documentData),
});

if (!response.ok) {
const error = await response.json();
console.error(`Error: ${error.error.code} - ${error.error.message}`);
}
} catch (err) {
console.error('Network error:', err);
}