Skip to main content

Error Handling

PostBoost uses standard HTTP status codes and returns consistent JSON error bodies.

Error format

All errors return a JSON object with at minimum a message field:

{
"message": "Validation errors.",
"errors": {
"versions": ["The versions field is required."],
"accounts.0": ["The selected account is invalid."]
}
}

Status codes

CodeMeaningCommon cause
400 Bad RequestInvalid requestTrying to delete your own account
401 UnauthenticatedMissing or invalid tokenNo Authorization header, expired token
403 ForbiddenInsufficient permissionsToken lacks admin rights for panel endpoints
404 Not FoundResource not foundWrong workspace UUID, deleted post
422 Unprocessable EntityValidation failedMissing required fields, invalid values
429 Too Many RequestsRate limit hitReduce request frequency
500 Internal Server ErrorServer errorContact support

Handling in code

response = requests.post(url, headers=headers, json=data)

if response.status_code == 422:
errors = response.json().get("errors", {})
for field, messages in errors.items():
print(f"{field}: {', '.join(messages)}")
elif response.status_code == 401:
print("Invalid API token — check your credentials")
elif not response.ok:
print(f"Error {response.status_code}: {response.json().get('message')}")
else:
post = response.json()

Validation errors

422 responses include an errors object mapping field names to arrays of error messages. Field names use dot notation for nested objects:

{
"message": "Validation errors.",
"errors": {
"versions": ["The versions field is required."],
"versions.0.is_original": ["The is_original field must be true for the first version."],
"date": ["The date does not match the format Y-m-d."]
}
}