curl \
-X POST 'MEILISEARCH_URL/indexes/INDEX_NAME/fields' \
-H 'Content-Type: application/json'import requests
url = "http://localhost:7700/indexes/{index_uid}/fields"
payload = {
"offset": 1,
"limit": 1,
"filter": {
"attributePatterns": { "patterns": ["title", "overview_*", "release_date"] },
"displayed": True,
"searchable": True,
"sortable": True,
"distinct": True,
"rankingRule": True,
"filterable": True
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
offset: 1,
limit: 1,
filter: {
attributePatterns: {patterns: ['title', 'overview_*', 'release_date']},
displayed: true,
searchable: true,
sortable: true,
distinct: true,
rankingRule: true,
filterable: true
}
})
};
fetch('http://localhost:7700/indexes/{index_uid}/fields', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "7700",
CURLOPT_URL => "http://localhost:7700/indexes/{index_uid}/fields",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offset' => 1,
'limit' => 1,
'filter' => [
'attributePatterns' => [
'patterns' => [
'title',
'overview_*',
'release_date'
]
],
'displayed' => true,
'searchable' => true,
'sortable' => true,
'distinct' => true,
'rankingRule' => true,
'filterable' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:7700/indexes/{index_uid}/fields"
payload := strings.NewReader("{\n \"offset\": 1,\n \"limit\": 1,\n \"filter\": {\n \"attributePatterns\": {\n \"patterns\": [\n \"title\",\n \"overview_*\",\n \"release_date\"\n ]\n },\n \"displayed\": true,\n \"searchable\": true,\n \"sortable\": true,\n \"distinct\": true,\n \"rankingRule\": true,\n \"filterable\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:7700/indexes/{index_uid}/fields")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"offset\": 1,\n \"limit\": 1,\n \"filter\": {\n \"attributePatterns\": {\n \"patterns\": [\n \"title\",\n \"overview_*\",\n \"release_date\"\n ]\n },\n \"displayed\": true,\n \"searchable\": true,\n \"sortable\": true,\n \"distinct\": true,\n \"rankingRule\": true,\n \"filterable\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:7700/indexes/{index_uid}/fields")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offset\": 1,\n \"limit\": 1,\n \"filter\": {\n \"attributePatterns\": {\n \"patterns\": [\n \"title\",\n \"overview_*\",\n \"release_date\"\n ]\n },\n \"displayed\": true,\n \"searchable\": true,\n \"sortable\": true,\n \"distinct\": true,\n \"rankingRule\": true,\n \"filterable\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"name": "title",
"displayed": {
"enabled": true
},
"searchable": {
"enabled": true
},
"sortable": {
"enabled": true
},
"distinct": {
"enabled": false
},
"rankingRule": {
"enabled": false,
"order": []
},
"filterable": {
"enabled": false,
"sortBy": "count",
"facetSearch": false,
"equality": false,
"comparison": false
},
"localized": {
"locales": []
}
},
{
"name": "genre",
"displayed": {
"enabled": true
},
"searchable": {
"enabled": false
},
"sortable": {
"enabled": false
},
"distinct": {
"enabled": false
},
"rankingRule": {
"enabled": false,
"order": []
},
"filterable": {
"enabled": true,
"sortBy": "alpha",
"facetSearch": true,
"equality": true,
"comparison": false
},
"localized": {
"locales": []
}
}
],
"offset": 0,
"limit": 20,
"total": 2
}{
"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"
}{
"message": "Index `movies` not found.",
"code": "index_not_found",
"type": "invalid_request",
"link": "https://docs.meilisearch.com/errors#index_not_found"
}List index fields
Returns a paginated list of fields in the index with their metadata: whether they are displayed, searchable, sortable, filterable, distinct, have a custom ranking rule (asc/desc), and for filterable fields the sort order for facet values.
curl \
-X POST 'MEILISEARCH_URL/indexes/INDEX_NAME/fields' \
-H 'Content-Type: application/json'import requests
url = "http://localhost:7700/indexes/{index_uid}/fields"
payload = {
"offset": 1,
"limit": 1,
"filter": {
"attributePatterns": { "patterns": ["title", "overview_*", "release_date"] },
"displayed": True,
"searchable": True,
"sortable": True,
"distinct": True,
"rankingRule": True,
"filterable": True
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
offset: 1,
limit: 1,
filter: {
attributePatterns: {patterns: ['title', 'overview_*', 'release_date']},
displayed: true,
searchable: true,
sortable: true,
distinct: true,
rankingRule: true,
filterable: true
}
})
};
fetch('http://localhost:7700/indexes/{index_uid}/fields', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "7700",
CURLOPT_URL => "http://localhost:7700/indexes/{index_uid}/fields",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'offset' => 1,
'limit' => 1,
'filter' => [
'attributePatterns' => [
'patterns' => [
'title',
'overview_*',
'release_date'
]
],
'displayed' => true,
'searchable' => true,
'sortable' => true,
'distinct' => true,
'rankingRule' => true,
'filterable' => true
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:7700/indexes/{index_uid}/fields"
payload := strings.NewReader("{\n \"offset\": 1,\n \"limit\": 1,\n \"filter\": {\n \"attributePatterns\": {\n \"patterns\": [\n \"title\",\n \"overview_*\",\n \"release_date\"\n ]\n },\n \"displayed\": true,\n \"searchable\": true,\n \"sortable\": true,\n \"distinct\": true,\n \"rankingRule\": true,\n \"filterable\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:7700/indexes/{index_uid}/fields")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"offset\": 1,\n \"limit\": 1,\n \"filter\": {\n \"attributePatterns\": {\n \"patterns\": [\n \"title\",\n \"overview_*\",\n \"release_date\"\n ]\n },\n \"displayed\": true,\n \"searchable\": true,\n \"sortable\": true,\n \"distinct\": true,\n \"rankingRule\": true,\n \"filterable\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:7700/indexes/{index_uid}/fields")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"offset\": 1,\n \"limit\": 1,\n \"filter\": {\n \"attributePatterns\": {\n \"patterns\": [\n \"title\",\n \"overview_*\",\n \"release_date\"\n ]\n },\n \"displayed\": true,\n \"searchable\": true,\n \"sortable\": true,\n \"distinct\": true,\n \"rankingRule\": true,\n \"filterable\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"name": "title",
"displayed": {
"enabled": true
},
"searchable": {
"enabled": true
},
"sortable": {
"enabled": true
},
"distinct": {
"enabled": false
},
"rankingRule": {
"enabled": false,
"order": []
},
"filterable": {
"enabled": false,
"sortBy": "count",
"facetSearch": false,
"equality": false,
"comparison": false
},
"localized": {
"locales": []
}
},
{
"name": "genre",
"displayed": {
"enabled": true
},
"searchable": {
"enabled": false
},
"sortable": {
"enabled": false
},
"distinct": {
"enabled": false
},
"rankingRule": {
"enabled": false,
"order": []
},
"filterable": {
"enabled": true,
"sortBy": "alpha",
"facetSearch": true,
"equality": true,
"comparison": false
},
"localized": {
"locales": []
}
}
],
"offset": 0,
"limit": 20,
"total": 2
}{
"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"
}{
"message": "Index `movies` not found.",
"code": "index_not_found",
"type": "invalid_request",
"link": "https://docs.meilisearch.com/errors#index_not_found"
}Authorizations
An API key is a token that you provide when making API calls. Read more about how to secure your project.
Include the API key to the Authorization header, for instance:
-H 'Authorization: Bearer 6436fc5237b0d6e0d64253fbaac21d135012ecf1'
If you use a SDK, ensure you instantiate the client with the API key, for instance with JS SDK:
const client = new MeiliSearch({
host: 'MEILISEARCH_URL',
apiKey: '6436fc5237b0d6e0d64253fbaac21d135012ecf1'
});
Path Parameters
Unique identifier of the index whose fields to list.
Body
Number of fields to skip. Defaults to 0.
x >= 0Maximum number of fields to return. Defaults to 20.
x >= 0Optional filter to restrict which fields are returned (e.g. by attribute patterns or by capability: displayed, searchable, sortable, filterable, etc.).
Show child attributes
Show child attributes
Response
Items for the current page.
Show child attributes
Show child attributes
Number of items skipped.
x >= 0Maximum number of items returned.
x >= 0Total number of items matching the query.
x >= 0Was this page helpful?