Savings Estimate | API & MCP Reference | Archera
Estimate savings from an uploaded billing file
Endpoint
post/v1/org/{org_id}/savings-estimate
Parses a completed PDF or CSV billing upload and returns normalized costs and provider-specific savings estimates.
Path parameters
org_id: string · uuid Required
Body
Content-Type: application/json
upload_id: string · uuid Required
Responses
- 200 OK (application/json)
provider: string, enum (possible values:aws,azure,gcp,null)source_format: string Requiredperiod_start: string · nullable Requiredperiod_end: string · nullable Requiredaccount_id: string · nullable Requiredcurrency: string Requiredis_projected: boolean Requiredline_items: object · CostLineItem[] Required
Show properties
total_cost: object · ValueRange Read-only Requiredtotal_savings_estimate: object · ValueRange Read-only Required400 Bad request (application/json)
401 Unauthorized (application/json)
403 Forbidden (application/json)
404 Not found (application/json)
405 Method not allowed (application/json)
409 Conflict (application/json)
422 Unprocessable Content (application/json)
500 Internal server error (application/json)
default Default error response (application/json)
Example HTTP Request
POST /v1/org/{org_id}/savings-estimate HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 52
{
"upload_id": "123e4567-e89b-12d3-a456-426614174000"
}
Example Response
{
"provider": "aws",
"source_format": "text",
"period_start": null,
"period_end": null,
"account_id": null,
"currency": "text",
"is_projected": true,
"line_items": [
{
"service": "text",
"reservable_service": null,
"resource_type": null,
"usage_quantity": {
"estimate": 1,
"lower_bound": null,
"upper_bound": null
},
"usage_unit": null,
"cost": {
"estimate": 1,
"lower_bound": null,
"upper_bound": null
},
"region": null,
"spend_type": "on_demand",
"savings_estimate": {
"estimate": 1,
"lower_bound": null,
"upper_bound": null
}
}
],
"total_cost": {
"estimate": 1,
"lower_bound": null,
"upper_bound": null
},
"total_savings_estimate": {
"estimate": 1,
"lower_bound": null,
"upper_bound": null
}
}