Return Query Statistic Summaries

GET /api/atlas/v2/groups/{groupId}/clusters/{clusterName}/queryShapeInsights/summaries

Returns a list of query shape statistics summaries for a given cluster. Query shape statistics provide performance insights about MongoDB queries, helping users identify problematic query patterns and potential optimizations.

Path parameters

  • groupId string Required

    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.

    NOTE: 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.

    Format should match the following pattern: ^([a-f0-9]{24})$.

  • clusterName string Required

    Human-readable label that identifies the cluster.

    Format should match the following pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]*$.

Query parameters

  • since integer(int64)

    Date and time from which to retrieve query shape statistics. This parameter expresses its value in the number of milliseconds that have elapsed since the UNIX epoch.

    • If you don't specify the until parameter, the endpoint returns data covering from the since value and the current time.
    • If you specify neither the since nor the until parameters, the endpoint returns data from the previous 24 hours.

    Minimum value is 1199145600000.

  • until integer(int64)

    Date and time up until which to retrieve query shape statistics. This parameter expresses its value in the number of milliseconds that have elapsed since the UNIX epoch.

    • If you specify the until parameter, you must specify the since parameter.
    • If you specify neither the since nor the until parameters, the endpoint returns data from the previous 24 hours.

    Minimum value is 1199145600000.

  • processIds array[string]

    ProcessIds from which to retrieve query shape statistics. A processId is a combination of host and port that serves the MongoDB process. The host must be the hostname, FQDN, IPv4 address, or IPv6 address of the host that runs the MongoDB process (mongod or mongos). The port must be the IANA port on which the MongoDB process listens for requests. To include multiple processIds, pass the parameter multiple times delimited with an ampersand (&) between each processId.

    Not more than 10 elements. Format of each should match the following pattern: ^([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-f]{1,4}\:){7}([0-9a-f]{1,4})|(([a-z0-9]+\.){1,10}[a-z]+)?(\:[0-9]{4,5})$.

  • namespaces array[string]

    Namespaces from which to retrieve query shape statistics. A namespace consists of one database and one collection resource written as .: <database>.<collection>. To include multiple namespaces, pass the parameter multiple times delimited with an ampersand (&) between each namespace. Omit this parameter to return results for all namespaces.

    Not more than 10 elements.

  • commands array[string]

    Retrieve query shape statistics matching specified MongoDB commands. To include multiple commands, pass the parameter multiple times delimited with an ampersand (&) between each command. The currently supported parameters are find, distinct, and aggregate. Omit this parameter to return results for all supported commands.

    Not more than 3 elements. Values are find, distinct, or aggregate.

  • nSummaries integer(int64)

    Maximum number of query statistic summaries to return.

    Minimum value is 1, maximum value is 100. Default value is 100.

  • series array[string]

    Query shape statistics data series to retrieve. A series represents a specific metric about query execution. To include multiple series, pass the parameter multiple times delimited with an ampersand (&) between each series. Omit this parameter to return results for all available series.

    Not more than 14 elements. Values are TOTAL_EXECUTION_TIME, AVG_EXECUTION_TIME, EXECUTION_COUNT, KEYS_EXAMINED, DOCS_EXAMINED, DOCS_RETURNED, TOTAL_TIME_TO_RESPONSE, BYTES_READ, KEYS_EXAMINED_RETURNED, DOCS_EXAMINED_RETURNED, LAST_EXECUTION_TIME, P50_EXECUTION_TIME, P90_EXECUTION_TIME, or P99_EXECUTION_TIME.

  • queryShapeHashes array[string]

    A list of SHA256 hashes of desired query shapes, output by MongoDB commands like $queryStats and $explain or slow query logs. To include multiple series, pass the parameter multiple times delimited with an ampersand (&) between each series. Omit this parameter to return results for all available series.

    Not more than 10 elements. Format of each should match the following pattern: ^([a-fA-F0-9]{64})$.

  • envelope boolean

    Flag that indicates whether Application wraps the response in an envelope JSON object. Some API clients cannot access the HTTP response headers or status code. To remediate this, set envelope=true in the query. Endpoints that return a list of results use the results object as an envelope. Application adds the status parameter to the response body.

    Default value is false.

  • pretty boolean

    Flag that indicates whether the response body should be in the prettyprint format.

    Default value is false.

    Prettyprint

