API documentation
Smrt English Client API
A read-only API that returns student and class records to your institution’s systems. Each API key only reaches its own institution’s data.
How it works
How a request works.
Your system asks for a student or a class with its own API key, and the API returns the records read-only.
Smrt English API
Error Handling
Error Response Format
All errors follow a consistent JSON structure:
{
"error": true,
"message": "Human-readable error description",
"status_code": 401,
"error_code": "AUTH_FAILED"
}
HTTP Status Codes
| Status Code | Meaning | When It Occurs |
|---|---|---|
| 200 | OK | Successful request |
| 401 | Unauthorized | Invalid or missing API key |
| 404 | Not Found | Student or class not found or not in your school |
| 405 | Method Not Allowed | Using wrong HTTP method (only GET supported) |
| 422 | Validation Error | Invalid parameter format (e.g., malformed email) |
| 429 | Too Many Requests | Rate limit exceeded (if implemented) |
| 500 | Internal Server Error | Server error (contact support) |
Common Error Responses
Invalid API Key
{
"error": true,
"message": "Invalid or missing API key",
"status_code": 401,
"error_code": "AUTH_FAILED"
}
Causes:
- API key not included in header
- API key is incorrect
- API key has been deactivated by Smrt English
- Wrong header name used
Solution: Verify your API key and header format. If issues persist, contact your Smrt English representative.
Student Not Found
{
"error": true,
"message": "The requested student was not found or you don't have permission to access it",
"status_code": 404,
"error_code": "NOT_FOUND"
}
Causes:
- Student ID doesn't exist in the Smrt English system
- Student belongs to a different institution
- Student account has been deleted
- Email address doesn't match any student enrolled at your institution
Solution: Verify the student ID/email and confirm the student is enrolled at your institution through Smrt English.
Method Not Allowed
{
"error": true,
"message": "Method not allowed",
"status_code": 405,
"error_code": "METHOD_NOT_ALLOWED"
}
Causes:
- Using POST, PUT, DELETE, or PATCH instead of GET
Solution: This is a read-only API. Use GET method only.