Error Handling
When a request fails, the API returns an error response with details about what went wrong.
Error Response Format
{
"actionOk": false,
"error": ["error-code-here"],
"message": "Human-readable description of the error"
} The error array contains one or more error codes. The message field provides a human-readable description.
Error Codes
| HTTP Status | Error Code | Description | Resolution |
|---|---|---|---|
| 400 | bad-request | Invalid request body or missing required fields | Check your request JSON structure |
| 401 | unauthorized | Missing Authorization header | Include your Bearer token |
| 401 | invalid-token | Bearer token is malformed, expired, or revoked | Use the token provided at account approval |
| 403 | Forbidden | Invalid or missing API key | Check your x-api-key header |
| 403 | no-privilege | Your token lacks permission for the requested data | Request only data within your authorized scope |
| 403 | no-districtlea | Requested district LEA is not in your access scope | Contact admin to expand access if needed |
| 404 | not-found | The requested resource does not exist | Verify your endpoint URL and parameters |
| 429 | too-many-requests | Rate limit or daily quota exceeded | Wait and retry, or upgrade your plan |
| 500 | internal-error | Server-side error | Retry the request; contact support if persistent |
Troubleshooting
Getting 403 Forbidden?
- Verify your API key is correct and the
x-api-keyheader is included - Ensure your account is active (not suspended or disabled)
Getting 401 Unauthorized?
- Include the
Authorization: Bearer {token}header - Verify the token hasn't been regenerated (happens when your access scope changes)
- Ensure the token is the complete string with no truncation
Getting no-districtlea?
- You can only query districts/schools in your authorized scope
- Check your approval email for the list of authorized LEA codes
- Contact your administrator to request access to additional districts