Read estimate
get_estimateCost: free. Polling never spends quota or credits.
Poll the status/result of a previously requested estimate.
Use this for tier-3 (async) estimates. Tier 3 only delivers its
result via `callback_url`, which chat-UI MCP clients (Claude.ai,
ChatGPT, grok.com) cannot receive -- so poll this tool instead with
the `estimate_id` the `estimate` call returned.
Args:
estimate_id: The `estimate_id` returned by a previous `estimate`
tool call.
api_key: Your Fermi API key from POST /api/v1/accounts. Estimates
are scoped to the principal that created them -- pass the same
api_key (or none, for the anonymous tier) used for the original
`estimate` call, or this will report the estimate as not found.
Returns:
The exact shape REST's `GET /api/v1/estimates/{estimate_id}`
returns (same `EstimatePollResponse` model, so every field it
declares is present -- null where not applicable to the current
status):
- Pending: "status": "pending", plus "retry_after_seconds".
- Failed: "status": "failed", plus "error_detail".
- Completed: "status": "completed", plus the same fields a sync
`estimate` call returns (estimation_interval, distribution_family,
distribution_parameters, point_estimate, reasoning_summary,
assumptions, credits_charged, disclaimer, provider, model,
next_steps).
Plus the MCP-only `billing` block every Fermi tool response carries
(`charged_to` is "none" -- polling is free; the charge, if any,
happened on the `estimate` call that created the record). REST's
`GET /api/v1/estimates/{estimate_id}` does not carry it: REST
callers have `GET /api/v1/accounts/me` instead.
Raises:
ToolError: if `estimate_id` does not exist, or was not created by
the resolved principal (same actionable 404 REST returns).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | ||
| estimate_id | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||