{"files":{"SKILL.md":"---\nname: meilisearch-core-api\ndescription: \"Meilisearch Core API skill. Use when working with Meilisearch Core for dumps, snapshots, health. Covers 71 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Meilisearch Core API\nAPI version: 1.7.0\n\n## Auth\nBearer bearer\n\n## Base URL\n{protocol}://{domain}:{port}\n\n## Setup\n1. Set Authorization header with Bearer token\n2. GET /health -- get health\n3. POST /dumps -- create first dump\n\n## Endpoints\n71 endpoints across 10 groups. See references/api-spec.lap for full details.\n\n### Dumps\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /dumps | Create a Dump |\n\n### Snapshots\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /snapshots | Create a Snapshot |\n\n### Health\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /health | Get health |\n\n### Indexes\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /indexes | List Indexes |\n| POST | /indexes | Create Index |\n| GET | /indexes/{indexUid} | Get Index |\n| PATCH | /indexes/{indexUid} | Update Index |\n| DELETE | /indexes/{indexUid} | Delete Index |\n| GET | /indexes/{indexUid}/documents | Get Documents |\n| POST | /indexes/{indexUid}/documents | Add or replace documents |\n| PUT | /indexes/{indexUid}/documents | Add or update documents |\n| DELETE | /indexes/{indexUid}/documents | Delete all documents |\n| POST | /indexes/{indexUid}/documents/fetch | Get Documents |\n| POST | /indexes/{indexUid}/documents/delete-batch | Delete documents |\n| POST | /indexes/{indexUid}/documents/delete | Delete documents |\n| GET | /indexes/{indexUid}/documents/{documentId} | Get one document |\n| DELETE | /indexes/{indexUid}/documents/{documentId} | Delete one document |\n| GET | /indexes/{indexUid}/search | Search |\n| POST | /indexes/{indexUid}/search | Search |\n| POST | /indexes/{indexUid}/facet-search | Facet Search |\n| GET | /indexes/{indexUid}/settings | Get settings |\n| PATCH | /indexes/{indexUid}/settings | Update settings |\n| DELETE | /indexes/{indexUid}/settings | Reset settings |\n| GET | /indexes/{indexUid}/settings/synonyms | Get synonyms |\n| PUT | /indexes/{indexUid}/settings/synonyms | Update synonyms |\n| DELETE | /indexes/{indexUid}/settings/synonyms | Reset synonyms |\n| GET | /indexes/{indexUid}/settings/sortable-attributes | Get sortable attributes |\n| PUT | /indexes/{indexUid}/settings/sortable-attributes | Update sortable attributes |\n| DELETE | /indexes/{indexUid}/settings/sortable-attributes | Reset sortable attributes |\n| GET | /indexes/{indexUid}/settings/stop-words | Get stop-words |\n| PUT | /indexes/{indexUid}/settings/stop-words | Update stop-words |\n| DELETE | /indexes/{indexUid}/settings/stop-words | Reset stop-words |\n| GET | /indexes/{indexUid}/settings/ranking-rules | Get ranking rules |\n| PUT | /indexes/{indexUid}/settings/ranking-rules | Update ranking rules |\n| DELETE | /indexes/{indexUid}/settings/ranking-rules | Reset ranking rules |\n| GET | /indexes/{indexUid}/settings/typo-tolerance | Get typo tolerance configuration |\n| PATCH | /indexes/{indexUid}/settings/typo-tolerance | Update typo tolerance settings |\n| DELETE | /indexes/{indexUid}/settings/typo-tolerance | Reset typo tolerance settings to the default configuration |\n| GET | /indexes/{indexUid}/settings/pagination | Get pagination configuration |\n| PATCH | /indexes/{indexUid}/settings/pagination | Update pagination settings |\n| DELETE | /indexes/{indexUid}/settings/pagination | Reset pagination settings to the default configuration |\n| GET | /indexes/{indexUid}/settings/faceting | Get faceting configuration |\n| PATCH | /indexes/{indexUid}/settings/faceting | Update faceting settings |\n| DELETE | /indexes/{indexUid}/settings/faceting | Reset faceting settings to the default configuration |\n| GET | /indexes/{indexUid}/settings/filterable-attributes | Get Filterable Attributes |\n| PUT | /indexes/{indexUid}/settings/filterable-attributes | Update Filterable Attributes |\n| DELETE | /indexes/{indexUid}/settings/filterable-attributes | Reset Filterable Attributes |\n| GET | /indexes/{indexUid}/settings/distinct-attribute | Get distinct attribute |\n| PUT | /indexes/{indexUid}/settings/distinct-attribute | Update distinct attribute |\n| DELETE | /indexes/{indexUid}/settings/distinct-attribute | Reset distinct attribute |\n| GET | /indexes/{indexUid}/settings/searchable-attributes | Get searchable attributes |\n| PUT | /indexes/{indexUid}/settings/searchable-attributes | Update searchable attributes |\n| DELETE | /indexes/{indexUid}/settings/searchable-attributes | Reset searchable attributes |\n| GET | /indexes/{indexUid}/settings/displayed-attributes | Get displayed attributes |\n| PUT | /indexes/{indexUid}/settings/displayed-attributes | Update displayed attributes |\n| DELETE | /indexes/{indexUid}/settings/displayed-attributes | Reset displayed attributes |\n| GET | /indexes/{indexUid}/stats | Get stat of an index |\n\n### Keys\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /keys | Get API Keys |\n| POST | /keys | Create an API Key |\n| GET | /keys/{uid_or_key} | Get an API key from its uid or key field. |\n| DELETE | /keys/{uid_or_key} | Delete an API key specified by its uid or key field. |\n| PATCH | /keys/{uid_or_key} | Update an API key specified by its uid or key field. |\n\n### Stats\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /stats | Get stats of all indexes |\n\n### Version\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /version | Get version of Meilisearch |\n\n### Tasks\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /tasks | Get all tasks |\n| DELETE | /tasks | Delete tasks |\n| GET | /tasks/:taskUid | Get a task |\n| POST | /tasks/cancel | Cancel tasks |\n\n### Experimental-features\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /experimental-features | (EXPERIMENTAL) Get the status of runtime experimental features |\n| PATCH | /experimental-features | (EXPERIMENTAL) Set the status of runtime experimental features |\n\n### Metrics\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /metrics | (EXPERIMENTAL) Get prometheus format metrics for observability and monitoring |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a dump?\" -> POST /dumps\n- \"Create a snapshot?\" -> POST /snapshots\n- \"List all health?\" -> GET /health\n- \"List all indexes?\" -> GET /indexes\n- \"Create a indexe?\" -> POST /indexes\n- \"Get indexe details?\" -> GET /indexes/{indexUid}\n- \"Partially update a indexe?\" -> PATCH /indexes/{indexUid}\n- \"Delete a indexe?\" -> DELETE /indexes/{indexUid}\n- \"List all documents?\" -> GET /indexes/{indexUid}/documents\n- \"Create a document?\" -> POST /indexes/{indexUid}/documents\n- \"Create a fetch?\" -> POST /indexes/{indexUid}/documents/fetch\n- \"Create a delete-batch?\" -> POST /indexes/{indexUid}/documents/delete-batch\n- \"Create a delete?\" -> POST /indexes/{indexUid}/documents/delete\n- \"Get document details?\" -> GET /indexes/{indexUid}/documents/{documentId}\n- \"Delete a document?\" -> DELETE /indexes/{indexUid}/documents/{documentId}\n- \"Search search?\" -> GET /indexes/{indexUid}/search\n- \"Create a search?\" -> POST /indexes/{indexUid}/search\n- \"Create a facet-search?\" -> POST /indexes/{indexUid}/facet-search\n- \"List all settings?\" -> GET /indexes/{indexUid}/settings\n- \"List all synonyms?\" -> GET /indexes/{indexUid}/settings/synonyms\n- \"List all sortable-attributes?\" -> GET /indexes/{indexUid}/settings/sortable-attributes\n- \"List all stop-words?\" -> GET /indexes/{indexUid}/settings/stop-words\n- \"List all ranking-rules?\" -> GET /indexes/{indexUid}/settings/ranking-rules\n- \"List all typo-tolerance?\" -> GET /indexes/{indexUid}/settings/typo-tolerance\n- \"List all pagination?\" -> GET /indexes/{indexUid}/settings/pagination\n- \"List all faceting?\" -> GET /indexes/{indexUid}/settings/faceting\n- \"List all filterable-attributes?\" -> GET /indexes/{indexUid}/settings/filterable-attributes\n- \"List all distinct-attribute?\" -> GET /indexes/{indexUid}/settings/distinct-attribute\n- \"List all searchable-attributes?\" -> GET /indexes/{indexUid}/settings/searchable-attributes\n- \"List all displayed-attributes?\" -> GET /indexes/{indexUid}/settings/displayed-attributes\n- \"List all stats?\" -> GET /indexes/{indexUid}/stats\n- \"List all keys?\" -> GET /keys\n- \"Create a key?\" -> POST /keys\n- \"Get key details?\" -> GET /keys/{uid_or_key}\n- \"Delete a key?\" -> DELETE /keys/{uid_or_key}\n- \"Partially update a key?\" -> PATCH /keys/{uid_or_key}\n- \"List all version?\" -> GET /version\n- \"List all tasks?\" -> GET /tasks\n- \"List all :taskUid?\" -> GET /tasks/:taskUid\n- \"Create a cancel?\" -> POST /tasks/cancel\n- \"List all experimental-features?\" -> GET /experimental-features\n- \"List all metrics?\" -> GET /metrics\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Meilisearch Core API\n@base {protocol}://{domain}:{port}\n@version 1.7.0\n@auth Bearer bearer\n@endpoints 71\n@hint download_for_search\n@toc dumps(1), snapshots(1), health(1), indexes(54), keys(5), stats(1), version(1), tasks(4), experimental-features(2), metrics(1)\n\n@group dumps\n@endpoint POST /dumps\n@desc Create a Dump\n@returns(202) Accepted\n@errors {401: Unauthorized}\n\n@endgroup\n\n@group snapshots\n@endpoint POST /snapshots\n@desc Create a Snapshot\n@returns(202) Accepted\n@errors {401: Unauthorized}\n\n@endgroup\n\n@group health\n@endpoint GET /health\n@desc Get health\n@returns(200) {status: str} # Ok\n\n@endgroup\n\n@group indexes\n@endpoint GET /indexes\n@desc List Indexes\n@optional {limit: num=20 # Maximum number of results to return., offset: num=0 # Number of results to skip.}\n@returns(200) {results: [map], limit: int, offset: int, total: int} # Ok\n@errors {401: Unauthorized}\n\n@endpoint POST /indexes\n@desc Create Index\n@required {Content-Type: str # Payload content-type, uid: str}\n@optional {primaryKey: str}\n@returns(202) Accepted\n@errors {400: Bad Request, 401: Unauthorized}\n@example_request {\"uid\":\"movies\",\"primaryKey\":\"movie_id\"}\n\n@endpoint GET /indexes/{indexUid}\n@desc Get Index\n@returns(200) {uid: str, primaryKey: str?, createdAt: str, updatedAt: str} # OK\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PATCH /indexes/{indexUid}\n@desc Update Index\n@required {Content-Type: str # Payload content-type, primaryKey: str}\n@returns(202) Accepted\n@errors {400: Bad Request, 401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}\n@desc Delete Index\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/documents\n@desc Get Documents\n@optional {limit: num=20 # Maximum number of results to return., offset: num=0 # Number of results to skip., fields: str=* # Comma-separated list of fields to display for an API resource. By default it contains all fields of an API resource., filter: any # 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).}\n@returns(200) {results: [map], limit: int, offset: int, total: int} # Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint POST /indexes/{indexUid}/documents\n@desc Add or replace documents\n@required {Content-Type: str(application/json/text/csv/application/x-ndjson) # The content-type associated with the format to be indexed}\n@optional {primaryKey: str # 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., csvDelimiter: str=, # Customize the csv delimiter when importing CSV documents. By default its a comma \",\"}\n@returns(202) Accepted\n@errors {401: Unauthorized, 413: Payload Too Large}\n\n@endpoint PUT /indexes/{indexUid}/documents\n@desc Add or update documents\n@required {Content-Type: str(application/json/text/csv/application/x-ndjson) # The content-type associated with the format to be indexed}\n@optional {primaryKey: str # 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., csvDelimiter: str=, # Customize the csv delimiter when importing CSV documents. By default its a comma \",\"}\n@returns(202) Accepted\n@errors {401: Unauthorized, 413: Payload Too Large}\n@example_request [{\"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}]\n\n@endpoint DELETE /indexes/{indexUid}/documents\n@desc Delete all documents\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint POST /indexes/{indexUid}/documents/fetch\n@desc Get Documents\n@optional {offset: num=0 # Number of documents to skip., limit: num=20 # Maximum number of documents returned., fields: [str] # Array of attributes whose fields will be present in the returned documents. By default all attributes will be returned., filter: any # 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).}\n@returns(200) {results: [map], limit: int, offset: int, total: int} # Ok\n@errors {401: Unauthorized, 404: Not Found}\n@example_request {\"offset\":2,\"limit\":5,\"fields\":[\"name\",\"picture\"],\"filter\":\"doggo = \\\"bernese mountain\\\"\"}\n\n@endpoint POST /indexes/{indexUid}/documents/delete-batch\n@desc Delete documents\n@required {Content-Type: str # Payload content-type}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n@example_request [1,2,3,\"a string id\"]\n\n@endpoint POST /indexes/{indexUid}/documents/delete\n@desc Delete documents\n@required {Content-Type: str # Payload content-type}\n@optional {filter: any # 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).}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n@example_request {\"offset\":2,\"limit\":5,\"fields\":[\"name\",\"picture\"],\"filter\":\"doggo = \\\"bernese mountain\\\"\"}\n\n@endpoint GET /indexes/{indexUid}/documents/{documentId}\n@desc Get one document\n@optional {fields: str=* # Comma-separated list of fields to display for an API resource. By default it contains all fields of an API resource.}\n@returns(200) Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/documents/{documentId}\n@desc Delete one document\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/search\n@desc Search\n@optional {q: str=\"\" # Query string., attributesToRetrieve: str=* # 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., attributesToHighlight: str # Comma-separated list of attributes whose values will contain highlighted matching terms. Highlighted attributes are returned in `_formatted` response object., highlightPreTag: str=<em> # Specify the tag to put before the highlighted query terms., highlightPostTag: str=</em> # Specify the tag to put after the highlighted query terms., attributesToCrop: str # Comma-separated list of attributes whose values have to be cropped. Cropped attributes are returned in `_formatted` response object., cropMarker: str=… # Sets the crop marker to apply before and/or after cropped part selected within an attribute defined in `attributesToCrop` parameter., cropLength: int=10 # Sets the total number of words to keep around the matched part of an attribute specified in the `attributesToCrop` parameter., facets: str # 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), filter: any # 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)., offset: num=0 # Number of results to skip., sort: str # 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., limit: num=20 # Maximum number of results to return., page: num=1 # Sets the specific results page., hitsPerPage: num=20 # Sets the number of results returned for a query. If hitsPerPage is not provided as a query parameter, this parameter is ignored., showMatchesPosition: bool=false # Defines whether an `_matchesPosition` object that contains information about the matches should be returned or not., matchingStrategy: str(last/all)=last # 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.}\n@returns(200) {hits: [map], offset: int, limit: int, estimatedTotalHits: int, page: int, hitsPerPage: int, totalHits: int, totalPages: int, facetDistribution: map, facetStats: map, processingTimeMs: int, query: str} # Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint POST /indexes/{indexUid}/search\n@desc Search\n@required {Content-Type: str # Payload content-type}\n@optional {q: str=\"\" # Query string., vector: [any]=null # Query vector., attributesToRetrieve: [str] # 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., attributesToHighlight: [str] # Array of attributes whose values will contain highlighted matching terms. Highlighted attributes are returned in `_formatted` response object., highlightPreTag: str=<em> # Specify the tag to put before the highlighted query terms., highlightPostTag: str=</em> # Specify the tag to put after the highlighted query terms., attributesToCrop: [str] # Array of attributes whose values have to be cropped. Cropped attributes are returned in `_formatted` response object., cropMarker: str=… # Sets the crop marker to apply before and/or after cropped part selected within an attribute defined in `attributesToCrop` parameter., cropLength: num=10 # Sets the total number of **words** to keep for the cropped part of an attribute specified in the `attributesToCrop` parameter., showMatchesPosition: bool=false # Defines whether an `_matchesPosition` object that contains information about the matches should be returned or not., showRankingScore: bool=false # Defines whether a `_rankingScore` number representing the relevancy score of that document should be returned or not., showRankingScoreDetails: bool=false # Defines whether a `_rankingScoreDetails` object containing information about the score of that document for each ranking rule should be returned or not., matchingStrategy: str=last # 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., attributesToSearchOn: [any]=[\"*\"] # Defines which `searchableAttributes` the query will search on., filter: any # 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)., facets: [str] # 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), offset: num=0 # Number of documents to skip., limit: num=20 # Maximum number of documents returned., page: num # The specific search results page to fetch., hitsPerPage: num # Number of returned results per page., sort: any # 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.}\n@returns(200) {hits: [map], offset: int, limit: int, estimatedTotalHits: int, page: int, hitsPerPage: int, totalHits: int, totalPages: int, facetDistribution: map, facetStats: map, processingTimeMs: int, query: str} # Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint POST /indexes/{indexUid}/facet-search\n@desc Facet Search\n@required {Content-Type: str # Payload content-type}\n@optional {facetName: str # Query string., facetQuery: str=\"\", q: str=\"\" # 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, matchingStrategy: str=last # 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, filter: any # 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).}\n@returns(200) {facetHits: [map], facetQuery: str, processingTimeMs: int} # Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings\n@desc Get settings\n@returns(200) {rankingRules: [str], distinctAttribute: str?, searchableAttributes: [str], displayedAttributes: [str], stopWords: [str], synonyms: map, filterableAttributes: [str], sortableAttributes: [str], typoTolerance: map{enabled: bool, disableOnAttributes: [str], disableOnWords: [str], minWordSizeForTypos: map{oneTypo: int, twoTypos: int}}, pagination: map{maxTotalHits: int}, faceting: map{maxValuesPerFacet: int, sortFacetValuesBy: map}} # Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PATCH /indexes/{indexUid}/settings\n@desc Update settings\n@required {Content-Type: str # Payload content-type}\n@optional {synonyms: map # List of associated words treated similarly. A word associated to an array of word as synonyms., stopWords: [str] # List of words ignored when present in search queries., rankingRules: [str] # 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)., distinctAttribute: str # Search returns documents with distinct (different) values of the given field., searchableAttributes: [str] # Fields in which to search for matching query words sorted by order of importance., displayedAttributes: [str] # Fields displayed in the returned documents., filterableAttributes: [str] # Attributes to use for faceting and filtering. See [Filtering and Faceted Search](https://docs.meilisearch.com/reference/features/filtering_and_faceted_search.html)., sortableAttributes: [str] # List of attributes to sort on at search., typoTolerance: map{enabled: bool, disableOnAttributes: [str], disableOnWords: [str], minWordSizeForTypos: map} # Customize typo tolerance feature., pagination: map{maxTotalHits: int} # Customize pagination settings, faceting: map{maxValuesPerFacet: int, sortFacetValuesBy: map} # Customize faceting settings}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n@example_request {\"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\"}}}\n\n@endpoint DELETE /indexes/{indexUid}/settings\n@desc Reset settings\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings/synonyms\n@desc Get synonyms\n@returns(200) Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PUT /indexes/{indexUid}/settings/synonyms\n@desc Update synonyms\n@required {Content-Type: str # Payload content-type}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/settings/synonyms\n@desc Reset synonyms\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings/sortable-attributes\n@desc Get sortable attributes\n@returns(200) Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PUT /indexes/{indexUid}/settings/sortable-attributes\n@desc Update sortable attributes\n@required {Content-Type: str # Payload content-type}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/settings/sortable-attributes\n@desc Reset sortable attributes\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings/stop-words\n@desc Get stop-words\n@returns(200) Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PUT /indexes/{indexUid}/settings/stop-words\n@desc Update stop-words\n@required {Content-Type: str # Payload content-type}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/settings/stop-words\n@desc Reset stop-words\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings/ranking-rules\n@desc Get ranking rules\n@returns(200) Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PUT /indexes/{indexUid}/settings/ranking-rules\n@desc Update ranking rules\n@required {Content-Type: str # Payload content-type}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/settings/ranking-rules\n@desc Reset ranking rules\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings/typo-tolerance\n@desc Get typo tolerance configuration\n@returns(200) {enabled: bool, disableOnAttributes: [str], disableOnWords: [str], minWordSizeForTypos: map{oneTypo: int, twoTypos: int}} # Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PATCH /indexes/{indexUid}/settings/typo-tolerance\n@desc Update typo tolerance settings\n@required {Content-Type: str # Payload content-type}\n@optional {enabled: bool=true # Enable the typo tolerance feature., disableOnAttributes: [str]= # Disable the typo tolerance feature on the specified attributes., disableOnWords: [str]= # Disable the typo tolerance feature for a set of query terms given for a search query., minWordSizeForTypos: map{oneTypo: int, twoTypos: int}}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/settings/typo-tolerance\n@desc Reset typo tolerance settings to the default configuration\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings/pagination\n@desc Get pagination configuration\n@returns(200) {maxTotalHits: int} # Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PATCH /indexes/{indexUid}/settings/pagination\n@desc Update pagination settings\n@required {Content-Type: str # Payload content-type}\n@optional {maxTotalHits: int=1000 # 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**.}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/settings/pagination\n@desc Reset pagination settings to the default configuration\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings/faceting\n@desc Get faceting configuration\n@returns(200) {maxValuesPerFacet: int, sortFacetValuesBy: map} # Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PATCH /indexes/{indexUid}/settings/faceting\n@desc Update faceting settings\n@required {Content-Type: str # Payload content-type}\n@optional {maxValuesPerFacet: int=100 # 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., sortFacetValuesBy: map # 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.}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/settings/faceting\n@desc Reset faceting settings to the default configuration\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings/filterable-attributes\n@desc Get Filterable Attributes\n@returns(200) Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PUT /indexes/{indexUid}/settings/filterable-attributes\n@desc Update Filterable Attributes\n@required {Content-Type: str # Payload content-type}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/settings/filterable-attributes\n@desc Reset Filterable Attributes\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings/distinct-attribute\n@desc Get distinct attribute\n@returns(200) Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PUT /indexes/{indexUid}/settings/distinct-attribute\n@desc Update distinct attribute\n@required {Content-Type: str # Payload content-type}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/settings/distinct-attribute\n@desc Reset distinct attribute\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings/searchable-attributes\n@desc Get searchable attributes\n@returns(200) Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PUT /indexes/{indexUid}/settings/searchable-attributes\n@desc Update searchable attributes\n@required {Content-Type: str # Payload content-type}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/settings/searchable-attributes\n@desc Reset searchable attributes\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/settings/displayed-attributes\n@desc Get displayed attributes\n@returns(200) Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint PUT /indexes/{indexUid}/settings/displayed-attributes\n@desc Update displayed attributes\n@required {Content-Type: str # Payload content-type}\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint DELETE /indexes/{indexUid}/settings/displayed-attributes\n@desc Reset displayed attributes\n@returns(202) Accepted\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint GET /indexes/{indexUid}/stats\n@desc Get stat of an index\n@returns(200) {numberOfDocuments: int, isIndexing: bool, fieldDistribution: map} # Ok\n@errors {401: Unauthorized, 404: Not Found}\n\n@endgroup\n\n@group keys\n@endpoint GET /keys\n@desc Get API Keys\n@optional {limit: num=20 # Maximum number of results to return., offset: num=0 # Number of results to skip.}\n@returns(200) {results: [map], limit: int, offset: int, total: int} # Ok\n@errors {401: Unauthorized}\n\n@endpoint POST /keys\n@desc Create an API Key\n@required {Content-Type: str # Payload content-type, actions: [str] # 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., indexes: [str] # 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_\"., expiresAt: str # Represent the expiration date and time as RFC 3339 format. null equals to no expiration time.}\n@optional {uid: str # A uuid v4 to identify the API Key. If not specified, it's generated by Meilisearch., key: str # 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., name: str=null # A human-readable name for the key. null if empty., description: str=null # A description for the key. null if empty., createdAt: str # Represent the date and time as RFC 3339 format when the API key has been created. Generated by Meilisearch., updatedAt: str=null # Represent the date and time as RFC 3339 format when the API key has been updated. Generated by Meilisearch.}\n@returns(200) {uid: str, key: str, actions: [str], indexes: [str], name: str?, description: str?, expiresAt: str?, createdAt: str, updatedAt: str?} # OK\n@example_request {\"name\":\"Indexing Products API key\",\"actions\":[\"documents.add\"],\"indexes\":[\"products\"],\"expiresAt\":\"2021-11-13T00:00:00Z\"}\n\n@endpoint GET /keys/{uid_or_key}\n@desc Get an API key from its uid or key field.\n@required {uidOrKey: str # The uid or the key field value of the API Key.}\n@returns(200) {uid: str, key: str, actions: [str], indexes: [str], name: str?, description: str?, expiresAt: str?, createdAt: str, updatedAt: str?} # OK\n\n@endpoint DELETE /keys/{uid_or_key}\n@desc Delete an API key specified by its uid or key field.\n@returns(204) No Content\n\n@endpoint PATCH /keys/{uid_or_key}\n@desc Update an API key specified by its uid or key field.\n@required {Content-Type: str # Payload content-type}\n@optional {name: str, description: str}\n@returns(200) {uid: str, key: str, actions: [str], indexes: [str], name: str?, description: str?, expiresAt: str?, createdAt: str, updatedAt: str?} # OK\n@example_request {\"description\":\"Indexing Products API key\"}\n\n@endgroup\n\n@group stats\n@endpoint GET /stats\n@desc Get stats of all indexes\n@returns(200) {databaseSize: num, lastUpdate: str, indexes: map{indexUid: map{numberOfDocuments: int, isIndexing: bool, fieldDistribution: map}}} # Ok\n@errors {401: Unauthorized}\n\n@endgroup\n\n@group version\n@endpoint GET /version\n@desc Get version of Meilisearch\n@returns(200) {commitSha: str, commitDate: str, pkgVersion: str} # Ok\n@errors {401: Unauthorized}\n\n@endgroup\n\n@group tasks\n@endpoint GET /tasks\n@desc Get all tasks\n@optional {limit: num=20 # Maximum number of results to return., from: num # Fetch the next set of results from the given uid., uids: num # 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., indexUids: str # 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., statuses: str # 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., types: str # 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., canceledBy: str # 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., beforeEnqueuedAt: str # Permits to filter tasks based on their enqueuedAt time. Matches tasks enqueued before the given date. Supports RFC 3339 date format., afterEnqueuedAt: str # Permits to filter tasks based on their enqueuedAt time. Matches tasks enqueued after the given date. Supports RFC 3339 date format., beforeStartedAt: str # Permits to filter tasks based on their startedAt time. Matches tasks started before the given date. Supports RFC 3339 date format., afterStartedAt: str # Permits to filter tasks based on their startedAt time. Matches tasks started after the given date. Supports RFC 3339 date format., beforeFinishedAt: str # Permits to filter tasks based on their finishedAt time. Matches tasks finished before the given date. Supports RFC 3339 date format., afterFinishedAt: str # Permits to filter tasks based on their finishedAt time. Matches tasks finished after the given date. Supports RFC 3339 date format.}\n@returns(200) {results: [map], total: int, limit: int, from: int, next: int} # OK\n\n@endpoint DELETE /tasks\n@desc Delete tasks\n@optional {uids: num # 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., indexUids: str # 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., statuses: str # 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., types: str # 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., canceledBy: str # 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., beforeEnqueuedAt: str # Permits to filter tasks based on their enqueuedAt time. Matches tasks enqueued before the given date. Supports RFC 3339 date format., afterEnqueuedAt: str # Permits to filter tasks based on their enqueuedAt time. Matches tasks enqueued after the given date. Supports RFC 3339 date format., beforeStartedAt: str # Permits to filter tasks based on their startedAt time. Matches tasks started before the given date. Supports RFC 3339 date format., afterStartedAt: str # Permits to filter tasks based on their startedAt time. Matches tasks started after the given date. Supports RFC 3339 date format., beforeFinishedAt: str # Permits to filter tasks based on their finishedAt time. Matches tasks finished before the given date. Supports RFC 3339 date format., afterFinishedAt: str # Permits to filter tasks based on their finishedAt time. Matches tasks finished after the given date. Supports RFC 3339 date format.}\n@returns(202) Accepted\n@errors {400: Bad Request}\n\n@endpoint GET /tasks/:taskUid\n@desc Get a task\n@required {taskUid: int # The task identifier}\n@returns(200) {uid: int, indexUid: str, status: str, type: str, canceledBy: int, details: map{receivedDocuments: int, indexedDocuments: int, providedIds: int, deletedDocuments: int, primaryKey: str, settings: map{synonyms: map, stopWords: [str], rankingRules: [str], filterableAttributes: [str], distinctAttribute: str?, searchableAttributes: [str], displayedAttributes: [str], typoTolerance: map{enabled: bool, disableOnAttributes: [str], disableOnWords: [str], minWordSizeForTypos: map}}, dumpUid: str, matchedTasks: int, canceledTasks: int, deletedTasks: int, originalFilter: str}, error: map{message: str, code: str, type: str, link: str}, duration: str?, enqueuedAt: str, startedAt: str, finishedAt: str} # OK\n@errors {401: Unauthorized, 404: Not Found}\n\n@endpoint POST /tasks/cancel\n@desc Cancel tasks\n@optional {uids: num # 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., indexUids: str # 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., statuses: str # 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., types: str # 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., canceledBy: str # 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., beforeEnqueuedAt: str # Permits to filter tasks based on their enqueuedAt time. Matches tasks enqueued before the given date. Supports RFC 3339 date format., afterEnqueuedAt: str # Permits to filter tasks based on their enqueuedAt time. Matches tasks enqueued after the given date. Supports RFC 3339 date format., beforeStartedAt: str # Permits to filter tasks based on their startedAt time. Matches tasks started before the given date. Supports RFC 3339 date format., afterStartedAt: str # Permits to filter tasks based on their startedAt time. Matches tasks started after the given date. Supports RFC 3339 date format., beforeFinishedAt: str # Permits to filter tasks based on their finishedAt time. Matches tasks finished before the given date. Supports RFC 3339 date format., afterFinishedAt: str # Permits to filter tasks based on their finishedAt time. Matches tasks finished after the given date. Supports RFC 3339 date format.}\n@returns(202) {taskUid: int, indexUid: str, status: str, type: str, enqueuedAt: str} # Accepted\n@errors {400: Bad Request, 401: Unauthorized}\n\n@endgroup\n\n@group experimental-features\n@endpoint GET /experimental-features\n@desc (EXPERIMENTAL) Get the status of runtime experimental features\n@returns(200) {vectorStore: bool, metrics: bool, exportPuffinReports: bool} # Ok\n@errors {401: Unauthorized}\n\n@endpoint PATCH /experimental-features\n@desc (EXPERIMENTAL) Set the status of runtime experimental features\n@optional {vectorStore: bool, metrics: bool, exportPuffinReports: bool}\n@returns(200) {vectorStore: bool, metrics: bool, exportPuffinReports: bool} # Ok\n@errors {401: Unauthorized}\n@example_request {\"vectorStore\":true,\"metrics\":false,\"exportPuffinReports\":false}\n\n@endgroup\n\n@group metrics\n@endpoint GET /metrics\n@desc (EXPERIMENTAL) Get prometheus format metrics for observability and monitoring\n@returns(200) OK\n\n@endgroup\n\n@end\n"}}