---
title: "Get a savings estimate's status and result"
method: GET
path: "/v1/org/{org_id}/savings-estimate/{estimate_id}"
tags: ["Savings Estimate"]
---

# Get a savings estimate's status and result

`GET /v1/org/{org_id}/savings-estimate/{estimate_id}`

## Request

- Base URL: `https://api.archera.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.archera.ai/v1/org/{org_id}/savings-estimate/{estimate_id}`
- Auth: none declared

Returns the queued/processing/complete/error status for a savings estimate. Clients can poll this endpoint until status is complete or error.

## Response `200`

OK

- SavingsEstimate
  - `id` string, uuid, required
  - `status` 'queued' | 'processing' | 'complete' | 'error', required
  - `error` string, nullable
  - `upload_id` string, uuid, required
  - `result` SavingsEstimateDetail
    - `provider` 'aws' | 'azure' | 'gcp' | 'null', nullable, required
    - `source_format` string, required
    - `period_start` string, date, nullable, required
    - `period_end` string, date, nullable, required
    - `account_id` string, nullable, required
    - `currency` string, required
    - `is_projected` boolean, required
    - `extraction_status` 'complete' | 'partial' | 'unverified', required
    - `line_items` CostLineItem[], required
      - `service` string, required
      - `reservable_service` string, nullable, required
      - `service_code` string, nullable
      - `resource_type` string, nullable, required
      - `usage_quantity` ValueRange, required
        - `estimate` number, required
        - `lower_bound` number, nullable, required
        - `upper_bound` number, nullable, required
      - `usage_unit` string, nullable, required
      - `cost` ValueRange, required
        - `estimate` number, required
        - `lower_bound` number, nullable, required
        - `upper_bound` number, nullable, required
      - `region` string, nullable, required
      - `spend_type` 'on_demand' | 'reserved' | 'unreservable' | 'unknown', required
      - `savings_estimate` ValueRange, required
        - `estimate` number, required
        - `lower_bound` number, nullable, required
        - `upper_bound` number, nullable, required
    - `total_cost` ValueRange, required
      - `estimate` number, required
      - `lower_bound` number, nullable, required
      - `upper_bound` number, nullable, required
    - `total_savings_estimate` ValueRange, required
      - `estimate` number, required
      - `lower_bound` number, nullable, required
      - `upper_bound` number, nullable, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `405`: Method not allowed
- `409`: Conflict
- `500`: Internal server error
- `default`: Default error response

## Changes

- **2026-10-13** `8b1de9447803`: 26 info
  - added the optional property `status` to the response with the `400` status
  - added the optional property `status` to the response with the `401` status
  - added the optional property `status` to the response with the `403` status
  - added the optional property `status` to the response with the `404` status
  - …22 more
- **2026-09-14** `4cdea6007b8c`: 1 info
  - added the optional property `result/anyOf[#/components/schemas/SavingsEstimateDetail]/line_items/items/service_code` to the response with the `200` status
- **2026-09-12** `398a45ead493`: 1 info
  - added the required property `upload_id` to the response with the `200` status
- **2026-08-21** `e370017a9862`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/archera/apis/archera-ai-api/changes/v1/org/:org_id/savings-estimate/:estimate_id/get.md)

---

[API](https://skmtc.dev/archera/apis/archera-ai-api.md) - [All operations](https://skmtc.dev/archera/apis/archera-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/archera/apis/archera-ai-api/revisions/8b1de9447803?raw)
