changedOutput schema / anyOf
Previous value: -[
- {
- "properties": {
- "alternatives_to": {
- "description": "Only with alternatives_to: the plan the alternatives are for and the conditions it does not meet. When the name fits several plans (status \"ambiguous\") or none, candidates or note say so and the lists of plans are empty.",
- "properties": {
- "blocked": {
- "description": "The required conditions this plan does not meet or cannot confirm, with the official sentence and check date; empty when it meets them all.",
- "items": {
- "properties": {
- "checked_at": {
- "description": "Date the sentence was checked (YYYY-MM-DD).",
- "type": "string"
- },
- "condition": {
- "type": "string"
- },
- "quote": {
- "description": "The official sentence that states the value, when the pages state it.",
- "type": "string"
- },
- "reason": {
- "description": "One line on why.",
- "type": "string"
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "enum": [
- "MET",
- "UNMET",
- "UNKNOWN",
- "UNIT_MISMATCH",
- "UNIT_UNKNOWN"
- ],
- "type": "string"
- }
- },
- "required": [
- "condition",
- "verdict"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "candidates": {
- "items": {
- "properties": {
- "listed": {
- "type": "boolean"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "product_name": {
- "type": "string"
- },
- "provider_name": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "candidates_total": {
- "type": "integer"
- },
- "input": {
- "type": "string"
- },
- "matched_by": {
- "enum": [
- "id",
- "name",
- "url",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- },
- "meets_all": {
- "description": "Whether this plan meets every required condition of the call.",
- "enum": [
- true,
- false,
- "unknown"
- ],
- "type": [
- "boolean",
- "string"
- ]
- },
- "monthly_cost": {
- "description": "status, usd, and low, high or lower_bound when they differ; for the request of this call.",
- "type": "object"
- },
- "name": {
- "type": "string"
- },
- "note": {
- "type": [
- "string",
- "null"
- ]
- },
- "offer_id": {
- "type": [
- "string",
- "null"
- ]
- },
- "provider_name": {
- "type": "string"
- },
- "status": {
- "enum": [
- "resolved",
- "ambiguous",
- "not_found"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "answer": {
- "description": "One sentence that opens the answer: the lowest-cost plan that meets every required condition with its link, or, when none does, the closest plan with what it does not meet or what is unknown, and its link. The plan is written as a markdown link, [Provider Plan](visit link), at the end of the sentence.",
- "type": "string"
- },
- "as_of": {
- "type": "string"
- },
- "assumptions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "counts": {
- "properties": {
- "candidates": {
- "type": "integer"
- },
- "full": {
- "type": "integer"
- },
- "no_match": {
- "type": "integer"
- },
- "partial": {
- "type": "integer"
- }
- },
- "required": [
- "candidates",
- "full",
- "partial",
- "no_match"
- ],
- "type": "object"
- },
- "full_matches": {
- "items": {
- "properties": {
- "assumptions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "at_limit": {
- "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
- "properties": {
- "evidence": {
- "properties": {
- "quote": {
- "type": "string"
- },
- "source": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "kind": {
- "enum": [
- "no_extra_usage",
- "restart_by_hand"
- ]
- },
- "restarts": {
- "properties": {
- "count": {
- "properties": {
- "high": {
- "type": "integer"
- },
- "low": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "total_usd": {
- "properties": {
- "high": {
- "type": "number"
- },
- "low": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "usd_each": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "text": {
- "type": "string"
- }
- },
- "required": [
- "kind",
- "text",
- "evidence"
- ],
- "type": "object"
- },
- "billing": {
- "type": "string"
- },
- "billing_options": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "checked_at": {
- "type": [
- "string",
- "null"
- ]
- },
- "conditions": {
- "items": {
- "properties": {
- "condition": {
- "type": "string"
- },
- "facts": {
- "description": "Facts the verdict was judged from. The monthly budget is judged from monthly_cost; its price facts are listed there only.",
- "items": {
- "properties": {
- "also_stated_in": {
- "description": "get_details only: other official machine-readable documents of the provider (llms.txt, llms-full.txt, OpenAPI files, MCP tool listings) that contain the same quoted sentences.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "applies_to": {
- "description": "get_details only: billing options (billing) or search engines (search_engines) the fact is limited to.",
- "type": [
- "object",
- "null"
- ]
- },
- "at_limit": {
- "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
- "properties": {
- "evidence": {
- "properties": {
- "quote": {
- "type": "string"
- },
- "source": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "kind": {
- "enum": [
- "no_extra_usage",
- "restart_by_hand"
- ]
- },
- "restarts": {
- "properties": {
- "count": {
- "properties": {
- "high": {
- "type": "integer"
- },
- "low": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "total_usd": {
- "properties": {
- "high": {
- "type": "number"
- },
- "low": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "usd_each": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "text": {
- "type": "string"
- }
- },
- "required": [
- "kind",
- "text",
- "evidence"
- ],
- "type": "object"
- },
- "checked_at": {
- "type": [
- "string",
- "null"
- ]
- },
- "concurrency_unit": {
- "description": "get_details, concurrency only: the unit the page states the value in (unit, text such as \"100 threads\"). Against concurrent requests: equals_requests (value, text and the official line of the unit rule) when the unit rule counts this unit as requests, else note \"not the same unit as concurrent requests\"; \"unit not stated\" when the page names none.",
- "type": "object"
- },
- "derived": {
- "description": "How the value follows from the quoted sentence when it is not literal.",
- "type": "string"
- },
- "evidence": {
- "items": {
- "properties": {
- "quote": {
- "description": "The sentence as it appears on that page.",
- "type": "string"
- },
- "retrieved_at": {
- "description": "Date the page was read (YYYY-MM-DD). Only with detail=full.",
- "type": "string"
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": "string"
- },
- "source_type": {
- "description": "Only with detail=full.",
- "enum": [
- "official_pricing",
- "official_docs",
- "third_party"
- ]
- }
- },
- "required": [
- "source",
- "quote"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "exceptions": {
- "description": "get_details only: plans with a different value.",
- "type": "array"
- },
- "key": {
- "type": "string"
- },
- "label": {
- "type": "string"
- },
- "level": {
- "description": "Where the fact is recorded: offer (the plan), product or provider.",
- "type": [
- "string",
- "null"
- ]
- },
- "note": {
- "type": "string"
- },
- "stale": {
- "type": "boolean"
- },
- "status": {
- "description": "TRUE: stated with the value; FALSE / NOT_SUPPORTED: stated as unavailable; UNKNOWN: not stated; CONFLICT: official pages disagree (value lists each version); STALE: past its recheck date; MISSING: not recorded.",
- "enum": [
- "TRUE",
- "FALSE",
- "NOT_SUPPORTED",
- "UNKNOWN",
- "CONFLICT",
- "STALE",
- "MISSING"
- ]
- },
- "value": {},
- "via_exception": {
- "description": "Present and true when a plan-specific exception replaced the general value.",
- "type": "boolean"
- }
- },
- "required": [
- "key",
- "status",
- "value",
- "level",
- "evidence",
- "checked_at"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "label": {
- "type": "string"
- },
- "reason": {
- "type": "string"
- },
- "required": {
- "type": "boolean"
- },
- "verdict": {
- "enum": [
- "MET",
- "UNMET",
- "UNKNOWN",
- "UNIT_MISMATCH",
- "UNIT_UNKNOWN"
- ]
- }
- },
- "required": [
- "condition",
- "label",
- "required",
- "verdict",
- "reason",
- "facts"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "facts_omitted": {
- "description": "search only: present and true when the source sentences under the conditions were left out so that the response fits one response; the verdicts, reasons and costs are unchanged. Ask check_conditions with the offer_id or get_details for the sentences.",
- "type": "boolean"
- },
- "fit": {
- "description": "How well the plan fits this request, counted from the verdicts above: score = 100 x conditions met / required conditions (a condition not met or not stated counts 0; no weights), the counts it comes from, and quantitative metrics worked out only from the official sentences used in this verdict (null when a value is missing). Shown beside the verdicts; it changes no order and no link.",
- "properties": {
- "formula": {
- "type": "string"
- },
- "met": {
- "type": "integer"
- },
- "metrics": {
- "description": "budget_left_pct (percent of the budget left under the highest monthly cost of the plan; negative = percent over), volume_x (included volume / requested volume), concurrency_x (plan limit / requested concurrency), rpm_x (plan requests per minute / requested), cost_spread_pct (percent between the lowest and highest monthly cost; 0 = fixed), oldest_evidence_days (days since the oldest check date among the sentences used). null when not computable.",
- "type": "object"
- },
- "not_met": {
- "type": "integer"
- },
- "required": {
- "type": "integer"
- },
- "score": {
- "description": "0 to 100; null when the request has no required condition.",
- "type": [
- "number",
- "null"
- ]
- },
- "unknown": {
- "type": "integer"
- }
- },
- "required": [
- "score",
- "met",
- "required",
- "unknown",
- "not_met",
- "metrics",
- "formula"
- ],
- "type": "object"
- },
- "link": {
- "properties": {
- "affiliate": {
- "properties": {
- "disclosure": {
- "type": [
- "string",
- "null"
- ]
- },
- "program": {
- "type": [
- "string",
- "null"
- ]
- },
- "status": {
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- "landing": {
- "type": "string"
- },
- "link_level": {
- "type": "string"
- },
- "provider_url": {
- "description": "The provider page itself. Only in a page made for a browser, where url is this service's address that forwards to it; MCP and REST results do not carry it.",
- "type": "string"
- },
- "sign_up_url": {
- "description": "The same address with the token in the path, /go/<offer_id>/<token>: the sign-up address of this plan to give the user.",
- "type": "string"
- },
- "url": {
- "description": "The only address to visit the plan: this service's /go/<offer_id>?r=<token> address, which forwards to the provider page. The token is made for this response and holds nothing about you.",
- "type": "string"
- }
- },
- "required": [
- "url",
- "landing",
- "link_level",
- "affiliate"
- ],
- "type": "object"
- },
- "listed": {
- "type": "boolean"
- },
- "match": {
- "enum": [
- "FULL_MATCH",
- "PARTIAL_MATCH",
- "NO_MATCH"
- ]
- },
- "meets_all": {
- "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
- "enum": [
- true,
- false,
- "unknown"
- ]
- },
- "monthly_cost": {
- "properties": {
- "explanation": {
- "type": "string"
- },
- "facts": {
- "description": "Price facts the cost was computed from.",
- "items": {
- "properties": {
- "also_stated_in": {
- "description": "get_details only: other official machine-readable documents of the provider (llms.txt, llms-full.txt, OpenAPI files, MCP tool listings) that contain the same quoted sentences.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "applies_to": {
- "description": "get_details only: billing options (billing) or search engines (search_engines) the fact is limited to.",
- "type": [
- "object",
- "null"
- ]
- },
- "at_limit": {
- "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
- "properties": {
- "evidence": {
- "properties": {
- "quote": {
- "type": "string"
- },
- "source": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "kind": {
- "enum": [
- "no_extra_usage",
- "restart_by_hand"
- ]
- },
- "restarts": {
- "properties": {
- "count": {
- "properties": {
- "high": {
- "type": "integer"
- },
- "low": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "total_usd": {
- "properties": {
- "high": {
- "type": "number"
- },
- "low": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "usd_each": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "text": {
- "type": "string"
- }
- },
- "required": [
- "kind",
- "text",
- "evidence"
- ],
- "type": "object"
- },
- "checked_at": {
- "type": [
- "string",
- "null"
- ]
- },
- "concurrency_unit": {
- "description": "get_details, concurrency only: the unit the page states the value in (unit, text such as \"100 threads\"). Against concurrent requests: equals_requests (value, text and the official line of the unit rule) when the unit rule counts this unit as requests, else note \"not the same unit as concurrent requests\"; \"unit not stated\" when the page names none.",
- "type": "object"
- },
- "derived": {
- "description": "How the value follows from the quoted sentence when it is not literal.",
- "type": "string"
- },
- "evidence": {
- "items": {
- "properties": {
- "quote": {
- "description": "The sentence as it appears on that page.",
- "type": "string"
- },
- "retrieved_at": {
- "description": "Date the page was read (YYYY-MM-DD). Only with detail=full.",
- "type": "string"
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": "string"
- },
- "source_type": {
- "description": "Only with detail=full.",
- "enum": [
- "official_pricing",
- "official_docs",
- "third_party"
- ]
- }
- },
- "required": [
- "source",
- "quote"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "exceptions": {
- "description": "get_details only: plans with a different value.",
- "type": "array"
- },
- "key": {
- "type": "string"
- },
- "label": {
- "type": "string"
- },
- "level": {
- "description": "Where the fact is recorded: offer (the plan), product or provider.",
- "type": [
- "string",
- "null"
- ]
- },
- "note": {
- "type": "string"
- },
- "stale": {
- "type": "boolean"
- },
- "status": {
- "description": "TRUE: stated with the value; FALSE / NOT_SUPPORTED: stated as unavailable; UNKNOWN: not stated; CONFLICT: official pages disagree (value lists each version); STALE: past its recheck date; MISSING: not recorded.",
- "enum": [
- "TRUE",
- "FALSE",
- "NOT_SUPPORTED",
- "UNKNOWN",
- "CONFLICT",
- "STALE",
- "MISSING"
- ]
- },
- "value": {},
- "via_exception": {
- "description": "Present and true when a plan-specific exception replaced the general value.",
- "type": "boolean"
- }
- },
- "required": [
- "key",
- "status",
- "value",
- "level",
- "evidence",
- "checked_at"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "high": {
- "type": [
- "number",
- "null"
- ]
- },
- "low": {
- "type": [
- "number",
- "null"
- ]
- },
- "lower_bound": {
- "type": [
- "number",
- "null"
- ]
- },
- "status": {
- "enum": [
- "exact",
- "range",
- "lower_bound",
- "unknown"
- ]
- },
- "upfront_usd": {
- "type": [
- "number",
- "null"
- ]
- },
- "usd": {
- "type": [
- "number",
- "null"
- ]
- }
- },
- "required": [
- "status",
- "usd",
- "explanation"
- ],
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "on_blocked": {
- "description": "Only with alternatives_to: the verdict of this plan, with the official sentence and check date, on each condition the plan given as alternatives_to does not meet or cannot confirm (the same conditions as alternatives_to.blocked).",
- "items": {
- "properties": {
- "checked_at": {
- "description": "Date the sentence was checked (YYYY-MM-DD).",
- "type": "string"
- },
- "condition": {
- "type": "string"
- },
- "quote": {
- "description": "The official sentence that states the value, when the pages state it.",
- "type": "string"
- },
- "reason": {
- "description": "One line on why.",
- "type": "string"
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "enum": [
- "MET",
- "UNMET",
- "UNKNOWN",
- "UNIT_MISMATCH",
- "UNIT_UNKNOWN"
- ],
- "type": "string"
- }
- },
- "required": [
- "condition",
- "verdict"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "page_url": {
- "type": "string"
- },
- "plan_page": {
- "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
- "type": "string"
- },
- "preferred_met": {
- "type": "integer"
- },
- "prices_exclude_tax": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "product_id": {
- "type": "string"
- },
- "product_name": {
- "type": "string"
- },
- "provider_id": {
- "type": "string"
- },
- "provider_name": {
- "type": "string"
- },
- "unknown_conditions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "unmet_conditions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "verdict": {
- "description": "One sentence: the conditions met, or the ones not met or not stated, with the reason.",
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "product_id",
- "provider_name",
- "match",
- "meets_all",
- "verdict",
- "billing",
- "monthly_cost",
- "conditions",
- "unmet_conditions",
- "unknown_conditions",
- "link",
- "checked_at"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "link_notes": {
- "additionalProperties": {
- "type": "string"
- },
- "description": "The note of each link level (link.link_level) of the plans in this result, stated once.",
- "type": "object"
- },
- "needs_input": {
- "items": {
- "properties": {
- "field": {
- "type": "string"
- },
- "reason": {
- "type": "string"
- }
- },
- "required": [
- "field",
- "reason"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "notes": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "partial_matches": {
- "items": {
- "properties": {
- "assumptions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "at_limit": {
- "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
- "properties": {
- "evidence": {
- "properties": {
- "quote": {
- "type": "string"
- },
- "source": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "kind": {
- "enum": [
- "no_extra_usage",
- "restart_by_hand"
- ]
- },
- "restarts": {
- "properties": {
- "count": {
- "properties": {
- "high": {
- "type": "integer"
- },
- "low": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "total_usd": {
- "properties": {
- "high": {
- "type": "number"
- },
- "low": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "usd_each": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "text": {
- "type": "string"
- }
- },
- "required": [
- "kind",
- "text",
- "evidence"
- ],
- "type": "object"
- },
- "billing": {
- "type": "string"
- },
- "billing_options": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "checked_at": {
- "type": [
- "string",
- "null"
- ]
- },
- "conditions": {
- "items": {
- "properties": {
- "condition": {
- "type": "string"
- },
- "facts": {
- "description": "Facts the verdict was judged from. The monthly budget is judged from monthly_cost; its price facts are listed there only.",
- "items": {
- "properties": {
- "also_stated_in": {
- "description": "get_details only: other official machine-readable documents of the provider (llms.txt, llms-full.txt, OpenAPI files, MCP tool listings) that contain the same quoted sentences.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "applies_to": {
- "description": "get_details only: billing options (billing) or search engines (search_engines) the fact is limited to.",
- "type": [
- "object",
- "null"
- ]
- },
- "at_limit": {
- "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
- "properties": {
- "evidence": {
- "properties": {
- "quote": {
- "type": "string"
- },
- "source": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "kind": {
- "enum": [
- "no_extra_usage",
- "restart_by_hand"
- ]
- },
- "restarts": {
- "properties": {
- "count": {
- "properties": {
- "high": {
- "type": "integer"
- },
- "low": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "total_usd": {
- "properties": {
- "high": {
- "type": "number"
- },
- "low": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "usd_each": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "text": {
- "type": "string"
- }
- },
- "required": [
- "kind",
- "text",
- "evidence"
- ],
- "type": "object"
- },
- "checked_at": {
- "type": [
- "string",
- "null"
- ]
- },
- "concurrency_unit": {
- "description": "get_details, concurrency only: the unit the page states the value in (unit, text such as \"100 threads\"). Against concurrent requests: equals_requests (value, text and the official line of the unit rule) when the unit rule counts this unit as requests, else note \"not the same unit as concurrent requests\"; \"unit not stated\" when the page names none.",
- "type": "object"
- },
- "derived": {
- "description": "How the value follows from the quoted sentence when it is not literal.",
- "type": "string"
- },
- "evidence": {
- "items": {
- "properties": {
- "quote": {
- "description": "The sentence as it appears on that page.",
- "type": "string"
- },
- "retrieved_at": {
- "description": "Date the page was read (YYYY-MM-DD). Only with detail=full.",
- "type": "string"
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": "string"
- },
- "source_type": {
- "description": "Only with detail=full.",
- "enum": [
- "official_pricing",
- "official_docs",
- "third_party"
- ]
- }
- },
- "required": [
- "source",
- "quote"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "exceptions": {
- "description": "get_details only: plans with a different value.",
- "type": "array"
- },
- "key": {
- "type": "string"
- },
- "label": {
- "type": "string"
- },
- "level": {
- "description": "Where the fact is recorded: offer (the plan), product or provider.",
- "type": [
- "string",
- "null"
- ]
- },
- "note": {
- "type": "string"
- },
- "stale": {
- "type": "boolean"
- },
- "status": {
- "description": "TRUE: stated with the value; FALSE / NOT_SUPPORTED: stated as unavailable; UNKNOWN: not stated; CONFLICT: official pages disagree (value lists each version); STALE: past its recheck date; MISSING: not recorded.",
- "enum": [
- "TRUE",
- "FALSE",
- "NOT_SUPPORTED",
- "UNKNOWN",
- "CONFLICT",
- "STALE",
- "MISSING"
- ]
- },
- "value": {},
- "via_exception": {
- "description": "Present and true when a plan-specific exception replaced the general value.",
- "type": "boolean"
- }
- },
- "required": [
- "key",
- "status",
- "value",
- "level",
- "evidence",
- "checked_at"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "label": {
- "type": "string"
- },
- "reason": {
- "type": "string"
- },
- "required": {
- "type": "boolean"
- },
- "verdict": {
- "enum": [
- "MET",
- "UNMET",
- "UNKNOWN",
- "UNIT_MISMATCH",
- "UNIT_UNKNOWN"
- ]
- }
- },
- "required": [
- "condition",
- "label",
- "required",
- "verdict",
- "reason",
- "facts"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "facts_omitted": {
- "description": "search only: present and true when the source sentences under the conditions were left out so that the response fits one response; the verdicts, reasons and costs are unchanged. Ask check_conditions with the offer_id or get_details for the sentences.",
- "type": "boolean"
- },
- "fit": {
- "description": "How well the plan fits this request, counted from the verdicts above: score = 100 x conditions met / required conditions (a condition not met or not stated counts 0; no weights), the counts it comes from, and quantitative metrics worked out only from the official sentences used in this verdict (null when a value is missing). Shown beside the verdicts; it changes no order and no link.",
- "properties": {
- "formula": {
- "type": "string"
- },
- "met": {
- "type": "integer"
- },
- "metrics": {
- "description": "budget_left_pct (percent of the budget left under the highest monthly cost of the plan; negative = percent over), volume_x (included volume / requested volume), concurrency_x (plan limit / requested concurrency), rpm_x (plan requests per minute / requested), cost_spread_pct (percent between the lowest and highest monthly cost; 0 = fixed), oldest_evidence_days (days since the oldest check date among the sentences used). null when not computable.",
- "type": "object"
- },
- "not_met": {
- "type": "integer"
- },
- "required": {
- "type": "integer"
- },
- "score": {
- "description": "0 to 100; null when the request has no required condition.",
- "type": [
- "number",
- "null"
- ]
- },
- "unknown": {
- "type": "integer"
- }
- },
- "required": [
- "score",
- "met",
- "required",
- "unknown",
- "not_met",
- "metrics",
- "formula"
- ],
- "type": "object"
- },
- "link": {
- "properties": {
- "affiliate": {
- "properties": {
- "disclosure": {
- "type": [
- "string",
- "null"
- ]
- },
- "program": {
- "type": [
- "string",
- "null"
- ]
- },
- "status": {
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- "landing": {
- "type": "string"
- },
- "link_level": {
- "type": "string"
- },
- "provider_url": {
- "description": "The provider page itself. Only in a page made for a browser, where url is this service's address that forwards to it; MCP and REST results do not carry it.",
- "type": "string"
- },
- "sign_up_url": {
- "description": "The same address with the token in the path, /go/<offer_id>/<token>: the sign-up address of this plan to give the user.",
- "type": "string"
- },
- "url": {
- "description": "The only address to visit the plan: this service's /go/<offer_id>?r=<token> address, which forwards to the provider page. The token is made for this response and holds nothing about you.",
- "type": "string"
- }
- },
- "required": [
- "url",
- "landing",
- "link_level",
- "affiliate"
- ],
- "type": "object"
- },
- "listed": {
- "type": "boolean"
- },
- "match": {
- "enum": [
- "FULL_MATCH",
- "PARTIAL_MATCH",
- "NO_MATCH"
- ]
- },
- "meets_all": {
- "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
- "enum": [
- true,
- false,
- "unknown"
- ]
- },
- "monthly_cost": {
- "properties": {
- "explanation": {
- "type": "string"
- },
- "facts": {
- "description": "Price facts the cost was computed from.",
- "items": {
- "properties": {
- "also_stated_in": {
- "description": "get_details only: other official machine-readable documents of the provider (llms.txt, llms-full.txt, OpenAPI files, MCP tool listings) that contain the same quoted sentences.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "applies_to": {
- "description": "get_details only: billing options (billing) or search engines (search_engines) the fact is limited to.",
- "type": [
- "object",
- "null"
- ]
- },
- "at_limit": {
- "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
- "properties": {
- "evidence": {
- "properties": {
- "quote": {
- "type": "string"
- },
- "source": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "kind": {
- "enum": [
- "no_extra_usage",
- "restart_by_hand"
- ]
- },
- "restarts": {
- "properties": {
- "count": {
- "properties": {
- "high": {
- "type": "integer"
- },
- "low": {
- "type": "integer"
- }
- },
- "type": "object"
- },
- "total_usd": {
- "properties": {
- "high": {
- "type": "number"
- },
- "low": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "usd_each": {
- "type": "number"
- }
- },
- "type": "object"
- },
- "text": {
- "type": "string"
- }
- },
- "required": [
- "kind",
- "text",
- "evidence"
- ],
- "type": "object"
- },
- "checked_at": {
- "type": [
- "string",
- "null"
- ]
- },
- "concurrency_unit": {
- "description": "get_details, concurrency only: the unit the page states the value in (unit, text such as \"100 threads\"). Against concurrent requests: equals_requests (value, text and the official line of the unit rule) when the unit rule counts this unit as requests, else note \"not the same unit as concurrent requests\"; \"unit not stated\" when the page names none.",
- "type": "object"
- },
- "derived": {
- "description": "How the value follows from the quoted sentence when it is not literal.",
- "type": "string"
- },
- "evidence": {
- "items": {
- "properties": {
- "quote": {
- "description": "The sentence as it appears on that page.",
- "type": "string"
- },
- "retrieved_at": {
- "description": "Date the page was read (YYYY-MM-DD). Only with detail=full.",
- "type": "string"
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": "string"
- },
- "source_type": {
- "description": "Only with detail=full.",
- "enum": [
- "official_pricing",
- "official_docs",
- "third_party"
- ]
- }
- },
- "required": [
- "source",
- "quote"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "exceptions": {
- "description": "get_details only: plans with a different value.",
- "type": "array"
- },
- "key": {
- "type": "string"
- },
- "label": {
- "type": "string"
- },
- "level": {
- "description": "Where the fact is recorded: offer (the plan), product or provider.",
- "type": [
- "string",
- "null"
- ]
- },
- "note": {
- "type": "string"
- },
- "stale": {
- "type": "boolean"
- },
- "status": {
- "description": "TRUE: stated with the value; FALSE / NOT_SUPPORTED: stated as unavailable; UNKNOWN: not stated; CONFLICT: official pages disagree (value lists each version); STALE: past its recheck date; MISSING: not recorded.",
- "enum": [
- "TRUE",
- "FALSE",
- "NOT_SUPPORTED",
- "UNKNOWN",
- "CONFLICT",
- "STALE",
- "MISSING"
- ]
- },
- "value": {},
- "via_exception": {
- "description": "Present and true when a plan-specific exception replaced the general value.",
- "type": "boolean"
- }
- },
- "required": [
- "key",
- "status",
- "value",
- "level",
- "evidence",
- "checked_at"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "high": {
- "type": [
- "number",
- "null"
- ]
- },
- "low": {
- "type": [
- "number",
- "null"
- ]
- },
- "lower_bound": {
- "type": [
- "number",
- "null"
- ]
- },
- "status": {
- "enum": [
- "exact",
- "range",
- "lower_bound",
- "unknown"
- ]
- },
- "upfront_usd": {
- "type": [
- "number",
- "null"
- ]
- },
- "usd": {
- "type": [
- "number",
- "null"
- ]
- }
- },
- "required": [
- "status",
- "usd",
- "explanation"
- ],
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "on_blocked": {
- "description": "Only with alternatives_to: the verdict of this plan, with the official sentence and check date, on each condition the plan given as alternatives_to does not meet or cannot confirm (the same conditions as alternatives_to.blocked).",
- "items": {
- "properties": {
- "checked_at": {
- "description": "Date the sentence was checked (YYYY-MM-DD).",
- "type": "string"
- },
- "condition": {
- "type": "string"
- },
- "quote": {
- "description": "The official sentence that states the value, when the pages state it.",
- "type": "string"
- },
- "reason": {
- "description": "One line on why.",
- "type": "string"
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "enum": [
- "MET",
- "UNMET",
- "UNKNOWN",
- "UNIT_MISMATCH",
- "UNIT_UNKNOWN"
- ],
- "type": "string"
- }
- },
- "required": [
- "condition",
- "verdict"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "page_url": {
- "type": "string"
- },
- "plan_page": {
- "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
- "type": "string"
- },
- "preferred_met": {
- "type": "integer"
- },
- "prices_exclude_tax": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "product_id": {
- "type": "string"
- },
- "product_name": {
- "type": "string"
- },
- "provider_id": {
- "type": "string"
- },
- "provider_name": {
- "type": "string"
- },
- "unknown_conditions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "unmet_conditions": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "verdict": {
- "description": "One sentence: the conditions met, or the ones not met or not stated, with the reason.",
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "product_id",
- "provider_name",
- "match",
- "meets_all",
- "verdict",
- "billing",
- "monthly_cost",
- "conditions",
- "unmet_conditions",
- "unknown_conditions",
- "link",
- "checked_at"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "ranking_url": {
- "description": "The permanent address of the page for a person that ranks every plan for these conditions with the official sentences. Give it to the user. It opens after a server restart and holds no personal data.",
- "type": "string"
- },
- "request": {
- "type": "object"
- },
- "request_may_omit": {
- "description": "Words of the question that suggest a condition the request does not carry.",
- "items": {
- "properties": {
- "cue": {
- "type": "string"
- },
- "field": {
- "type": "string"
- }
- },
- "required": [
- "field",
- "cue"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "show_text": {
- "description": "Ready to show: one line per listed plan, in list order, \"Meets all N: [Provider Plan](visit link)\" for a plan that meets every required condition of the call, \"Closest: [Provider Plan](visit link)\" for any other. The plan is a markdown link to its visit link, which carries the token of this response. Absent when no plan is listed.",
- "type": "string"
- },
- "unknown_providers": {
- "description": "Only when providers was given: the names that are not a provider id or name in this catalog.",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "zero_result": {
- "properties": {
- "conditions": {
- "items": {
- "properties": {
- "closest": {
- "description": "The cheapest plan that meets every other required condition but not this one. It does not meet the request (meets_all false or \"unknown\").",
- "properties": {
- "billing": {
- "type": "string"
- },
- "fails": {
- "type": "string"
- },
- "meets_all": {
- "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
- "enum": [
- true,
- false,
- "unknown"
- ]
- },
- "monthly_cost": {
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "page_url": {
- "type": "string"
- },
- "provider_name": {
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "provider_name",
- "billing",
- "monthly_cost",
- "meets_all",
- "fails"
- ],
- "type": [
- "object",
- "null"
- ]
- },
- "condition": {
- "type": "string"
- },
- "excluded": {
- "type": "integer"
- },
- "label": {
- "type": "string"
- },
- "unknown": {
- "type": "integer"
- },
- "would_match_if_relaxed": {
- "type": "integer"
- }
- },
- "required": [
- "condition",
- "label",
- "excluded",
- "would_match_if_relaxed",
- "closest"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "note": {
- "type": "string"
- }
- },
- "type": [
- "object",
- "null"
- ]
- }
- },
- "required": [
- "answer",
- "as_of",
- "needs_input",
- "counts",
- "full_matches",
- "partial_matches",
- "zero_result",
- "assumptions",
- "notes"
- ],
- "type": "object"
- },
- {
- "properties": {
- "alternatives_to": {
- "description": "Only with alternatives_to: the plan the alternatives are for and the conditions it does not meet. When the name fits several plans (status \"ambiguous\") or none, candidates or note say so and the lists of plans are empty.",
- "properties": {
- "blocked": {
- "description": "The required conditions this plan does not meet or cannot confirm, with the official sentence and check date; empty when it meets them all.",
- "items": {
- "properties": {
- "checked_at": {
- "description": "Date the sentence was checked (YYYY-MM-DD).",
- "type": "string"
- },
- "condition": {
- "type": "string"
- },
- "quote": {
- "description": "The official sentence that states the value, when the pages state it.",
- "type": "string"
- },
- "reason": {
- "description": "One line on why.",
- "type": "string"
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "enum": [
- "MET",
- "UNMET",
- "UNKNOWN",
- "UNIT_MISMATCH",
- "UNIT_UNKNOWN"
- ],
- "type": "string"
- }
- },
- "required": [
- "condition",
- "verdict"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "candidates": {
- "items": {
- "properties": {
- "listed": {
- "type": "boolean"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "product_name": {
- "type": "string"
- },
- "provider_name": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "candidates_total": {
- "type": "integer"
- },
- "input": {
- "type": "string"
- },
- "matched_by": {
- "enum": [
- "id",
- "name",
- "url",
- null
- ],
- "type": [
- "string",
- "null"
- ]
- },
- "meets_all": {
- "description": "Whether this plan meets every required condition of the call.",
- "enum": [
- true,
- false,
- "unknown"
- ],
- "type": [
- "boolean",
- "string"
- ]
- },
- "monthly_cost": {
- "description": "status, usd, and low, high or lower_bound when they differ; for the request of this call.",
- "type": "object"
- },
- "name": {
- "type": "string"
- },
- "note": {
- "type": [
- "string",
- "null"
- ]
- },
- "offer_id": {
- "type": [
- "string",
- "null"
- ]
- },
- "provider_name": {
- "type": "string"
- },
- "status": {
- "enum": [
- "resolved",
- "ambiguous",
- "not_found"
- ],
- "type": "string"
- }
- },
- "type": "object"
- },
- "answer": {
- "type": "string"
- },
- "as_of": {
- "type": "string"
- },
- "best": {
- "description": "The one plan the answer names: the best plan for the conditions, or the closest when none meets every condition.",
- "properties": {
- "billing": {
- "type": "string"
- },
- "cheapest_elsewhere": {
- "description": "The cheapest listed plan of another provider in the same field that meets every required condition of this call (ranked as search ranks), with, for each required condition the checked plan did not meet or could not confirm, its verdict on that plan and one official sentence. null when no plan of another provider meets them all.",
- "properties": {
- "billing": {
- "type": "string"
- },
- "conditions": {
- "items": {
- "properties": {
- "condition": {
- "type": "string"
- },
- "quote": {
- "type": "string"
- },
- "source": {
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "type": "string"
- }
- },
- "required": [
- "condition",
- "verdict"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "monthly_cost": {
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "page_url": {
- "type": "string"
- },
- "provider_id": {
- "type": "string"
- },
- "provider_name": {
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "provider_id",
- "provider_name",
- "billing",
- "monthly_cost",
- "conditions"
- ],
- "type": [
- "object",
- "null"
- ]
- },
- "cheapest_in_product": {
- "description": "check_conditions: the cheapest listed plan of the same product that meets every required condition of this call, present only when it is another plan than the one checked (absent when the checked plan is itself the cheapest, or when no plan of the product meets them all). Same plan and cost as in the full result.",
- "properties": {
- "billing": {
- "type": "string"
- },
- "monthly_cost": {
- "description": "status, usd, and low, high or lower_bound when they differ.",
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "plan_page": {
- "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "billing",
- "monthly_cost"
- ],
- "type": "object"
- },
- "conditions": {
- "description": "check_conditions: the asked conditions of this plan, each with the verdict and the one-line reason of the full result.",
- "items": {
- "properties": {
- "condition": {
- "type": "string"
- },
- "reason": {
- "type": "string"
- },
- "verdict": {
- "type": "string"
- }
- },
- "type": "object"
- },
- "type": "array"
- },
- "conditions_asked": {
- "type": "integer"
- },
- "conditions_confirmed": {
- "type": "integer"
- },
- "confidence": {
- "description": "round(100 x conditions confirmed / conditions asked), the workload included. The share of the asked conditions that the plan's own official pages confirm; it is not a probability.",
- "maximum": 100,
- "minimum": 0,
- "type": "integer"
- },
- "fit": {
- "description": "The fit score of the full result (100 x conditions met / required conditions); the counts and the metrics are in the full result.",
- "properties": {
- "score": {
- "type": [
- "number",
- "null"
- ]
- }
- },
- "required": [
- "score"
- ],
- "type": "object"
- },
- "link": {
- "properties": {
- "affiliate": {
- "properties": {
- "disclosure": {
- "type": [
- "string",
- "null"
- ]
- },
- "program": {
- "type": [
- "string",
- "null"
- ]
- },
- "status": {
- "type": "string"
- }
- },
- "required": [
- "status"
- ],
- "type": "object"
- },
- "landing": {
- "type": "string"
- },
- "link_level": {
- "type": "string"
- },
- "provider_url": {
- "description": "The provider page itself. Only in a page made for a browser, where url is this service's address that forwards to it; MCP and REST results do not carry it.",
- "type": "string"
- },
- "sign_up_url": {
- "description": "The same address with the token in the path, /go/<offer_id>/<token>: the sign-up address of this plan to give the user.",
- "type": "string"
- },
- "url": {
- "description": "The only address to visit the plan: this service's /go/<offer_id>?r=<token> address, which forwards to the provider page. The token is made for this response and holds nothing about you.",
- "type": "string"
- }
- },
- "required": [
- "url",
- "landing",
- "link_level",
- "affiliate"
- ],
- "type": "object"
- },
- "meets_all": {
- "description": "true, false or \"unknown\" (a required condition is not stated on the official pages)."
- },
- "monthly_cost": {
- "description": "status, usd, and low, high, lower_bound or upfront_usd when they apply.",
- "type": "object"
- },
- "not_met": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "not_stated": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "offer_id": {
- "type": "string"
- },
- "on_blocked": {
- "description": "Only with alternatives_to: the verdict of this plan, with the official sentence and check date, on each condition the plan given as alternatives_to does not meet or cannot confirm (the same conditions as alternatives_to.blocked).",
- "items": {
- "properties": {
- "checked_at": {
- "description": "Date the sentence was checked (YYYY-MM-DD).",
- "type": "string"
- },
- "condition": {
- "type": "string"
- },
- "quote": {
- "description": "The official sentence that states the value, when the pages state it.",
- "type": "string"
- },
- "reason": {
- "description": "One line on why.",
- "type": "string"
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "enum": [
- "MET",
- "UNMET",
- "UNKNOWN",
- "UNIT_MISMATCH",
- "UNIT_UNKNOWN"
- ],
- "type": "string"
- }
- },
- "required": [
- "condition",
- "verdict"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "plan": {
- "type": "string"
- },
- "plan_page": {
- "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
- "type": "string"
- },
- "provider": {
- "type": "string"
- },
- "sign_up_url": {
- "type": "string"
- }
- },
- "required": [
- "provider",
- "plan",
- "offer_id",
- "monthly_cost",
- "meets_all",
- "confidence",
- "conditions_confirmed",
- "conditions_asked"
- ],
- "type": "object"
- },
- "checked": {
- "description": "check_conditions: how many plans were checked.",
- "type": "integer"
- },
- "checked_plans": {
- "description": "check_conditions: the ids of the checked plans (at most 20).",
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "counts": {
- "properties": {
- "candidates": {
- "type": "integer"
- },
- "full": {
- "type": "integer"
- },
- "no_match": {
- "type": "integer"
- },
- "partial": {
- "type": "integer"
- }
- },
- "required": [
- "candidates",
- "full",
- "partial",
- "no_match"
- ],
- "type": "object"
- },
- "format": {
- "enum": [
- "brief"
- ]
- },
- "full_matches": {
- "items": {
- "properties": {
- "cheapest_elsewhere": {
- "description": "The cheapest listed plan of another provider in the same field that meets every required condition of this call (ranked as search ranks), with, for each required condition the checked plan did not meet or could not confirm, its verdict on that plan and one official sentence. null when no plan of another provider meets them all.",
- "properties": {
- "billing": {
- "type": "string"
- },
- "conditions": {
- "items": {
- "properties": {
- "condition": {
- "type": "string"
- },
- "quote": {
- "type": "string"
- },
- "source": {
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "type": "string"
- }
- },
- "required": [
- "condition",
- "verdict"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "monthly_cost": {
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "page_url": {
- "type": "string"
- },
- "provider_id": {
- "type": "string"
- },
- "provider_name": {
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "provider_id",
- "provider_name",
- "billing",
- "monthly_cost",
- "conditions"
- ],
- "type": [
- "object",
- "null"
- ]
- },
- "cheapest_in_product": {
- "description": "check_conditions: the cheapest listed plan of the same product that meets every required condition of this call, present only when it is another plan than the one checked (absent when the checked plan is itself the cheapest, or when no plan of the product meets them all). Same plan and cost as in the full result.",
- "properties": {
- "billing": {
- "type": "string"
- },
- "monthly_cost": {
- "description": "status, usd, and low, high or lower_bound when they differ.",
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "plan_page": {
- "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "billing",
- "monthly_cost"
- ],
- "type": "object"
- },
- "conditions": {
- "items": {
- "properties": {
- "condition": {
- "type": "string"
- },
- "quote": {
- "description": "One official source sentence, 200 characters at most.",
- "type": "string"
- },
- "reason": {
- "description": "One line, 120 characters at most.",
- "type": "string"
- },
- "required": {
- "description": "Present only on a preferred (nice-to-have) condition.",
- "enum": [
- false
- ]
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "enum": [
- "MET",
- "UNMET",
- "UNKNOWN",
- "UNIT_MISMATCH",
- "UNIT_UNKNOWN"
- ]
- }
- },
- "required": [
- "condition",
- "verdict",
- "reason"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "fit": {
- "description": "The fit score of the full result (100 x conditions met / required conditions); the counts and the metrics are in the full result.",
- "properties": {
- "score": {
- "type": [
- "number",
- "null"
- ]
- }
- },
- "required": [
- "score"
- ],
- "type": "object"
- },
- "match": {
- "enum": [
- "FULL_MATCH",
- "PARTIAL_MATCH",
- "NO_MATCH"
- ]
- },
- "meets_all": {
- "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
- "enum": [
- true,
- false,
- "unknown"
- ]
- },
- "monthly_cost": {
- "description": "status, usd, and low, high or lower_bound when they differ; as in the full result.",
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "on_blocked": {
- "description": "Only with alternatives_to: the verdict of this plan, with the official sentence and check date, on each condition the plan given as alternatives_to does not meet or cannot confirm (the same conditions as alternatives_to.blocked).",
- "items": {
- "properties": {
- "checked_at": {
- "description": "Date the sentence was checked (YYYY-MM-DD).",
- "type": "string"
- },
- "condition": {
- "type": "string"
- },
- "quote": {
- "description": "The official sentence that states the value, when the pages state it.",
- "type": "string"
- },
- "reason": {
- "description": "One line on why.",
- "type": "string"
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "enum": [
- "MET",
- "UNMET",
- "UNKNOWN",
- "UNIT_MISMATCH",
- "UNIT_UNKNOWN"
- ],
- "type": "string"
- }
- },
- "required": [
- "condition",
- "verdict"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "plan_page": {
- "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
- "type": "string"
- },
- "provider": {
- "type": "string"
- },
- "sign_up_url": {
- "description": "Where to sign up for this plan: the address to give the user (it redirects to the provider). The source addresses under conditions only show where a sentence was read.",
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "provider",
- "meets_all",
- "monthly_cost",
- "conditions"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "more_note": {
- "type": "string"
- },
- "more_plans": {
- "description": "Matching plans left out of the short list: limit is the number of plans in all, fully matching first.",
- "type": "integer"
- },
- "needs_input": {
- "items": {
- "properties": {
- "field": {
- "type": "string"
- },
- "reason": {
- "type": "string"
- }
- },
- "required": [
- "field",
- "reason"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "others_meeting_all": {
- "description": "How many other plans also meet every condition.",
- "type": "integer"
- },
- "partial_matches": {
- "items": {
- "properties": {
- "cheapest_elsewhere": {
- "description": "The cheapest listed plan of another provider in the same field that meets every required condition of this call (ranked as search ranks), with, for each required condition the checked plan did not meet or could not confirm, its verdict on that plan and one official sentence. null when no plan of another provider meets them all.",
- "properties": {
- "billing": {
- "type": "string"
- },
- "conditions": {
- "items": {
- "properties": {
- "condition": {
- "type": "string"
- },
- "quote": {
- "type": "string"
- },
- "source": {
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "type": "string"
- }
- },
- "required": [
- "condition",
- "verdict"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "monthly_cost": {
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "page_url": {
- "type": "string"
- },
- "provider_id": {
- "type": "string"
- },
- "provider_name": {
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "provider_id",
- "provider_name",
- "billing",
- "monthly_cost",
- "conditions"
- ],
- "type": [
- "object",
- "null"
- ]
- },
- "cheapest_in_product": {
- "description": "check_conditions: the cheapest listed plan of the same product that meets every required condition of this call, present only when it is another plan than the one checked (absent when the checked plan is itself the cheapest, or when no plan of the product meets them all). Same plan and cost as in the full result.",
- "properties": {
- "billing": {
- "type": "string"
- },
- "monthly_cost": {
- "description": "status, usd, and low, high or lower_bound when they differ.",
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "plan_page": {
- "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "billing",
- "monthly_cost"
- ],
- "type": "object"
- },
- "conditions": {
- "items": {
- "properties": {
- "condition": {
- "type": "string"
- },
- "quote": {
- "description": "One official source sentence, 200 characters at most.",
- "type": "string"
- },
- "reason": {
- "description": "One line, 120 characters at most.",
- "type": "string"
- },
- "required": {
- "description": "Present only on a preferred (nice-to-have) condition.",
- "enum": [
- false
- ]
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "enum": [
- "MET",
- "UNMET",
- "UNKNOWN",
- "UNIT_MISMATCH",
- "UNIT_UNKNOWN"
- ]
- }
- },
- "required": [
- "condition",
- "verdict",
- "reason"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "fit": {
- "description": "The fit score of the full result (100 x conditions met / required conditions); the counts and the metrics are in the full result.",
- "properties": {
- "score": {
- "type": [
- "number",
- "null"
- ]
- }
- },
- "required": [
- "score"
- ],
- "type": "object"
- },
- "match": {
- "enum": [
- "FULL_MATCH",
- "PARTIAL_MATCH",
- "NO_MATCH"
- ]
- },
- "meets_all": {
- "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
- "enum": [
- true,
- false,
- "unknown"
- ]
- },
- "monthly_cost": {
- "description": "status, usd, and low, high or lower_bound when they differ; as in the full result.",
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "on_blocked": {
- "description": "Only with alternatives_to: the verdict of this plan, with the official sentence and check date, on each condition the plan given as alternatives_to does not meet or cannot confirm (the same conditions as alternatives_to.blocked).",
- "items": {
- "properties": {
- "checked_at": {
- "description": "Date the sentence was checked (YYYY-MM-DD).",
- "type": "string"
- },
- "condition": {
- "type": "string"
- },
- "quote": {
- "description": "The official sentence that states the value, when the pages state it.",
- "type": "string"
- },
- "reason": {
- "description": "One line on why.",
- "type": "string"
- },
- "source": {
- "description": "Official page the sentence was found on.",
- "type": [
- "string",
- "null"
- ]
- },
- "verdict": {
- "enum": [
- "MET",
- "UNMET",
- "UNKNOWN",
- "UNIT_MISMATCH",
- "UNIT_UNKNOWN"
- ],
- "type": "string"
- }
- },
- "required": [
- "condition",
- "verdict"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "plan_page": {
- "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
- "type": "string"
- },
- "provider": {
- "type": "string"
- },
- "sign_up_url": {
- "description": "Where to sign up for this plan: the address to give the user (it redirects to the provider). The source addresses under conditions only show where a sentence was read.",
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "provider",
- "meets_all",
- "monthly_cost",
- "conditions"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "ranking_url": {
- "description": "The permanent address of the page for a person that ranks every plan for these conditions with the official sentences. Give it to the user. It opens after a server restart and holds no personal data.",
- "type": "string"
- },
- "request_may_omit": {
- "description": "Words of the question that suggest a condition the request does not carry.",
- "items": {
- "properties": {
- "cue": {
- "type": "string"
- },
- "field": {
- "type": "string"
- }
- },
- "required": [
- "field",
- "cue"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "show_text": {
- "description": "Ready to show: one line for the best plan, \"Meets all N: [Provider Plan](visit link)\" (or \"Closest: [Provider Plan](visit link)\"); the visit link carries the token of this response. The ranking address follows on the next line.",
- "type": "string"
- },
- "unknown_providers": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "zero_result": {
- "properties": {
- "conditions": {
- "items": {
- "properties": {
- "closest": {
- "description": "The cheapest plan that meets every other required condition but not this one. It does not meet the request (meets_all false or \"unknown\").",
- "properties": {
- "billing": {
- "type": "string"
- },
- "fails": {
- "type": "string"
- },
- "meets_all": {
- "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
- "enum": [
- true,
- false,
- "unknown"
- ]
- },
- "monthly_cost": {
- "type": "object"
- },
- "offer_id": {
- "type": "string"
- },
- "offer_name": {
- "type": "string"
- },
- "page_url": {
- "type": "string"
- },
- "provider_name": {
- "type": "string"
- }
- },
- "required": [
- "offer_id",
- "offer_name",
- "provider_name",
- "billing",
- "monthly_cost",
- "meets_all",
- "fails"
- ],
- "type": [
- "object",
- "null"
- ]
- },
- "condition": {
- "type": "string"
- },
- "excluded": {
- "type": "integer"
- },
- "label": {
- "type": "string"
- },
- "unknown": {
- "type": "integer"
- },
- "would_match_if_relaxed": {
- "type": "integer"
- }
- },
- "required": [
- "condition",
- "label",
- "excluded",
- "would_match_if_relaxed",
- "closest"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "note": {
- "type": "string"
- }
- },
- "type": [
- "object",
- "null"
- ]
- }
- },
- "required": [
- "format",
- "answer",
- "as_of",
- "needs_input",
- "counts"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "properties": {
+ "alternatives_to": {
+ "description": "Only with alternatives_to: the plan the alternatives are for and the conditions it does not meet. When the name fits several plans (status \"ambiguous\") or none, candidates or note say so and the lists of plans are empty.",
+ "properties": {
+ "blocked": {
+ "description": "The required conditions this plan does not meet or cannot confirm, with the official sentence and check date; empty when it meets them all.",
+ "items": {
+ "properties": {
+ "checked_at": {
+ "description": "Date the sentence was checked (YYYY-MM-DD).",
+ "type": "string"
+ },
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "description": "The official sentence that states the value, when the pages state it.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "One line on why.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "enum": [
+ "MET",
+ "UNMET",
+ "UNKNOWN",
+ "UNIT_MISMATCH",
+ "UNIT_UNKNOWN"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "condition",
+ "verdict"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "candidates": {
+ "items": {
+ "properties": {
+ "listed": {
+ "type": "boolean"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "product_name": {
+ "type": "string"
+ },
+ "provider_name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "candidates_total": {
+ "type": "integer"
+ },
+ "input": {
+ "type": "string"
+ },
+ "matched_by": {
+ "enum": [
+ "id",
+ "name",
+ "url",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "meets_all": {
+ "description": "Whether this plan meets every required condition of the call.",
+ "enum": [
+ true,
+ false,
+ "unknown"
+ ],
+ "type": [
+ "boolean",
+ "string"
+ ]
+ },
+ "monthly_cost": {
+ "description": "status, usd, and low, high or lower_bound when they differ; for the request of this call.",
+ "type": "object"
+ },
+ "name": {
+ "type": "string"
+ },
+ "note": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "offer_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "provider_name": {
+ "type": "string"
+ },
+ "status": {
+ "enum": [
+ "resolved",
+ "ambiguous",
+ "not_found"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "answer": {
+ "description": "One sentence that opens the answer: the lowest-cost plan that meets every required condition with its link, or, when none does, the closest plan with what it does not meet or what is unknown, and its link. The plan is written as a markdown link, [Provider Plan](visit link), at the end of the sentence.",
+ "type": "string"
+ },
+ "as_of": {
+ "type": "string"
+ },
+ "assumptions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "counts": {
+ "properties": {
+ "candidates": {
+ "type": "integer"
+ },
+ "full": {
+ "type": "integer"
+ },
+ "no_match": {
+ "type": "integer"
+ },
+ "partial": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "candidates",
+ "full",
+ "partial",
+ "no_match"
+ ],
+ "type": "object"
+ },
+ "full_matches": {
+ "items": {
+ "properties": {
+ "assumptions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "at_limit": {
+ "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
+ "properties": {
+ "evidence": {
+ "properties": {
+ "quote": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "kind": {
+ "enum": [
+ "no_extra_usage",
+ "restart_by_hand"
+ ]
+ },
+ "restarts": {
+ "properties": {
+ "count": {
+ "properties": {
+ "high": {
+ "type": "integer"
+ },
+ "low": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "total_usd": {
+ "properties": {
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "usd_each": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "text",
+ "evidence"
+ ],
+ "type": "object"
+ },
+ "billing": {
+ "type": "string"
+ },
+ "billing_options": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "checked_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "conditions": {
+ "items": {
+ "properties": {
+ "condition": {
+ "type": "string"
+ },
+ "facts": {
+ "description": "Facts the verdict was judged from. The monthly budget is judged from monthly_cost; its price facts are listed there only.",
+ "items": {
+ "properties": {
+ "also_stated_in": {
+ "description": "get_details only: other official machine-readable documents of the provider (llms.txt, llms-full.txt, OpenAPI files, MCP tool listings) that contain the same quoted sentences.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "applies_to": {
+ "description": "get_details only: billing options (billing) or search engines (search_engines) the fact is limited to.",
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "at_limit": {
+ "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
+ "properties": {
+ "evidence": {
+ "properties": {
+ "quote": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "kind": {
+ "enum": [
+ "no_extra_usage",
+ "restart_by_hand"
+ ]
+ },
+ "restarts": {
+ "properties": {
+ "count": {
+ "properties": {
+ "high": {
+ "type": "integer"
+ },
+ "low": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "total_usd": {
+ "properties": {
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "usd_each": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "text",
+ "evidence"
+ ],
+ "type": "object"
+ },
+ "checked_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "concurrency_unit": {
+ "description": "get_details, concurrency only: the unit the page states the value in (unit, text such as \"100 threads\"). Against concurrent requests: equals_requests (value, text and the official line of the unit rule) when the unit rule counts this unit as requests, else note \"not the same unit as concurrent requests\"; \"unit not stated\" when the page names none.",
+ "type": "object"
+ },
+ "derived": {
+ "description": "How the value follows from the quoted sentence when it is not literal.",
+ "type": "string"
+ },
+ "evidence": {
+ "items": {
+ "properties": {
+ "quote": {
+ "description": "The sentence as it appears on that page.",
+ "type": "string"
+ },
+ "retrieved_at": {
+ "description": "Date the page was read (YYYY-MM-DD). Only with detail=full.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": "string"
+ },
+ "source_type": {
+ "description": "Only with detail=full.",
+ "enum": [
+ "official_pricing",
+ "official_docs",
+ "third_party"
+ ]
+ }
+ },
+ "required": [
+ "source",
+ "quote"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "exceptions": {
+ "description": "get_details only: plans with a different value.",
+ "type": "array"
+ },
+ "key": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "level": {
+ "description": "Where the fact is recorded: offer (the plan), product or provider.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "note": {
+ "type": "string"
+ },
+ "stale": {
+ "type": "boolean"
+ },
+ "status": {
+ "description": "TRUE: stated with the value; FALSE / NOT_SUPPORTED: stated as unavailable; UNKNOWN: not stated; CONFLICT: official pages disagree (value lists each version); STALE: past its recheck date; MISSING: not recorded.",
+ "enum": [
+ "TRUE",
+ "FALSE",
+ "NOT_SUPPORTED",
+ "UNKNOWN",
+ "CONFLICT",
+ "STALE",
+ "MISSING"
+ ]
+ },
+ "value": {},
+ "via_exception": {
+ "description": "Present and true when a plan-specific exception replaced the general value.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "key",
+ "status",
+ "value",
+ "level",
+ "evidence",
+ "checked_at"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "label": {
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "required": {
+ "type": "boolean"
+ },
+ "verdict": {
+ "enum": [
+ "MET",
+ "UNMET",
+ "UNKNOWN",
+ "UNIT_MISMATCH",
+ "UNIT_UNKNOWN"
+ ]
+ }
+ },
+ "required": [
+ "condition",
+ "label",
+ "required",
+ "verdict",
+ "reason",
+ "facts"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "facts_omitted": {
+ "description": "search only: present and true when the source sentences under the conditions were left out so that the response fits one response; the verdicts, reasons and costs are unchanged. Ask check_conditions with the offer_id or get_details for the sentences.",
+ "type": "boolean"
+ },
+ "fit": {
+ "description": "How well the plan fits this request, counted from the verdicts above: score = the plan's score out of 99, the same as in the search answer and the analysis page (99 minus points for each asked condition not met or not confirmed), the counts it comes from, and quantitative metrics worked out only from the official sentences used in this verdict (null when a value is missing). Shown beside the verdicts; it changes no order and no link.",
+ "properties": {
+ "formula": {
+ "type": "string"
+ },
+ "met": {
+ "type": "integer"
+ },
+ "metrics": {
+ "description": "budget_left_pct (percent of the budget left under the highest monthly cost of the plan; negative = percent over), volume_x (included volume / requested volume), concurrency_x (plan limit / requested concurrency), rpm_x (plan requests per minute / requested), cost_spread_pct (percent between the lowest and highest monthly cost; 0 = fixed), oldest_evidence_days (days since the oldest check date among the sentences used). null when not computable.",
+ "type": "object"
+ },
+ "not_met": {
+ "type": "integer"
+ },
+ "out_of": {
+ "description": "The top of the score: 99.",
+ "type": "integer"
+ },
+ "required": {
+ "type": "integer"
+ },
+ "score": {
+ "description": "0 to 99; null when no score could be worked out.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "unknown": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "score",
+ "met",
+ "required",
+ "unknown",
+ "not_met",
+ "metrics",
+ "formula"
+ ],
+ "type": "object"
+ },
+ "link": {
+ "properties": {
+ "affiliate": {
+ "properties": {
+ "disclosure": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "program": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ "landing": {
+ "type": "string"
+ },
+ "link_level": {
+ "type": "string"
+ },
+ "provider_url": {
+ "description": "The provider page itself. Only in a page made for a browser, where url is this service's address that forwards to it; MCP and REST results do not carry it.",
+ "type": "string"
+ },
+ "sign_up_url": {
+ "description": "The same address with the token in the path, /go/<offer_id>/<token>: the sign-up address of this plan to give the user.",
+ "type": "string"
+ },
+ "url": {
+ "description": "The only address to visit the plan: this service's /go/<offer_id>?r=<token> address, which forwards to the provider page. The token is made for this response and holds nothing about you.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "url",
+ "landing",
+ "link_level",
+ "affiliate"
+ ],
+ "type": "object"
+ },
+ "listed": {
+ "type": "boolean"
+ },
+ "match": {
+ "enum": [
+ "FULL_MATCH",
+ "PARTIAL_MATCH",
+ "NO_MATCH"
+ ]
+ },
+ "meets_all": {
+ "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
+ "enum": [
+ true,
+ false,
+ "unknown"
+ ]
+ },
+ "monthly_cost": {
+ "properties": {
+ "explanation": {
+ "type": "string"
+ },
+ "facts": {
+ "description": "Price facts the cost was computed from.",
+ "items": {
+ "properties": {
+ "also_stated_in": {
+ "description": "get_details only: other official machine-readable documents of the provider (llms.txt, llms-full.txt, OpenAPI files, MCP tool listings) that contain the same quoted sentences.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "applies_to": {
+ "description": "get_details only: billing options (billing) or search engines (search_engines) the fact is limited to.",
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "at_limit": {
+ "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
+ "properties": {
+ "evidence": {
+ "properties": {
+ "quote": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "kind": {
+ "enum": [
+ "no_extra_usage",
+ "restart_by_hand"
+ ]
+ },
+ "restarts": {
+ "properties": {
+ "count": {
+ "properties": {
+ "high": {
+ "type": "integer"
+ },
+ "low": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "total_usd": {
+ "properties": {
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "usd_each": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "text",
+ "evidence"
+ ],
+ "type": "object"
+ },
+ "checked_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "concurrency_unit": {
+ "description": "get_details, concurrency only: the unit the page states the value in (unit, text such as \"100 threads\"). Against concurrent requests: equals_requests (value, text and the official line of the unit rule) when the unit rule counts this unit as requests, else note \"not the same unit as concurrent requests\"; \"unit not stated\" when the page names none.",
+ "type": "object"
+ },
+ "derived": {
+ "description": "How the value follows from the quoted sentence when it is not literal.",
+ "type": "string"
+ },
+ "evidence": {
+ "items": {
+ "properties": {
+ "quote": {
+ "description": "The sentence as it appears on that page.",
+ "type": "string"
+ },
+ "retrieved_at": {
+ "description": "Date the page was read (YYYY-MM-DD). Only with detail=full.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": "string"
+ },
+ "source_type": {
+ "description": "Only with detail=full.",
+ "enum": [
+ "official_pricing",
+ "official_docs",
+ "third_party"
+ ]
+ }
+ },
+ "required": [
+ "source",
+ "quote"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "exceptions": {
+ "description": "get_details only: plans with a different value.",
+ "type": "array"
+ },
+ "key": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "level": {
+ "description": "Where the fact is recorded: offer (the plan), product or provider.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "note": {
+ "type": "string"
+ },
+ "stale": {
+ "type": "boolean"
+ },
+ "status": {
+ "description": "TRUE: stated with the value; FALSE / NOT_SUPPORTED: stated as unavailable; UNKNOWN: not stated; CONFLICT: official pages disagree (value lists each version); STALE: past its recheck date; MISSING: not recorded.",
+ "enum": [
+ "TRUE",
+ "FALSE",
+ "NOT_SUPPORTED",
+ "UNKNOWN",
+ "CONFLICT",
+ "STALE",
+ "MISSING"
+ ]
+ },
+ "value": {},
+ "via_exception": {
+ "description": "Present and true when a plan-specific exception replaced the general value.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "key",
+ "status",
+ "value",
+ "level",
+ "evidence",
+ "checked_at"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "high": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "low": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "lower_bound": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "status": {
+ "enum": [
+ "exact",
+ "range",
+ "lower_bound",
+ "unknown"
+ ]
+ },
+ "upfront_usd": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "usd": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "status",
+ "usd",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "on_blocked": {
+ "description": "Only with alternatives_to: the verdict of this plan, with the official sentence and check date, on each condition the plan given as alternatives_to does not meet or cannot confirm (the same conditions as alternatives_to.blocked).",
+ "items": {
+ "properties": {
+ "checked_at": {
+ "description": "Date the sentence was checked (YYYY-MM-DD).",
+ "type": "string"
+ },
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "description": "The official sentence that states the value, when the pages state it.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "One line on why.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "enum": [
+ "MET",
+ "UNMET",
+ "UNKNOWN",
+ "UNIT_MISMATCH",
+ "UNIT_UNKNOWN"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "condition",
+ "verdict"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "page_url": {
+ "type": "string"
+ },
+ "plan_page": {
+ "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
+ "type": "string"
+ },
+ "preferred_met": {
+ "type": "integer"
+ },
+ "prices_exclude_tax": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "product_id": {
+ "type": "string"
+ },
+ "product_name": {
+ "type": "string"
+ },
+ "provider_id": {
+ "type": "string"
+ },
+ "provider_name": {
+ "type": "string"
+ },
+ "unknown_conditions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "unmet_conditions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "verdict": {
+ "description": "One sentence: the conditions met, or the ones not met or not stated, with the reason.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "product_id",
+ "provider_name",
+ "match",
+ "meets_all",
+ "verdict",
+ "billing",
+ "monthly_cost",
+ "conditions",
+ "unmet_conditions",
+ "unknown_conditions",
+ "link",
+ "checked_at"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "link_notes": {
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "The note of each link level (link.link_level) of the plans in this result, stated once.",
+ "type": "object"
+ },
+ "needs_input": {
+ "items": {
+ "properties": {
+ "field": {
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "field",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "notes": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "partial_matches": {
+ "items": {
+ "properties": {
+ "assumptions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "at_limit": {
+ "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
+ "properties": {
+ "evidence": {
+ "properties": {
+ "quote": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "kind": {
+ "enum": [
+ "no_extra_usage",
+ "restart_by_hand"
+ ]
+ },
+ "restarts": {
+ "properties": {
+ "count": {
+ "properties": {
+ "high": {
+ "type": "integer"
+ },
+ "low": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "total_usd": {
+ "properties": {
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "usd_each": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "text",
+ "evidence"
+ ],
+ "type": "object"
+ },
+ "billing": {
+ "type": "string"
+ },
+ "billing_options": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "checked_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "conditions": {
+ "items": {
+ "properties": {
+ "condition": {
+ "type": "string"
+ },
+ "facts": {
+ "description": "Facts the verdict was judged from. The monthly budget is judged from monthly_cost; its price facts are listed there only.",
+ "items": {
+ "properties": {
+ "also_stated_in": {
+ "description": "get_details only: other official machine-readable documents of the provider (llms.txt, llms-full.txt, OpenAPI files, MCP tool listings) that contain the same quoted sentences.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "applies_to": {
+ "description": "get_details only: billing options (billing) or search engines (search_engines) the fact is limited to.",
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "at_limit": {
+ "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
+ "properties": {
+ "evidence": {
+ "properties": {
+ "quote": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "kind": {
+ "enum": [
+ "no_extra_usage",
+ "restart_by_hand"
+ ]
+ },
+ "restarts": {
+ "properties": {
+ "count": {
+ "properties": {
+ "high": {
+ "type": "integer"
+ },
+ "low": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "total_usd": {
+ "properties": {
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "usd_each": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "text",
+ "evidence"
+ ],
+ "type": "object"
+ },
+ "checked_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "concurrency_unit": {
+ "description": "get_details, concurrency only: the unit the page states the value in (unit, text such as \"100 threads\"). Against concurrent requests: equals_requests (value, text and the official line of the unit rule) when the unit rule counts this unit as requests, else note \"not the same unit as concurrent requests\"; \"unit not stated\" when the page names none.",
+ "type": "object"
+ },
+ "derived": {
+ "description": "How the value follows from the quoted sentence when it is not literal.",
+ "type": "string"
+ },
+ "evidence": {
+ "items": {
+ "properties": {
+ "quote": {
+ "description": "The sentence as it appears on that page.",
+ "type": "string"
+ },
+ "retrieved_at": {
+ "description": "Date the page was read (YYYY-MM-DD). Only with detail=full.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": "string"
+ },
+ "source_type": {
+ "description": "Only with detail=full.",
+ "enum": [
+ "official_pricing",
+ "official_docs",
+ "third_party"
+ ]
+ }
+ },
+ "required": [
+ "source",
+ "quote"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "exceptions": {
+ "description": "get_details only: plans with a different value.",
+ "type": "array"
+ },
+ "key": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "level": {
+ "description": "Where the fact is recorded: offer (the plan), product or provider.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "note": {
+ "type": "string"
+ },
+ "stale": {
+ "type": "boolean"
+ },
+ "status": {
+ "description": "TRUE: stated with the value; FALSE / NOT_SUPPORTED: stated as unavailable; UNKNOWN: not stated; CONFLICT: official pages disagree (value lists each version); STALE: past its recheck date; MISSING: not recorded.",
+ "enum": [
+ "TRUE",
+ "FALSE",
+ "NOT_SUPPORTED",
+ "UNKNOWN",
+ "CONFLICT",
+ "STALE",
+ "MISSING"
+ ]
+ },
+ "value": {},
+ "via_exception": {
+ "description": "Present and true when a plan-specific exception replaced the general value.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "key",
+ "status",
+ "value",
+ "level",
+ "evidence",
+ "checked_at"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "label": {
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "required": {
+ "type": "boolean"
+ },
+ "verdict": {
+ "enum": [
+ "MET",
+ "UNMET",
+ "UNKNOWN",
+ "UNIT_MISMATCH",
+ "UNIT_UNKNOWN"
+ ]
+ }
+ },
+ "required": [
+ "condition",
+ "label",
+ "required",
+ "verdict",
+ "reason",
+ "facts"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "facts_omitted": {
+ "description": "search only: present and true when the source sentences under the conditions were left out so that the response fits one response; the verdicts, reasons and costs are unchanged. Ask check_conditions with the offer_id or get_details for the sentences.",
+ "type": "boolean"
+ },
+ "fit": {
+ "description": "How well the plan fits this request, counted from the verdicts above: score = the plan's score out of 99, the same as in the search answer and the analysis page (99 minus points for each asked condition not met or not confirmed), the counts it comes from, and quantitative metrics worked out only from the official sentences used in this verdict (null when a value is missing). Shown beside the verdicts; it changes no order and no link.",
+ "properties": {
+ "formula": {
+ "type": "string"
+ },
+ "met": {
+ "type": "integer"
+ },
+ "metrics": {
+ "description": "budget_left_pct (percent of the budget left under the highest monthly cost of the plan; negative = percent over), volume_x (included volume / requested volume), concurrency_x (plan limit / requested concurrency), rpm_x (plan requests per minute / requested), cost_spread_pct (percent between the lowest and highest monthly cost; 0 = fixed), oldest_evidence_days (days since the oldest check date among the sentences used). null when not computable.",
+ "type": "object"
+ },
+ "not_met": {
+ "type": "integer"
+ },
+ "out_of": {
+ "description": "The top of the score: 99.",
+ "type": "integer"
+ },
+ "required": {
+ "type": "integer"
+ },
+ "score": {
+ "description": "0 to 99; null when no score could be worked out.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "unknown": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "score",
+ "met",
+ "required",
+ "unknown",
+ "not_met",
+ "metrics",
+ "formula"
+ ],
+ "type": "object"
+ },
+ "link": {
+ "properties": {
+ "affiliate": {
+ "properties": {
+ "disclosure": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "program": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ "landing": {
+ "type": "string"
+ },
+ "link_level": {
+ "type": "string"
+ },
+ "provider_url": {
+ "description": "The provider page itself. Only in a page made for a browser, where url is this service's address that forwards to it; MCP and REST results do not carry it.",
+ "type": "string"
+ },
+ "sign_up_url": {
+ "description": "The same address with the token in the path, /go/<offer_id>/<token>: the sign-up address of this plan to give the user.",
+ "type": "string"
+ },
+ "url": {
+ "description": "The only address to visit the plan: this service's /go/<offer_id>?r=<token> address, which forwards to the provider page. The token is made for this response and holds nothing about you.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "url",
+ "landing",
+ "link_level",
+ "affiliate"
+ ],
+ "type": "object"
+ },
+ "listed": {
+ "type": "boolean"
+ },
+ "match": {
+ "enum": [
+ "FULL_MATCH",
+ "PARTIAL_MATCH",
+ "NO_MATCH"
+ ]
+ },
+ "meets_all": {
+ "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
+ "enum": [
+ true,
+ false,
+ "unknown"
+ ]
+ },
+ "monthly_cost": {
+ "properties": {
+ "explanation": {
+ "type": "string"
+ },
+ "facts": {
+ "description": "Price facts the cost was computed from.",
+ "items": {
+ "properties": {
+ "also_stated_in": {
+ "description": "get_details only: other official machine-readable documents of the provider (llms.txt, llms-full.txt, OpenAPI files, MCP tool listings) that contain the same quoted sentences.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "applies_to": {
+ "description": "get_details only: billing options (billing) or search engines (search_engines) the fact is limited to.",
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "at_limit": {
+ "description": "Present for a plan with no automatic extra usage: what the official page says happens at the limit (kind no_extra_usage or restart_by_hand), with its sentence. With a workload that needs restarts, restarts gives their count, the price of each and the total, the numbers of monthly_cost.explanation.",
+ "properties": {
+ "evidence": {
+ "properties": {
+ "quote": {
+ "type": "string"
+ },
+ "source": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "kind": {
+ "enum": [
+ "no_extra_usage",
+ "restart_by_hand"
+ ]
+ },
+ "restarts": {
+ "properties": {
+ "count": {
+ "properties": {
+ "high": {
+ "type": "integer"
+ },
+ "low": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "total_usd": {
+ "properties": {
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "usd_each": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "text": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "text",
+ "evidence"
+ ],
+ "type": "object"
+ },
+ "checked_at": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "concurrency_unit": {
+ "description": "get_details, concurrency only: the unit the page states the value in (unit, text such as \"100 threads\"). Against concurrent requests: equals_requests (value, text and the official line of the unit rule) when the unit rule counts this unit as requests, else note \"not the same unit as concurrent requests\"; \"unit not stated\" when the page names none.",
+ "type": "object"
+ },
+ "derived": {
+ "description": "How the value follows from the quoted sentence when it is not literal.",
+ "type": "string"
+ },
+ "evidence": {
+ "items": {
+ "properties": {
+ "quote": {
+ "description": "The sentence as it appears on that page.",
+ "type": "string"
+ },
+ "retrieved_at": {
+ "description": "Date the page was read (YYYY-MM-DD). Only with detail=full.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": "string"
+ },
+ "source_type": {
+ "description": "Only with detail=full.",
+ "enum": [
+ "official_pricing",
+ "official_docs",
+ "third_party"
+ ]
+ }
+ },
+ "required": [
+ "source",
+ "quote"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "exceptions": {
+ "description": "get_details only: plans with a different value.",
+ "type": "array"
+ },
+ "key": {
+ "type": "string"
+ },
+ "label": {
+ "type": "string"
+ },
+ "level": {
+ "description": "Where the fact is recorded: offer (the plan), product or provider.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "note": {
+ "type": "string"
+ },
+ "stale": {
+ "type": "boolean"
+ },
+ "status": {
+ "description": "TRUE: stated with the value; FALSE / NOT_SUPPORTED: stated as unavailable; UNKNOWN: not stated; CONFLICT: official pages disagree (value lists each version); STALE: past its recheck date; MISSING: not recorded.",
+ "enum": [
+ "TRUE",
+ "FALSE",
+ "NOT_SUPPORTED",
+ "UNKNOWN",
+ "CONFLICT",
+ "STALE",
+ "MISSING"
+ ]
+ },
+ "value": {},
+ "via_exception": {
+ "description": "Present and true when a plan-specific exception replaced the general value.",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "key",
+ "status",
+ "value",
+ "level",
+ "evidence",
+ "checked_at"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "high": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "low": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "lower_bound": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "status": {
+ "enum": [
+ "exact",
+ "range",
+ "lower_bound",
+ "unknown"
+ ]
+ },
+ "upfront_usd": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "usd": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "status",
+ "usd",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "on_blocked": {
+ "description": "Only with alternatives_to: the verdict of this plan, with the official sentence and check date, on each condition the plan given as alternatives_to does not meet or cannot confirm (the same conditions as alternatives_to.blocked).",
+ "items": {
+ "properties": {
+ "checked_at": {
+ "description": "Date the sentence was checked (YYYY-MM-DD).",
+ "type": "string"
+ },
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "description": "The official sentence that states the value, when the pages state it.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "One line on why.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "enum": [
+ "MET",
+ "UNMET",
+ "UNKNOWN",
+ "UNIT_MISMATCH",
+ "UNIT_UNKNOWN"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "condition",
+ "verdict"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "page_url": {
+ "type": "string"
+ },
+ "plan_page": {
+ "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
+ "type": "string"
+ },
+ "preferred_met": {
+ "type": "integer"
+ },
+ "prices_exclude_tax": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "product_id": {
+ "type": "string"
+ },
+ "product_name": {
+ "type": "string"
+ },
+ "provider_id": {
+ "type": "string"
+ },
+ "provider_name": {
+ "type": "string"
+ },
+ "unknown_conditions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "unmet_conditions": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "verdict": {
+ "description": "One sentence: the conditions met, or the ones not met or not stated, with the reason.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "product_id",
+ "provider_name",
+ "match",
+ "meets_all",
+ "verdict",
+ "billing",
+ "monthly_cost",
+ "conditions",
+ "unmet_conditions",
+ "unknown_conditions",
+ "link",
+ "checked_at"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "ranking_url": {
+ "description": "The permanent address of the page for a person that ranks every plan for these conditions with the official sentences. Give it to the user. It opens after a server restart and holds no personal data.",
+ "type": "string"
+ },
+ "request": {
+ "type": "object"
+ },
+ "request_may_omit": {
+ "description": "Words of the question that suggest a condition the request does not carry.",
+ "items": {
+ "properties": {
+ "cue": {
+ "type": "string"
+ },
+ "field": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "field",
+ "cue"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "show_text": {
+ "description": "Ready to show: one line per listed plan, in list order, \"Meets all N: [Provider Plan](visit link)\" for a plan that meets every required condition of the call, \"Closest: [Provider Plan](visit link)\" for any other. The plan is a markdown link to its visit link, which carries the token of this response. Absent when no plan is listed.",
+ "type": "string"
+ },
+ "unknown_providers": {
+ "description": "Only when providers was given: the names that are not a provider id or name in this catalog.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "zero_result": {
+ "properties": {
+ "conditions": {
+ "items": {
+ "properties": {
+ "closest": {
+ "description": "The cheapest plan that meets every other required condition but not this one. It does not meet the request (meets_all false or \"unknown\").",
+ "properties": {
+ "billing": {
+ "type": "string"
+ },
+ "fails": {
+ "type": "string"
+ },
+ "meets_all": {
+ "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
+ "enum": [
+ true,
+ false,
+ "unknown"
+ ]
+ },
+ "monthly_cost": {
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "page_url": {
+ "type": "string"
+ },
+ "provider_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "provider_name",
+ "billing",
+ "monthly_cost",
+ "meets_all",
+ "fails"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "condition": {
+ "type": "string"
+ },
+ "excluded": {
+ "type": "integer"
+ },
+ "label": {
+ "type": "string"
+ },
+ "unknown": {
+ "type": "integer"
+ },
+ "would_match_if_relaxed": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "condition",
+ "label",
+ "excluded",
+ "would_match_if_relaxed",
+ "closest"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "note": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "answer",
+ "as_of",
+ "needs_input",
+ "counts",
+ "full_matches",
+ "partial_matches",
+ "zero_result",
+ "assumptions",
+ "notes"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "alternatives_to": {
+ "description": "Only with alternatives_to: the plan the alternatives are for and the conditions it does not meet. When the name fits several plans (status \"ambiguous\") or none, candidates or note say so and the lists of plans are empty.",
+ "properties": {
+ "blocked": {
+ "description": "The required conditions this plan does not meet or cannot confirm, with the official sentence and check date; empty when it meets them all.",
+ "items": {
+ "properties": {
+ "checked_at": {
+ "description": "Date the sentence was checked (YYYY-MM-DD).",
+ "type": "string"
+ },
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "description": "The official sentence that states the value, when the pages state it.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "One line on why.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "enum": [
+ "MET",
+ "UNMET",
+ "UNKNOWN",
+ "UNIT_MISMATCH",
+ "UNIT_UNKNOWN"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "condition",
+ "verdict"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "candidates": {
+ "items": {
+ "properties": {
+ "listed": {
+ "type": "boolean"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "product_name": {
+ "type": "string"
+ },
+ "provider_name": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "candidates_total": {
+ "type": "integer"
+ },
+ "input": {
+ "type": "string"
+ },
+ "matched_by": {
+ "enum": [
+ "id",
+ "name",
+ "url",
+ null
+ ],
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "meets_all": {
+ "description": "Whether this plan meets every required condition of the call.",
+ "enum": [
+ true,
+ false,
+ "unknown"
+ ],
+ "type": [
+ "boolean",
+ "string"
+ ]
+ },
+ "monthly_cost": {
+ "description": "status, usd, and low, high or lower_bound when they differ; for the request of this call.",
+ "type": "object"
+ },
+ "name": {
+ "type": "string"
+ },
+ "note": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "offer_id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "provider_name": {
+ "type": "string"
+ },
+ "status": {
+ "enum": [
+ "resolved",
+ "ambiguous",
+ "not_found"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "answer": {
+ "type": "string"
+ },
+ "as_of": {
+ "type": "string"
+ },
+ "best": {
+ "description": "The one plan the answer names: the best plan for the conditions, or the closest when none meets every condition.",
+ "properties": {
+ "billing": {
+ "type": "string"
+ },
+ "cheapest_elsewhere": {
+ "description": "The cheapest listed plan of another provider in the same field that meets every required condition of this call (ranked as search ranks), with, for each required condition the checked plan did not meet or could not confirm, its verdict on that plan and one official sentence. null when no plan of another provider meets them all.",
+ "properties": {
+ "billing": {
+ "type": "string"
+ },
+ "conditions": {
+ "items": {
+ "properties": {
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "type": "string"
+ },
+ "source": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "condition",
+ "verdict"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "monthly_cost": {
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "page_url": {
+ "type": "string"
+ },
+ "provider_id": {
+ "type": "string"
+ },
+ "provider_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "provider_id",
+ "provider_name",
+ "billing",
+ "monthly_cost",
+ "conditions"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "cheapest_in_product": {
+ "description": "check_conditions: the cheapest listed plan of the same product that meets every required condition of this call, present only when it is another plan than the one checked (absent when the checked plan is itself the cheapest, or when no plan of the product meets them all). Same plan and cost as in the full result.",
+ "properties": {
+ "billing": {
+ "type": "string"
+ },
+ "monthly_cost": {
+ "description": "status, usd, and low, high or lower_bound when they differ.",
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "plan_page": {
+ "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "billing",
+ "monthly_cost"
+ ],
+ "type": "object"
+ },
+ "conditions": {
+ "description": "check_conditions: the asked conditions of this plan, each with the verdict and the one-line reason of the full result.",
+ "items": {
+ "properties": {
+ "condition": {
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "verdict": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "conditions_asked": {
+ "type": "integer"
+ },
+ "conditions_confirmed": {
+ "type": "integer"
+ },
+ "confidence": {
+ "description": "The plan's score out of 99, the same as in the search answer and the analysis page: 99 minus points for each asked condition the plan's own official pages do not confirm. It is not a probability.",
+ "maximum": 99,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "fit": {
+ "description": "The fit score of the full result (out of 99); the counts and the metrics are in the full result.",
+ "properties": {
+ "score": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "score"
+ ],
+ "type": "object"
+ },
+ "link": {
+ "properties": {
+ "affiliate": {
+ "properties": {
+ "disclosure": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "program": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "status": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+ },
+ "landing": {
+ "type": "string"
+ },
+ "link_level": {
+ "type": "string"
+ },
+ "provider_url": {
+ "description": "The provider page itself. Only in a page made for a browser, where url is this service's address that forwards to it; MCP and REST results do not carry it.",
+ "type": "string"
+ },
+ "sign_up_url": {
+ "description": "The same address with the token in the path, /go/<offer_id>/<token>: the sign-up address of this plan to give the user.",
+ "type": "string"
+ },
+ "url": {
+ "description": "The only address to visit the plan: this service's /go/<offer_id>?r=<token> address, which forwards to the provider page. The token is made for this response and holds nothing about you.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "url",
+ "landing",
+ "link_level",
+ "affiliate"
+ ],
+ "type": "object"
+ },
+ "meets_all": {
+ "description": "true, false or \"unknown\" (a required condition is not stated on the official pages)."
+ },
+ "monthly_cost": {
+ "description": "status, usd, and low, high, lower_bound or upfront_usd when they apply.",
+ "type": "object"
+ },
+ "not_met": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "not_stated": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "on_blocked": {
+ "description": "Only with alternatives_to: the verdict of this plan, with the official sentence and check date, on each condition the plan given as alternatives_to does not meet or cannot confirm (the same conditions as alternatives_to.blocked).",
+ "items": {
+ "properties": {
+ "checked_at": {
+ "description": "Date the sentence was checked (YYYY-MM-DD).",
+ "type": "string"
+ },
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "description": "The official sentence that states the value, when the pages state it.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "One line on why.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "enum": [
+ "MET",
+ "UNMET",
+ "UNKNOWN",
+ "UNIT_MISMATCH",
+ "UNIT_UNKNOWN"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "condition",
+ "verdict"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "plan": {
+ "type": "string"
+ },
+ "plan_page": {
+ "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ },
+ "sign_up_url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "provider",
+ "plan",
+ "offer_id",
+ "monthly_cost",
+ "meets_all",
+ "confidence",
+ "conditions_confirmed",
+ "conditions_asked"
+ ],
+ "type": "object"
+ },
+ "checked": {
+ "description": "check_conditions: how many plans were checked.",
+ "type": "integer"
+ },
+ "checked_plans": {
+ "description": "check_conditions: the ids of the checked plans (at most 20).",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "counts": {
+ "properties": {
+ "candidates": {
+ "type": "integer"
+ },
+ "full": {
+ "type": "integer"
+ },
+ "no_match": {
+ "type": "integer"
+ },
+ "partial": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "candidates",
+ "full",
+ "partial",
+ "no_match"
+ ],
+ "type": "object"
+ },
+ "format": {
+ "enum": [
+ "brief"
+ ]
+ },
+ "full_matches": {
+ "items": {
+ "properties": {
+ "cheapest_elsewhere": {
+ "description": "The cheapest listed plan of another provider in the same field that meets every required condition of this call (ranked as search ranks), with, for each required condition the checked plan did not meet or could not confirm, its verdict on that plan and one official sentence. null when no plan of another provider meets them all.",
+ "properties": {
+ "billing": {
+ "type": "string"
+ },
+ "conditions": {
+ "items": {
+ "properties": {
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "type": "string"
+ },
+ "source": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "condition",
+ "verdict"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "monthly_cost": {
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "page_url": {
+ "type": "string"
+ },
+ "provider_id": {
+ "type": "string"
+ },
+ "provider_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "provider_id",
+ "provider_name",
+ "billing",
+ "monthly_cost",
+ "conditions"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "cheapest_in_product": {
+ "description": "check_conditions: the cheapest listed plan of the same product that meets every required condition of this call, present only when it is another plan than the one checked (absent when the checked plan is itself the cheapest, or when no plan of the product meets them all). Same plan and cost as in the full result.",
+ "properties": {
+ "billing": {
+ "type": "string"
+ },
+ "monthly_cost": {
+ "description": "status, usd, and low, high or lower_bound when they differ.",
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "plan_page": {
+ "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "billing",
+ "monthly_cost"
+ ],
+ "type": "object"
+ },
+ "conditions": {
+ "items": {
+ "properties": {
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "description": "One official source sentence, 200 characters at most.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "One line, 120 characters at most.",
+ "type": "string"
+ },
+ "required": {
+ "description": "Present only on a preferred (nice-to-have) condition.",
+ "enum": [
+ false
+ ]
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "enum": [
+ "MET",
+ "UNMET",
+ "UNKNOWN",
+ "UNIT_MISMATCH",
+ "UNIT_UNKNOWN"
+ ]
+ }
+ },
+ "required": [
+ "condition",
+ "verdict",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "fit": {
+ "description": "The fit score of the full result (out of 99); the counts and the metrics are in the full result.",
+ "properties": {
+ "score": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "score"
+ ],
+ "type": "object"
+ },
+ "match": {
+ "enum": [
+ "FULL_MATCH",
+ "PARTIAL_MATCH",
+ "NO_MATCH"
+ ]
+ },
+ "meets_all": {
+ "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
+ "enum": [
+ true,
+ false,
+ "unknown"
+ ]
+ },
+ "monthly_cost": {
+ "description": "status, usd, and low, high or lower_bound when they differ; as in the full result.",
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "on_blocked": {
+ "description": "Only with alternatives_to: the verdict of this plan, with the official sentence and check date, on each condition the plan given as alternatives_to does not meet or cannot confirm (the same conditions as alternatives_to.blocked).",
+ "items": {
+ "properties": {
+ "checked_at": {
+ "description": "Date the sentence was checked (YYYY-MM-DD).",
+ "type": "string"
+ },
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "description": "The official sentence that states the value, when the pages state it.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "One line on why.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "enum": [
+ "MET",
+ "UNMET",
+ "UNKNOWN",
+ "UNIT_MISMATCH",
+ "UNIT_UNKNOWN"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "condition",
+ "verdict"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "plan_page": {
+ "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ },
+ "sign_up_url": {
+ "description": "Where to sign up for this plan: the address to give the user (it redirects to the provider). The source addresses under conditions only show where a sentence was read.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "provider",
+ "meets_all",
+ "monthly_cost",
+ "conditions"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "more_note": {
+ "type": "string"
+ },
+ "more_plans": {
+ "description": "Matching plans left out of the short list: limit is the number of plans in all, fully matching first.",
+ "type": "integer"
+ },
+ "needs_input": {
+ "items": {
+ "properties": {
+ "field": {
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "field",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "others_meeting_all": {
+ "description": "How many other plans also meet every condition.",
+ "type": "integer"
+ },
+ "partial_matches": {
+ "items": {
+ "properties": {
+ "cheapest_elsewhere": {
+ "description": "The cheapest listed plan of another provider in the same field that meets every required condition of this call (ranked as search ranks), with, for each required condition the checked plan did not meet or could not confirm, its verdict on that plan and one official sentence. null when no plan of another provider meets them all.",
+ "properties": {
+ "billing": {
+ "type": "string"
+ },
+ "conditions": {
+ "items": {
+ "properties": {
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "type": "string"
+ },
+ "source": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "condition",
+ "verdict"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "monthly_cost": {
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "page_url": {
+ "type": "string"
+ },
+ "provider_id": {
+ "type": "string"
+ },
+ "provider_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "provider_id",
+ "provider_name",
+ "billing",
+ "monthly_cost",
+ "conditions"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "cheapest_in_product": {
+ "description": "check_conditions: the cheapest listed plan of the same product that meets every required condition of this call, present only when it is another plan than the one checked (absent when the checked plan is itself the cheapest, or when no plan of the product meets them all). Same plan and cost as in the full result.",
+ "properties": {
+ "billing": {
+ "type": "string"
+ },
+ "monthly_cost": {
+ "description": "status, usd, and low, high or lower_bound when they differ.",
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "plan_page": {
+ "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "billing",
+ "monthly_cost"
+ ],
+ "type": "object"
+ },
+ "conditions": {
+ "items": {
+ "properties": {
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "description": "One official source sentence, 200 characters at most.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "One line, 120 characters at most.",
+ "type": "string"
+ },
+ "required": {
+ "description": "Present only on a preferred (nice-to-have) condition.",
+ "enum": [
+ false
+ ]
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "enum": [
+ "MET",
+ "UNMET",
+ "UNKNOWN",
+ "UNIT_MISMATCH",
+ "UNIT_UNKNOWN"
+ ]
+ }
+ },
+ "required": [
+ "condition",
+ "verdict",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "fit": {
+ "description": "The fit score of the full result (out of 99); the counts and the metrics are in the full result.",
+ "properties": {
+ "score": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "score"
+ ],
+ "type": "object"
+ },
+ "match": {
+ "enum": [
+ "FULL_MATCH",
+ "PARTIAL_MATCH",
+ "NO_MATCH"
+ ]
+ },
+ "meets_all": {
+ "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
+ "enum": [
+ true,
+ false,
+ "unknown"
+ ]
+ },
+ "monthly_cost": {
+ "description": "status, usd, and low, high or lower_bound when they differ; as in the full result.",
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "on_blocked": {
+ "description": "Only with alternatives_to: the verdict of this plan, with the official sentence and check date, on each condition the plan given as alternatives_to does not meet or cannot confirm (the same conditions as alternatives_to.blocked).",
+ "items": {
+ "properties": {
+ "checked_at": {
+ "description": "Date the sentence was checked (YYYY-MM-DD).",
+ "type": "string"
+ },
+ "condition": {
+ "type": "string"
+ },
+ "quote": {
+ "description": "The official sentence that states the value, when the pages state it.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "One line on why.",
+ "type": "string"
+ },
+ "source": {
+ "description": "Official page the sentence was found on.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "verdict": {
+ "enum": [
+ "MET",
+ "UNMET",
+ "UNKNOWN",
+ "UNIT_MISMATCH",
+ "UNIT_UNKNOWN"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "condition",
+ "verdict"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "plan_page": {
+ "description": "The link to give the user with this plan, as a markdown link named \"<provider> <plan> — plan page\" (its pricing and sign-up page). The evidence sources under the conditions are for citing a condition.",
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ },
+ "sign_up_url": {
+ "description": "Where to sign up for this plan: the address to give the user (it redirects to the provider). The source addresses under conditions only show where a sentence was read.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "provider",
+ "meets_all",
+ "monthly_cost",
+ "conditions"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "ranking_url": {
+ "description": "The permanent address of the page for a person that ranks every plan for these conditions with the official sentences. Give it to the user. It opens after a server restart and holds no personal data.",
+ "type": "string"
+ },
+ "request_may_omit": {
+ "description": "Words of the question that suggest a condition the request does not carry.",
+ "items": {
+ "properties": {
+ "cue": {
+ "type": "string"
+ },
+ "field": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "field",
+ "cue"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "show_text": {
+ "description": "Ready to show: one line for the best plan, \"Meets all N: [Provider Plan](visit link)\" (or \"Closest: [Provider Plan](visit link)\"); the visit link carries the token of this response. The ranking address follows on the next line.",
+ "type": "string"
+ },
+ "unknown_providers": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "zero_result": {
+ "properties": {
+ "conditions": {
+ "items": {
+ "properties": {
+ "closest": {
+ "description": "The cheapest plan that meets every other required condition but not this one. It does not meet the request (meets_all false or \"unknown\").",
+ "properties": {
+ "billing": {
+ "type": "string"
+ },
+ "fails": {
+ "type": "string"
+ },
+ "meets_all": {
+ "description": "Judged against the required conditions of this call only: true when every one is met, false when one is not met, \"unknown\" when none fails and one is not stated on the official pages.",
+ "enum": [
+ true,
+ false,
+ "unknown"
+ ]
+ },
+ "monthly_cost": {
+ "type": "object"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "offer_name": {
+ "type": "string"
+ },
+ "page_url": {
+ "type": "string"
+ },
+ "provider_name": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "offer_name",
+ "provider_name",
+ "billing",
+ "monthly_cost",
+ "meets_all",
+ "fails"
+ ],
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "condition": {
+ "type": "string"
+ },
+ "excluded": {
+ "type": "integer"
+ },
+ "label": {
+ "type": "string"
+ },
+ "unknown": {
+ "type": "integer"
+ },
+ "would_match_if_relaxed": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "condition",
+ "label",
+ "excluded",
+ "would_match_if_relaxed",
+ "closest"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "note": {
+ "type": "string"
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "format",
+ "answer",
+ "as_of",
+ "needs_input",
+ "counts"
+ ],
+ "type": "object"
+ },
+ {
+ "properties": {
+ "analysis_url": {
+ "description": "The page of the full analysis for the person to open in their browser (rankings by each condition, costs, official sentences, plan buttons). Give it to the person; it is not for you to fetch.",
+ "type": "string"
+ },
+ "answer": {
+ "type": "string"
+ },
+ "as_of": {
+ "type": "string"
+ },
+ "best": {
+ "properties": {
+ "deductions": {
+ "description": "Why the score is not 99, biggest first: kind unchecked (a condition the person gave that our pages say nothing about), unmet (the plan does not meet it) or not_given (the person did not give it); points add up to 99 minus the score.",
+ "items": {
+ "properties": {
+ "condition": {
+ "type": "string"
+ },
+ "kind": {
+ "enum": [
+ "unchecked",
+ "unmet",
+ "not_given"
+ ]
+ },
+ "label": {
+ "type": "string"
+ },
+ "points": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "monthly_cost": {
+ "type": "object"
+ },
+ "name": {
+ "type": "string"
+ },
+ "offer_id": {
+ "type": "string"
+ },
+ "provider": {
+ "type": "string"
+ },
+ "score": {
+ "description": "99 minus the points lost on the conditions we check (floor 0); state it as N of 99.",
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "score_why": {
+ "description": "One fixed sentence made of the engine metrics behind the score.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "offer_id",
+ "name",
+ "provider",
+ "score",
+ "score_why",
+ "monthly_cost"
+ ],
+ "type": "object"
+ },
+ "canvas_id": {
+ "description": "The id of that page as a canvas: after the person has opened the page and tapped it, canvas_do with this id changes what they see.",
+ "type": "string"
+ },
+ "feedback": {
+ "type": "string"
+ },
+ "needs_input": {
+ "items": {
+ "properties": {
+ "field": {
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "field",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "answer",
+ "as_of",
+ "needs_input"
+ ],
+ "type": "object"
+ }
+]