{"openapi":"3.1.0","info":{"title":"ScrapeSelect API","description":"Web scraping infrastructure pricing, normalized costs and evidence.","version":"1.0"},"paths":{"/api/v1/health":{"get":{"tags":["meta"],"summary":"Health","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}},"/api/v1/providers":{"get":{"tags":["catalog"],"summary":"List Providers","operationId":"list_providers_api_v1_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderList"}}}}}}},"/api/v1/providers/{provider_slug}":{"get":{"tags":["catalog"],"summary":"Get Provider","operationId":"get_provider_api_v1_providers__provider_slug__get","parameters":[{"name":"provider_slug","in":"path","required":true,"schema":{"type":"string","title":"Provider Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProviderDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/products/{provider_slug}/{product_slug}":{"get":{"tags":["catalog"],"summary":"Get Product","operationId":"get_product_api_v1_products__provider_slug___product_slug__get","parameters":[{"name":"provider_slug","in":"path","required":true,"schema":{"type":"string","title":"Provider Slug"}},{"name":"product_slug","in":"path","required":true,"schema":{"type":"string","title":"Product Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/changes":{"get":{"tags":["changes"],"summary":"List Changes","operationId":"list_changes_api_v1_changes_get","parameters":[{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"change type, e.g. price_changed","title":"Type"},"description":"change type, e.g. price_changed"},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Since"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangeList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/changes/{change_id}":{"get":{"tags":["changes"],"summary":"Get Change","operationId":"get_change_api_v1_changes__change_id__get","parameters":[{"name":"change_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Change Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicChange"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/estimate":{"post":{"tags":["estimate"],"summary":"Estimate","operationId":"estimate_api_v1_estimate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/recommend":{"post":{"tags":["recommend"],"summary":"Recommend Stack","operationId":"recommend_stack_api_v1_recommend_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendRequest-Input"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecommendResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/compare":{"post":{"tags":["compare"],"summary":"Compare","operationId":"compare_api_v1_compare_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompareRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/providers/{provider_slug}/text":{"get":{"tags":["text"],"summary":"Provider As Text","operationId":"provider_as_text_api_v1_providers__provider_slug__text_get","parameters":[{"name":"provider_slug","in":"path","required":true,"schema":{"type":"string","title":"Provider Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/products/{provider_slug}/{product_slug}/text":{"get":{"tags":["text"],"summary":"Product As Text","operationId":"product_as_text_api_v1_products__provider_slug___product_slug__text_get","parameters":[{"name":"provider_slug","in":"path","required":true,"schema":{"type":"string","title":"Provider Slug"}},{"name":"product_slug","in":"path","required":true,"schema":{"type":"string","title":"Product Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/changes-text":{"get":{"tags":["text"],"summary":"Changes As Text","operationId":"changes_as_text_api_v1_changes_text_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"Affiliate":{"properties":{"available":{"type":"boolean","title":"Available"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}},"type":"object","required":["available","url"],"title":"Affiliate"},"AntiBotLevel":{"type":"string","enum":["low","medium","high","unknown"],"title":"AntiBotLevel"},"Architecture":{"type":"string","enum":["managed_scraping_api","scraping_api_plus_fallback","self_hosted"],"title":"Architecture"},"AssumptionOut":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"value":{"type":"string","title":"Value"},"origin":{"type":"string","enum":["user","default","editorial","public_observation"],"title":"Origin"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note"}},"type":"object","required":["key","label","value","origin","note"],"title":"AssumptionOut"},"CandidateOut":{"properties":{"provider":{"type":"string","title":"Provider"},"provider_name":{"type":"string","title":"Provider Name"},"product":{"type":"string","title":"Product"},"product_name":{"type":"string","title":"Product Name"},"architecture":{"type":"string","enum":["managed_api","self_managed"],"title":"Architecture"},"plan":{"$ref":"#/components/schemas/PlanRef"},"fit_score":{"type":"integer","title":"Fit Score"},"score_breakdown":{"items":{"$ref":"#/components/schemas/ScoreLineOut"},"type":"array","title":"Score Breakdown"},"estimated_monthly_cost":{"$ref":"#/components/schemas/CostRangeOut"},"cost_per_1k_pages_usd":{"type":"number","title":"Cost Per 1K Pages Usd"},"reasons":{"items":{"$ref":"#/components/schemas/NoteOut"},"type":"array","title":"Reasons"},"limitations":{"items":{"$ref":"#/components/schemas/NoteOut"},"type":"array","title":"Limitations"},"evidence":{"items":{"$ref":"#/components/schemas/SourceOut"},"type":"array","title":"Evidence"},"checked_at":{"type":"string","title":"Checked At"}},"type":"object","required":["provider","provider_name","product","product_name","architecture","plan","fit_score","score_breakdown","estimated_monthly_cost","cost_per_1k_pages_usd","reasons","limitations","evidence","checked_at"],"title":"CandidateOut"},"Capability":{"type":"string","enum":["low","medium","high"],"title":"Capability"},"ChangeList":{"properties":{"changes":{"items":{"$ref":"#/components/schemas/PublicChange"},"type":"array","title":"Changes"},"tracking_since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Tracking Since"},"meta":{"$ref":"#/components/schemas/Meta"}},"type":"object","required":["changes","tracking_since","meta"],"title":"ChangeList"},"ChangeSource":{"properties":{"url":{"type":"string","title":"Url"},"title":{"type":"string","title":"Title"}},"type":"object","required":["url","title"],"title":"ChangeSource"},"CompareRequest":{"properties":{"products":{"items":{"type":"string","pattern":"^[a-z0-9-]+/[a-z0-9-]+$"},"type":"array","maxItems":3,"minItems":1,"title":"Products"},"workload":{"$ref":"#/components/schemas/Workload-Input"}},"type":"object","required":["products","workload"],"title":"CompareRequest"},"CompareResponse":{"properties":{"products":{"items":{"$ref":"#/components/schemas/ComparedProduct"},"type":"array","title":"Products"},"assumptions":{"items":{"$ref":"#/components/schemas/AssumptionOut"},"type":"array","title":"Assumptions"},"engine_version":{"type":"string","title":"Engine Version"},"meta":{"$ref":"#/components/schemas/Meta"}},"type":"object","required":["products","assumptions","engine_version","meta"],"title":"CompareResponse"},"ComparedProduct":{"properties":{"estimate":{"$ref":"#/components/schemas/ProductEstimateOut"},"features":{"items":{"$ref":"#/components/schemas/FeatureOut"},"type":"array","title":"Features"},"limits":{"items":{"$ref":"#/components/schemas/LimitOut"},"type":"array","title":"Limits"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"url":{"type":"string","title":"Url"}},"type":"object","required":["estimate","features","limits","notes","url"],"title":"ComparedProduct"},"ConsumptionOut":{"properties":{"key":{"type":"string","title":"Key"},"activity":{"type":"string","title":"Activity"},"amount":{"type":"number","title":"Amount"},"unit":{"type":"string","title":"Unit"},"per":{"type":"number","title":"Per"},"per_unit":{"type":"string","title":"Per Unit"},"source":{"type":"string","title":"Source"}},"type":"object","required":["key","activity","amount","unit","per","per_unit","source"],"title":"ConsumptionOut"},"CostRangeOut":{"properties":{"low":{"type":"number","title":"Low"},"expected":{"type":"number","title":"Expected"},"high":{"type":"number","title":"High"},"currency":{"type":"string","const":"USD","title":"Currency","default":"USD"}},"type":"object","required":["low","expected","high"],"title":"CostRangeOut"},"CostRowOut":{"properties":{"when":{"additionalProperties":true,"type":"object","title":"When"},"amount":{"type":"number","title":"Amount"},"unit":{"type":"string","title":"Unit"},"per":{"type":"integer","title":"Per"},"mode":{"type":"string","title":"Mode"},"source":{"type":"string","title":"Source"}},"type":"object","required":["when","amount","unit","per","mode","source"],"title":"CostRowOut"},"DomainClassOut":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"examples":{"items":{"type":"string"},"type":"array","title":"Examples"}},"type":"object","required":["key","label","examples"],"title":"DomainClassOut"},"EstimateRequest":{"properties":{"workload":{"$ref":"#/components/schemas/Workload-Input"},"products":{"anyOf":[{"items":{"type":"string","pattern":"^[a-z0-9-]+/[a-z0-9-]+$"},"type":"array","maxItems":20},{"type":"null"}],"title":"Products","description":"Limit to these products (\"provider/product\"); all products when omitted."}},"type":"object","required":["workload"],"title":"EstimateRequest"},"EstimateResponse":{"properties":{"workload":{"$ref":"#/components/schemas/Workload-Output"},"assumptions":{"items":{"$ref":"#/components/schemas/AssumptionOut"},"type":"array","title":"Assumptions"},"estimates":{"items":{"$ref":"#/components/schemas/ProductEstimateOut"},"type":"array","title":"Estimates"},"engine_version":{"type":"string","title":"Engine Version"},"meta":{"$ref":"#/components/schemas/Meta"}},"type":"object","required":["workload","assumptions","estimates","engine_version","meta"],"title":"EstimateResponse"},"ExcludedOut":{"properties":{"provider":{"type":"string","title":"Provider"},"provider_name":{"type":"string","title":"Provider Name"},"product":{"type":"string","title":"Product"},"product_name":{"type":"string","title":"Product Name"},"reasons":{"items":{"type":"string"},"type":"array","title":"Reasons"}},"type":"object","required":["provider","provider_name","product","product_name","reasons"],"title":"ExcludedOut"},"FeatureOut":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"value":{"title":"Value"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"source":{"type":"string","title":"Source"}},"type":"object","required":["key","label","value","notes","source"],"title":"FeatureOut"},"Freshness":{"type":"string","enum":["fresh","recent","stale"],"title":"Freshness"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"Health":{"properties":{"status":{"type":"string","enum":["ok","degraded"],"title":"Status"},"database":{"type":"string","enum":["ok","unavailable"],"title":"Database"},"engine_version":{"type":"string","title":"Engine Version"},"schema_version":{"type":"string","title":"Schema Version"}},"type":"object","required":["status","database","engine_version","schema_version"],"title":"Health"},"LimitOut":{"properties":{"key":{"type":"string","title":"Key"},"value":{"anyOf":[{"type":"number"},{"type":"string"},{"type":"null"}],"title":"Value"},"unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unit"},"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"source":{"type":"string","title":"Source"}},"type":"object","required":["key","value","unit","plan","notes","source"],"title":"LimitOut"},"Meta":{"properties":{"data_checked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Data Checked At"},"freshness":{"$ref":"#/components/schemas/Freshness"},"schema_version":{"type":"string","title":"Schema Version"}},"type":"object","required":["data_checked_at","freshness","schema_version"],"title":"Meta"},"NoteOut":{"properties":{"text":{"type":"string","title":"Text"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"}},"type":"object","required":["text","source"],"title":"NoteOut"},"OverageOut":{"properties":{"unit":{"type":"string","title":"Unit"},"price_usd":{"type":"number","title":"Price Usd"},"per":{"type":"integer","title":"Per"},"max_quantity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Quantity"},"source":{"type":"string","title":"Source"}},"type":"object","required":["unit","price_usd","per","max_quantity","source"],"title":"OverageOut"},"PlanOut":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"},"billing_period":{"type":"string","title":"Billing Period"},"price_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Price Usd"},"annual_price_usd_per_month":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Annual Price Usd Per Month"},"minimum_spend_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minimum Spend Usd"},"spending_limit_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Spending Limit Usd"},"public_pricing":{"type":"boolean","title":"Public Pricing"},"contract_required":{"type":"boolean","title":"Contract Required"},"included":{"anyOf":[{"$ref":"#/components/schemas/Quantity"},{"type":"null"}]},"overage":{"anyOf":[{"$ref":"#/components/schemas/OverageOut"},{"type":"null"}]},"top_ups":{"items":{"$ref":"#/components/schemas/TopUpOut"},"type":"array","title":"Top Ups"},"unit_prices":{"items":{"$ref":"#/components/schemas/UnitPriceOut"},"type":"array","title":"Unit Prices"},"cost_rows":{"items":{"$ref":"#/components/schemas/CostRowOut"},"type":"array","title":"Cost Rows"},"rollover":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rollover"},"concurrency":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Concurrency"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"source":{"type":"string","title":"Source"}},"type":"object","required":["key","name","billing_period","price_usd","annual_price_usd_per_month","minimum_spend_usd","spending_limit_usd","public_pricing","contract_required","included","overage","top_ups","unit_prices","cost_rows","rollover","concurrency","notes","source"],"title":"PlanOut"},"PlanRef":{"properties":{"key":{"type":"string","title":"Key"},"name":{"type":"string","title":"Name"}},"type":"object","required":["key","name"],"title":"PlanRef"},"ProductDetail":{"properties":{"provider":{"$ref":"#/components/schemas/ProviderRef"},"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"category":{"type":"string","title":"Category"},"billing_model":{"type":"string","title":"Billing Model"},"failed_requests_billed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Failed Requests Billed"},"billed_statuses":{"items":{"type":"integer"},"type":"array","title":"Billed Statuses"},"shared_balance_with":{"items":{"type":"string"},"type":"array","title":"Shared Balance With"},"pricing_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pricing Url"},"docs_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docs Url"},"free_trial":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Free Trial"},"notes":{"items":{"type":"string"},"type":"array","title":"Notes"},"plans":{"items":{"$ref":"#/components/schemas/PlanOut"},"type":"array","title":"Plans"},"cost_rows":{"items":{"$ref":"#/components/schemas/CostRowOut"},"type":"array","title":"Cost Rows"},"domain_classes":{"items":{"$ref":"#/components/schemas/DomainClassOut"},"type":"array","title":"Domain Classes"},"consumption":{"items":{"$ref":"#/components/schemas/ConsumptionOut"},"type":"array","title":"Consumption"},"features":{"items":{"$ref":"#/components/schemas/FeatureOut"},"type":"array","title":"Features"},"limits":{"items":{"$ref":"#/components/schemas/LimitOut"},"type":"array","title":"Limits"},"sources":{"items":{"$ref":"#/components/schemas/SourceOut"},"type":"array","title":"Sources"},"history":{"items":{"$ref":"#/components/schemas/PublicChange"},"type":"array","title":"History"},"tracking_since":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Tracking Since"},"last_verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Verified At"},"freshness":{"$ref":"#/components/schemas/Freshness"},"meta":{"$ref":"#/components/schemas/Meta"}},"type":"object","required":["provider","slug","name","category","billing_model","failed_requests_billed","billed_statuses","shared_balance_with","pricing_url","docs_url","free_trial","notes","plans","cost_rows","domain_classes","consumption","features","limits","sources","history","tracking_since","last_verified_at","freshness","meta"],"title":"ProductDetail"},"ProductEstimateOut":{"properties":{"provider":{"type":"string","title":"Provider"},"provider_name":{"type":"string","title":"Provider Name"},"product":{"type":"string","title":"Product"},"product_name":{"type":"string","title":"Product Name"},"category":{"type":"string","title":"Category"},"billing_model":{"type":"string","title":"Billing Model"},"architecture":{"type":"string","enum":["managed_api","self_managed"],"title":"Architecture"},"feasible":{"type":"boolean","title":"Feasible"},"low":{"anyOf":[{"$ref":"#/components/schemas/QuoteOut"},{"type":"null"}]},"expected":{"anyOf":[{"$ref":"#/components/schemas/QuoteOut"},{"type":"null"}]},"high":{"anyOf":[{"$ref":"#/components/schemas/QuoteOut"},{"type":"null"}]},"rejected_plans":{"additionalProperties":{"type":"string"},"type":"object","title":"Rejected Plans"},"sources":{"items":{"$ref":"#/components/schemas/SourceOut"},"type":"array","title":"Sources"}},"type":"object","required":["provider","provider_name","product","product_name","category","billing_model","architecture","feasible","low","expected","high","rejected_plans","sources"],"title":"ProductEstimateOut"},"ProductSummary":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"category":{"type":"string","title":"Category"},"billing_model":{"type":"string","title":"Billing Model"},"plan_count":{"type":"integer","title":"Plan Count"},"lowest_paid_plan_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lowest Paid Plan Usd"},"pay_as_you_go":{"type":"boolean","title":"Pay As You Go"},"free_plan":{"type":"boolean","title":"Free Plan"}},"type":"object","required":["slug","name","category","billing_model","plan_count","lowest_paid_plan_usd","pay_as_you_go","free_plan"],"title":"ProductSummary"},"ProviderDetail":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"website_url":{"type":"string","title":"Website Url"},"products":{"items":{"$ref":"#/components/schemas/ProductSummary"},"type":"array","title":"Products"},"last_verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Verified At"},"freshness":{"$ref":"#/components/schemas/Freshness"},"pricing_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pricing Url"},"docs_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Docs Url"},"status_page_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Page Url"},"terms_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Terms Url"},"affiliate":{"$ref":"#/components/schemas/Affiliate"},"sources":{"items":{"$ref":"#/components/schemas/SourceOut"},"type":"array","title":"Sources"},"meta":{"$ref":"#/components/schemas/Meta"}},"type":"object","required":["slug","name","website_url","products","last_verified_at","freshness","pricing_url","docs_url","status_page_url","terms_url","affiliate","sources","meta"],"title":"ProviderDetail"},"ProviderList":{"properties":{"providers":{"items":{"$ref":"#/components/schemas/ProviderSummary"},"type":"array","title":"Providers"},"meta":{"$ref":"#/components/schemas/Meta"}},"type":"object","required":["providers","meta"],"title":"ProviderList"},"ProviderRef":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"website_url":{"type":"string","title":"Website Url"}},"type":"object","required":["slug","name","website_url"],"title":"ProviderRef"},"ProviderSummary":{"properties":{"slug":{"type":"string","title":"Slug"},"name":{"type":"string","title":"Name"},"website_url":{"type":"string","title":"Website Url"},"products":{"items":{"$ref":"#/components/schemas/ProductSummary"},"type":"array","title":"Products"},"last_verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Verified At"},"freshness":{"$ref":"#/components/schemas/Freshness"}},"type":"object","required":["slug","name","website_url","products","last_verified_at","freshness"],"title":"ProviderSummary"},"PublicChange":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"provider":{"type":"string","title":"Provider"},"provider_name":{"type":"string","title":"Provider Name"},"product":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product"},"product_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Name"},"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan"},"plan_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Name"},"change_type":{"type":"string","title":"Change Type"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"old_value":{"title":"Old Value"},"new_value":{"title":"New Value"},"severity":{"type":"string","title":"Severity"},"detected_at":{"type":"string","format":"date-time","title":"Detected At"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"source":{"anyOf":[{"$ref":"#/components/schemas/ChangeSource"},{"type":"null"}]}},"type":"object","required":["id","provider","provider_name","product","product_name","plan","plan_name","change_type","summary","old_value","new_value","severity","detected_at","published_at","source"],"title":"PublicChange"},"Quantity":{"properties":{"quantity":{"type":"number","title":"Quantity"},"unit":{"type":"string","title":"Unit"}},"type":"object","required":["quantity","unit"],"title":"Quantity"},"QuoteOut":{"properties":{"plan_key":{"type":"string","title":"Plan Key"},"plan_name":{"type":"string","title":"Plan Name"},"monthly_cost_usd":{"type":"number","title":"Monthly Cost Usd"},"cost_per_1k_pages_usd":{"type":"number","title":"Cost Per 1K Pages Usd"}},"type":"object","required":["plan_key","plan_name","monthly_cost_usd","cost_per_1k_pages_usd"],"title":"QuoteOut"},"RecommendRequest-Input":{"properties":{"workload":{"$ref":"#/components/schemas/Workload-Input"},"budget_usd":{"anyOf":[{"type":"number","maximum":10000000.0,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Budget Usd"},"requires_login_session":{"type":"boolean","title":"Requires Login Session","default":false},"team_maintenance_capability":{"$ref":"#/components/schemas/Capability","default":"medium"}},"type":"object","required":["workload"],"title":"RecommendRequest"},"RecommendRequest-Output":{"properties":{"workload":{"$ref":"#/components/schemas/Workload-Output"},"budget_usd":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Budget Usd"},"requires_login_session":{"type":"boolean","title":"Requires Login Session","default":false},"team_maintenance_capability":{"$ref":"#/components/schemas/Capability","default":"medium"}},"type":"object","required":["workload"],"title":"RecommendRequest"},"RecommendResponse":{"properties":{"status":{"type":"string","enum":["recommendation_available","requirements_not_feasible"],"title":"Status"},"recommended_architecture":{"$ref":"#/components/schemas/Architecture"},"confidence":{"type":"string","enum":["high","medium","low"],"title":"Confidence"},"requirements":{"$ref":"#/components/schemas/RecommendRequest-Output"},"assumptions":{"items":{"$ref":"#/components/schemas/AssumptionOut"},"type":"array","title":"Assumptions"},"providers":{"items":{"$ref":"#/components/schemas/CandidateOut"},"type":"array","title":"Providers"},"alternatives":{"items":{"$ref":"#/components/schemas/CandidateOut"},"type":"array","title":"Alternatives"},"excluded":{"items":{"$ref":"#/components/schemas/ExcludedOut"},"type":"array","title":"Excluded"},"minimum_expected_budget_usd":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minimum Expected Budget Usd"},"suggestions":{"items":{"type":"string"},"type":"array","title":"Suggestions"},"run_id":{"type":"string","format":"uuid","title":"Run Id"},"engine_version":{"type":"string","title":"Engine Version"},"recommender_version":{"type":"string","title":"Recommender Version"},"meta":{"$ref":"#/components/schemas/Meta"}},"type":"object","required":["status","recommended_architecture","confidence","requirements","assumptions","providers","alternatives","excluded","minimum_expected_budget_usd","suggestions","run_id","engine_version","recommender_version","meta"],"title":"RecommendResponse"},"ScoreLineOut":{"properties":{"key":{"type":"string","title":"Key"},"label":{"type":"string","title":"Label"},"points":{"type":"integer","title":"Points"},"max_points":{"type":"integer","title":"Max Points"},"why":{"type":"string","title":"Why"}},"type":"object","required":["key","label","points","max_points","why"],"title":"ScoreLineOut"},"SourceOut":{"properties":{"key":{"type":"string","title":"Key"},"url":{"type":"string","title":"Url"},"title":{"type":"string","title":"Title"},"observed_at":{"type":"string","format":"date-time","title":"Observed At"},"excerpts":{"items":{"type":"string"},"type":"array","title":"Excerpts"},"fact_type":{"type":"string","title":"Fact Type"},"freshness":{"$ref":"#/components/schemas/Freshness"}},"type":"object","required":["key","url","title","observed_at","excerpts","fact_type","freshness"],"title":"SourceOut"},"TopUpOut":{"properties":{"quantity":{"type":"number","title":"Quantity"},"unit":{"type":"string","title":"Unit"},"price_usd":{"type":"number","title":"Price Usd"},"max_per_period":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Per Period"},"rolls_over":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Rolls Over"},"source":{"type":"string","title":"Source"}},"type":"object","required":["quantity","unit","price_usd","max_per_period","rolls_over","source"],"title":"TopUpOut"},"UnitPriceOut":{"properties":{"unit":{"type":"string","title":"Unit"},"price_usd":{"type":"number","title":"Price Usd"},"per":{"type":"integer","title":"Per"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"source":{"type":"string","title":"Source"}},"type":"object","required":["unit","price_usd","per","label","source"],"title":"UnitPriceOut"},"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"},"Workload-Input":{"properties":{"successful_pages_per_month":{"type":"integer","maximum":1000000000.0,"minimum":1.0,"title":"Successful Pages Per Month"},"javascript_ratio":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Javascript Ratio","default":"0"},"anti_bot_level":{"$ref":"#/components/schemas/AntiBotLevel","default":"unknown"},"target_country":{"anyOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"null"}],"title":"Target Country"},"country_required":{"type":"boolean","title":"Country Required","default":true},"domain_class":{"anyOf":[{"type":"string","maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},{"type":"null"}],"title":"Domain Class","description":"Target category with special pricing, e.g. 'amazon'."},"peak_concurrency":{"type":"integer","maximum":100000.0,"minimum":1.0,"title":"Peak Concurrency","default":10},"monthly_billing_only":{"type":"boolean","title":"Monthly Billing Only","default":false},"expected_success_rate":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.5},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Expected Success Rate"},"average_page_size_kb":{"anyOf":[{"type":"number","maximum":102400.0,"minimum":1.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Average Page Size Kb"},"average_browser_seconds":{"anyOf":[{"type":"number","maximum":3600.0,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Average Browser Seconds"}},"additionalProperties":false,"type":"object","required":["successful_pages_per_month"],"title":"Workload","description":"Monthly scraping workload. Unset optional fields fall back to visible assumptions."},"Workload-Output":{"properties":{"successful_pages_per_month":{"type":"integer","maximum":1000000000.0,"minimum":1.0,"title":"Successful Pages Per Month"},"javascript_ratio":{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$","title":"Javascript Ratio","default":"0"},"anti_bot_level":{"$ref":"#/components/schemas/AntiBotLevel","default":"unknown"},"target_country":{"anyOf":[{"type":"string","pattern":"^[A-Z]{2}$"},{"type":"null"}],"title":"Target Country"},"country_required":{"type":"boolean","title":"Country Required","default":true},"domain_class":{"anyOf":[{"type":"string","maxLength":40,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},{"type":"null"}],"title":"Domain Class","description":"Target category with special pricing, e.g. 'amazon'."},"peak_concurrency":{"type":"integer","maximum":100000.0,"minimum":1.0,"title":"Peak Concurrency","default":10},"monthly_billing_only":{"type":"boolean","title":"Monthly Billing Only","default":false},"expected_success_rate":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Expected Success Rate"},"average_page_size_kb":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Average Page Size Kb"},"average_browser_seconds":{"anyOf":[{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"},{"type":"null"}],"title":"Average Browser Seconds"}},"additionalProperties":false,"type":"object","required":["successful_pages_per_month"],"title":"Workload","description":"Monthly scraping workload. Unset optional fields fall back to visible assumptions."}}}}