# Poll a savings grant status

Source: https://docs.levelfour.ai/api-reference/savings-grants/get-recommendations-grants-by-id


## GET /api/v1/recommendations/grants/{grant_id}

### Authentication

Send `Authorization: Bearer <token>`.

### Parameters

- `grant_id` (path, string, required)

### Responses

#### 200: Successful Response

- `success` (boolean, default `true`)
- `timestamp` (date-time string)
- `data` (object, required)
  - `grant_id` (string, required)
  - `batch_parent_id` (string, required)
  - `provider` (one of `aws`, `gcp`, required)
  - `status` (one of `pending`, `verifying`, `connected`, `failed`, `expired`, required)
  - `error_message` (string, nullable): Populated when status is failed
  - `polling_hint_ms` (integer, required): How long the dashboard should wait before polling again; 0 when terminal
  - `expires_at` (date-time string, required)
  - `scope_summary` (object, required)
    - `action_count` (integer, default `0`): Distinct IAM actions in the merged grant
    - `resource_count` (integer, default `0`): Distinct resources the grant scopes to
    - `policy_group_count` (integer, default `0`): Number of managed policies the grant attaches to the role
    - `child_count` (integer, default `0`): Number of recommendations covered by this batch grant
  - `launch_stack_url` (string, nullable): AWS Console quickcreate URL that attaches the scoped, time-boxed grant. Re-issued on every read so a grant stays launchable after the create response, and null once it has settled

#### Errors

- `400`: Bad Request
- `401`: Authentication Error
- `403`: Authorization Error
- `404`: Not Found
- `409`: Conflict
- `422`: Validation Error
- `429`: Rate Limit Exceeded
- `500`: Internal Server Error

Body of `400`, `401`, `403`, `404`, `409`, `422`, `429`, `500`:

- `success` (`false`, required)
- `error` (object, required)
  - `code` (string, required)
  - `message` (string, required)
  - `details` (any)
- `timestamp` (date-time string, required)
