Get All User-Defined Analyzers for a Cluster

The fts resource allows you to retrieve and edit Atlas Search index configurations for the specified cluster.

The Atlas API authenticates using HTTP Digest Authentication. Provide a programmatic API public key and corresponding private key as the username and password when constructing the HTTP request.

To learn how to configure API access for an Atlas project, see Configure Atlas API Access.


Groups and projects are synonymous terms. Your {GROUP-ID} is the same as your project ID. For existing groups, your group/project ID remains the same. The resource and corresponding endpoints use the term groups.

Base URL:


GET /groups/{GROUP-ID}/clusters/{CLUSTER-NAME}/fts/analyzers

Request Parameters

Request Path Parameters

Path Element Type Necessity Description
GROUP-ID string Required Unique identifier for the project that contains the specified cluster.
CLUSTER-NAME string Required Name of the cluster containing the collection with one or more Atlas Search indexes.

Request Query Parameters

This endpoint may use any of the HTTP request query parameters available to all Atlas API resources. These are all optional.

Name Type Necessity Description Default
pageNum integer Optional Page number (1-based). 1
itemsPerPage integer Optional Maximum number of items to return, up to a maximum of 100. 100
includeCount boolean Optional Specifies whether the response returns the totalCount field. true
pretty boolean Optional Indicates whether the response body should be in a prettyprint format. false
envelope boolean Optional

Flag indicating if Atlas should wrap the response in a JSON envelope.

Some API clients cannot access the HTTP response headers or status code. To remediate this, set envelope=true in the query.

For endpoints that return a list of results, the results object is an envelope. Atlas adds the status field to the response body.


Request Body Parameters

This endpoint doesn’t use HTTP request body parameters.

Response Elements

The HTTP response returns a JSON document that includes an array of analyzer definitions. An analyzer definition contains some or all of the following elements:

Name Type Description
baseAnalyzer string Analyzer on which the user-defined analyzer is based.
ignoreCase boolean Specify whether the index is case-sensitive.
maxTokenLength integer Longest text unit to analyze. Atlas Search excludes anything longer from the index.
name string Name of the user-defined analyzer.
stemExclusionSet array of strings Words to exclude from stemming by the language analyzer.
stopwords array of strings Strings to ignore when creating the index.

Example Request

curl --user "{PUBLIC-KEY}:{PRIVATE-KEY}" --digest \
     --header "Content-Type: application/json" \
     --include \
     --request GET "{GROUP-ID}/clusters/{CLUSTER-NAME}/fts/analyzers?pretty=true"

Example Response

Response Header

HTTP/1.1 401 Unauthorized
Content-Type: application/json;charset=ISO-8859-1
Date: {dateInUnixFormat}
WWW-Authenticate: Digest realm="MMS Public API", domain="", nonce="{nonce}", algorithm=MD5, op="auth", stale=false
Content-Length: {requestLengthInBytes}
Connection: keep-alive
HTTP/1.1 200 OK
Vary: Accept-Encoding
Content-Type: application/json
Strict-Transport-Security: max-age=300
Date: {dateInUnixFormat}
Connection: keep-alive
Content-Length: {requestLengthInBytes}

Response Body

The following example response contains an array of two analyzer definitions.

    "baseAnalyzer" : "lucene.standard",
    "maxTokenLength" : 32,
    "name" : "my_new_analyzer"
    "baseAnalyzer" : "lucene.english",
    "name" : "my_new_analyzer2",
    "stopwords" : [ "first", "second", "third", "etc" ]