# API Basics The versioning of each API is independent of the document version. # Requirements All APIs require an API Key in the header when making a call. If you haven't issued an API Key, you can issue one in [Generate API key](dashboard-generate-api-key). | Field | Type | Description | | :-------- | :----- | :---------- | | x-api-key | String | API Key | # Response Structure All API responses follow the structure of the response object below.
Field Type Description
detail String Message value according to the API call result.
result Object Result value according to the API call.\ (Provided in case of a successful API call)
# Common Error Responses The following are common error responses that can occur when making API calls. 1. **401 Unauthorized** * API Key is missing or invalid ```json { "detail": "Unauthorized" } ``` 2. **403 Plan is expired** * Plan usage period has expired ```json { "detail": "Plan is expired" } ``` 3. **403 Rate limit exceeded** * API call count has exceeded the defined Rate limit ```json { "detail": "Rate limit exceeded" } ``` 4. **403 Quota exceeded** * API call count has exceeded the defined Quota ```json JSON { "detail": "Quota exceeded" } ``` # Versioning By default, the versions for APIs and Callbacks are managed separately. For example, GET v1/A and GETv2/B APIs can have different versions. The versioning policy for APIs and Callbacks is as follows: ### No version upgrade * Adding new columns to the response object ### Version upgrade * Changing the column names in the response object * Changing the values of specific columns in the response object (data type, ENUM values, etc.) * Changing the structure of the response object * Adding new features that are not supported in previous versions