Responses

  • 200 application/vnd.atlas.2025-03-12+json

    OK

    Hide response attribute Show response attribute object
    • summaries array[object]

      List of query shape statistic summaries from Query Shape Insights.

      A summary of execution statistics for a given query shape.

      Hide summaries attributes Show summaries attributes object
      • avgWorkingMillis number(double)

        Average total time in milliseconds spent running queries with the given query shape. If the query resulted in getMore commands, this metric includes the time spent processing the getMore requests. This metric does not include time spent waiting for the client.

      • bytesRead number(double)

        The number of bytes read by the given query shape from the disk to the cache.

      • command string

        The MongoDB command issued for this query shape.

        Values are find, distinct, or aggregate.

      • docsExamined number(double)

        Total number of documents examined by queries with the given query shape.

      • docsExaminedRatio number(double)

        Ratio of documents examined to documents returned by queries with the given query shape.

      • docsReturned number(double)

        Total number of documents returned by queries with the given query shape.

      • execCount number(double)

        Total number of times that queries with the given query shape have been executed.

      • keysExamined number(double)

        Total number of in-bounds and out-of-bounds index keys examined by queries with the given query shape.

      • keysExaminedRatio number(double)

        Ratio of in-bounds and out-of-bounds index keys examined to indexes containing documents returned by queries with the given query shape.

      • lastExecMicros number(double)

        Execution runtime in microseconds for the most recent query with the given query shape.

      • namespace string

        Human-readable label that identifies the namespace on the specified host. The resource expresses this parameter value as <database>.<collection>.

      • p50ExecMicros number(double)

        The 50th percentile value of execution time in microseconds.

      • p90ExecMicros number(double)

        The 90th percentile value of execution time in microseconds.

      • p99ExecMicros number(double)

        The 99th percentile value of execution time in microseconds.

      • queryShape string

        A query shape is a set of specifications that group similar queries together. Specifications can include filters, sorts, projections, aggregation pipeline stages, a namespace, and others. Queries that have similar specifications have the same query shape.

      • queryShapeHash string

        A hexadecimal string that represents the hash of a MongoDB query shape.

      • totalTimeToResponseMicros number(double)

        Time in microseconds spent from the beginning of query processing to the first server response.

      • totalWorkingMillis number(double)

        Total time in milliseconds spent running queries with the given query shape. If the query resulted in getMore commands, this metric includes the time spent processing the getMore requests. This metric does not include time spent waiting for the client.

  • 400 application/json

    Bad Request.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 401 application/json

    Unauthorized.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 403 application/json

    Forbidden.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 404 application/json

    Not Found.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 500 application/json

    Internal Server Error.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

  • 429 application/json

    Too Many Requests.

    Hide response attributes Show response attributes object
    • badRequestDetail object

      Bad request detail.

      Hide badRequestDetail attribute Show badRequestDetail attribute object
      • fields array[object]

        Describes all violations in a client request.

        Hide fields attributes Show fields attributes object
        • description string Required

          A description of why the request element is bad.

        • field string Required

          A path that leads to a field in the request body.

    • detail string

      Describes the specific conditions or reasons that cause each type of error.

    • error integer(int32) Required

      HTTP status code returned with this error.

      External documentation
    • errorCode string Required

      Application error code returned with this error.

    • parameters array[object]

      Parameters used to give more information about the error.

    • reason string

      Application error message returned with this error.

GET /api/atlas/v2/groups/{groupId}/clusters/{clusterName}/queryShapeInsights/summaries
curl \
 --request GET 'https://cloud.mongodb.com/api/atlas/v2/groups/32b6e34b3d91647abb20e7b8/clusters/{clusterName}/queryShapeInsights/summaries' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "summaries": [
    {
      "avgWorkingMillis": 42.0,
      "bytesRead": 42.0,
      "command": "find",
      "docsExamined": 42.0,
      "docsExaminedRatio": 42.0,
      "docsReturned": 42.0,
      "execCount": 42.0,
      "keysExamined": 42.0,
      "keysExaminedRatio": 42.0,
      "lastExecMicros": 42.0,
      "namespace": "string",
      "p50ExecMicros": 42.0,
      "p90ExecMicros": 42.0,
      "p99ExecMicros": 42.0,
      "queryShape": "string",
      "queryShapeHash": "string",
      "totalTimeToResponseMicros": 42.0,
      "totalWorkingMillis": 42.0
    }
  ]
}
Response examples (400)
{
  "error": 400,
  "detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
  "reason": "Bad Request",
  "errorCode": "VALIDATION_ERROR"
}
Response examples (401)
{
  "error": 401,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Unauthorized",
  "errorCode": "NOT_ORG_GROUP_CREATOR"
}
Response examples (403)
{
  "error": 403,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Forbidden",
  "errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
Response examples (404)
{
  "error": 404,
  "detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
  "reason": "Not Found",
  "errorCode": "RESOURCE_NOT_FOUND"
}
Response examples (500)
{
  "error": 500,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Internal Server Error",
  "errorCode": "UNEXPECTED_ERROR"
}
Response examples (429)
{
  "error": 429,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Too Many Requests",
  "errorCode": "RATE_LIMITED"
}