{"openapi":"3.1.0","info":{"title":"Fermi","description":"Fermi returns calibrated probability distributions from natural-language questions. A REST and MCP API for AI agents and humans.\n\n## Authentication\n\nPass your API key as the `X-API-Key` header. Do **not** use `Authorization: Bearer` — that is reserved for JWTs.\n\nAnonymous access: 1 tier-1 estimate per day (no signup).\n\n## Idempotency\n\nAll `POST /estimates` calls require an `Idempotency-Key` header (UUIDv4). Replaying the same key returns the cached response.\n\n## Tiers\n\n| Tier | Delivery | Cost | Description |\n|------|----------|------|-------------|\n| 1 | Sync | 1 credit | Fast intuition-level estimate |\n| 2 | Sync | 3 credits | Grounded with web research |\n| 3 | Async (202) | 10 credits | Deep research + verification |\n","version":"0.1.0"},"paths":{"/api/v1/accounts":{"post":{"tags":["Accounts"],"summary":"Create an account","description":"Create a new account with an initial API key and starter credits. No request body required.","operationId":"create_account_api_v1_accounts_post","responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAccountResponse"}}}}}}},"/api/v1/accounts/me":{"get":{"tags":["Accounts"],"summary":"Get your account info","description":"Returns your credit balance, account status, and creation date.","operationId":"get_account_me_api_v1_accounts_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountMeResponse"}}}}}}},"/api/v1/accounts/me/usage":{"get":{"tags":["Accounts"],"summary":"Get your credit transactions","description":"Returns your recent credit transactions (debits, refunds, signup grants).","operationId":"get_account_usage_api_v1_accounts_me_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountUsageResponse"}}}}}}},"/api/v1/accounts/{account_id}/api-keys":{"post":{"tags":["Accounts"],"summary":"Create an additional API key","description":"Generate a new API key for your account. Requires authentication as the account owner.","operationId":"create_api_key_api_v1_accounts__account_id__api_keys_post","parameters":[{"name":"account_id","in":"path","required":true,"schema":{"type":"string","title":"Account Id"}}],"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/checkout":{"post":{"tags":["Billing","Billing"],"summary":"Create a Stripe Checkout session","description":"Start a Stripe Checkout flow to purchase credits. Returns a checkout_url to redirect the user (or open in a browser). The card is saved for future off-session purchases.","operationId":"create_checkout_api_v1_billing_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/pricing":{"get":{"tags":["Billing","Billing"],"summary":"Get credit pricing","description":"Returns the per-credit price. Buy any quantity at checkout or via purchase-credits. No authentication required.","operationId":"get_pricing_api_v1_billing_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreditPricingResponse"}}}}}}},"/api/v1/billing/purchase-credits":{"post":{"tags":["Billing","Billing"],"summary":"Purchase credits with a saved card (agent auto-recharge)","description":"Use a previously saved payment method to buy credits without a checkout redirect. Requires a prior checkout session to have saved a card. Designed for agent auto-recharge flows.","operationId":"purchase_credits_api_v1_billing_purchase_credits_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurchaseCreditsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PurchaseCreditsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/distributions/parameters/from-interval":{"post":{"tags":["Distributions"],"summary":"Convert Interval To Parameters","operationId":"convert_interval_to_parameters_api_v1_distributions_parameters_from_interval_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributionParametersFromIntervalRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributionConversionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/distributions/interval/from-parameters":{"post":{"tags":["Distributions"],"summary":"Convert Parameters To Interval","operationId":"convert_parameters_to_interval_api_v1_distributions_interval_from_parameters_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntervalFromDistributionParametersRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DistributionConversionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/estimates":{"post":{"tags":["Estimates"],"summary":"Create an estimate","description":"Submit a natural-language question and get a calibrated probability distribution. Tiers 1-2 return synchronously (200); tier 3 returns 202 and completes asynchronously.","operationId":"create_estimate_api_v1_estimates_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/EstimateSuccessResponse"},{"$ref":"#/components/schemas/EstimatePendingResponse"}],"title":"Response Create Estimate Api V1 Estimates Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/estimates/simple":{"post":{"tags":["Estimates"],"summary":"Create a simple estimate (tier 1 shortcut)","description":"Convenience endpoint that forces tier 1 — no need to specify requested_tier_id.","operationId":"create_simple_estimate_api_v1_estimates_simple_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateSimpleCompatibilityRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateSimpleCompatibilityResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/estimates/history":{"get":{"tags":["Estimates"],"summary":"List estimate history","description":"Returns your past estimates, newest first. Requires authentication.","operationId":"get_estimate_history_api_v1_estimates_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateHistoryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/estimates/tiers":{"get":{"tags":["Estimates"],"summary":"List available tiers","description":"Returns all estimation tiers with their status, delivery mode, credit cost, and anonymous trial eligibility.","operationId":"get_tiers_api_v1_estimates_tiers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TiersResponse"}}}}}}},"/api/v1/estimates/{estimate_id}":{"get":{"tags":["Estimates"],"summary":"Poll estimate status","description":"Check the status of an async (tier 3) estimate. Returns the full result when completed.","operationId":"get_estimate_api_v1_estimates__estimate_id__get","parameters":[{"name":"estimate_id","in":"path","required":true,"schema":{"type":"string","title":"Estimate Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimatePollResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/estimates/{estimate_id}/actual":{"put":{"tags":["Estimates"],"summary":"Record actual outcome","description":"Record the actual value for a past estimate. Used for calibration measurement.","operationId":"record_estimate_actual_api_v1_estimates__estimate_id__actual_put","parameters":[{"name":"estimate_id","in":"path","required":true,"schema":{"type":"string","title":"Estimate Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateActualRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateActualResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/feedback":{"post":{"tags":["Feedback"],"summary":"Submit feedback or a feature request","description":"Send feedback, a feature request, or a bug report to the Fermi team. An email is sent to the team and a copy is sent to the address you provide. Authentication is optional — if you include your X-API-Key, your account ID is attached to the message.","operationId":"submit_feedback_api_v1_feedback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mcp/tools":{"get":{"tags":["MCP"],"summary":"List Tools","operationId":"list_tools_mcp_tools_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Tools Mcp Tools Get"}}}}}}},"/mcp/tools/estimate":{"post":{"tags":["MCP"],"summary":"Call Estimate Tool","operationId":"call_estimate_tool_mcp_tools_estimate_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/EstimateSuccessResponse"},{"$ref":"#/components/schemas/EstimatePendingResponse"}],"title":"Response Call Estimate Tool Mcp Tools Estimate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mcp/tools/feedback":{"post":{"tags":["MCP"],"summary":"Call Feedback Tool","operationId":"call_feedback_tool_mcp_tools_feedback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AccountMeResponse":{"properties":{"account_id":{"type":"string","title":"Account Id"},"credit_balance":{"type":"integer","title":"Credit Balance"},"is_unlimited":{"type":"boolean","title":"Is Unlimited"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["account_id","credit_balance","is_unlimited","created_at"],"title":"AccountMeResponse"},"AccountUsageResponse":{"properties":{"account_id":{"type":"string","title":"Account Id"},"transactions":{"items":{"$ref":"#/components/schemas/CreditTransaction"},"type":"array","title":"Transactions"}},"type":"object","required":["account_id","transactions"],"title":"AccountUsageResponse"},"CheckoutRequest":{"properties":{"credits":{"type":"integer","minimum":1.0,"title":"Credits","description":"Number of credits to purchase"},"success_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success Url"},"cancel_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancel Url"}},"type":"object","required":["credits"],"title":"CheckoutRequest"},"CheckoutResponse":{"properties":{"checkout_url":{"type":"string","title":"Checkout Url"}},"type":"object","required":["checkout_url"],"title":"CheckoutResponse"},"CreateAccountResponse":{"properties":{"account_id":{"type":"string","title":"Account Id"},"api_key":{"type":"string","title":"Api Key"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["account_id","api_key","created_at"],"title":"CreateAccountResponse"},"CreateApiKeyResponse":{"properties":{"api_key_id":{"type":"string","title":"Api Key Id"},"api_key":{"type":"string","title":"Api Key"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["api_key_id","api_key","created_at"],"title":"CreateApiKeyResponse"},"CreditPricingResponse":{"properties":{"unit_price_cents":{"type":"integer","title":"Unit Price Cents"},"currency":{"type":"string","title":"Currency"}},"type":"object","required":["unit_price_cents","currency"],"title":"CreditPricingResponse"},"CreditTransaction":{"properties":{"entry_type":{"type":"string","title":"Entry Type"},"amount":{"type":"integer","title":"Amount"},"request_id":{"type":"string","title":"Request Id"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["entry_type","amount","request_id","created_at"],"title":"CreditTransaction"},"DecompositionSuggestion":{"properties":{"sub_question":{"type":"string","title":"Sub Question"},"reasoning":{"type":"string","title":"Reasoning"}},"type":"object","required":["sub_question","reasoning"],"title":"DecompositionSuggestion"},"DistributionConversionResponse":{"properties":{"distribution_family":{"type":"string","enum":["normal","log_normal","uniform","constant","beta","triangle","gamma","exponential","poisson"],"title":"Distribution Family"},"coverage_probability":{"type":"number","title":"Coverage Probability"},"estimation_interval":{"$ref":"#/components/schemas/EstimateInterval"},"distribution_parameters":{"additionalProperties":{"type":"number"},"type":"object","title":"Distribution Parameters"},"point_estimate":{"type":"number","title":"Point Estimate"}},"type":"object","required":["distribution_family","coverage_probability","estimation_interval","distribution_parameters","point_estimate"],"title":"DistributionConversionResponse"},"DistributionParametersFromIntervalRequest":{"properties":{"distribution_family":{"type":"string","enum":["normal","log_normal","uniform","constant","beta","triangle","gamma","exponential","poisson"],"title":"Distribution Family"},"coverage_probability":{"type":"number","exclusiveMaximum":1.0,"exclusiveMinimum":0.0,"title":"Coverage Probability","default":0.9},"estimation_interval":{"$ref":"#/components/schemas/EstimateInterval"}},"type":"object","required":["distribution_family","estimation_interval"],"title":"DistributionParametersFromIntervalRequest"},"EstimateActualRecord":{"properties":{"value":{"type":"number","title":"Value"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"},"recorded_at":{"type":"string","format":"date-time","title":"Recorded At"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"source_inputs":{"items":{"$ref":"#/components/schemas/EstimateSourceInput"},"type":"array","title":"Source Inputs"}},"type":"object","required":["value","recorded_at"],"title":"EstimateActualRecord"},"EstimateActualRequest":{"properties":{"actual_value":{"type":"number","title":"Actual Value"},"actual_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actual Unit"},"actual_recorded_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Actual Recorded At"},"actual_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actual Notes"},"source_inputs":{"items":{"$ref":"#/components/schemas/EstimateSourceInput"},"type":"array","title":"Source Inputs"}},"type":"object","required":["actual_value"],"title":"EstimateActualRequest"},"EstimateActualResponse":{"properties":{"estimate_id":{"type":"string","title":"Estimate Id"},"actual":{"$ref":"#/components/schemas/EstimateActualRecord"}},"type":"object","required":["estimate_id","actual"],"title":"EstimateActualResponse"},"EstimateHistoryItem":{"properties":{"estimate_id":{"type":"string","title":"Estimate Id"},"request_id":{"type":"string","title":"Request Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"question":{"type":"string","title":"Question"},"unit":{"type":"string","title":"Unit"},"target_horizon":{"type":"string","title":"Target Horizon"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"coverage_probability":{"type":"number","title":"Coverage Probability"},"estimation_interval":{"$ref":"#/components/schemas/EstimateInterval"},"distribution_family":{"type":"string","enum":["normal","log_normal","uniform","constant","beta","triangle","gamma","exponential","poisson"],"title":"Distribution Family"},"distribution_parameters":{"additionalProperties":{"type":"number"},"type":"object","title":"Distribution Parameters"},"point_estimate":{"type":"number","title":"Point Estimate"},"reasoning_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Summary"},"assumptions":{"items":{"type":"string"},"type":"array","title":"Assumptions"},"source_inputs":{"items":{"$ref":"#/components/schemas/EstimateSourceInput"},"type":"array","title":"Source Inputs"},"actual":{"anyOf":[{"$ref":"#/components/schemas/EstimateActualRecord"},{"type":"null"}]},"model_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Id"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"reasoning_effort":{"anyOf":[{"type":"string","enum":["minimal","low","medium","high"]},{"type":"null"}],"title":"Reasoning Effort"},"prompt_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt Version"},"as_of_timestamp":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"As Of Timestamp"},"run_fingerprint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Fingerprint"}},"type":"object","required":["estimate_id","request_id","created_at","question","unit","target_horizon","coverage_probability","estimation_interval","distribution_family","distribution_parameters","point_estimate","assumptions"],"title":"EstimateHistoryItem"},"EstimateHistoryResponse":{"properties":{"estimates":{"items":{"$ref":"#/components/schemas/EstimateHistoryItem"},"type":"array","title":"Estimates"}},"type":"object","required":["estimates"],"title":"EstimateHistoryResponse"},"EstimateInterval":{"properties":{"low":{"type":"number","title":"Low"},"high":{"type":"number","title":"High"}},"type":"object","required":["low","high"],"title":"EstimateInterval"},"EstimatePendingResponse":{"properties":{"estimate_id":{"type":"string","title":"Estimate Id"},"request_id":{"type":"string","title":"Request Id"},"status":{"type":"string","const":"pending","title":"Status"},"credits_charged":{"type":"integer","title":"Credits Charged"},"provider":{"type":"string","enum":["openai","anthropic"],"title":"Provider"},"model":{"type":"string","title":"Model"},"retry_after_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Retry After Seconds"}},"type":"object","required":["estimate_id","request_id","status","credits_charged","provider","model"],"title":"EstimatePendingResponse","description":"Returned for async tier requests (202) and for pending poll responses."},"EstimatePollResponse":{"properties":{"estimate_id":{"type":"string","title":"Estimate Id"},"status":{"type":"string","enum":["pending","completed","failed"],"title":"Status"},"retry_after_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Retry After Seconds"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"},"tier_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tier Id"},"created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Created At"},"estimation_interval":{"anyOf":[{"$ref":"#/components/schemas/EstimateInterval"},{"type":"null"}]},"coverage_probability":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Coverage Probability"},"distribution_family":{"anyOf":[{"type":"string","enum":["normal","log_normal","uniform","constant","beta","triangle","gamma","exponential","poisson"]},{"type":"null"}],"title":"Distribution Family"},"distribution_parameters":{"anyOf":[{"additionalProperties":{"type":"number"},"type":"object"},{"type":"null"}],"title":"Distribution Parameters"},"point_estimate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Point Estimate"},"range_low":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Range Low"},"range_high":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Range High"},"confidence_level":{"anyOf":[{"type":"string","enum":["low","medium","high"]},{"type":"null"}],"title":"Confidence Level"},"reasoning_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Summary"},"assumptions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Assumptions"},"credits_charged":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Credits Charged"},"disclaimer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Disclaimer"},"decomposition_suggestions":{"anyOf":[{"items":{"$ref":"#/components/schemas/DecompositionSuggestion"},"type":"array"},{"type":"null"}],"title":"Decomposition Suggestions"},"research_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResearchSource"},"type":"array"},{"type":"null"}],"title":"Research Sources"},"verification_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Summary"},"verification_flags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Verification Flags"},"provider":{"anyOf":[{"type":"string","enum":["openai","anthropic"]},{"type":"null"}],"title":"Provider"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"error_detail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Detail"}},"type":"object","required":["estimate_id","status"],"title":"EstimatePollResponse","description":"Union wrapper for GET /estimates/{id} polling.\n\nFields are populated based on ``status``:\n- ``pending``: only ``estimate_id``, ``status``, ``retry_after_seconds``\n- ``failed``: adds ``error_detail``\n- ``completed``: all estimate fields populated"},"EstimateRequest":{"properties":{"question":{"type":"string","minLength":1,"title":"Question"},"requested_tier_id":{"type":"integer","title":"Requested Tier Id"},"unit":{"type":"string","minLength":1,"title":"Unit"},"target_horizon":{"type":"string","minLength":1,"title":"Target Horizon"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"coverage_probability":{"type":"number","exclusiveMaximum":1.0,"exclusiveMinimum":0.0,"title":"Coverage Probability","default":0.9},"source_inputs":{"items":{"$ref":"#/components/schemas/EstimateSourceInput"},"type":"array","title":"Source Inputs"},"disclaimer_acknowledged":{"type":"boolean","title":"Disclaimer Acknowledged"},"provider":{"anyOf":[{"type":"string","enum":["openai","anthropic"]},{"type":"null"}],"title":"Provider"},"model":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Model"},"callback_url":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Callback Url"}},"type":"object","required":["question","requested_tier_id","unit","target_horizon","disclaimer_acknowledged"],"title":"EstimateRequest"},"EstimateSimpleCompatibilityRequest":{"properties":{"question":{"type":"string","minLength":1,"title":"Question"},"unit":{"type":"string","minLength":1,"title":"Unit"},"target_horizon":{"type":"string","minLength":1,"title":"Target Horizon"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"},"coverage_probability":{"type":"number","exclusiveMaximum":1.0,"exclusiveMinimum":0.0,"title":"Coverage Probability","default":0.9},"source_inputs":{"items":{"$ref":"#/components/schemas/EstimateSourceInput"},"type":"array","title":"Source Inputs"},"disclaimer_acknowledged":{"type":"boolean","title":"Disclaimer Acknowledged"},"provider":{"anyOf":[{"type":"string","enum":["openai","anthropic"]},{"type":"null"}],"title":"Provider"},"model":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Model"}},"type":"object","required":["question","unit","target_horizon","disclaimer_acknowledged"],"title":"EstimateSimpleCompatibilityRequest"},"EstimateSimpleCompatibilityResponse":{"properties":{"estimate_id":{"type":"string","title":"Estimate Id"},"request_id":{"type":"string","title":"Request Id"},"tier_id":{"type":"integer","title":"Tier Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"estimation_interval":{"$ref":"#/components/schemas/EstimateInterval"},"coverage_probability":{"type":"number","title":"Coverage Probability"},"distribution_family":{"type":"string","enum":["normal","log_normal","uniform","constant","beta","triangle","gamma","exponential","poisson"],"title":"Distribution Family"},"distribution_parameters":{"additionalProperties":{"type":"number"},"type":"object","title":"Distribution Parameters"},"point_estimate":{"type":"number","title":"Point Estimate"},"range_low":{"type":"number","title":"Range Low"},"range_high":{"type":"number","title":"Range High"},"confidence_level":{"type":"string","enum":["low","medium","high"],"title":"Confidence Level"},"reasoning_summary":{"type":"string","title":"Reasoning Summary"},"assumptions":{"items":{"type":"string"},"type":"array","title":"Assumptions"},"credits_charged":{"type":"integer","title":"Credits Charged"},"disclaimer":{"type":"string","title":"Disclaimer"},"provider":{"type":"string","enum":["openai","anthropic"],"title":"Provider"},"model":{"type":"string","title":"Model"},"decomposition_suggestions":{"anyOf":[{"items":{"$ref":"#/components/schemas/DecompositionSuggestion"},"type":"array"},{"type":"null"}],"title":"Decomposition Suggestions"}},"type":"object","required":["estimate_id","request_id","tier_id","created_at","estimation_interval","coverage_probability","distribution_family","distribution_parameters","point_estimate","range_low","range_high","confidence_level","reasoning_summary","assumptions","credits_charged","disclaimer","provider","model"],"title":"EstimateSimpleCompatibilityResponse"},"EstimateSourceInput":{"properties":{"source_type":{"type":"string","enum":["qualitative_text","spreadsheet","structured_file"],"title":"Source Type"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"structured_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Structured Data"},"file_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Name"},"media_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Media Type"},"provenance":{"type":"string","enum":["user","agent","file_upload"],"title":"Provenance","default":"user"}},"type":"object","required":["source_type"],"title":"EstimateSourceInput"},"EstimateSuccessResponse":{"properties":{"estimate_id":{"type":"string","title":"Estimate Id"},"request_id":{"type":"string","title":"Request Id"},"tier_id":{"type":"integer","title":"Tier Id"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"estimation_interval":{"$ref":"#/components/schemas/EstimateInterval"},"coverage_probability":{"type":"number","title":"Coverage Probability"},"distribution_family":{"type":"string","enum":["normal","log_normal","uniform","constant","beta","triangle","gamma","exponential","poisson"],"title":"Distribution Family"},"distribution_parameters":{"additionalProperties":{"type":"number"},"type":"object","title":"Distribution Parameters"},"point_estimate":{"type":"number","title":"Point Estimate"},"range_low":{"type":"number","title":"Range Low"},"range_high":{"type":"number","title":"Range High"},"confidence_level":{"type":"string","enum":["low","medium","high"],"title":"Confidence Level"},"reasoning_summary":{"type":"string","title":"Reasoning Summary"},"assumptions":{"items":{"type":"string"},"type":"array","title":"Assumptions"},"credits_charged":{"type":"integer","title":"Credits Charged"},"disclaimer":{"type":"string","title":"Disclaimer"},"provider":{"type":"string","enum":["openai","anthropic"],"title":"Provider"},"model":{"type":"string","title":"Model"},"decomposition_suggestions":{"anyOf":[{"items":{"$ref":"#/components/schemas/DecompositionSuggestion"},"type":"array"},{"type":"null"}],"title":"Decomposition Suggestions"},"research_sources":{"anyOf":[{"items":{"$ref":"#/components/schemas/ResearchSource"},"type":"array"},{"type":"null"}],"title":"Research Sources"},"verification_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Summary"},"verification_flags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Verification Flags"}},"type":"object","required":["estimate_id","request_id","tier_id","created_at","estimation_interval","coverage_probability","distribution_family","distribution_parameters","point_estimate","range_low","range_high","confidence_level","reasoning_summary","assumptions","credits_charged","disclaimer","provider","model"],"title":"EstimateSuccessResponse"},"FeedbackRequest":{"properties":{"type":{"type":"string","enum":["feedback","feature_request","bug"],"title":"Type","description":"The kind of feedback: 'feedback' for general comments, 'feature_request' for new capabilities, 'bug' for issues."},"message":{"type":"string","maxLength":5000,"minLength":10,"title":"Message","description":"Your feedback or request. Be as specific as possible."},"sender_email":{"type":"string","format":"email","title":"Sender Email","description":"Your email address. A copy of your feedback will be sent here so you have a record of what you submitted."},"sender_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Sender Name","description":"Your name (optional)."}},"type":"object","required":["type","message","sender_email"],"title":"FeedbackRequest"},"FeedbackResponse":{"properties":{"status":{"type":"string","title":"Status","description":"'sent' on success."},"message":{"type":"string","title":"Message","description":"Confirmation message."}},"type":"object","required":["status","message"],"title":"FeedbackResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"IntervalFromDistributionParametersRequest":{"properties":{"distribution_family":{"type":"string","enum":["normal","log_normal","uniform","constant","beta","triangle","gamma","exponential","poisson"],"title":"Distribution Family"},"coverage_probability":{"type":"number","exclusiveMaximum":1.0,"exclusiveMinimum":0.0,"title":"Coverage Probability","default":0.9},"distribution_parameters":{"additionalProperties":{"type":"number"},"type":"object","title":"Distribution Parameters"}},"type":"object","required":["distribution_family","distribution_parameters"],"title":"IntervalFromDistributionParametersRequest"},"PurchaseCreditsRequest":{"properties":{"credits":{"type":"integer","minimum":1.0,"title":"Credits","description":"Number of credits to purchase"}},"type":"object","required":["credits"],"title":"PurchaseCreditsRequest"},"PurchaseCreditsResponse":{"properties":{"credits_purchased":{"type":"integer","title":"Credits Purchased"},"new_balance":{"type":"integer","title":"New Balance"},"payment_status":{"type":"string","title":"Payment Status"}},"type":"object","required":["credits_purchased","new_balance","payment_status"],"title":"PurchaseCreditsResponse"},"ResearchSource":{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"snippet":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Snippet"},"relevance_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Relevance Note"}},"type":"object","title":"ResearchSource"},"TierSummary":{"properties":{"tier_id":{"type":"integer","title":"Tier Id"},"status":{"type":"string","const":"live","title":"Status"},"delivery":{"anyOf":[{"type":"string","enum":["sync","async"]},{"type":"null"}],"title":"Delivery"},"credit_cost":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Credit Cost"},"supports_anonymous_trial":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Supports Anonymous Trial"}},"type":"object","required":["tier_id","status"],"title":"TierSummary"},"TiersResponse":{"properties":{"tiers":{"items":{"$ref":"#/components/schemas/TierSummary"},"type":"array","title":"Tiers"},"disclaimer":{"type":"string","title":"Disclaimer"}},"type":"object","required":["tiers","disclaimer"],"title":"TiersResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API key from POST /api/v1/accounts. Pass the raw key value in the X-API-Key header."},"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT bearer token for interactive users. Do NOT use this with raw API keys."}}},"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}]}