# API references

Welcome to the MeiliSearch API documentation.

TIP

Check out the FAQ for answers to some common questions 💡

# Headers

# Content type

Every request and response body is in JSON.

It is not required to have Content-Type: application/json in the header. Any content-type is accepted.

# Authentication

For almost all routes, you need to be recognized by the server to check your permissions. Add your API key to your headers.
Please read about authentication keys and how to manage them for more information.

X-Meili-API-Key: $API_KEY

# Errors & status code

# Success

200 - Ok: Everything worked as expected.

201 - Created: The resource has been created (synchronous)

202 - Accepted: The update has been pushed in the update queue (asynchronous)

204 - No Content: The resource has been deleted or no content has been returned

205 - Reset Content: All the resources have been deleted

# Error

400 - Bad Request: The request was unacceptable, often due to missing a required parameter.

401 - Unauthorized: No valid API key provided.

403 - Forbidden: The API key doesn't have the permissions to perform the request.

404 - Not Found: The requested resource doesn't exist.

All errors contain a JSON body that explains the error.

Response body:

{
  "message": "Index movies not found",
  "errorCode": "index_not_found",
  "errorType": "invalid_request_error",
  "errorLink": "https://docs.meilisearch.com/errors#index_not_found"
}

If you're having trouble understanding an error, take a look at the complete list (opens new window) of errorCode values and descriptions.

# Asynchronous updates

MeiliSearch is an asynchronous API. It means that, in a lot of cases, you will receive as server response a simple JSON with only an updateId attribute:

{
  "updateId": 2
}

This successful response indicates that the operation has been queued or is currently executing.
You can check the status of the operation via the updateId and the get update status route.

See more information about asynchronous updates.