{"ok":true,"site":{"host":"roamflat.com","url":"https://roamflat.com/","type":"live","desc":"Unlimited data eSIM for Japan, Korea, the USA, Europe & 150+ countries. One flat price per day, up to 50 Mbps, hotspot included — starts when you first connect.","tools":[{"name":"get_shop_facts","kind":"answer","impl":"imperative","description":"What roamflat is and how the Flat works, in the shop's own words: speeds, networks, when the days start, delivery, payment, refund policy, My Flat, app, devices, support. Use for any question that is not a price. Answer from the returned facts in the shop’s own words; do not add refund windows, speeds or rules that are not returned.","title":"Shop facts","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"language":{"type":"string","description":"ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."},"bucket":{"type":"string","description":"Optional language-region bucket. Defaults to the bucket of the page the user is on."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"list_destinations","kind":"answer","impl":"imperative","description":"Every country roamflat builds a Flat for, with the number of networks, whether 5G (and so 25/50 Mbps) is available, and the starting price per day (5 Mbps, cheapest network). Use to check coverage or compare countries. from_price_per_day is a per-day starting point (5 Mbps, cheapest network) for comparing countries - call quote_flat for the trip the customer actually wants.","title":"List destinations","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"language":{"type":"string","description":"ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."},"bucket":{"type":"string","description":"Optional language-region bucket. Defaults to the bucket of the page the user is on."},"currency":{"type":"string","description":"Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"get_flats","kind":"answer","impl":"imperative","description":"The networks of one country (operator, 5G) and the Flats built from them — each Flat with the networks it includes and the price for every speed for the given days (null = that speed needs a 5G network). Use to explain the choice between networks and speeds. Each Flat includes its network and every cheaper one; prices[speed] is the full price for the days given, null = that speed needs a 5G network. Never invent coverage or operators.","title":"Flats of a country","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"destination":{"type":"string","description":"Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per Flat."},"days":{"type":"integer","minimum":1,"maximum":30,"description":"Days of mobile data (1–30).","default":7},"language":{"type":"string","description":"ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."},"bucket":{"type":"string","description":"Optional language-region bucket. Defaults to the bucket of the page the user is on."},"currency":{"type":"string","description":"Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."}},"required":["destination"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"quote_flat","kind":"act","impl":"imperative","description":"The exact price of one configuration: country, speed, days and (optionally) which Flat / networks. This is the server price the customer pays — quote it as returned, never compute or scale it yourself. Returns buy_url with the card preset. price is the FULL amount of exactly this configuration for the days asked (price_basis total); quote it as returned and never compute or scale it - price_per_day is for comparison only. Every speed is unlimited data at that speed; never say \"unlimited speed\". networks lists the operators exactly as returned. Hand the customer to buy_url exactly as returned: the card opens preset, they press \"Get your Flat\" and pay.","title":"Quote one Flat","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"destination":{"type":"string","description":"Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per Flat."},"days":{"type":"integer","minimum":1,"maximum":30,"description":"Days of mobile data (1–30)."},"mbps":{"type":"integer","enum":[5,10,25,50],"description":"Maximum speed in Mbps (5, 10, 25, 50; default 5). Data is unlimited at that speed. 25 Mbps and up need a 5G network."},"flat":{"type":"integer","minimum":1,"description":"Optional: which Flat of the country, as get_flats numbers them. Omit = the cheapest Flat that allows the speed."},"networks":{"type":"array","items":{"type":"string"},"description":"Optional: operator names from get_flats that must be included (the cheapest Flat holding all of them is used). Ignored when flat is given."},"language":{"type":"string","description":"ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."},"bucket":{"type":"string","description":"Optional language-region bucket. Defaults to the bucket of the page the user is on."},"currency":{"type":"string","description":"Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."}},"required":["destination","days"]},"outputSchema":{"type":"object","additionalProperties":true,"properties":{"destination":{"type":"string","description":"Resolved country name (localized)."},"iso":{"type":"string","description":"ISO 3166-1 alpha-2, lower case."},"name":{"type":"string","description":"The Flat's name as the shop shows it: \"Flat · Vodafone + O2\" or \"Flat · all 4 networks\"."},"flat":{"type":"integer","description":"Which Flat of the country (1 = cheapest network only; higher numbers include more networks). Pass it back to quote the same Flat."},"networks":{"type":"array","items":{"type":"string"},"description":"Operator names included, as the shop states them."},"all_networks":{"type":"boolean"},"has_5g":{"type":"boolean","description":"A 5G network is included."},"speed_mbps":{"type":"integer","description":"The chosen maximum speed. Data is unlimited at this speed."},"data":{"type":"string"},"days":{"type":"integer","description":"Days booked, counted from the first connection in the destination country."},"price":{"type":"number","description":"FULL price of this configuration in currency — the amount paid. Not per day."},"price_per_day":{"type":"number","description":"For comparison only. Never multiply it yourself."},"currency":{"type":"string"},"price_basis":{"type":"string","enum":["total"]},"price_is_final":{"type":"boolean"},"hotspot":{"type":"boolean"},"starts":{"type":"string"},"buy_url":{"type":"string","description":"The roamflat card preset to exactly this configuration. Use verbatim."},"pricing_bucket":{"type":"string","description":"The language-region bucket the prices and links are quoted in: the one the customer is browsing, unless the agent asked for another language or currency."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"price_grid","kind":"answer","impl":"imperative","description":"Prices for several speed × days combinations of one Flat in one call (up to 8 day values; speeds default to all), e.g. to compare with other providers or to find the best fit. Same server prices as quote_flat. Every row is the full price of that speed x days combination; present the rows as a table with the currency, never derive other figures. A row with price null names its reason (e.g. needs a 5G network). Use the buy_url of each row exactly.","title":"Price grid","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"destination":{"type":"string","description":"Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per Flat."},"days":{"type":"array","items":{"type":"integer"},"description":"Up to 8 day values, e.g. [3,7,14,30]."},"mbps":{"type":"array","items":{"type":"integer"},"description":"Speeds to include (default all: 5, 10, 25, 50)."},"flat":{"type":"integer","minimum":1,"description":"Optional: which Flat of the country, as get_flats numbers them. Omit = the cheapest Flat that allows the speed."},"networks":{"type":"array","items":{"type":"string"},"description":"Optional: operator names from get_flats that must be included (the cheapest Flat holding all of them is used). Ignored when flat is given."},"language":{"type":"string","description":"ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."},"bucket":{"type":"string","description":"Optional language-region bucket. Defaults to the bucket of the page the user is on."},"currency":{"type":"string","description":"Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."}},"required":["destination","days"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"plan_trip","kind":"act","impl":"imperative","description":"A trip through several countries (max 5): one Flat per country, each quoted at the same speed and days unless given per country. Returns one line per country with price and buy_url, plus the total. Use when the customer names more than one country. One Flat per country; present each line with its price and buy_url and the total_for_trip as returned. Countries in not_available cannot be served and speed_notes explain a lower speed - say so instead of guessing.","title":"Plan a multi-country trip","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"destinations":{"type":"array","items":{"type":"string"},"maxItems":5,"description":"Countries of the trip, any language or ISO codes, in travel order."},"days":{"type":"integer","minimum":1,"maximum":30,"description":"Days of mobile data (1–30).","default":7},"mbps":{"type":"integer","enum":[5,10,25,50],"description":"Maximum speed in Mbps (5, 10, 25, 50; default 5). Data is unlimited at that speed. 25 Mbps and up need a 5G network."},"per_country":{"type":"array","items":{"type":"object","properties":{"destination":{"type":"string"},"days":{"type":"integer"},"mbps":{"type":"integer"}}},"description":"Optional overrides per country (days and/or mbps)."},"language":{"type":"string","description":"ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."},"bucket":{"type":"string","description":"Optional language-region bucket. Defaults to the bucket of the page the user is on."},"currency":{"type":"string","description":"Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."}},"required":["destinations"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"start_checkout","kind":"transact","impl":"imperative","description":"Hand the customer to roamflat with the card preset to the chosen country, speed, days and Flat. Returns buy_url (they press \"Get your Flat\" and pay securely — card, Apple Pay, Google Pay, PayPal) plus the price. No account needed; the eSIM is delivered on screen and by email within seconds of payment. No in-chat order tracking, no discount codes. price is the FULL amount of exactly this configuration for the days asked (price_basis total); quote it as returned and never compute or scale it - price_per_day is for comparison only. Every speed is unlimited data at that speed; never say \"unlimited speed\". networks lists the operators exactly as returned. Hand the customer to buy_url exactly as returned: the card opens preset, they press \"Get your Flat\" and pay.","title":"Start secure checkout","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"destination":{"type":"string","description":"Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\". Map a city to its country first. One country per Flat."},"days":{"type":"integer","minimum":1,"maximum":30,"description":"Days of mobile data (1–30)."},"mbps":{"type":"integer","enum":[5,10,25,50],"description":"Maximum speed in Mbps (5, 10, 25, 50; default 5). Data is unlimited at that speed. 25 Mbps and up need a 5G network."},"flat":{"type":"integer","minimum":1,"description":"Optional: which Flat of the country, as get_flats numbers them. Omit = the cheapest Flat that allows the speed."},"networks":{"type":"array","items":{"type":"string"},"description":"Optional: operator names from get_flats that must be included (the cheapest Flat holding all of them is used). Ignored when flat is given."},"language":{"type":"string","description":"ISO language of the conversation, e.g. en, de, ja. Defaults to the language of the page the user is on."},"bucket":{"type":"string","description":"Optional language-region bucket. Defaults to the bucket of the page the user is on."},"currency":{"type":"string","description":"Optional ISO 4217 override. Defaults to the currency shown on the page the user is on."}},"required":["destination","days"]},"outputSchema":{"type":"object","additionalProperties":true,"properties":{"destination":{"type":"string","description":"Resolved country name (localized)."},"iso":{"type":"string","description":"ISO 3166-1 alpha-2, lower case."},"name":{"type":"string","description":"The Flat's name as the shop shows it: \"Flat · Vodafone + O2\" or \"Flat · all 4 networks\"."},"flat":{"type":"integer","description":"Which Flat of the country (1 = cheapest network only; higher numbers include more networks). Pass it back to quote the same Flat."},"networks":{"type":"array","items":{"type":"string"},"description":"Operator names included, as the shop states them."},"all_networks":{"type":"boolean"},"has_5g":{"type":"boolean","description":"A 5G network is included."},"speed_mbps":{"type":"integer","description":"The chosen maximum speed. Data is unlimited at this speed."},"data":{"type":"string"},"days":{"type":"integer","description":"Days booked, counted from the first connection in the destination country."},"price":{"type":"number","description":"FULL price of this configuration in currency — the amount paid. Not per day."},"price_per_day":{"type":"number","description":"For comparison only. Never multiply it yourself."},"currency":{"type":"string"},"price_basis":{"type":"string","enum":["total"]},"price_is_final":{"type":"boolean"},"hotspot":{"type":"boolean"},"starts":{"type":"string"},"buy_url":{"type":"string","description":"The roamflat card preset to exactly this configuration. Use verbatim."},"pricing_bucket":{"type":"string","description":"The language-region bucket the prices and links are quoted in: the one the customer is browsing, unless the agent asked for another language or currency."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"get_locale_state","kind":"answer","impl":"imperative","description":"Read the current site locale: UI language, region and the active /{language-region}/ bucket of the page the user is on.","title":"Read site locale","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"outputSchema":{"type":"object","properties":{"language":{"type":"string","description":"ISO language code of the UI."},"region":{"type":"string","description":"Two-letter region code."},"bucket":{"type":"string","description":"language-region bucket, e.g. \"en-us\"."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"set_language","kind":"act","impl":"imperative","description":"Switch the site to a supported language-region bucket such as \"de-de\" or \"en-gb\" and navigate to that locale; prices then show in that region's currency. Call get_locale_state first to see the current bucket.","title":"Switch site language","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"bucket":{"type":"string","description":"Lowercase language-region bucket, e.g. \"de-de\", \"en-us\", \"ja-jp\".","enum":["en-gb","en-ie","de-de","de-at","de-ch","nl-nl","fr-fr","fr-be","es-es","it-it","pt-pt","pl-pl","cs-cz","fr-lu","de-li","fr-mc","it-sm","it-va","en-mt","el-cy","el-gr","tr-tr","sv-se","nb-no","da-dk","fi-fi","sk-sk","hr-hr","bg-bg","lt-lt","lv-lv","et-ee","sl-si","ro-ro","ro-md","hu-hu","uk-ua","sr-rs","sr-me","hr-ba","is-is","en-us","en-ca","fr-ca","en-jm","en-tt","en-bz","es-mx","es-cr","es-co","es-pe","es-cl","es-uy","es-ar","pt-br","es-ec","es-sv","es-pa","es-bo","es-py","es-hn","es-gt","es-do","en-au","en-nz","en-za","en-ke","en-zw","ru-ru","ru-by","ru-kz","ru-uz","en-in","en-ph","en-my","en-pk","zh-cn","zh-sg","zht-tw","zht-hk","zht-mo","ja-jp","ko-kr"]}},"required":["bucket"]},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"switched_to":{"type":"string","description":"The bucket the page is navigating to."},"error":{"type":"string","description":"Present only when the bucket is invalid or unsupported."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"set_currency","kind":"act","impl":"imperative","description":"Switch the displayed currency by ISO 4217 code such as \"EUR\", \"USD\" or \"GBP\". Currency follows the region, so the site navigates to the matching region in the user's current language.","title":"Switch displayed currency","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"code":{"type":"string","description":"ISO 4217 currency code, e.g. \"EUR\", \"USD\", \"GBP\".","enum":["GBP","EUR","CHF","PLN","CZK","TRY","SEK","NOK","DKK","RON","MDL","HUF","UAH","RSD","BAM","ISK","USD","CAD","JMD","TTD","BZD","MXN","CRC","COP","PEN","CLP","UYU","ARS","BRL","BOB","PYG","HNL","GTQ","DOP","AUD","NZD","ZAR","KES","RUB","BYN","KZT","UZS","INR","PHP","MYR","PKR","CNY","SGD","TWD","HKD","MOP","JPY","KRW"]}},"required":["code"]},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"currency":{"type":"string"},"switched_to":{"type":"string","description":"The bucket the page is navigating to."},"error":{"type":"string","description":"Present only when the code is unknown or unsupported."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"get_consent_state","kind":"answer","impl":"imperative","description":"Read the visitor's current cookie-consent state on this site. Necessary cookies are always on. Reports whether the visitor has decided yet and the on/off state of analytics, ads and personalized ads. By design there is no tool to grant consent: consent is given by a human on the banner.","title":"Read cookie consent","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"outputSchema":{"type":"object","properties":{"decided":{"type":"boolean","description":"true once the visitor has made any choice."},"necessary":{"type":"boolean","description":"Always true."},"analytics":{"type":"boolean"},"ads":{"type":"boolean"},"personalized_ads":{"type":"boolean"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"reject_non_essential_cookies","kind":"act","impl":"imperative","description":"Opt the visitor out of all non-essential cookies (analytics, ads, personalized ads) and close the consent banner. Necessary cookies remain. Records a refusal only; it can never grant consent - that is a human decision by design. Use when the user wants to decline tracking.","title":"Refuse non-essential cookies","annotations":{"readOnlyHint":false,"consequentialHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"outputSchema":{"type":"object","properties":{"success":{"type":"boolean"},"necessary":{"type":"boolean"},"analytics":{"type":"boolean"},"ads":{"type":"boolean"},"personalized_ads":{"type":"boolean"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"get_configuration","kind":"answer","impl":"imperative","description":"Read the Flat the user is configuring on this page right now: country, speed (Mbps) and the speeds possible, days, the networks (ticked or not, 4G/5G), the Flat name and the price shown. Returns available=false on pages without the card.","title":"Read the Flat card","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{}},"outputSchema":{"type":"object","properties":{"available":{"type":"boolean"},"iso":{"type":"string"},"destination":{"type":"string"},"speed_mbps":{"type":"integer"},"speeds_possible":{"type":"array","items":{"type":"integer"}},"days":{"type":"integer"},"flat":{"type":"integer","description":"Which Flat of the country is selected (as get_flats numbers them)."},"flat_name":{"type":"string"},"networks":{"type":"array","items":{"type":"object","properties":{"operator":{"type":"string"},"generation":{"type":"string"},"flat":{"type":"integer"},"selected":{"type":"boolean"}}}},"price_display":{"type":"string","description":"The full price as shown on the page, in the page currency."},"price_detail":{"type":"string","description":"The line under the price: days x price per day and the speed."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]},{"name":"set_configuration","kind":"act","impl":"imperative","description":"Move the card on this page for the user: country (ISO code), speed in Mbps (5, 10, 25 or 50; 25 and 50 need a Flat with 5G), days (1-30) and the networks (operator names - the Flat holding all of them is selected) or a flat number. Omitted fields keep their value. Nothing is bought - the user still presses \"Get your Flat\". Returns the resulting card and the price shown.","title":"Set the Flat card","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"country":{"type":"string","description":"ISO 3166-1 alpha-2, e.g. \"jp\"."},"mbps":{"type":"integer","description":"Speed in Mbps: 5, 10, 25 or 50."},"days":{"type":"integer","description":"Days (1-30)."},"networks":{"type":"array","items":{"type":"string"},"description":"Operator names that must be included."},"flat":{"type":"integer","description":"Flat number from get_flats or get_configuration (ignored when networks are given)."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/en-us/","/en-us/destination/japan/","/en-us/?country=gb&mbps=10&days=7","/en-us/about/","/en-gb/"]}],"category":"Travel & Events","favicon":"/favicons/roamflat.com.ico","apiSurface":"spec","toolCount":14}}