# Return One Shard Key Analysis Operation for One Cluster

**GET /api/atlas/v2/groups/{groupId}/clusters/{clusterName}/shardKeyAnalyses/operations/{operationId}**

Returns the progress of one shard key analysis for the specified cluster. Poll this resource until `status` reaches a terminal value. On success it carries `resultHref`, the URI of the analysis it created; on failure it carries `error`. While the status is not terminal it carries `retryAfterSeconds`, how long to wait before polling again. MongoDB Cloud retains an operation for 30 days past its terminal state.

## Role requirements
  - Project Data Access Admin
  - Project Data Access Read Only
  - Project Data Access Read Write
  - Project Stream Processing Owner


## Servers
- https://cloud.mongodb.com: https://cloud.mongodb.com ()


## Authentication methods
- Service accounts
- Digest auth


## Parameters

### Path parameters

- **groupId** (string)
  Unique 24-hexadecimal digit string that identifies your project. Use the [/groups](#tag/Projects/operation/listProjects) 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.

- **clusterName** (string)
  Human-readable label that identifies the cluster with the shard key analysis operation you want to return.

- **operationId** (string)
  Unique 24-hexadecimal digit string that identifies the shard key analysis operation to return.


### Query parameters

- **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.

- **pretty** (boolean)
  Flag that indicates whether the response body should be in the prettyprint format.



## Responses
### 200
OK
#### Headers

- **RateLimit-Limit** ()
  The maximum number of requests that a user can make within a specific time window.

- **RateLimit-Remaining** ()
  The number of requests remaining in the current rate limit window before the limit is reached.


#### Body: application/vnd.atlas.2025-03-12+json (object)
- **createdAt** (string(date-time))
  Date and time when MongoDB Cloud accepted this operation (ISO 8601 format in UTC).

- **error** (object)
  Details of the failure that ended the shard key analysis operation.

- **expiresAt** (string(date-time))
  Date and time when MongoDB Cloud stops returning this operation (ISO 8601 format in UTC). Reads after this time return an HTTP 404 status. This value derives from `updatedAt`, so it advances with each state change while the operation is running and settles only once the operation is terminal.

- **operationId** (string)
  Unique 24-hexadecimal digit string that identifies this operation. When the operation succeeds, the analysis it created carries the same identifier.

- **operationType** (string)
  Kind of change the operation makes. Submitting a shard key analysis creates an analysis resource, so the operation type is always `CREATE`.

- **resultHref** (string)
  URI of the analysis this operation created. MongoDB Cloud returns this parameter only when `status` is `SUCCEEDED`.

- **retryAfterSeconds** (integer(int32))
  Number of seconds to wait before polling this operation again. MongoDB Cloud returns this parameter only while `status` is not terminal.

- **status** (string)
  State of the shard key analysis operation. `PENDING` and `IN_PROGRESS` are non-terminal; `SUCCEEDED`, `FAILED`, `CANCELED` and `SUPERSEDED` are terminal. MongoDB Cloud currently reports only `PENDING`, `SUCCEEDED` and `FAILED`. The remaining values are reserved and may be reported in the future without a new resource version.

- **updatedAt** (string(date-time))
  Date and time when this operation last changed state (ISO 8601 format in UTC). Once the operation is terminal, this is when it finished.


### 400
Bad Request.

#### Body: application/json (object)
- **badRequestDetail** (object)
  Bad request detail.

- **detail** (string | null)
  Describes the specific conditions or reasons that cause each type of error.

- **error** (integer(int32))
  HTTP status code returned with this error.

- **errorCode** (string)
  Application error code returned with this error.

- **parameters** (array[object])
  Parameters used to give more information about the error.

- **reason** (string | null)
  Application error message returned with this error.


### 401
Unauthorized.

#### Body: application/json (object)
- **badRequestDetail** (object)
  Bad request detail.

- **detail** (string | null)
  Describes the specific conditions or reasons that cause each type of error.

- **error** (integer(int32))
  HTTP status code returned with this error.

- **errorCode** (string)
  Application error code returned with this error.

- **parameters** (array[object])
  Parameters used to give more information about the error.

- **reason** (string | null)
  Application error message returned with this error.


### 403
Forbidden.

#### Body: application/json (object)
- **badRequestDetail** (object)
  Bad request detail.

- **detail** (string | null)
  Describes the specific conditions or reasons that cause each type of error.

- **error** (integer(int32))
  HTTP status code returned with this error.

- **errorCode** (string)
  Application error code returned with this error.

- **parameters** (array[object])
  Parameters used to give more information about the error.

- **reason** (string | null)
  Application error message returned with this error.


### 404
Not Found.

#### Body: application/json (object)
- **badRequestDetail** (object)
  Bad request detail.

- **detail** (string | null)
  Describes the specific conditions or reasons that cause each type of error.

- **error** (integer(int32))
  HTTP status code returned with this error.

- **errorCode** (string)
  Application error code returned with this error.

- **parameters** (array[object])
  Parameters used to give more information about the error.

- **reason** (string | null)
  Application error message returned with this error.


### 429
Too Many Requests.
#### Headers

- **RateLimit-Limit** ()
  The maximum number of requests that a user can make within a specific time window.

- **RateLimit-Remaining** ()
  The number of requests remaining in the current rate limit window before the limit is reached.

- **Retry-After** ()
  The minimum time you should wait, in seconds, before retrying the API request. This header might be returned for 429 or 503 error responses.


#### Body: application/json (object)
- **badRequestDetail** (object)
  Bad request detail.

- **detail** (string | null)
  Describes the specific conditions or reasons that cause each type of error.

- **error** (integer(int32))
  HTTP status code returned with this error.

- **errorCode** (string)
  Application error code returned with this error.

- **parameters** (array[object])
  Parameters used to give more information about the error.

- **reason** (string | null)
  Application error message returned with this error.


### 500
Internal Server Error.

#### Body: application/json (object)
- **badRequestDetail** (object)
  Bad request detail.

- **detail** (string | null)
  Describes the specific conditions or reasons that cause each type of error.

- **error** (integer(int32))
  HTTP status code returned with this error.

- **errorCode** (string)
  Application error code returned with this error.

- **parameters** (array[object])
  Parameters used to give more information about the error.

- **reason** (string | null)
  Application error message returned with this error.



[Powered by Bump.sh](https://bump.sh)
