Error Codes

API requests that result in errors will return an appropriate HTTP status code to help you identify the type of error. You can use the table below to understand what each code means.

HTTP Status CodeTextDescription
400 Validation ErrorThe request body/query string is not in the correct format. For example, the GetUserDetails API requires the user_id field to be sent as part of the request and if it is missing, this status code is returned.
401 Authentication FailureIndicates that the Authorization header is either missing or incorrect.
403 Access DeniedThis indicates that the user whose credentials were used in making this request was not authorized to perform this API call.
404 Requested Resource not FoundThis status code is returned when the request contains invalid ID. For example, an API call to retrieve a user with an invalid ID will return a HTTP 404 status code to let you know that no such user exists.
405 Method not allowedThis API request used the wrong HTTP verb/method. For example an API PUT request on /api/users endpoint will return a HTTP 405 as /api/users allows only GET and POST requests.
406 Unsupported Accept HeaderOnly application/json and / are supported.
When uploading files multipart/form-data is supported.
409 Inconsistent/Conflicting StateThe resource that is being created/updated is in an inconsistent or conflicting state. For example, if you attempt to Create a User with an ID number that is already associated with an existing user, this code will be returned.
415 Unsupported Content-typeContent type application/xml is not supported. Only application/json is supported.
429 Rate Limit ExceededThe API rate limit allotted for your Edunation account has been exhausted.
500 Unexpected Server ErrorPhew!! You can't do anything more here. This indicates an error at Edunation’s side. Please email us your API script along with the response headers. We will reach you out to you and fix this ASAP.

Error Codes

In addition to the the error message, the error response will also contain a error code that is machine-parseable. The following table lists the error codes and their descriptions.

CodeDescription
missing_field A mandatory attribute is missing. For example, calling Create a User without the mandatory first name field in the request will result in this error.
invalid_value This code indicates that a request contained an incorrect or blank value, or was in an invalid format.
duplicate_value Indicates that this value already exists. This error is applicable to fields that require unique values such as the ID number in a user.
datatype_mismatch Indicates that the field value doesn't match the expected data type. Entering text in a numerical field would trigger this error.
invalid_field An unexpected field was part of the request. If any additional field is included in the request payload (other than what is specified in the API documentation), this error will occur.
invalid_json Request parameter is not a valid JSON. We recommend that you validate the JSON payload with a JSON validator before firing the API request.
invalid_credentials Incorrect or missing API credentials. As the name suggests, it indicates that the API request was made with invalid credentials. Forgetting to apply Client Secret or Access Token is a common cause of this error.
access_denied Insufficient privileges to perform this action. An user attempting to access admin APIs will result in this error.
account_blocked Account has been blocked or cancelled.
ssl_required HTTPS is required in the API URL.
readonly_field Read only field cannot be altered.
password_lockout The user has reached the maximum number of failed login attempts.
no_content_required No JSON data required.
inaccessible_field The user is not authorized to update this field.

Error Response

In addition to the HTTP status code, most errors will also return a response body that contains more information to help you debug the error. A sample error response is shown below. The format of the error response body is explained after the example.

{    
    "Message": "You are not authorized to perform this action",
    "ErrorCode": "not_authorized",
    "Success": false,
    "StatusCode": 401
}