openapi: 3.1.0
info:
title: Meilisearch Core API
description: 'Search documents, configure and manage the Meilisearch engine.'
version: 1.7.0
contact:
name: Meilisearch
email: bonjour@Meilisearch.com
license:
name: MIT
url: 'https://github.com/Meilisearch/Meilisearch/blob/main/LICENSE'
summary: 'An open source, blazingly fast and hyper relevant search-engine that will improve your search experience.'
servers:
- url: '{protocol}://{domain}:{port}'
variables:
protocol:
enum:
- https
- http
default: https
domain:
default: example.meilisearch.com
port:
default: '7700'
description: 'https://example.meilisearch.com:7700'
components:
schemas:
limit:
type: integer
description: Limit given for the query. If limit is not provided as a query parameter, this parameter displays the default limit value.
example: 10
offset:
type: integer
description: Offset given for the query. If offset is not provided as a query parameter, this parameter displays the default offset value.
example: 0
page:
type: integer
description: Sets the specific results page to fetch. If page is not provided as a query parameter, this parameter is ignored.
example: 1
hitsPerPage:
type: integer
description: Sets the number of results returned per page. If hitsPerPage is not provided as a query parameter, this parameter is ignored.
example: 20
totalHits:
type: integer
description: Returns the total number of search results. Computed if either `page` or `hitsPerPage` is provided as a query parameter.
example: 20
totalPages:
type: integer
description: Returns the total number of navigatable results pages for the search query. Computed if either `page` or `hitsPerPage` is provided as a query parameter.
example: 20
total:
type: integer
description: Total number of browsable results using offset/limit parameters for the given resource.
example: 50
from:
type: integer
description: The first task uid returned.
example: 999
next:
type: integer
description: Represents the value to send in `from` to fetch the next slice of the results. The first item for the next slice starts at this exact number. When the returned value is null, it means that all the data have been browsed in the given order.
example: 989
timestamp:
type: string
description: An `RFC 3339` format for date/time/duration.
example: '2019-11-20T09:40:33.711324Z'
index:
type: object
additionalProperties: false
examples:
- uid: movies
primaryKey: movie_id
createdAt: '2019-11-20T09:40:33.711324Z'
updatedAt: '2019-11-20T09:40:33.711324Z'
description: ''
title: ''
properties:
uid:
type: string
example: movies
description: Unique identifier for the index
primaryKey:
type:
- string
- 'null'
nullable: true
example: movie_id
description: Custom primaryKey for documents
createdAt:
$ref: '#/components/schemas/timestamp'
updatedAt:
$ref: '#/components/schemas/timestamp'
required:
- uid
- createdAt
- updatedAt
document:
type: object
additionalProperties: true
example:
id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
description: 'A document made of attribute. The maximum number of attribute for a document is 65,535.'
matchesPosition:
type: object
properties:
start:
type: integer
length:
type: integer
additionalProperties: false
required:
- start
- length
description: Starting position and length in bytes of the matched term in the returned value
order:
type: integer
description: The order that this ranking rule was applied
customRankingRuleDetails:
type: object
properties:
order:
$ref: '#/components/schemas/order'
value:
type:
- string
- number
- point
description: The value that was used for sorting this document
distance:
type: number
description: The distance between the target point and the geoPoint in the document
similarity:
type: number
description: |
the similarity score between the target vector and the value vector.
1.0 means a perfect similarity, 0.0 a perfect dissimilarity.
required:
- order
- value
description: Custom rule in the form of either `attribute:direction`, `vectorSort(vector)` or `_geoPoint(lat, lng):direction`.
score:
type: number
description: |
The relevancy score of a document according to a ranking rule and relative to a search query. Higher is better.
`1.0` indicates a perfect match, `0.0` no match at all (Meilisearch should not return documents that don't match the query).
rankingScoreDetails:
type: object
properties:
words:
type: object
properties:
order:
$ref: '#/components/schemas/order'
matchingWords:
type: integer
description: number of words in the query that match in the document. The higher the better.
maxMatchingWords:
type: integer
description: max number of words in the query that can match in the document for this iteration of the words ranking rule.
score:
$ref: '#/components/schemas/score'
required:
- order
- matchingWords
- maxMatchingWords
- score
typo:
type: object
properties:
order:
$ref: '#/components/schemas/order'
typoCount:
type: integer
description: The number of typos to correct in the query to match that document.
maxTypoCount:
type: integer
description: The maximum number of typos that can be corrected in the query to match a document.
score:
$ref: '#/components/schemas/score'
required:
- order
- typoCount
- maxTypoCount
- score
proximity:
type: object
properties:
order:
$ref: '#/components/schemas/order'
score:
$ref: '#/components/schemas/score'
required:
- order
- score
attribute:
type: object
properties:
order:
$ref: '#/components/schemas/order'
attributeRankingOrderScore:
type: number
description: |
Score computed depending on the first attribute each word of the query appears in.
The first attribute in the `searchableAttributes` list yields the highest score, the last attribute the lowest.
queryWordDistanceScore:
type: number
description: |
Score computed depending on the position the attributes where each word of the query appears in.
Words appearing in an attribute at the same position as in the query yield the highest score. The greater the distance to the position
in the query, the lower the score.
score:
$ref: '#/components/schemas/score'
required:
- order
- attributeRankingOrderScore
- queryWordDistanceScore
- score
exactness:
type: object
properties:
order:
$ref: '#/components/schemas/order'
matchType:
type: string
description: |
One of `exactMatch`, `matchesStart` or `noExactMatch`.
- `exactMatch`: the document contains an attribute that exactly matches the query.
- `matchesStart`: the document contains an attribute that exactly starts with the query.
- `noExactMatch`: any other document.
matchingWords:
type: integer
description: |
for `noExactMatch`, the number of exact words contained in an attribute. The higher the better.
maxMatchingWords:
type: integer
description: |
for `noExactMatch`, the maximum number of exact words contained in an attribute
score:
$ref: '#/components/schemas/score'
required:
- order
- matchType
- score
additionalProperties:
$ref: '#/components/schemas/customRankingRuleDetails'
description: The ranking score per ranking rule.
examples:
With sort:
words:
order: 0
matchingWords: 7
maxMatchingWords: 7
score: 1.0
"typo":
"order": 1
"typoCount": 0
"maxTypoCount": 0
"score": 1.0
"proximity":
"order": 2,
"score": 1.0
"attribute":
"order": 3
"attribute_ranking_order_score": 1.0
"query_word_distance_score": 1.0
"score": 1.0
"title:asc":
"order": 4
"value": "batman: the dark knight returns, part 1"
"release_date:desc":
"order": 5
"value": 1345507200.0
"exactness":
"order": 6
"matchType": "exactMatch"
"score": 1.0
hit:
type: object
additionalProperties: true
example:
id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
_formatted:
id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
_matchesPosition:
overview:
- start: 49
length: 5
- start: 155
length: 5
examples:
- id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
_formatted:
id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
_matchesPosition:
overview:
- start: 49
length: 5
- start: 155
length: 5
description: ''
properties:
_formatted:
type: object
description: Only present if `attributesToHighlight`/`attributesToCrop` is not empty. Return highlighted and cropped fields.
additionalProperties: true
_matchesPosition:
type: object
description: Only present if showMatchesPosition = `true`. Array of all search query occurrences in all fields.
properties:
'':
$ref: '#/components/schemas/matchesPosition'
_rankingScore:
type: number
description: Only present if showRankingScore = `true`. The ranking score of that document.
_rankingScoreDetails:
type: object
description: Only present if showRankingScoreDetails = `true`. The ranking score of each ranking rule for that document.
properties:
'':
$ref: '#/components/schemas/rankingScoreDetails'
attribute:
type:
- string
- number
description: Retrieve attributes of a search result. `attributesToRetrieve` controls these fields.
_geoDistance:
type: number
description: 'Using _geoPoint({lat}, {lng}) built-in sort rule at search leads the engine to return a _geoDistance within the search results. This field represents the distance in meters of the document from the specified _geoPoint.'
facetHit:
type: object
additionalProperties: true
examples:
- value: Romance
count: 25
description: FacetHit object represents a matched facet value for a facet search.
properties:
value:
type: string
description: The facet value being matched.
additionalProperties: true
count:
type: integer
description: The number of document containing the matched facet value.
documentId:
oneOf:
- type: number
- type: string
example: 468219
filter:
description: |
Attribute(s) to filter on.
Can be made of 3 syntaxes
- Nested Array: `["something > 1", "genres=comedy", ["genres=horror", "title=batman"]]`
- String: `"something > 1 AND genres=comedy AND (genres=horror OR title=batman)"`
- Mixed: `["something > 1 AND genres=comedy", "genres=horror OR title=batman"]`
> info
> _geoRadius({lat}, {lng}, {distance_in_meters}) and _geoBoundingBox([{lat, lng}], [{lat}, {lng}]) built-in filter rules can be used to filter documents within geo shapes.
> warn
> Attribute(s) used in `filter` should be declared as filterable attributes. See [Filtering and Faceted Search](https://docs.meilisearch.com/reference/features/filtering_and_faceted_search.html).
example:
- 'director:Mati Diop'
- - 'genres:Comedy'
- 'genres:Romance'
title: filter
oneOf:
- type: array
items:
type: string
pattern: '^[^:]+:[^:]+$'
- type: string
properties: {}
pattern: '^[^:]+:[^:]+$'
- type: array
items:
anyOf:
- type: array
items: {}
- type: string
sort:
description: |
Fields on which you want to sort the results.
> warn
> Attribute(s) used in `sort` should be declared as sortable attributes. See [Sorting](https://docs.meilisearch.com/reference/features/sorting.html).
> info
> _geoPoint({lat}, {long}) built-in sort rule can be used to sort documents around a geo point.
example:
- 'price:desc'
title: sort
oneOf:
- type: array
items:
type: string
searchResponse:
type: object
additionalProperties: false
title: ''
properties:
hits:
type: array
description: Array of documents matching the search.
items:
$ref: '#/components/schemas/hit'
offset:
type: integer
description: Number of documents skipped.
limit:
type: integer
description: Number of returned documents.
estimatedTotalHits:
type: integer
description: Estimated number of candidates for the search query.
page:
type: integer
description: The specific search results page to fetch.
hitsPerPage:
type: integer
description: Number of returned results per page.
totalHits:
type: integer
description: Exhaustive total number of search results for the search query.
totalPages:
type: integer
description: Number of navigatable results pages for the search query.
facetDistribution:
type: object
additionalProperties:
type: object
additionalProperties:
type: integer
description: |
[Distribution of the given facets](https://docs.meilisearch.com/reference/features/search_parameters.html#facet-distribution).
example:
genres:
action: 273
animation: 118
adventure: 132
fantasy: 67
comedy: 475
mystery: 70
thriller: 217
facetStats:
type: object
additionalProperties:
type: object
min:
type: number
description: The minimum value for the numerical facet being distributed.
max:
type: number
description: The maximum value for the numerical facet being distributed.
description: |
When using the facets parameter, the distributed facets that contain some numeric values are displayed in a facetStats object that contains, per facet, the numeric min and max values of the hits returned by the search query. If none of the hits returned by the search query have a numeric value for a facet, this facet is not part of the facetStats object.
example:
price:
min: 1
max: 4999.99
processingTimeMs:
type: integer
description: Processing time of the query.
query:
type: string
description: Query originating the response.
example: ninja
required:
- hits
- processingTimeMs
- query
facetSearchResponse:
type: object
additionalProperties: false
title: ''
properties:
facetHits:
type: array
description: Array of facet hits
items:
$ref: '#/components/schemas/facetHit'
facetQuery:
type: string
description: Facet query originating the response.
example: ninja
processingTimeMs:
type: integer
description: Processing time of the facet search query.
required:
- facetHits
- facetQuery
- processingTimeMs
task:
type: object
description: |
Meilisearch is an asynchronous API. It means that the API does not behave as you would typically expect when handling the request's responses.
Some operations are put in a queue and will be executed in turn (asynchronously). In this case, the server response contains the identifier to track the execution of the operation.
[Learn More](https://docs.meilisearch.com/learn/advanced/asynchronous_operations.html).
additionalProperties: false
examples:
- uid: 0
indexUid: movies
status: succeeded
type: documentAdditionOrUpdate
canceledBy: null
details:
receivedDocuments: 10
indexedDocuments: 10
duration: PT5S
enqueuedAt: '2021-01-01T09:39:00.000000Z'
startedAt: '2021-01-01T09:40:00.000000Z'
finishedAt: '2021-01-01T09:40:05.000000Z'
properties:
uid:
type: integer
description: The unique sequential identifier of the task
indexUid:
type: string
description: The unique identifier of the index where this task is operated
status:
type: string
description: The status of the task
enum:
- enqueued
- processing
- succeeded
- failed
example: succeeded
type:
type: string
description: The type of the task
enum:
- documentAdditionOrUpdate
- documentDeletion
- indexCreation
- indexUpdate
- indexDeletion
- indexSwap
- settingsUpdate
- dumpCreation
- taskCancelation
- taskDeletion
- snapshotCreation
canceledBy:
type: integer
description: The uid of the task that performed the taskCancelation if the task has been canceled.
details:
type: object
description: Details information of the task payload.
properties:
receivedDocuments:
type: integer
description: Number of documents received for documentAdditionOrUpdate task.
indexedDocuments:
type: integer
description: Number of documents finally indexed for documentAdditionOrUpdate task or a documentAdditionOrUpdate batch of tasks.
providedIds:
type: integer
description: Number of provided document ids for the documentDeletion task.
deletedDocuments:
type: integer
description: Number of documents finally deleted for documentDeletion and indexDeletion tasks.
primaryKey:
type: string
description: Value for the primaryKey field encountered if any for indexCreation or indexUpdate task.
settings:
$ref: '#/components/schemas/settings'
dumpUid:
type: string
description: Identifier generated for the dump for dumpCreation task.
matchedTasks:
type: integer
description: Number of tasks that match the request for taskCancelation or taskDeletion tasks.
canceledTasks:
type: integer
description: Number of tasks canceled for taskCancelation.
deletedTasks:
type: integer
description: Number of tasks deleted for taskDeletion.
originalFilter:
type: string
description: Original filter query for taskCancelation or taskDeletion tasks.
error:
description: Error object containing error details and context when a task has a failed status.
$ref: '#/components/schemas/error'
duration:
type: string
description: Total elasped time the engine was in processing state expressed as a `ISO-8601` duration format. Default is set to `null`
nullable: true
enqueuedAt:
description: Represent the date and time as a `RFC 3339` format when the task has been enqueued
$ref: '#/components/schemas/timestamp'
startedAt:
$ref: '#/components/schemas/timestamp'
description: Represent the date and time as a `RFC 3339` format when the task has been dequeued and started to be processed. Default is set to `null`
nullable: true
finishedAt:
$ref: '#/components/schemas/timestamp'
description: Represent the date and time as a `RFC 3339` format when the task has failed or succeeded. Default is set to `null`
nullable: true
required:
- uid
- indexUid
- status
- type
- canceledBy
- details
- error
- enqueuedAt
- startedAt
- finishedAt
summarizedTask:
type: object
description: A summarized version of an asynchronous task. Summarized task representation are given for the 202 Accepted HTTP response. [Learn More](https://docs.meilisearch.com/learn/advanced/asynchronous_operations.html).
additionalProperties: false
examples:
documentAdditionOrUpdate:
$ref: '#/components/examples/202_documentAdditionOrUpdate'
properties:
taskUid:
type: integer
description: The unique sequential identifier of the task. This `taskUid` allows you to [track the current task](https://docs.meilisearch.com/reference/api/tasks.html).
indexUid:
type: string
description: The unique identifier of the index where this task is operated
status:
type: string
description: The status of the task
enum:
- enqueued
type:
type: string
description: The type of the task
enum:
- documentAdditionOrUpdate
- documentDeletion
- indexCreation
- indexUpdate
- indexDeletion
- indexSwap
- settingsUpdate
- dumpCreation
- taskCancelation
- taskDeletion
enqueuedAt:
description: Represent the date and time as a `RFC 3339` format when the task has been enqueued
$ref: '#/components/schemas/timestamp'
required:
- uid
- indexUid
- status
- type
- enqueuedAt
synonyms:
type: object
description: List of associated words treated similarly. A word associated to an array of word as synonyms.
example:
wolverine:
- xmen
- logan
logan:
- wolverine
- xmen
wow:
- world of warcraft
stopWords:
type: array
description: List of words ignored when present in search queries.
items:
type: string
example:
- of
- the
- to
separatorTokens:
type: array
description: List of tokens that will be considered as word separators by Meilisearch.
items:
type: string
example:
- "&"
- ""
- "@"
nonSeparatorTokens:
type: array
description: List of tokens that will not be considered as word separators by Meilisearch.
items:
type: string
example:
- "#"
- "-"
- "_"
dictionary:
type: array
description: List of words on which the segmentation will be overridden.
items:
type: string
example:
- J.K
- Dr.
- G/Box
sortableAttributes:
type: array
description: List of attributes to sort on at search.
items:
type: string
example:
- price
- author
- title
rankingRules:
type: array
description: |
List of ranking rules sorted by order of importance. The order is customizable.
[A list of ordered built-in ranking rules](https://docs.meilisearch.com/learn/core_concepts/relevancy.html).
items:
type: string
example:
- words
- typo
- proximity
- attribute
- sort
- exactness
- 'release_date:asc'
examples: []
typoTolerance:
type: object
description: Customize typo tolerance feature.
properties:
enabled:
description: Enable the typo tolerance feature.
type: boolean
default: true
nullable: false
disableOnAttributes:
description: Disable the typo tolerance feature on the specified attributes.
type: array
items:
type: string
default: []
nullable: false
disableOnWords:
description: Disable the typo tolerance feature for a set of query terms given for a search query.
type: array
items:
type: string
default: []
nullable: false
minWordSizeForTypos:
type: object
properties:
oneTypo:
description: Customize the minimum size for a word to tolerate 1 typo.
type: integer
default: 5
nullable: false
twoTypos:
description: Customize the minimum size for a word to tolerate 2 typos.
type: integer
default: 9
nullable: false
pagination:
type: object
description: Customize pagination settings
properties:
maxTotalHits:
description: Define the maximum number of documents reachable for a search request. It means that with the default value of `1000`, it is not possible to see the `1001`st result for a **search query**.
type: integer
default: 1000
nullable: false
faceting:
type: object
description: Customize faceting settings
properties:
maxValuesPerFacet:
description: Define maximum number of value returned for a facet for a **search query**. It means that with the default value of `100`, it is not possible to have `101` different colors if the `color`` field is defined as a facet at search time.
type: integer
default: 100
nullable: false
sortFacetValuesBy:
description: Defines how facet values are sorted. By default, all facets (`*`) are sorted by name, alphanumerically in ascending order (`alpha`). `count` sorts facet values by the number of documents containing a facet value in descending order.
type: object
example:
"*": 'alpha'
"genres": 'count'
filterableAttributes:
type: array
description: |
Attributes to use for faceting and filtering. See [Filtering and Faceted Search](https://docs.meilisearch.com/reference/features/filtering_and_faceted_search.html).
items:
type: string
example:
- genres
- director
title: filterableAttributes
distinctAttribute:
type: string
description: Search returns documents with distinct (different) values of the given field.
nullable: true
searchableAttributes:
type: array
description: Fields in which to search for matching query words sorted by order of importance.
items:
type: string
example:
- title
- description
- genre
displayedAttributes:
type: array
description: Fields displayed in the returned documents.
items:
type: string
example:
- title
- description
- genre
- release_date
settings:
type: object
description: |
[Learn more about the settings in this guide](https://docs.meilisearch.com/reference/features/settings.html).
additionalProperties: false
properties:
synonyms:
$ref: '#/components/schemas/synonyms'
stopWords:
$ref: '#/components/schemas/stopWords'
rankingRules:
$ref: '#/components/schemas/rankingRules'
filterableAttributes:
$ref: '#/components/schemas/filterableAttributes'
distinctAttribute:
$ref: '#/components/schemas/distinctAttribute'
searchableAttributes:
$ref: '#/components/schemas/searchableAttributes'
displayedAttributes:
$ref: '#/components/schemas/displayedAttributes'
typoTolerance:
$ref: '#/components/schemas/typoTolerance'
required:
- synonyms
- stopWords
- rankingRules
- filterableAttributes
- distinctAttribute
- searchableAttributes
- displayedAttributes
- typoTolerance
stats:
type: object
additionalProperties: false
title: ''
examples:
- numberOfDocuments: 10
isIndexing: true
fieldDistribution:
genre: 10
author: 9
properties:
numberOfDocuments:
type: integer
description: Number of documents contained in the index.
isIndexing:
type: boolean
description: Whether or not the index is currently ingesting document
fieldDistribution:
type: object
additionalProperties:
type: integer
description: How many documents contains a field
required:
- numberOfDocuments
- isIndexing
- fieldDistribution
searchQuery:
type: object
additionalProperties: false
properties:
q:
type: string
description: Query string.
default: '""'
example: '"Back to the future"'
vector:
type: array
description: Query vector.
default: 'null'
example: '[0.8, 0.145, 0.26, 0.3]'
attributesToRetrieve:
type: array
description: 'Array of attributes whose fields will be present in the returned documents. Defaults to the [displayedAttributes list](https://docs.meilisearch.com/reference/features/settings.html#displayed-attributes) which contains by default all attributes found in the documents.'
items:
type: string
example: '["title", "overview"]'
default: '["*"]'
attributesToHighlight:
type: array
description: Array of attributes whose values will contain highlighted matching terms. Highlighted attributes are returned in `_formatted` response object.
items:
type: string
example: '["title", "overview"]'
default: '[]'
highlightPreTag:
type: string
description: Specify the tag to put before the highlighted query terms.
example: ''
default: ''
highlightPostTag:
type: string
description: Specify the tag to put after the highlighted query terms.
example: ''
default: ''
attributesToCrop:
type: array
description: Array of attributes whose values have to be cropped. Cropped attributes are returned in `_formatted` response object.
items:
type: string
example: '["overview", "author"]'
default: '[]'
cropMarker:
type: string
description: Sets the crop marker to apply before and/or after cropped part selected within an attribute defined in `attributesToCrop` parameter.
default: '…'
cropLength:
type: number
description: Sets the total number of **words** to keep for the cropped part of an attribute specified in the `attributesToCrop` parameter.
default: 10
showMatchesPosition:
type: boolean
description: Defines whether an `_matchesPosition` object that contains information about the matches should be returned or not.
default: false
showRankingScore:
type: boolean
description: Defines whether a `_rankingScore` number representing the relevancy score of that document should be returned or not.
default: false
showRankingScoreDetails:
type: boolean
description: Defines whether a `_rankingScoreDetails` object containing information about the score of that document for each ranking rule should be returned or not.
default: false
matchingStrategy:
type: string
description: Defines which strategy to use to match the query terms within the documents as search results. Two different strategies are available, `last` and `all`. By default, the `last` strategy is chosen.
default: 'last'
attributesToSearchOn:
type: array
description: Defines which `searchableAttributes` the query will search on.
default: '["*"]'
filter:
$ref: '#/components/schemas/filter'
facets:
type: array
description: 'Array of attributes whose fields will be distributed as a facet. If you have [set up filterableAttributes](https://docs.meilisearch.com/reference/features/settings.html#filterable-attributes), you can retrieve the count of matching terms for each [facets](https://docs.meilisearch.com/reference/features/filtering_and_faceted_search.html#faceted-search).[Learn more about facet distribution in the dedicated guide](https://docs.meilisearch.com/reference/features/search_parameters.html#facet-distribution)'
items:
type: string
example: '["genres", "author"]'
default: '[]'
offset:
type: number
description: Number of documents to skip.
default: 0
limit:
type: number
description: Maximum number of documents returned.
default: 20
page:
type: number
description: The specific search results page to fetch.
example: 1
hitsPerPage:
type: number
description: Number of returned results per page.
example: 20
sort:
$ref: '#/components/schemas/sort'
examples:
Example:
value:
q: Harry
offset: 0
limit: 20
filter: (genres = Horror AND genres = Mystery) OR release_date > 523242000
facets:
- genres
- author
attributesToRetrieve:
- title
- overview
attributesToCrop:
- overview
cropLength: 20
attributesToHighlight:
- overview
showMatchesPosition: true
showRankingScore: true
wordsMatchingStrategy: all
matchingStrategy: all
facetSearchQuery:
type: object
additionalProperties: false
properties:
facetName:
type: string
required: true
description: Query string.
example: '"genres"'
facetQuery:
type: string
description:
default: '""'
example: '"Horror"'
q:
type: string
description: 'Additional search parameter. If additional search parameters are set, the method will return facet values that both: - Match the face query - Are contained in the records matching the additional search parameters'
default: '""'
example: '"Back to the future"'
matchingStrategy:
type: string
description: 'Additional search parameter. If additional search parameters are set, the method will return facet values that both: - Match the face query - Are contained in the records matching the additional search parameters'
default: 'last'
filter:
$ref: '#/components/schemas/filter'
examples:
Example:
value:
facetName: genres
facetQuery: Romance
error:
title: error
type: object
properties:
message:
type: string
code:
type: string
type:
type: string
link:
type: string
required:
- message
- code
- type
- link
description: ''
key:
title: key
type: object
properties:
uid:
type: string
description: A uuid v4 to identify the API Key. If not specified, it's generated by Meilisearch.
example: 01b4bc42-eb33-4041-b481-254d00cce834
key:
type: string
description: The derived key to use in the Authorization header to authorize requests. Generated by Meilisearch with an HMAC, using an SHA-256 hash, of the uid and the master key.
example: d0552b41536279a0ad88bd595327b96f01176a60c2243e906c52ac02375f9bc4
readOnly: true
actions:
type: array
description: 'A list of actions permitted for the key. ["*"] for all actions. The * character can be used as a wildcard when located at the last position. e.g. `documents.*` to authorize access on all documents endpoints.'
uniqueItems: false
items:
type: string
example: documents.add
enum:
- search
- documents.add
- documents.get
- documents.delete
- indexes.create
- indexes.get
- indexes.update
- indexes.delete
- indexes.swap
- tasks.get
- tasks.cancel
- tasks.delete
- settings.get
- settings.update
- stats.get
- metrics.get
- dumps.create
- snapshots.create
- version
- keys.get
- keys.create
- keys.update
- keys.delete
- experimental.get
- experimental.update
indexes:
type: array
description: 'A list of accesible indexes permitted for the key. ["*"] for all indexes. The * character can be used as a wildcard when located at the last position. e.g. "products_*"" to allow access to all indexes whose names start with "products_".'
items:
type: string
example: movies
name:
type:
- string
- 'null'
description: A human-readable name for the key. null if empty.
default: null
description:
type:
- string
- 'null'
description: A description for the key. null if empty.
default: null
expiresAt:
type:
- string
- 'null'
description: Represent the expiration date and time as RFC 3339 format. null equals to no expiration time.
createdAt:
type: string
description: Represent the date and time as RFC 3339 format when the API key has been created. Generated by Meilisearch.
example: '2021-11-12T10:00:00Z'
readOnly: true
updatedAt:
type:
- string
- 'null'
description: Represent the date and time as RFC 3339 format when the API key has been updated. Generated by Meilisearch.
default: null
readOnly: true
required:
- actions
- indexes
- expiresAt
description: API keys are stored and managed by the master key holder and the default admin key holder. These are the keys used by the technical teams to interact with Meilisearch at the level of the client/server code. API keys can have restrictions on which methods can be accessed via an actions list; they can also expiresAt a specific date time and be restricted to a specific set of indexes.
swapOperation:
type: object
properties:
indexes:
type: array
description: The two indexUids to swap in the given operation.
required:
- indexes
swapIndexes:
type: array
description: Array of swap operations that will be processed atomically.
required: true
items:
$ref: '#/components/schemas/swapOperation'
parameters:
indexUid:
name: indexUid
in: path
description: Index Unique Identifier
required: true
schema:
type: string
example: movies
documentId:
name: documentId
in: path
description: The document identifier
required: true
schema:
type: any
taskUid:
name: taskUid
in: path
description: The task identifier
required: true
schema:
type: integer
taskFilterUids:
name: uids
in: query
description: Permits to filter tasks by their uid. By default, when the `uids` query parameter is not set, all task uids are returned. It's possible to specify several uids by separating them with the `,` character.
required: false
schema:
type: number
taskFilterIndexUids:
name: indexUids
in: query
description: Permits to filter tasks by their related index. By default, when `indexUids` query parameter is not set, the tasks of all the indexes are returned. It is possible to specify several indexes by separating them with the `,` character.
required: false
schema:
type: string
taskFilterTypes:
name: types
in: query
description: Permits to filter tasks by their related type. By default, when `types` query parameter is not set, all task types are returned. It's possible to specify several types by separating them with the `,` character.
required: false
schema:
type: string
taskFilterStatuses:
name: statuses
in: query
description: Permits to filter tasks by their status. By default, when `statuses` query parameter is not set, all task statuses are returned. It's possible to specify several statuses by separating them with the `,` character.
required: false
schema:
type: string
taskFilterBeforeEnqueuedAt:
name: beforeEnqueuedAt
in: query
description: Permits to filter tasks based on their enqueuedAt time. Matches tasks enqueued before the given date. Supports RFC 3339 date format.
required: false
schema:
type: string
taskFilterAfterEnqueuedAt:
name: afterEnqueuedAt
in: query
description: Permits to filter tasks based on their enqueuedAt time. Matches tasks enqueued after the given date. Supports RFC 3339 date format.
required: false
schema:
type: string
taskFilterBeforeStartedAt:
name: beforeStartedAt
in: query
description: Permits to filter tasks based on their startedAt time. Matches tasks started before the given date. Supports RFC 3339 date format.
required: false
schema:
type: string
taskFilterAfterStartedAt:
name: afterStartedAt
in: query
description: Permits to filter tasks based on their startedAt time. Matches tasks started after the given date. Supports RFC 3339 date format.
required: false
schema:
type: string
taskFilterBeforeFinishedAt:
name: beforeFinishedAt
in: query
description: Permits to filter tasks based on their finishedAt time. Matches tasks finished before the given date. Supports RFC 3339 date format.
required: false
schema:
type: string
taskFilterAfterFinishedAt:
name: afterFinishedAt
in: query
description: Permits to filter tasks based on their finishedAt time. Matches tasks finished after the given date. Supports RFC 3339 date format.
required: false
schema:
type: string
taskFilterCanceledBy:
name: canceledBy
in: query
description: Permits to filter tasks using the uid of the task that canceled them. It's possible to specify several task uids by separating them with the `,` character.
required: false
schema:
type: string
primaryKey:
name: primaryKey
in: query
description: |
The [primary key](https://docs.meilisearch.com/learn/core_concepts/documents.html#primary-key) of the documents. primaryKey is optional.
If you want to set the primary key of your index through this route, it only has to be done the first time you add documents to the index. After which it will be ignored if given.
schema:
type: string
limit:
name: limit
in: query
description: Maximum number of results to return.
schema:
type: number
default: 20
offset:
name: offset
in: query
description: Number of results to skip.
schema:
type: number
default: 0
page:
name: page
in: query
description: Sets the specific results page.
schema:
type: number
default: 1
hitsPerPage:
name: hitsPerPage
in: query
description: Sets the number of results returned for a query. If hitsPerPage is not provided as a query parameter, this parameter is ignored.
schema:
type: number
default: 20
from:
name: from
in: query
description: Fetch the next set of results from the given uid.
schema:
type: number
q:
name: q
in: query
description: Query string.
schema:
type: string
example: back to the future
default: '""'
attributesToRetrieve:
name: attributesToRetrieve
in: query
description: 'Comma-separated list of attributes whose fields will be present in the returned documents. Defaults to the [displayedAttributes list](https://docs.meilisearch.com/reference/features/settings.html#displayed-attributes) which contains by default all attributes found in the documents.'
schema:
type: string
items:
type: string
example: 'title,description'
default: '*'
attributesToHighlight:
name: attributesToHighlight
in: query
description: Comma-separated list of attributes whose values will contain highlighted matching terms. Highlighted attributes are returned in `_formatted` response object.
schema:
type: string
items:
type: string
default:
- ''
example: 'title,description'
highlightPreTag:
name: highlightPreTag
in: query
required: false
description: Specify the tag to put before the highlighted query terms.
schema:
type: string
default: ''
highlightPostTag:
name: highlightPostTag
in: query
required: false
description: Specify the tag to put after the highlighted query terms.
schema:
type: string
default: ''
attributesToCrop:
name: attributesToCrop
in: query
required: false
schema:
type: string
example: 'overview:10'
description: Comma-separated list of attributes whose values have to be cropped. Cropped attributes are returned in `_formatted` response object.
cropMarker:
name: cropMarker
in: query
description: Sets the crop marker to apply before and/or after cropped part selected within an attribute defined in `attributesToCrop` parameter.
required: false
schema:
type: string
default: '…'
cropLength:
name: cropLength
in: query
required: false
schema:
type: integer
example: 5
default: 10
description: Sets the total number of words to keep around the matched part of an attribute specified in the `attributesToCrop` parameter.
facets:
name: facets
in: query
schema:
type: string
example: 'genres,author'
description: 'Comma-separated list of attributes whose fields will be distributed as a facet. If you have [set up filterableAttributes](https://docs.meilisearch.com/reference/features/settings.html#filterable-attributes), you can retrieve the count of matching terms for each facets.[Learn more about facet distribution in the dedicated guide](https://docs.meilisearch.com/reference/features/search_parameters.html#facet-distribution)'
showMatchesPosition:
name: showMatchesPosition
in: query
required: false
schema:
type: boolean
default: 'false'
description: Defines whether an `_matchesPosition` object that contains information about the matches should be returned or not.
matchingStrategy:
name: matchingStrategy
in: query
required: false
schema:
type: string
enum:
- last
- all
default: 'last'
description: Defines which strategy to use to match the query terms within the documents as search results. Two different strategies are available, `last` and `all`. By default, the `last` strategy is chosen.
sort:
name: sort
in: query
required: false
schema:
type: string
example: 'price:asc'
description: |
Fields on which you want to sort the results.
> warn
> Attribute(s) used in `sort` should be declared as sortable attributes. See [Sorting](https://docs.meilisearch.com/reference/features/sorting.html).
> info
> _geoPoint({lat}, {long}) built-in sort rule can be used to sort documents around a geo point.
filter:
name: filter
in: query
required: false
schema:
example: something > 1 AND genres=comedy AND (genres=horror OR title=batman)
description: |
Attribute(s) to filter on.
Can be made of 3 syntaxes
- Nested Array: `["something > 1", "genres=comedy", ["genres=horror", "title=batman"]]`
- String: `something > 1 AND genres=comedy AND (genres=horror OR title=batman)`
- Mixed: `["something > 1 AND genres=comedy", "genres=horror OR title=batman"]`
> info
> _geoRadius({lat}, {lng}, {distance_in_meters}) and _geoBoundingBox([{lat, lng}], [{lat}, {lng}]) built-in filter rules can be used to filter documents within geo shapes.
> warn
> Attribute(s) used in `filter` should be declared as filterable attributes. See [Filtering and Faceted Search](https://docs.meilisearch.com/reference/features/filtering_and_faceted_search.html).
fields:
name: fields
in: query
description: 'Comma-separated list of fields to display for an API resource. By default it contains all fields of an API resource.'
schema:
type: string
items:
type: string
example: 'uid,createdAt'
default: '*'
csvDelimiter:
name: csvDelimiter
in: query
description: 'Customize the csv delimiter when importing CSV documents. By default its a comma ","'
schema:
type: string
default: ','
Content-Type:
name: Content-Type
in: header
required: true
schema:
type: string
enum:
- application/json
description: Payload content-type
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/summarizedTask'
'204':
description: No Content
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/error'
examples:
Unauthorized:
value:
message: The Authorization header is missing. It must use the bearer authorization method.
code: missing_authorization_header
type: auth
link: 'https://docs.meilisearch.com/errors#missing_authorization_header'
'413':
description: Payload Too Large
content:
application/json:
schema:
$ref: '#/components/schemas/error'
examples:
Payload Too Large:
value:
message: The provided payload reached the size limit. The maximum accepted payload size is 20.00 MiB.
code: payload_too_large
type: invalid_request
link: 'https://docs.meilisearch.com/errors#payload_too_large'
securitySchemes:
apiKey:
type: http
in: header
scheme: bearer
description: |-
An API key is a token that you provide when making API calls. Include the token in a header parameter called `Authorization`.
Example: `Authorization: Bearer 8fece4405662dd830e4cb265e7e047aab2e79672a760a12712d2a263c9003509`
examples:
202_indexCreation:
summary: 202 Accepted indexCreation response example
value:
taskUid: 0
indexUid: movies
status: enqueued
type: indexCreation
enqueuedAt: '2021-01-01T09:39:00.000000Z'
202_indexUpdate:
summary: 202 Accepted indexUpdate response example
value:
taskUid: 0
indexUid: movies
status: enqueued
type: indexUpdate
enqueuedAt: '2021-01-01T09:39:00.000000Z'
202_indexDeletion:
summary: 202 Accepted indexDeletion response example
value:
taskUid: 0
indexUid: movies
status: enqueued
type: indexDeletion
enqueuedAt: '2021-01-01T09:39:00.000000Z'
202_documentAdditionOrUpdate:
summary: 202 Accepted documentAdditionOrUpdate response example
value:
taskUid: 0
indexUid: movies
status: enqueued
type: documentAdditionOrUpdate
enqueuedAt: '2021-01-01T09:39:00.000000Z'
202_documentDeletion:
summary: 202 Accepted documentDeletion response example
value:
taskUid: 0
indexUid: movies
status: enqueued
type: documentDeletion
enqueuedAt: '2021-01-01T09:39:00.000000Z'
202_settingsUpdate:
summary: 202 Accepted settingsUpdate response example
value:
taskUid: 0
indexUid: movies
status: enqueued
type: settingsUpdate
enqueuedAt: '2021-01-01T09:39:00.000000Z'
202_dumpCreation:
summary: 202 Accepted dumpCreation response example
value:
taskUid: 0
indexUid: null
status: enqueued
type: dumpCreation
enqueuedAt: '2021-01-01T09:39:00.000000Z'
202_snapshotCreation:
summary: 202 Accepted snapshotCreation response example
value:
taskUid: 0
indexUid: null
status: enqueued
type: snapshotCreation
enqueuedAt: '2021-01-01T09:39:00.000000Z'
202_taskCancelation:
summary: 202 Accepted taskCancelation response example
value:
taskUid: 0
indexUid: null
status: enqueued
type: taskCancelation
enqueuedAt: '2021-01-01T09:39:00.000000Z'
202_taskDeletion:
summary: 202 Accepted taskDeletion response example
value:
taskUid: 0
indexUid: null
status: enqueued
type: taskDeletion
enqueuedAt: '2021-01-01T09:39:00.000000Z'
202_indexSwap:
summary: 202 Accepted indexSwap response example
value:
taskUid: 0
indexUid: null
status: enqueued
type: indexSwap
enqueuedAt: '2021-01-01T09:39:00.000000Z'
tags:
- name: Indexes
description: |
An index is an entity that gathers a set of [documents](https://docs.meilisearch.com/learn/core_concepts/documents.html) with its own settings.
[Learn more about indexes](https://docs.meilisearch.com/learn/core_concepts/indexes.html).
- name: Documents
description: |
Documents are objects composed of fields that can store any type of data.
Each field contains an attribute and its associated value.
Documents are stored inside [indexes](https://docs.meilisearch.com/learn/core_concepts/indexes.html).
[Learn more about documents](https://docs.meilisearch.com/learn/core_concepts/documents.html).
- name: Search
description: |
Meilisearch exposes 3 routes to perform document searches:
* A POST route: this is the preferred route when using API authentication, as it allows [preflight request](https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request) caching and better performances.
* A GET route: the usage of this route is discouraged, unless you have good reason to do otherwise (specific caching abilities for example).
Other than the differences mentioned above, the two routes are strictly equivalent.
* A POST multi-search route allowing to perform multiple search queries in a single HTTP request.
Meilisearch exposes 1 route to perform facet searches:
* A POST facet-search route allowing to perform a facet search query on a facet in a single HTTP request.
- name: Tasks
description: |
The `tasks` route gives information about the progress of the [asynchronous operations](https://docs.meilisearch.com/learn/advanced/asynchronous_operations.html).
- name: Keys
description: |
Manage API `keys` for a Meilisearch instance. Each key has a given set of permissions.
You must have the master key or the default admin key to access the `keys` route.
[More information about the keys and their rights](https://docs.meilisearch.com/reference/features/security.html).
- name: Settings
description: |
`Settings` is a list of all the __customization__ possible for an index.
It is possible to update all the settings in one go or individually with the dedicated routes. Updates in the settings route are __partial__. This means that any parameters not provided in the body will be left unchanged.
Updating the settings means overwriting the default settings of Meilisearch. You can reset to default values using the `DELETE` routes.
- name: Stats
description: |
`Stats` gives extended information and metrics about indexes and the Meilisearch database.
- name: Health
description: |
The health check endpoint enables you to periodically test the health of your Meilisearch instance.
- name: Version
description: |
Current version of Meilisearch.
- name: Dumps
description: |
The `dumps` route allows the creation of database dumps. Dumps are `.dump` files that can be used to launch Meilisearch. Dumps are compatible between Meilisearch versions.
Creating a dump is also referred to as exporting it, whereas launching Meilisearch with a dump is referred to as importing it.
During a [dump export](https://docs.meilisearch.com/reference/api/dump.html#create-a-dump), all indexes of the current instance are exported—together with their documents and settings—and saved as a single `.dump` file.
During a dump import, all indexes contained in the indicated `.dump` file are imported along with their associated documents and settings. Any existing index with the same uid as an index in the dump file will be overwritten.
Dump imports are [performed at launch](https://docs.meilisearch.com/reference/features/configuration.html#import-dump) using an option.
- name: Snapshots
description: |
The `snapshots` route allows the creation of database snapshots. Snapshots are `.snapshot` files that can be used to launch Meilisearch.
Creating a snapshot is also referred to as exporting it, whereas launching Meilisearch with a snapshot is referred to as importing it.
During a snapshot export, all indexes of the current instance are exported—together with their documents and settings—and saved as a single `.snapshot` file.
During a snapshot import, all indexes contained in the indicated `.snapshot` file are imported along with their associated documents and settings.
Snapshot imports are performed at launch using an option.
- name: Experimental
description: |
The `experimental-features` endpoint allows enabling and disabling [experimental features](https://github.com/meilisearch/engine-team/blob/main/resources/experimental-features.md) at runtime.
Experimental features are features that are not yet covered by [Meilisearch's stability guarantee](https://github.com/meilisearch/engine-team/blob/main/resources/versioning-policy.md) and that could break between minor and patch Meilisearch versions.
paths:
/dumps:
post:
operationId: dumps.create
summary: Create a Dump
description: |
Triggers a dump creation process. Once the process is complete, a dump is created in the [dump directory](https://docs.meilisearch.com/reference/features/configuration.html#dump-directory). If the dump directory does not exist yet, it will be created.
tags:
- Dumps
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_dumpCreation'
'401':
$ref: '#/components/responses/401'
/snapshots:
post:
operationId: snapshots.create
summary: Create a Snapshot
description: |
Triggers a snapshot creation process. Once the process is complete, a snapshot is created in the snapshot directory. If the snapshot directory does not exist yet, it will be created.
tags:
- Snapshots
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_snapshotCreation'
'401':
$ref: '#/components/responses/401'
/health:
get:
operationId: health.check
summary: Get health
description: Get health of the Meilisearch instance.
tags:
- Health
responses:
'200':
description: Ok
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- available
required:
- status
examples:
'200':
value:
status: available
x-internal: false
/indexes:
get:
operationId: indexes.list
summary: List Indexes
description: List all indexes.
tags:
- Indexes
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/index'
limit:
$ref: '#/components/schemas/limit'
offset:
$ref: '#/components/schemas/offset'
total:
$ref: '#/components/schemas/total'
required:
- results
- limit
- offset
- total
examples:
Example:
value:
results:
- uid: movies
primaryKey: movie_id
createdAt: '2019-11-20T09:40:33.711324Z'
updatedAt: '2019-11-20T09:40:33.711324Z'
limit: 1
offset: 0
total: 1
'401':
$ref: '#/components/responses/401'
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
post:
operationId: indexes.create
summary: Create Index
description: Create an index.
tags:
- Indexes
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
uid:
type: string
primaryKey:
type: string
additionalProperties: false
required:
- uid
examples:
Example:
value:
uid: movies
primaryKey: movie_id
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_indexCreation'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
examples:
Index already exists:
value:
message: 'Index `:indexUid` already exists.'
code: index_already_exists
type: invalid_request
link: 'https://docs.meilisearch.com/errors#index_already_exists'
Invalid Index Uid:
value:
message: '`:indexUid` is not a valid index uid. Index uid can be an integer or a string containing only alphanumeric characters, hyphens (-) and underscores (_).'
code: invalid_index_uid
type: invalid_request
link: 'https://docs.meilisearch.com/errors#invalid_index_uid'
'401':
$ref: '#/components/responses/401'
parameters:
- $ref: '#/components/parameters/Content-Type'
'/indexes/{indexUid}':
get:
operationId: indexes.get
summary: Get Index
description: Get information about an index.
tags:
- Indexes
security:
- apiKey: []
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/index'
examples:
Example:
value:
uid: movies
primaryKey: movie_id
createdAt: '2019-11-20T09:40:33.711324Z'
updatedAt: '2019-11-20T09:40:33.711324Z'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
patch:
operationId: indexes.update
summary: Update Index
description: Update an index. Specify a primaryKey if it doesn't already exists yet.
tags:
- Indexes
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
primaryKey:
type: string
additionalProperties: false
required:
- primaryKey
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_indexUpdate'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
examples:
Primary Key Already Present:
value:
message: 'Index `:indexUid` already has a primary key.'
code: index_primary_key_already_exists
type: invalid_request
link: 'https://docs.meilisearch.com/errors#index_primary_key_already_exists'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.remove
summary: Delete Index
description: Delete an index.
tags:
- Indexes
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_indexDeletion'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/documents':
get:
operationId: indexes.documents.list
summary: Get Documents
description: |
Get [documents](https://docs.meilisearch.com/learn/core_concepts/documents.html) by batch.
tags:
- Documents
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/document'
limit:
$ref: '#/components/schemas/limit'
offset:
$ref: '#/components/schemas/offset'
total:
$ref: '#/components/schemas/total'
required:
- results
- limit
- offset
- total
examples:
Example:
value:
results:
- id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
- id: 45881
title: The Bridge of San Luis Rey
poster: 'https://image.tmdb.org/t/p/w500/4X7quIcdkc24Cveg5XdpfRqxtYA.jpg'
overview: "The Bridge of San Luis Rey is American author Thornton Wilder's second novel, first published in 1927 to worldwide acclaim. It tells the story of several interrelated people who die in the collapse of an Inca rope-fiber suspension bridge in Peru, and the events that lead up to their being on the bridge.[ A friar who has witnessed the tragic accident then goes about inquiring into the lives of the victims, seeking some sort of cosmic answer to the question of why each had to die. The novel won the Pulitzer Prize in 1928."
release_date: 1072915200
limit: 20
offset: 0
total: 2
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/filter'
post:
operationId: indexes.documents.create
summary: Add or replace documents
description: |
Add a list of [documents](https://docs.meilisearch.com/learn/core_concepts/documents.html) or replace them if they already exist.
If you send an already existing document (same [id](https://docs.meilisearch.com/learn/core_concepts/documents.html#primary-key)) the whole existing document will be overwritten by the new document. Fields previously in the document not present in the new document are removed.
For a partial update of the document see Add or update documents route.
> info
> If the provided index does not exist, it will be created.
> info
> Use the reserved `_geo` object to add geo coordinates to a document. `_geo` is an object made of `lat` and `lng` field.
>
> Use the reserved `_vectors` arrays of floats to add embeddings to a document. `_vectors` is an array of floats or multiple arrays of floats in an outer array.
tags:
- Documents
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: array
items: null
examples: {}
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_documentAdditionOrUpdate'
'401':
$ref: '#/components/responses/401'
'413':
$ref: '#/components/responses/413'
parameters:
- schema:
type: string
enum:
- application/json
- text/csv
- application/x-ndjson
in: header
name: Content-Type
required: true
description: The content-type associated with the format to be indexed
- $ref: '#/components/parameters/primaryKey'
- $ref: '#/components/parameters/csvDelimiter'
put:
operationId: indexes.documents.upsert
summary: Add or update documents
description: |-
Add a list of documents or update them if they already exist.
If you send an already existing document (same [id](https://docs.meilisearch.com/learn/core_concepts/documents.html#primary-key)) the old document will be only partially updated according to the fields of the new document. Thus, any fields not present in the new document are kept and remained unchanged.
To completely overwrite a document, see Add or replace documents route.
> info
> If the provided index does not exist, it will be created.
> info
> Use the reserved `_geo` object to add geo coordinates to a document. `_geo` is an object made of `lat` and `lng` field.
>
> Use the reserved `_vectors` arrays of floats to add embeddings to a document. `_vectors` is an array of floats or multiple arrays of floats in an outer array.
tags:
- Documents
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/document'
examples:
Example:
value:
- id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
description: ''
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_documentAdditionOrUpdate'
'401':
$ref: '#/components/responses/401'
'413':
$ref: '#/components/responses/413'
parameters:
- schema:
type: string
enum:
- application/json
- text/csv
- application/x-ndjson
in: header
name: Content-Type
description: The content-type associated with the format to be indexed
required: true
- $ref: '#/components/parameters/primaryKey'
- $ref: '#/components/parameters/csvDelimiter'
delete:
operationId: indexes.documents.removeAll
summary: Delete all documents
description: Delete all documents in the specified index.
tags:
- Documents
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_documentDeletion'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/documents/fetch':
post:
operationId: indexes.documents.fetch
summary: Get Documents
description: |
Get [documents](https://docs.meilisearch.com/learn/core_concepts/documents.html) by batch.
tags:
- Documents
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
offset:
type: number
description: Number of documents to skip.
default: 0
limit:
type: number
description: Maximum number of documents returned.
default: 20
fields:
type: array
description: 'Array of attributes whose fields will be present in the returned documents. By default all attributes will be returned.'
items:
type: string
example: '["title", "overview"]'
default: '["*"]'
filter:
$ref: '#/components/schemas/filter'
examples:
Example:
value:
offset: 2
limit: 5
fields:
- name
- picture
filter: 'doggo = "bernese mountain"'
responses:
'200':
description: Ok
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/document'
limit:
$ref: '#/components/schemas/limit'
offset:
$ref: '#/components/schemas/offset'
total:
$ref: '#/components/schemas/total'
required:
- results
- limit
- offset
- total
examples:
Example:
value:
results:
- id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
- id: 45881
title: The Bridge of San Luis Rey
poster: 'https://image.tmdb.org/t/p/w500/4X7quIcdkc24Cveg5XdpfRqxtYA.jpg'
overview: "The Bridge of San Luis Rey is American author Thornton Wilder's second novel, first published in 1927 to worldwide acclaim. It tells the story of several interrelated people who die in the collapse of an Inca rope-fiber suspension bridge in Peru, and the events that lead up to their being on the bridge.[ A friar who has witnessed the tragic accident then goes about inquiring into the lives of the victims, seeking some sort of cosmic answer to the question of why each had to die. The novel won the Pulitzer Prize in 1928."
release_date: 1072915200
limit: 20
offset: 0
total: 2
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
'/indexes/{indexUid}/documents/delete-batch':
post:
operationId: indexes.documents.removeBatch
summary: Delete documents
description: Delete a selection of documents based on array of document id's.
tags:
- Documents
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: array
description: An array of document ids to delete
items:
type:
- string
- number
examples:
Example:
value:
- 1
- 2
- 3
- a string id
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_documentDeletion'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/documents/delete':
post:
operationId: indexes.documents.remove
summary: Delete documents
description: Delete a selection of documents based on a filter.
tags:
- Documents
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
filter:
$ref: '#/components/schemas/filter'
examples:
Example:
value:
offset: 2
limit: 5
fields:
- name
- picture
filter: 'doggo = "bernese mountain"'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_documentDeletion'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/documents/{documentId}':
get:
operationId: indexes.documents.get
summary: Get one document
description: 'Get one [document](https://docs.meilisearch.com/learn/core_concepts/documents.html) using its unique id.'
tags:
- Documents
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/document'
examples: {}
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/fields'
delete:
operationId: indexes.documents.removeOne
summary: Delete one document
description: Delete one document based on its unique id.
tags:
- Documents
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_documentDeletion'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
- $ref: '#/components/parameters/documentId'
'/indexes/{indexUid}/search':
get:
operationId: indexes.documents.searchGet
summary: Search
description: |
Search for documents matching a specific query in the given index.
This route should only be used when no API key is required. If an API key is required, use the POST route instead.
tags:
- Search
security:
- apiKey: []
parameters:
- $ref: '#/components/parameters/q'
- $ref: '#/components/parameters/attributesToRetrieve'
- $ref: '#/components/parameters/attributesToHighlight'
- $ref: '#/components/parameters/highlightPreTag'
- $ref: '#/components/parameters/highlightPostTag'
- $ref: '#/components/parameters/attributesToCrop'
- $ref: '#/components/parameters/cropMarker'
- $ref: '#/components/parameters/cropLength'
- $ref: '#/components/parameters/facets'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/hitsPerPage'
- $ref: '#/components/parameters/showMatchesPosition'
- $ref: '#/components/parameters/matchingStrategy'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/searchResponse'
examples:
Example:
value:
hits:
- id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
_formatted:
id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
_matchesPosition:
overview:
- start: 49
length: 5
- start: 155
length: 5
facetDistribution:
genres:
action: 273
animation: 118
adventure: 132
fantasy: 67
comedy: 475
mystery: 70
thriller: 217
facetStats:
price:
min: 1
max: 4999.99
limit: 0
offset: 0
estimatedTotalHits: 0
query: string
processingTimeMs: 0
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
post:
operationId: indexes.documents.search
summary: Search
description: |
Search for documents matching a specific query in the given index.
This is the preferred route to perform search when an API key is required, as it allows for [preflight requests](https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request) to be cached. Caching preflight requests improves considerably the speed of the search.
tags:
- Search
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/searchQuery'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/searchResponse'
examples:
Example:
value:
hits:
- id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
_formatted:
id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
_matchesPosition:
overview:
- start: 49
length: 5
- start: 155
length: 5
facetDistribution:
genres:
action: 273
animation: 118
adventure: 132
fantasy: 67
comedy: 475
mystery: 70
thriller: 217
facetStats:
price:
min: 1
max: 4999.99
limit: 0
offset: 0
estimatedTotalHits: 0
query: string
processingTimeMs: 0
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/facet-search':
post:
operationId: indexes.documents.facet.search
summary: Facet Search
description: |
Search for facet values matching a specific query for a facet. When many values exist for a facet, users need to be able to discover non-show values they can select in order to refine their faceted search.
tags:
- Search
- Facet
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/facetSearchQuery'
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/facetSearchResponse'
examples:
Example:
value:
facetHits:
- value: Romance
count: 25
- value: Romantic
count: 3
facetQuery: Rom
processingTimeMs: 0
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/settings':
get:
operationId: indexes.settings.get
summary: Get settings
description: |
Get the settings of an index.
[Learn more about the settings](https://docs.meilisearch.com/reference/features/settings.html).
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
type: object
properties:
rankingRules:
$ref: '#/components/schemas/rankingRules'
distinctAttribute:
$ref: '#/components/schemas/distinctAttribute'
searchableAttributes:
$ref: '#/components/schemas/searchableAttributes'
displayedAttributes:
$ref: '#/components/schemas/displayedAttributes'
stopWords:
$ref: '#/components/schemas/stopWords'
synonyms:
$ref: '#/components/schemas/synonyms'
filterableAttributes:
$ref: '#/components/schemas/filterableAttributes'
sortableAttributes:
$ref: '#/components/schemas/sortableAttributes'
typoTolerance:
$ref: '#/components/schemas/typoTolerance'
pagination:
$ref: '#/components/schemas/pagination'
faceting:
$ref: '#/components/schemas/faceting'
required:
- rankingRules
- distinctAttribute
- searchableAttributes
- displayedAttributes
- stopWords
- synonyms
- filterableAttributes
- sortableAttributes
- typoTolerance
- pagination
- faceting
examples:
Example:
value:
rankingRules:
- words
- typo
- proximity
- attribute
- sort
- exactness
- 'release_date:asc'
distinctAttribute: ean13
searchableAttributes:
- title
- description
- genre
displayedAttributes:
- title
- description
- genre
- release_date
stopWords:
- of
- the
- to
synonyms:
wolverine:
- xmen
- logan
logan:
- wolverine
- xmen
wow:
- world of warcraft
filterableAttributes:
- genres
- director
sortableAttributes:
- price
- author
- title
typoTolerance:
enabled: true
disableOnAttributes:
- author
- price
disableOnWords:
- Tolkien
minWordSizeForTypos:
oneTypo: 4
twoTypos: 8
pagination:
maxTotalHits: 1000
faceting:
maxValuesPerFacet: 100
sortFacetValuesBy:
"*": "alpha"
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
patch:
operationId: indexes.settings.update
summary: Update settings
description: |
Update the settings of an index.
Updates in the settings route are partial. This means that any parameters not provided in the body will be left unchanged.
[Learn more about the settings in this guide](https://docs.meilisearch.com/reference/features/settings.html).
> info
> If the provided index does not exist, it will be created.
tags:
- Settings
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
synonyms:
$ref: '#/components/schemas/synonyms'
stopWords:
$ref: '#/components/schemas/stopWords'
rankingRules:
$ref: '#/components/schemas/rankingRules'
distinctAttribute:
$ref: '#/components/schemas/distinctAttribute'
searchableAttributes:
$ref: '#/components/schemas/searchableAttributes'
displayedAttributes:
$ref: '#/components/schemas/displayedAttributes'
filterableAttributes:
$ref: '#/components/schemas/filterableAttributes'
sortableAttributes:
$ref: '#/components/schemas/sortableAttributes'
typoTolerance:
$ref: '#/components/schemas/typoTolerance'
pagination:
$ref: '#/components/schemas/pagination'
faceting:
$ref: '#/components/schemas/faceting'
examples:
Example:
value:
synonyms:
wolverine:
- xmen
- logan
logan:
- wolverine
- xmen
wow:
- world of warcraft
stopWords:
- of
- the
- to
rankingRules:
- words
- typo
- proximity
- attribute
- sort
- exactness
- 'release_date:asc'
distinctAttribute: ean13
searchableAttributes:
- title
- description
- genre
displayedAttributes:
- title
- description
- genre
- release_date
filterableAttributes: []
sortableAttributes: null
typoTolerance:
enabled: false
disableOnAttributes:
- title
- author
disableOnWords:
- Tolkien
minWordSizeForTypos:
oneTypo: 4
twoTypos: 8
pagination:
maxTotalHits: 1000
faceting:
maxValuesPerFacet: 100
sortFacetValuesBy:
"*": "alpha"
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.reset
summary: Reset settings
description: |
Reset the settings of an index.
All settings will be reset to their default value.
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/settings/synonyms':
get:
operationId: indexes.settings.synonyms.get
summary: Get synonyms
description: |
Get the list of [synonyms](https://docs.meilisearch.com/reference/features/synonyms.html) of an index.
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/synonyms'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
put:
operationId: indexes.settings.synonyms.update
summary: Update synonyms
description: |
Update the list of [synonyms](https://docs.meilisearch.com/reference/features/synonyms.html) of an index. Synonyms are [normalized](https://docs.meilisearch.com/reference/features/synonyms.html#normalization).
> info
> If the provided index does not exist, it will be created.
tags:
- Settings
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/synonyms'
examples: {}
description: ''
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.synonyms.reset
summary: Reset synonyms
description: |
Reset the list of [synonyms](https://docs.meilisearch.com/reference/features/synonyms.html) of an index to its default value (`{}`).
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/settings/sortable-attributes':
get:
operationId: indexes.settings.sortable-attributes.get
summary: Get sortable attributes
description: |
Get the list of [sortableAttributes](https://docs.meilisearch.com//reference/features/settings.html#sortable-attributes) of an index.
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/sortableAttributes'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
put:
operationId: indexes.settings.sortable-attributes.update
summary: Update sortable attributes
description: |
Update the list of [sortableAttributes](https://docs.meilisearch.com//reference/features/settings.html#sortable-attributes) of an index.
> info
> In order to enable sorting capabilities on geographic data, the `_geo` field must be added as a sortableAttribute.
tags:
- Settings
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/sortableAttributes'
examples: {}
description: ''
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.sortable-attributes.reset
summary: Reset sortable attributes
description: |
Reset the list of [sortableAttributes](https://docs.meilisearch.com//reference/features/settings.html#sortable-attributes) of an index to its default value (`[]`).
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- name: indexUid
in: path
description: Index Unique Identifier
required: true
schema:
type: string
example: movies
'/indexes/{indexUid}/settings/stop-words':
get:
operationId: indexes.settings.stopWords.get
summary: Get stop-words
description: |
Get the list of [stop-words](https://docs.meilisearch.com/reference/features/stop_words.html) of an index.
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/stopWords'
examples: {}
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
put:
operationId: indexes.settings.stopWords.update
summary: Update stop-words
description: |
Update the list of [stop-words](https://docs.meilisearch.com/reference/features/stop_words.html) of an index.
If a list of stop-words already exists it will be overwritten (replaced).
> info
> If the provided index does not exist, it will be created.
tags:
- Settings
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/stopWords'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.stopWords.reset
summary: Reset stop-words
description: |
Reset the list of [stop-words](https://docs.meilisearch.com/reference/features/stop_words.html) of an index to its default value (`[]`).
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/settings/ranking-rules':
get:
operationId: indexes.settings.rankingRules.get
summary: Get ranking rules
description: |
Get the [ranking rules](https://docs.meilisearch.com/learn/core_concepts/relevancy.html#ranking-rules) of an index.
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/rankingRules'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
put:
operationId: indexes.settings.rankingRules.update
summary: Update ranking rules
description: |
Update the [ranking rules](https://docs.meilisearch.com/learn/core_concepts/relevancy.html#ranking-rules) of an index.
To add your own ranking rule, you have to communicate either `asc` for ascending order or `desc` for descending order followed by the field name in brackets.
* To apply an ascending custom ranking rule: `attribute_name:asc`
* To apply a descending custom ranking rule: `attribute_name:desc`
> info
> If the provided index does not exist, it will be created.
tags:
- Settings
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/rankingRules'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.rankingRules.reset
summary: Reset ranking rules
description: |
Reset the [ranking rules](https://docs.meilisearch.com/learn/core_concepts/relevancy.html#ranking-rules) of an index to its default value.
Default Value:
```json
["words", "typo", "proximity", "attribute", "sort", "exactness"]
```
To remove all ranking rules, which is not recommended in any case, you would send an empty array to the add or replace ranking rules route.
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/settings/typo-tolerance':
get:
operationId: indexes.settings.typoTolerance.get
summary: Get typo tolerance configuration
description: |
Get the typo tolerance configuration of an index.
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/typoTolerance'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
patch:
operationId: indexes.settings.typoTolerance.update
summary: Update typo tolerance settings
description: |
Update the typo tolerance configuration of an index.
> info
> If the provided index does not exist, it will be created.
tags:
- Settings
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/typoTolerance'
examples: {}
description: ''
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.typoTolerance.reset
summary: Reset typo tolerance settings to the default configuration
description: |
Reset the typo tolerance settings of an index to its default configuration.
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/settings/pagination':
get:
operationId: indexes.settings.pagination.get
summary: Get pagination configuration
description: |
Get the pagination configuration of an index.
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/pagination'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
patch:
operationId: indexes.settings.pagination.update
summary: Update pagination settings
description: |
Update the pagination configuration of an index.
> info
> If the provided index does not exist, it will be created.
tags:
- Settings
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/pagination'
examples: {}
description: ''
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.pagination.reset
summary: Reset pagination settings to the default configuration
description: |
Reset the pagination settings of an index to its default configuration.
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/settings/faceting':
get:
operationId: indexes.settings.faceting.get
summary: Get faceting configuration
description: |
Get the faceting configuration of an index.
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/faceting'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
patch:
operationId: indexes.settings.faceting.update
summary: Update faceting settings
description: |
Update the faceting settings of an index.
> info
> If the provided index does not exist, it will be created.
tags:
- Settings
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/faceting'
examples: {}
description: ''
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.faceting.reset
summary: Reset faceting settings to the default configuration
description: |
Reset the faceting settings of an index to its default configuration.
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/settings/filterable-attributes':
get:
operationId: indexes.settings.filterableAttributes.get
summary: Get Filterable Attributes
description: |
Get the [filterable attributes](https://docs.meilisearch.com/reference/features/settings.html#filterable-attributes) of an index.
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/filterableAttributes'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
put:
operationId: indexes.settings.filterableAttributes.update
summary: Update Filterable Attributes
description: |
Update the [filterable attributes](https://docs.meilisearch.com/reference/features/settings.html#filterable-attributes) of an index.
> info
> In order to enable filtering capabilities on geographic data, the `_geo` field must be added as a filterableAttribute.
> info
> If the provided index does not exist, it will be created.
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/filterableAttributes'
description: ''
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.filterableAttributes.reset
summary: Reset Filterable Attributes
description: |
Reset the [filterable attributes](https://docs.meilisearch.com/reference/features/settings.html#filterable-attributes) of an index to its default value (`[]`).
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/settings/distinct-attribute':
get:
operationId: indexes.settings.distinctAttribute.get
summary: Get distinct attribute
description: |
Get the [distinct attribute](https://docs.meilisearch.com/reference/features/settings.html#distinct-attribute) field of an index.
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/distinctAttribute'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
put:
operationId: indexes.settings.distinctAttribute.update
summary: Update distinct attribute
description: |
Update the [distinct attribute](https://docs.meilisearch.com/reference/features/settings.html#distinct-attribute) field of an index.
> info
> If the provided index does not exist, it will be created.
tags:
- Settings
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/distinctAttribute'
description: ''
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.distinctAttribute.reset
summary: Reset distinct attribute
description: |
Reset the [distinct attribute](https://docs.meilisearch.com/reference/features/settings.html#distinct-attribute) field of an index to its default value (`null`).
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/settings/searchable-attributes':
get:
operationId: indexes.settings.searchableAttributes.get
summary: Get searchable attributes
description: |
Get the [searchable attributes](https://docs.meilisearch.com/reference/features/field_properties.html#searchable-fields) of an index.
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/searchableAttributes'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
put:
operationId: indexes.settings.searchableAttributes.update
summary: Update searchable attributes
description: |
Update the [searchable attributes](https://docs.meilisearch.com/reference/features/field_properties.html#searchable-fields) of an index.
> info
> If the provided index does not exist, it will be created.
tags:
- Settings
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/searchableAttributes'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.searchableAttributes.reset
summary: Reset searchable attributes
description: |
Reset the [searchable attributes](https://docs.meilisearch.com/reference/features/field_properties.html#searchable-fields) of an index to its default value (`['*']`).
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/settings/displayed-attributes':
get:
operationId: indexes.settings.displayedAttributes.get
summary: Get displayed attributes
description: |
Get the [displayed attributes](https://docs.meilisearch.com/reference/features/settings.html#displayed-attributes) of an index.
tags:
- Settings
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/displayedAttributes'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
put:
operationId: indexes.settings.displayedAttributes.update
summary: Update displayed attributes
description: |
Update the [displayed attributes](https://docs.meilisearch.com/reference/features/settings.html#displayed-attributes) of an index.
> info
> If the provided index does not exist, it will be created.
tags:
- Settings
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/displayedAttributes'
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/Content-Type'
delete:
operationId: indexes.settings.displayedAttributes.reset
summary: Reset displayed attributes
description: |
Reset the [displayed attributes](https://docs.meilisearch.com/reference/features/settings.html#displayed-attributes) of an index to its default value (`['*']`).
tags:
- Settings
security:
- apiKey: []
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_settingsUpdate'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
'/indexes/{indexUid}/stats':
get:
operationId: indexes.stats.get
summary: Get stat of an index
description: Get stats of an index.
tags:
- Stats
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
$ref: '#/components/schemas/stats'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
parameters:
- $ref: '#/components/parameters/indexUid'
/multi-search:
post:
operationId: multi_search
summary: Multi Search
description: |
Make multiple search queries in a single HTTP request.
The queries can span different indexes or lookup the results of different filters on the same index. Each query has its own results set.
tags:
- Search
security:
- apiKey: []
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
queries:
type: array
description: Array of the search queries to be performed.
items:
type: object
additionalProperties: false
properties:
indexUid:
type: string
description: The unique identifier of the index to be searched.
$ref: '#/components/schemas/searchQuery/properties'
examples:
Example:
value:
indexUid: movies
$ref: '#components/schemas/searchQuery/examples/Example/value'
required:
- indexUid
required:
- queries
examples:
Example:
queries:
- indexUid: movies
q: Harry
offset: 0
limit: 20
filter: (genres = Horror AND genres = Mystery) OR release_date > 523242000
facets:
- genres
- author
attributesToRetrieve:
- title
- overview
attributesToCrop:
- overview
cropLength: 20
attributesToHighlight:
- overview
showMatchesPosition: true
matchingStrategy: all
responses:
'200':
description: Ok
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
results:
type: array
items:
type: object
properties:
indexUid:
type: string
description: The unique identifier of the searched index.
$ref: '#/components/schemas/searchResponse/properties'
examples:
Example:
results:
- indexUid: movies
hits:
- id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
_formatted:
id: 25684
title: American Ninja 5
poster: 'https://image.tmdb.org/t/p/w1280/iuAQVI4mvjI83wnirpD8GVNRVuY.jpg'
overview: 'When a scientists daughter is kidnapped, American Ninja, attempts to find her, but this time he teams up with a youngster he has trained in the ways of the ninja.'
release_date: 725846400
_matchesPosition:
overview:
- start: 49
length: 5
- start: 155
length: 5
limit: 0
offset: 0
estimatedTotalHits: 0
query: string
processingTimeMs: 0
'401':
$ref: '#/components/responses/401'
parameters:
- $ref: '#/components/parameters/Content-Type'
/keys:
get:
operationId: keys.list
summary: Get API Keys
description: |
Get API Keys
tags:
- Keys
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/key'
limit:
$ref: '#/components/schemas/limit'
offset:
$ref: '#/components/schemas/offset'
total:
$ref: '#/components/schemas/total'
required:
- results
- limit
- offset
- total
examples:
example-1:
value:
results:
- uid: 01b4bc42-eb33-4041-b481-254d00cce834
key: d0552b41536279a0ad88bd595327b96f01176a60c2243e906c52ac02375f9bc4
name: An API Key
description: null
actions:
- documents.add
indexes:
- movies
expiresAt: '2022-11-12T10:00:00Z'
createdAt: '2021-11-12T10:00:00Z'
updatedAt: '2021-11-12T10:00:00Z'
limit: 20
offset: 0
total: 1
'401':
$ref: '#/components/responses/401'
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
post:
summary: Create an API Key
operationId: keys.create
tags:
- Keys
security:
- apiKey: []
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/key'
examples:
Create an API Key:
value:
uid: 01b4bc42-eb33-4041-b481-254d00cce834
key: d0552b41536279a0ad88bd595327b96f01176a60c2243e906c52ac02375f9bc4
name: Indexing Products API key
description: null
actions:
- documents.add
indexes:
- products
expiresAt: '2021-11-13T00:00:00Z'
createdAt: '2021-11-12T10:00:00Z'
updatedAt: '2021-11-12T10:00:00Z'
parameters:
- $ref: '#/components/parameters/Content-Type'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/key'
examples:
API Key Creation:
value:
name: Indexing Products API key
actions:
- documents.add
indexes:
- products
expiresAt: '2021-11-13T00:00:00Z'
'/keys/{uid_or_key}':
get:
summary: Get an API key from its uid or key field.
tags:
- Keys
security:
- apiKey: []
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/key'
examples:
Fetch an API Key details:
value:
uid: 01b4bc42-eb33-4041-b481-254d00cce834
key: d0552b41536279a0ad88bd595327b96f01176a60c2243e906c52ac02375f9bc4
name: Indexing Products API key
description: null
actions:
- documents.add
indexes:
- products
expiresAt: '2021-11-13T00:00:00Z'
createdAt: '2021-11-12T10:00:00Z'
updatedAt: '2021-11-12T10:00:00Z'
operationId: keys.get
description: Get an API Key
parameters:
- schema:
type: string
name: uidOrKey
in: path
required: true
description: The uid or the key field value of the API Key.
delete:
summary: Delete an API key specified by its uid or key field.
operationId: keys.delete
tags:
- Keys
security:
- apiKey: []
responses:
'204':
$ref: '#/components/responses/204'
description: ''
patch:
summary: Update an API key specified by its uid or key field.
operationId: keys.update
tags:
- Keys
security:
- apiKey: []
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/key'
examples:
Patch an API Key Response:
value:
uid: 01b4bc42-eb33-4041-b481-254d00cce834
key: d0552b41536279a0ad88bd595327b96f01176a60c2243e906c52ac02375f9bc4
name: Indexing Products API key
description: null
actions:
- documents.add
indexes:
- products
expiresAt: '2021-11-13T00:00:00Z'
createdAt: '2021-11-12T10:00:00Z'
updatedAt: '2021-11-12T15:00:00Z'
parameters:
- $ref: '#/components/parameters/Content-Type'
description: Update an API Key
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type:
- string
- 'null'
description:
type:
- string
- 'null'
additionalProperties: false
examples:
Patch an API Key Request:
value:
description: Indexing Products API key
/stats:
get:
operationId: stats.list
summary: Get stats of all indexes
description: Get stats of all indexes.
tags:
- Stats
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
databaseSize:
type: number
lastUpdate:
$ref: '#/components/schemas/timestamp'
indexes:
type: object
properties:
indexUid:
$ref: '#/components/schemas/stats'
required:
- databaseSize
- lastUpdate
- indexes
examples:
Stats Of All Indexes:
value:
databaseSize: 567
lastUpdate: '2019-11-20T09:40:33.711324Z'
indexes:
movies:
numberOfDocuments: 10
isIndexing: true
fieldDistribution:
genre: 10
author: 9
'401':
$ref: '#/components/responses/401'
/version:
get:
operationId: version.get
summary: Get version of Meilisearch
description: Get version of Meilisearch.
tags:
- Version
security:
- apiKey: []
responses:
'200':
description: Ok
content:
application/json:
schema:
type: object
properties:
commitSha:
type: string
example: b46889b5f0f2f8b91438a08a358ba8f05fc09fc1
commitDate:
type: string
example: '2021-07-08'
pkgVersion:
type: string
example: 0.1.1
additionalProperties: false
required:
- commitSha
- commitDate
- pkgVersion
examples:
Example:
value:
commitSha: b46889b5f0f2f8b91438a08a358ba8f05fc09fc1
commitDate: '2021-07-08'
pkgVersion: 0.23.0
'401':
$ref: '#/components/responses/401'
/tasks:
get:
summary: Get all tasks
description: 'Get all [tasks](https://docs.meilisearch.com/learn/advanced/asynchronous_operations.html)'
tags:
- Tasks
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/task'
total:
$ref: '#/components/schemas/total'
limit:
$ref: '#/components/schemas/limit'
from:
$ref: '#/components/schemas/from'
next:
$ref: '#/components/schemas/next'
required:
- results
- total
- limit
- from
- next
examples:
Example:
value:
results:
- uid: 1
indexUid: movies
status: succeeded
type: documentAdditionOrUpdate
canceledBy: null
details:
receivedDocuments: 79000
indexedDocuments: 79000
error: null
duration: PT1S
enqueuedAt: '2021-01-01T09:39:00.000000Z'
startedAt: '2021-01-01T09:39:01.000000Z'
finishedAt: '2021-01-01T09:39:02.000000Z'
- uid: 0
indexUid: movies_Review
status: failed
type: documentAdditionOrUpdate
canceledBy: null
details:
receivedDocuments: 67493
indexedDocuments: 0
error:
message: 'Document does not have a `:primaryKey` attribute: `:documentRepresentation`.'
code: missing_document_id
type: invalid_request
link: 'https://docs.meilisearch.com/errors#missing_document_id'
duration: PT5S
enqueuedAt: '2021-01-01T09:38:00.000000Z'
startedAt: '2021-01-01T09:38:02.000000Z'
finishedAt: '2021-01-01T09:38:07.000000Z'
limit: 2
from: 1
next: null
operationId: tasks.list
parameters:
- $ref: '#/components/parameters/total'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/from'
- $ref: '#/components/parameters/taskFilterUids'
- $ref: '#/components/parameters/taskFilterIndexUids'
- $ref: '#/components/parameters/taskFilterStatuses'
- $ref: '#/components/parameters/taskFilterTypes'
- $ref: '#/components/parameters/taskFilterCanceledBy'
- $ref: '#/components/parameters/taskFilterBeforeEnqueuedAt'
- $ref: '#/components/parameters/taskFilterAfterEnqueuedAt'
- $ref: '#/components/parameters/taskFilterBeforeStartedAt'
- $ref: '#/components/parameters/taskFilterAfterStartedAt'
- $ref: '#/components/parameters/taskFilterBeforeFinishedAt'
- $ref: '#/components/parameters/taskFilterAfterFinishedAt'
security:
- apiKey: []
delete:
summary: Delete tasks
description: 'Delete finished [tasks](https://docs.meilisearch.com/lean/advanced/asynchronous_operations.html)'
tags:
- Tasks
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schema/summarizedTask'
examples:
'202':
$ref: '#/components/examples/202_taskDeletion'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
operationId: tasks.delete
parameters:
- $ref: '#/components/parameters/taskFilterUids'
- $ref: '#/components/parameters/taskFilterIndexUids'
- $ref: '#/components/parameters/taskFilterStatuses'
- $ref: '#/components/parameters/taskFilterTypes'
- $ref: '#/components/parameters/taskFilterCanceledBy'
- $ref: '#/components/parameters/taskFilterBeforeEnqueuedAt'
- $ref: '#/components/parameters/taskFilterAfterEnqueuedAt'
- $ref: '#/components/parameters/taskFilterBeforeStartedAt'
- $ref: '#/components/parameters/taskFilterAfterStartedAt'
- $ref: '#/components/parameters/taskFilterBeforeFinishedAt'
- $ref: '#/components/parameters/taskFilterAfterFinishedAt'
security:
- apiKey: []
'/tasks/:taskUid':
get:
summary: Get a task
description: 'Get a [task](https://docs.meilisearch.com/learn/advanced/asynchronous_operations.html) '
tags:
- Tasks
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/task'
examples:
Example:
value:
uid: 1
indexUid: movies
status: succeeded
type: documentAdditionOrUpdate
canceledBy: null
details:
receivedDocuments: 79000
indexedDocuments: 79000
error: null
duration: PT1S
enqueuedAt: '2021-01-01T09:39:00.000000Z'
startedAt: '2021-01-01T09:39:01.000000Z'
finishedAt: '2021-01-01T09:39:02.000000Z'
'401':
$ref: '#/components/responses/401'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/error'
examples:
Example:
value:
message: 'Task :taskUid not found.'
code: task_not_found
type: invalid_request
link: 'https://docs.meilisearch.com/errors/#task_not_found'
operationId: tasks.get
parameters:
- $ref: '#/components/parameters/taskUid'
security:
- apiKey: []
'/tasks/cancel':
post:
summary: Cancel tasks
description: 'Cancel enqueued and/or processing [tasks](https://docs.meilisearch.com/learn/advanced/asynchronous_operations.html) '
tags:
- Tasks
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/summarizedTask'
examples:
'202':
$ref: '#/components/examples/202_taskCancelation'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/error'
'401':
$ref: '#/components/responses/401'
operationId: tasks.cancel
parameters:
- $ref: '#/components/parameters/taskFilterUids'
- $ref: '#/components/parameters/taskFilterIndexUids'
- $ref: '#/components/parameters/taskFilterStatuses'
- $ref: '#/components/parameters/taskFilterTypes'
- $ref: '#/components/parameters/taskFilterCanceledBy'
- $ref: '#/components/parameters/taskFilterBeforeEnqueuedAt'
- $ref: '#/components/parameters/taskFilterAfterEnqueuedAt'
- $ref: '#/components/parameters/taskFilterBeforeStartedAt'
- $ref: '#/components/parameters/taskFilterAfterStartedAt'
- $ref: '#/components/parameters/taskFilterBeforeFinishedAt'
- $ref: '#/components/parameters/taskFilterAfterFinishedAt'
security:
- apiKey: []
'/swap-indexes':
post:
operationId: indexes.swap
summary: Swap Indexes
description: Deploy a new version of an index without any downtime for clients by swapping documents, settings, and task history between two indexes. Specifying several swap operations that will be processed in an atomic way is possible.
tags:
- Indexes
security:
- apiKey: []
parameters:
- $ref: '#/components/parameters/Content-Type'
request:
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/swapIndexes'
examples:
Example:
- indexes: ["indexA", "indexA_new"]
- indexes: ["indexB", "indexB_new"]
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/responses/202'
examples:
'202':
$ref: '#/components/examples/202_indexSwap'
'401':
$ref: '#/components/responses/401'
parameters:
- $ref: '#/components/parameters/taskUid'
'/experimental-features':
get:
operationId: experimental.get
security:
- apiKey: []
summary: (EXPERIMENTAL) Get the status of runtime experimental features
description: 'Get the status of all experimental features that can be toggled at runtime'
tags:
- Experimental
responses:
'200':
description: Ok
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
vectorStore:
type: boolean
metrics:
type: boolean
exportPuffinReports:
type: boolean
required:
- vectorStore
- metrics
- exportPuffinReports
examples:
Default status of the features:
value:
vectorStore: false
metrics: true
exportPuffinReports: false
'401':
$ref: '#/components/responses/401'
patch:
operationId: experimental.update
security:
- apiKey: []
summary: (EXPERIMENTAL) Set the status of runtime experimental features
description: 'Set the status of experimental features that can be toggled at runtime'
tags:
- Experimental
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
vectorStore:
type: boolean
metrics:
type: boolean
exportPuffinReports:
type: boolean
additionalProperties: false
examples:
Example:
value:
vectorStore: true
metrics: false
exportPuffinReports: false
responses:
'200':
description: Ok
content:
application/json:
schema:
type: object
additionalProperties: false
properties:
vectorStore:
type: boolean
metrics:
type: boolean
exportPuffinReports:
type: boolean
required:
- vectorStore
- metrics
- exportPuffinReports
examples:
Updated status of the feature:
value:
vectorStore: true
metrics: false
exportPuffinReports: false
'401':
$ref: '#/components/responses/401'
/metrics:
get:
summary: (EXPERIMENTAL) Get prometheus format metrics for observability and monitoring
description: 'See [technical specification](https://github.com/meilisearch/specifications/blob/main/text/0174-metrics-api.md)'
tags:
- Stats
- Experimental
responses:
'200':
description: OK
content:
text/plain:
type: string
examples:
sampleResponse: '
# HELP meilisearch_http_response_time_seconds HTTP response times
# TYPE meilisearch_http_response_time_seconds histogram
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.001"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.002"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.003"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.004"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.005"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.006"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.007"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.008"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.009"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.01"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.02"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.03"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.04"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.05"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.06"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.07"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.08"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.09"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.1"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.2"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.3"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.4"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.5"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.6"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.7"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.8"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="0.9"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="1"} 0
meilisearch_http_response_time_seconds_bucket{method="GET",path="/metrics",le="+Inf"} 0
meilisearch_http_response_time_seconds_sum{method="GET",path="/metrics"} 0
meilisearch_http_response_time_seconds_count{method="GET",path="/metrics"} 0
# HELP meilisearch_db_size_bytes Meilisearch DB Size In Bytes
# TYPE meilisearch_db_size_bytes gauge
meilisearch_db_size_bytes 983040
# HELP meilisearch_http_requests_total Meilisearch HTTP requests total
# TYPE meilisearch_http_requests_total counter
meilisearch_http_requests_total{method="GET",path="/metrics"} 1
# HELP meilisearch_index_count Meilisearch Index Count
# TYPE meilisearch_index_count gauge
meilisearch_index_count 1
# HELP meilisearch_index_docs_count Meilisearch Index Docs Count
# TYPE meilisearch_index_docs_count gauge
meilisearch_index_docs_count{index="mieli"} 1
# HELP meilisearch_nb_tasks Meilisearch Number of tasks
# TYPE meilisearch_nb_tasks gauge
meilisearch_nb_tasks{kind="indexes",value="mieli"} 6
meilisearch_nb_tasks{kind="statuses",value="canceled"} 0
meilisearch_nb_tasks{kind="statuses",value="enqueued"} 0
meilisearch_nb_tasks{kind="statuses",value="failed"} 2
meilisearch_nb_tasks{kind="statuses",value="processing"} 0
meilisearch_nb_tasks{kind="statuses",value="succeeded"} 4
meilisearch_nb_tasks{kind="types",value="documentAdditionOrUpdate"} 2
meilisearch_nb_tasks{kind="types",value="documentDeletion"} 2
meilisearch_nb_tasks{kind="types",value="documentDeletionByFilter"} 0
meilisearch_nb_tasks{kind="types",value="dumpCreation"} 0
meilisearch_nb_tasks{kind="types",value="indexCreation"} 2
meilisearch_nb_tasks{kind="types",value="indexDeletion"} 0
meilisearch_nb_tasks{kind="types",value="indexSwap"} 0
meilisearch_nb_tasks{kind="types",value="indexUpdate"} 0
meilisearch_nb_tasks{kind="types",value="settingsUpdate"} 0
meilisearch_nb_tasks{kind="types",value="snapshotCreation"} 0
meilisearch_nb_tasks{kind="types",value="taskCancelation"} 0
meilisearch_nb_tasks{kind="types",value="taskDeletion"} 0
# HELP meilisearch_last_update Meilisearch Last Update
# TYPE meilisearch_last_update gauge
meilisearch_last_update 1689768676
# HELP meilisearch_is_indexing Meilisearch Is Indexing
# TYPE meilisearch_is_indexing gauge
meilisearch_is_indexing 1
# HELP meilisearch_used_db_size_bytes Meilisearch Used DB Size In Bytes
# TYPE meilisearch_used_db_size_bytes gauge
meilisearch_used_db_size_bytes 344064'
operationId: metrics.get
parameters: []
security:
- apiKey: []
security: []