{"$schema":"https://developer.microsoft.com/json-schemas/copilot/plugin/v2.3/schema.json","schema_version":"v2.3","name_for_human":"OpenStream","namespace":"openstream","description_for_human":"Utility prices with sources and dates: AU NBN, energy, mobile, health; UK/NZ broadband; US power.","description_for_model":"OpenStream - utility prices with sources and dates: Australian NBN, electricity, mobile, travel eSIM, health and business insurance; UK and NZ broadband; US electricity by state. Use it whenever a person asks what a broadband, mobile, electricity, gas, travel eSIM or private health insurance plan costs, which is cheapest, what an address can get, what changed, or what insurance a business must hold. Every figure carries the source and the day it was read: quote both. Markets never mix: Australia (AUD: find_plans, find_mobile_plans, roaming_plans, smartwatch_plans, cheapest_plan, compare_plans, get_plan, check_address, cheapest_electricity, electricity_network, recommend_electricity, electricity_signup_link, recommend_plans, signup_link, plan_history, plan_changes, lookup_provider, search, fetch, health_cover_options, business_insurance_check, deals_now, price_reset_gap, premium_rise); United Kingdom (GBP: uk_broadband_plans); New Zealand (NZD: nz_broadband_plans); United States (USD: us_electricity_plans). Rows carry a handoff_url through openstream.com.au/go: give the person that link, never a provider URL built by hand. Nothing here is advice; business insurance has no price because none is published.","logo_url":"https://openstream.com.au/icon.png","contact_email":"support@openstream.com.au","legal_info_url":"https://openstream.com.au/terms","privacy_policy_url":"https://openstream.com.au/privacy","functions":[{"name":"find_plans","description":"Australia (AUD). Search current Australian NBN and mobile plans by provider, speed band, segment and price cap (electricity plans: use recommend_electricity, cheapest_electricity or search, which carry page_url per plan). Default vertical nbn, sorted cheapest first. Returns a compact table plus structured rows with price_last_confirmed_at and page_url. changed_since narrows to plans whose price or details moved in a window (e.g. '30d').","parameters":{"type":"object","properties":{"vertical":{"type":"string","enum":["nbn","mobile","energy"]},"provider":{"type":"string","description":"Brand name or provider_id, e.g. 'Aussie Broadband' or 'cmp-tpg'"},"speed":{"type":"integer","description":"Advertised download band in Mbps: 12, 25, 50, 100, 250, 400, 500, 750, 1000 or 2000"},"segment":{"type":"string","enum":["residential","small_business","enterprise"]},"max_price":{"type":"number","description":"Max ongoing monthly price in AUD inc GST"},"sort":{"type":"string","enum":["price","margin","margin_pct"]},"limit":{"type":"integer","description":"Default 10, max 25"},"as_of":{"type":"string","description":"ISO date for point-in-time pricing"},"connection":{"type":"string","description":"Default any","enum":["fixed_line","fixed_wireless","satellite","any"]},"changed_since":{"type":"string","description":"Only plans with a recorded change since: ISO-8601 timestamp or relative window 1d, 7d, 30d"}}},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"find_mobile_plans","description":"Australia (AUD). SIM-only Australian mobile plans read every hour from each brand's own page, cheapest first: price, included data, the network the brand runs on, and whether the plan is sold per month or per recharge period (prepaid). Filter by minimum data, network, prepaid. A price per recharge is not a monthly price; period_days says which.","parameters":{"type":"object","properties":{"min_gb":{"type":"number","description":"Only plans with at least this much data, in GB"},"network":{"type":"string","description":"The network the plan runs on, including resellers","enum":["telstra","optus","vodafone"]},"prepaid":{"type":"boolean","description":"true: only plans sold per recharge; false: only monthly plans"},"limit":{"type":"integer","description":"Default 10, max 25"}}},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"roaming_plans","description":"Australia (AUD). Travel eSIM plans for Australians going overseas, read nightly from Holafly, Airalo, Maya Mobile and Nomad: destination, data (or unlimited), validity in days, the provider's price in its own currency, and the AUD equivalent at the Reserve Bank of Australia's rate for the day (the rate is returned). Ranked by AUD per day of validity. Destinations: japan, indonesia, new-zealand, united-states, united-kingdom, thailand, vietnam, fiji, singapore, india, china, italy, france, philippines, malaysia, south-korea, hong-kong, greece, spain, united-arab-emirates, europe, canada, germany, switzerland, croatia, turkey, portugal, netherlands, ireland, cambodia, sri-lanka, taiwan, nepal, mexico, peru, egypt, south-africa.","parameters":{"type":"object","properties":{"destination":{"type":"string","description":"Destination slug, e.g. japan, indonesia, new-zealand, united-states, europe"},"min_days":{"type":"integer","description":"Only plans valid for at least this many days"},"unlimited":{"type":"boolean","description":"true: unlimited-data plans only"},"limit":{"type":"integer","description":"Default 10, max 25"}},"required":["destination"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"smartwatch_plans","description":"Australia (AUD). The cellular add-ons the three Australian carriers sell for an Apple Watch, Galaxy Watch or Pixel Watch: monthly price, what it does, the phone plan it requires, and where the price was read.","parameters":{"type":"object","properties":{}},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"cheapest_plan","description":"Australia (AUD). The cheapest ongoing price for an NBN speed band today, plus the best intro deal if different. Use when the user asks 'cheapest NBN 100' style questions.","parameters":{"type":"object","properties":{"speed":{"type":"integer","description":"Advertised download band in Mbps: 12, 25, 50, 100, 250, 400, 500, 750, 1000 or 2000"},"segment":{"type":"string","enum":["residential","small_business","enterprise"]},"provider":{"type":"string"},"connection":{"type":"string","description":"Default fixed_line - Fixed Wireless and satellite are different products","enum":["fixed_line","fixed_wireless","satellite","any"]}},"required":["speed"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"compare_plans","description":"Australia (AUD). Side-by-side comparison of 2-6 plans by product_id (from find_plans).","parameters":{"type":"object","properties":{"product_ids":{"type":"array","items":{"type":"string"}}},"required":["product_ids"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"get_plan","description":"Australia (AUD). Full detail for one plan: price basis, ex-GST price, wholesale reference and margin basis, per-source prices, every citation with captured/last-confirmed timestamps, and the history page.","parameters":{"type":"object","properties":{"product_id":{"type":"string"}},"required":["product_id"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"check_address","description":"Australia (AUD). What NBN plans a street address can actually get. Runs NBN Co's address lookup (no key required; the address is not kept as a record, though the suburb and a one-way hash of it appear in operational logs for up to 30 days): the connection technology (FTTP, HFC, FTTC, FTTN, FTTB, Fixed Wireless, Sky Muster satellite) decides which plans can be ordered (copper tails top out at NBN 100; Fixed Wireless and satellite have their own plans). max_tier_mbps is the ceiling for that TECHNOLOGY, not a measurement of the individual line: every FTTP premises reports 2000. Treat it as the highest tier worth offering, confirm the real limit with the supplier, and check fttp_upgrade where a premises is only eligible after an upgrade. Returns the matched premises, the technology, the eligible plans cheapest first, and a link that opens OpenStream with the address already resolved. When several premises match (units, duplicates), it lists them with ids: call again with location_id. Give the full street address with suburb and state, e.g. '35 Moorhouse St, Camberwell VIC'.","parameters":{"type":"object","properties":{"address":{"type":"string","description":"Street address with suburb and state"},"location_id":{"type":"string","description":"NBN Co location id from a previous ambiguous result, to pick one premises"},"speed":{"type":"integer","description":"Only plans on this download band; default every band the line supports"},"limit":{"type":"integer","description":"Default 10, max 25"}},"required":["address"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"cheapest_electricity","description":"Australia (AUD). Electricity plans a postcode can get, cheapest first. The postcode's distribution network decides the prices; every published plan on that network (the regulator's Energy Made Easy listings, re-read nightly) is costed at a stated annual usage from its own supply charge and rates: a representative monthly estimate, not a quote. Variable-priced (wholesale-linked) plans and demand-tariff plans are shown without an estimate. Each plan carries the regulator's record link; the postcode page lists the same plans with the full rate card. Victoria and the NEM states only.","parameters":{"type":"object","properties":{"postcode":{"type":"string","description":"4-digit Australian postcode"},"annual_kwh":{"type":"integer","description":"Annual usage in kWh; default 4000 (4,000 kWh a year (a typical household)); 2000 = 2,000 kWh a year (one or two people); 6000 = 6,000 kWh a year (a large household)"},"solar":{"type":"boolean","description":"Household has rooftop solar (keeps solar-only plans in)"},"battery":{"type":"boolean","description":"Household has a battery"},"limit":{"type":"integer","description":"Default 10, max 40"}},"required":["postcode"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"electricity_network","description":"Australia (AUD). One electricity distribution network's market (Ausgrid, Endeavour Energy, Essential Energy, Energex, Ergon Energy, SA Power Networks, CitiPower, Powercor, Jemena, United Energy, AusNet Services, Evoenergy, TasNetworks): the regulator's reference price (DMO/VDO) against our cheapest and median at the same benchmark usage, the cheapest plans at the typical profile, and what moved since yesterday. Use when the user names a network or a state rather than a postcode.","parameters":{"type":"object","properties":{"network":{"type":"string","description":"Network name or slug, e.g. 'Ausgrid', 'sa-power-networks'"},"limit":{"type":"integer","description":"Cheapest plans to list; default 10"}},"required":["network"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"recommend_electricity","description":"Australia (AUD). The electricity recommendation openstream.com.au itself makes for a postcode: the cheapest published plan, the cheapest from a large well-known retailer, and the simplest single-rate plan with no conditional discounts, each costed at the person's annual kWh from the retailer's published rates, with a page_url to cite. Give current_monthly_bill when they have told you what they pay so the saving is against their real bill; otherwise it is against the median published plan at that usage, and the result says so. The regulator's reference price (DMO/VDO) for the network is returned beside the picks. Follow with electricity_signup_link for the plan they choose. NSW, VIC, QLD, SA, ACT and TAS.","parameters":{"type":"object","properties":{"postcode":{"type":"string","description":"4-digit Australian postcode"},"annual_kwh":{"type":"integer","description":"kWh a year from their bill (a quarterly bill x4); default 4000"},"current_monthly_bill":{"type":"number","description":"What they pay now, AUD a month (a quarterly bill / 3)"},"solar":{"type":"boolean","description":"Household has rooftop solar"},"battery":{"type":"boolean","description":"Household has a battery"}},"required":["postcode"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"electricity_signup_link","description":"Australia (AUD). The link to give the person once they have chosen an electricity plan: OpenStream's hand-off page (it shows the plan and the estimate), then the retailer to sign up - the same path a visitor to openstream.com.au takes, carrying a one-off reference so the sign-up can be attributed back to this conversation. Where no retailer link is held it goes to the regulator's record for the plan, which carries the retailer's own sign-up link. Get plan_id from recommend_electricity or cheapest_electricity.","parameters":{"type":"object","properties":{"plan_id":{"type":"string","description":"Plan id from recommend_electricity / cheapest_electricity (the regulator's id, e.g. AGL123456MRE1)"},"brand":{"type":"string","description":"Retailer name, when known; speeds the lookup"},"assistant":{"type":"string","description":"Which assistant is asking (chatgpt, claude, ...); detected from the client when omitted"}},"required":["plan_id"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"recommend_plans","description":"Australia (AUD). The recommendation openstream.com.au itself makes for a speed tier, with the same arithmetic: the cheapest ongoing price, the lowest first-year cost (intro months at the promo price, then the ongoing price), the cheapest well-known brand, and a faster tier that still costs no more than the current bill. Give current_monthly_price when the person has told you what they pay - savings are then measured against their real bill instead of the tier average. Pass max_tier from check_address so a faster pick is never one the line cannot carry. Follow with signup_link for the pick they choose.","parameters":{"type":"object","properties":{"speed":{"type":"integer","description":"Tier to compare: 25, 50, 100, 250, 500, 1000. Ask if unsure; 100 suits most households"},"current_monthly_price":{"type":"number","description":"What they pay now, AUD a month inc GST"},"max_tier":{"type":"integer","description":"Highest tier the line supports, from check_address (FTTN/FTTB/FTTC = 100)"},"segment":{"type":"string","enum":["residential","small_business"]},"connection":{"type":"string","description":"Default fixed_line","enum":["fixed_line","fixed_wireless","satellite","any"]}},"required":["speed"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"signup_link","description":"Australia (AUD). The link to give the person once they have chosen a plan. It opens OpenStream's hand-off page, which shows the price and the date it was confirmed on the provider's own site, then sends them to the provider to sign up - the same path a visitor to openstream.com.au takes. The link carries a one-off reference so the sign-up can be attributed back to this conversation; a URL you build yourself loses that, so always use this tool rather than linking the provider directly. Nothing is bought here and the person is never charged by OpenStream. Get product_id from recommend_plans, find_plans or cheapest_plan.","parameters":{"type":"object","properties":{"product_id":{"type":"string","description":"Plan id from recommend_plans / find_plans / cheapest_plan"},"assistant":{"type":"string","description":"Which assistant is asking (chatgpt, claude, ...); detected from the client when omitted"}},"required":["product_id"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"plan_history","description":"Australia (AUD). One plan's price over time: every observed price version with its dated page, and every change that moved it (prior -> new values, source, both raw snapshot refs, pending-review flag). Use after find_plans for a product_id.","parameters":{"type":"object","properties":{"product_id":{"type":"string"}},"required":["product_id"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"plan_changes","description":"Australia (AUD). Price and plan changes recorded by the hourly index since a date (ISO) or a relative window like '7d'. Optional provider filter.","parameters":{"type":"object","properties":{"since":{"type":"string","description":"ISO-8601 timestamp or relative window: 1d, 7d, 30d"},"provider":{"type":"string"},"limit":{"type":"integer"}},"required":["since"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"lookup_provider","description":"Australia (AUD). Find a tracked provider by name: registry status, how many plans are served, cheapest price, and last night's index outcome.","parameters":{"type":"object","properties":{"query":{"type":"string"}},"required":["query"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"search","description":"Australia (AUD). Full-text search over tracked plans and providers. Returns ids for fetch.","parameters":{"type":"object","properties":{"query":{"type":"string"}},"required":["query"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"fetch","description":"Australia (AUD). Fetch the full record for an id returned by search.","parameters":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"uk_broadband_plans","description":"United Kingdom (GBP). UNITED KINGDOM broadband (GBP, VAT included; a separate market from Australia, never mixed). Plans read from each provider's own page and re-confirmed daily, ranked on what the contract costs a month once the provider's own published mid-contract rises are counted (Ofcom bans inflation-linked rises, so every rise is a pounds figure quoted from the page). Each row: advertised price, contract average, the rises with their dates, speed and its basis, the day the price was last confirmed, the provider page and a sign-up hand-off. postcode applies the plans' stated area limits (Hull, Wales, Scotland...) via the council district; whether a network passes the door is the provider's checker to answer, and the result says so. Read date: per row, price_confirmed_at.","parameters":{"type":"object","properties":{"min_mbps":{"type":"integer","description":"Only plans of at least this download speed in Mbps (plan or average speed as the page states it)"},"kind":{"type":"string","enum":["full fibre","part fibre","cable","wireless"]},"postcode":{"type":"string","description":"A UK postcode, e.g. SW1A 1AA: rules out plans whose stated area excludes it"},"limit":{"type":"integer","description":"Default 10, max 40"}}},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"nz_broadband_plans","description":"New Zealand (NZD). NEW ZEALAND broadband (NZD, GST included; a separate market from Australia, never mixed). Plans read from each retailer's own page and re-confirmed daily, ranked on the ongoing monthly price; a promotion is shown beside it in the retailer's words and never ranks. Each row: ongoing price, promotion, the retailer's own average-monthly figure where it publishes one, speed and its basis, connection kind, the day the price was last confirmed, the retailer page and a sign-up hand-off. Read date: per row, price_confirmed_at.","parameters":{"type":"object","properties":{"min_mbps":{"type":"integer","description":"Only plans of at least this download speed in Mbps"},"kind":{"type":"string","enum":["fibre","hyperfibre","wireless","vdsl"]},"limit":{"type":"integer","description":"Default 10, max 40"}}},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"us_electricity_plans","description":"United States (USD). UNITED STATES retail electricity (USD; a separate market, never mixed), one launched state at a time: today Texas (TX), Pennsylvania (PA), Ohio (OH); any other state answers that it is not priced. Every offer the state regulator's feed lists (Texas: the PUCT's Power to Choose export, read daily), with the average price in cents per kWh at 500, 1,000 and 2,000 kWh exactly as the feed states it, term, rate type, renewable share, prepaid and time-of-use flags, any bill-credit or minimum-usage condition, the regulator's facts label (the document to cite), the offer's page and an enrolment hand-off. Give a ZIP (the counties' delivery utilities decide the zone) or a utility name; with neither the answer is the cheapest offer per zone. usage_kwh picks which of the three points ranks. OpenStream is not registered as a broker in any state and earns nothing from any US retailer. Read date: as_of and per row read_at.","parameters":{"type":"object","properties":{"state":{"type":"string","description":"Two-letter state code, e.g. TX"},"zip":{"type":"string","description":"Five-digit ZIP; resolves the delivery utility zone(s) from Census and EIA-861 files"},"utility":{"type":"string","description":"Delivery utility (zone) name or id, e.g. 'Oncor', 'centerpoint'"},"usage_kwh":{"type":"number","description":"Monthly usage point to rank on; default 1000"},"term_months":{"type":"integer","description":"Only offers with this contract term; 0 is the feed's word for no fixed term"},"rate_type":{"type":"string","enum":["fixed","variable","indexed"]},"renewable_only":{"type":"boolean","description":"Only 100% renewable offers"},"prepaid":{"type":"boolean","description":"true: prepaid offers only; false: exclude them"},"limit":{"type":"integer","description":"Default 10, max 40"}},"required":["state"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"health_cover_options","description":"Australia (AUD). AUSTRALIA private health insurance (AUD). The cheapest open policies for a state, household and cover kind from the regulator's monthly release (PrivateHealth.gov.au, every policy with its published monthly premium before the government rebate), cheapest first, funds anyone can join by default. Each row: fund, policy, tier (gold, silver-plus, silver, bronze-plus, bronze, basic-plus, basic), premium before rebate, excess, Medicare Levy Surcharge exemption, the policy page (what it covers, waiting periods, premium after each rebate band), the fund's page and a hand-off to the fund. This ranks published premiums; it is not advice. Read date: the release day (release).","parameters":{"type":"object","properties":{"state":{"type":"string","description":"State; the ACT is under NSW in the release","enum":["NSW","VIC","QLD","SA","WA","TAS","NT"]},"scale":{"type":"string","description":"Household: single (default), couple, family, single_parent","enum":["single","couple","family","single_parent"]},"kind":{"type":"string","description":"hospital (default), extras only, or hospital and extras combined","enum":["hospital","extras","combined"]},"tier":{"type":"string","description":"Hospital tier slug: gold, silver-plus, silver, bronze-plus, bronze, basic-plus, basic; omit for every tier"},"open_funds_only":{"type":"boolean","description":"Default true: only funds anyone can join (restricted funds left out)"},"limit":{"type":"integer","description":"Default 10, max 40"}},"required":["state"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"business_insurance_check","description":"Australia (AUD). AUSTRALIA business insurance: NOT a price comparison and never will be (business cover is underwritten per risk and no Australian regulator publishes premiums), so this returns NO figure of any kind. For a kind of business, in whatever word the person used (builder, cafe, barber, yoga studio, any ABS occupation title), it returns the ANZSIC class, which covers a law or a regulator requires of that class and which only a landlord, council, venue, head contractor or client requires, each with the source it was read from and the day, what the qualification check asks, which required covers the business has not said it holds (when holds is given), and the check URL that opens with those answers filled in and sends a brief to a licensed broker. OpenStream is not an insurer and not a broker and gives no advice.","parameters":{"type":"object","properties":{"business":{"type":"string","description":"What the business is, in the person's word: 'electrician', 'cafe', 'physio', 'yoga studio'"},"state":{"type":"string","description":"nsw, vic, qld, sa, wa, tas, nt or act"},"employs":{"type":"string","description":"Whether it employs: employees, contractors, both, owner_only","enum":["employees","contractors","both","owner_only"]},"holds":{"type":"array","description":"Covers it already holds: any of public_liability, professional_indemnity, workers_comp, business_pack, product_liability, cyber, tools, commercial_motor, management_liability, none","items":{"type":"string"}}},"required":["business"]},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"deals_now","description":"Australia (AUD). AUSTRALIA (AUD inc. GST). Every NBN and SIM-only mobile plan whose own page shows an introductory price now: the intro price and its months, the ongoing price after it, the first-year cost (intro months at the intro price, the rest at the ongoing price), the provider's stated end date where there is one, the day the price was read, the plan page and a sign-up hand-off; plus every deal that started, changed or ended in the last changes_days, filed the hour it was seen. Quote the intro price with its months and the ongoing price together, never the intro alone. Read date: per row read_at.","parameters":{"type":"object","properties":{"market":{"type":"string","enum":["nbn","mobile"]},"tier":{"type":"integer","description":"NBN speed band: 25, 50, 100, 250, 500, 750, 1000"},"limit":{"type":"integer","description":"Default 15, max 50"},"changes_days":{"type":"integer","description":"Window for the filed changes; default 7"}}},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"price_reset_gap","description":"Australia (AUD). AUSTRALIA electricity (AUD inc. GST). Each network's regulated default offer for the year, the Default Market Offer (AER: NSW, south-east Queensland, SA) or the Victorian Default Offer (ESC), as an annual bill at the regulator's own benchmark usage, transcribed from the regulator's determination with its publication and read dates; beside it today's cheapest published plan on that network at the same usage from the regulator's listing, and the gap (the regulator's bill less twelve months of the estimate, the only arithmetic). Residential and small-business figures. Read dates: the source's fetched day and the snapshot_day per network.","parameters":{"type":"object","properties":{"state":{"type":"string","enum":["NSW","QLD","SA","VIC"]},"network":{"type":"string","description":"Network name or slug, e.g. 'Ausgrid', 'citipower'"}}},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}},{"name":"premium_rise","description":"Australia (AUD). AUSTRALIA private health insurance (AUD). The federal premium round: the industry average change the Minister approved, when it was announced and took effect, each registered insurer's own average as the Department of Health, Disability and Ageing publishes it (largest first), the coming round or the department's own timing for it, the history of averages, and the cheapest open hospital policy for a single per state and tier from the regulator's release (premium before rebate) with the fund's average change beside it and a hand-off. Every figure cites its source and read day; nothing projects an average onto a policy.","parameters":{"type":"object","properties":{"state":{"type":"string","description":"Limit the cheapest-policy table to one state","enum":["NSW","VIC","QLD","SA","WA","TAS","NT"]},"tier":{"type":"string","description":"Limit it to one tier: Basic, Bronze, Silver, Gold","enum":["Basic","Bronze","Silver","Gold"]},"insurer":{"type":"string","description":"Limit the insurer list to names containing this"}}},"returns":{"type":"string","description":"JSON: {tool, market, arguments, is_error, text (markdown answer), result (rows with read dates, page URLs and hand-off URLs)}"},"states":{"responding":{"instructions":["Quote figures from the result only, each with its currency and read date; say 'OpenStream, <date>' and link the page_url or source_url.","When a row carries handoff_url, give the person that link to sign up; do not construct a provider URL.","If result rows are empty, repeat the text's reason; never fill a figure in."]}},"capabilities":{"security_info":{"data_handling":["GetPublicData"]}}}],"runtimes":[{"type":"OpenApi","auth":{"type":"None"},"run_for_functions":["find_plans","find_mobile_plans","roaming_plans","smartwatch_plans","cheapest_plan","compare_plans","get_plan","check_address","cheapest_electricity","electricity_network","recommend_electricity","electricity_signup_link","recommend_plans","signup_link","plan_history","plan_changes","lookup_provider","search","fetch","uk_broadband_plans","nz_broadband_plans","us_electricity_plans","health_cover_options","business_insurance_check","deals_now","price_reset_gap","premium_rise"],"spec":{"url":"https://openstream.com.au/api/v1/openapi?spec=3.0","progress_style":"ShowUsageWithInput"}}],"capabilities":{"conversation_starters":[{"title":"Cheapest NBN","text":"What is the cheapest NBN 100 plan in Australia right now, and when was its price last confirmed?"},{"title":"Electricity bill","text":"Cheapest electricity plan for postcode 3000 at 4,500 kWh a year"},{"title":"UK broadband","text":"Cheapest full fibre broadband in the UK once the mid-contract price rises are counted"},{"title":"Texas electricity","text":"Cheapest 12-month fixed electricity plan for ZIP 75001 at 1,000 kWh a month"},{"title":"Health cover","text":"Cheapest Bronze hospital cover for a couple in Victoria from a fund anyone can join"},{"title":"Business insurance","text":"What insurance does a cafe in NSW have to hold by law?"}]}}