Tool tree
gradeNot graded
page: Every page
get_shop_factsAnswer
What worldwide eSIM is and how it works, in the shop’s own words: one mobile-data eSIM for the whole world or chosen continents, one data pool, validity (until the data is used up, up to 180 days from the first connection), recharge, delivery, installation, devices, payment, refunds, My eSIM, e-mails, support. Use for any question that is not a price or a country. Answer from the returned facts in the shop’s own words; do not add refund windows, speeds or rules that are not returned.
View tool JSON
{
"name": "get_shop_facts",
"kind": "answer",
"impl": "imperative",
"description": "What worldwide eSIM is and how it works, in the shop’s own words: one mobile-data eSIM for the whole world or chosen continents, one data pool, validity (until the data is used up, up to 180 days from the first connection), recharge, delivery, installation, devices, payment, refunds, My eSIM, e-mails, support. Use for any question that is not a price or a country. Answer from the returned facts in the shop’s own words; do not add refund windows, speeds or rules that are not returned.",
"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."
}
}
},
"page": "/"
}list_coverageAnswer
The five continents with their number of countries and the starting price of each (the smallest data size for that continent alone) plus the whole world. Pass continent to list its countries (continent "world" lists every country); include_networks adds the operator names and a 5G flag per country. Use to show where the eSIM works. from_price is the price of the smallest data size for that coverage alone - never add continent prices up; call quote_esim for the combination the customer wants. A country that is not listed is not included.
View tool JSON
{
"name": "list_coverage",
"kind": "answer",
"impl": "imperative",
"description": "The five continents with their number of countries and the starting price of each (the smallest data size for that continent alone) plus the whole world. Pass continent to list its countries (continent \"world\" lists every country); include_networks adds the operator names and a 5G flag per country. Use to show where the eSIM works. from_price is the price of the smallest data size for that coverage alone - never add continent prices up; call quote_esim for the combination the customer wants. A country that is not listed is not included.",
"inputSchema": {
"type": "object",
"properties": {
"continent": {
"type": "string",
"enum": [
"eu",
"as",
"am",
"af",
"oc",
"world"
],
"description": "Optional: list the countries of this continent (eu, as, am, af, oc) or of the whole world (\"world\")."
},
"include_networks": {
"type": "boolean",
"description": "Optional: with continent, add the mobile networks (operator name + 5G flag) of each country."
},
"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."
}
}
},
"page": "/"
}check_countryAnswer
Is one country included? Pass its name in any language or its ISO-2 code (map a city to its country first). Returns included true/false, the continent, the mobile networks (operator names + 5G flag) and the cheapest coverage choice that includes it (its continent alone) with the server price and buy_url, plus the whole world at the same size for comparison. included=false means the country is not included - say so and never claim coverage there. networks are operator names exactly as returned; never add speeds. cheapest_choice carries the full price and buy_url of that choice.
View tool JSON
{
"name": "check_country",
"kind": "answer",
"impl": "imperative",
"description": "Is one country included? Pass its name in any language or its ISO-2 code (map a city to its country first). Returns included true/false, the continent, the mobile networks (operator names + 5G flag) and the cheapest coverage choice that includes it (its continent alone) with the server price and buy_url, plus the whole world at the same size for comparison. included=false means the country is not included - say so and never claim coverage there. networks are operator names exactly as returned; never add speeds. cheapest_choice carries the full price and buy_url of that choice.",
"inputSchema": {
"type": "object",
"properties": {
"country": {
"type": "string",
"description": "Country in ANY language or its ISO code, e.g. \"Japan\", \"Japon\", \"jp\"."
},
"gb": {
"type": "integer",
"enum": [
3,
5,
10,
20,
30,
50,
100
],
"description": "The data pool in GB, ONE pool for every included country: 3, 5, 10 (more: 20, 30, 50, 100). Omit = 3 GB. Not sure? Call recommend_config."
},
"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": [
"country"
]
},
"page": "/"
}quote_esimAction
Use while the customer is still deciding — "how much is …?": the exact server price of ONE worldwide eSIM for the chosen continents (default: the whole world) and data size — the amount the customer would pay — with the number of countries, the validity (until the data is used up, up to 180 days), hotspot, the recharge options and prices, and a buy_url for reference. Quote the price as returned; never compute or scale it. When the customer says they want to buy, call start_checkout. price is the FULL amount for exactly these continents and this data size (price_basis total) - never per GB, per day or per country; quote it as returned and never compute or scale it. data_gb is ONE pool for every included country; say "until the data is used up, up to 180 days" (from the first connection), never "unlimited", and never promise a speed.
View tool JSON
{
"name": "quote_esim",
"kind": "act",
"impl": "imperative",
"description": "Use while the customer is still deciding — \"how much is …?\": the exact server price of ONE worldwide eSIM for the chosen continents (default: the whole world) and data size — the amount the customer would pay — with the number of countries, the validity (until the data is used up, up to 180 days), hotspot, the recharge options and prices, and a buy_url for reference. Quote the price as returned; never compute or scale it. When the customer says they want to buy, call start_checkout. price is the FULL amount for exactly these continents and this data size (price_basis total) - never per GB, per day or per country; quote it as returned and never compute or scale it. data_gb is ONE pool for every included country; say \"until the data is used up, up to 180 days\" (from the first connection), never \"unlimited\", and never promise a speed.",
"inputSchema": {
"type": "object",
"properties": {
"continents": {
"type": "array",
"items": {
"type": "string",
"enum": [
"eu",
"as",
"am",
"af",
"oc"
]
},
"minItems": 1,
"maxItems": 5,
"uniqueItems": true,
"description": "Continents to cover: eu (Europe), as (Asia & Middle East), am (Americas), af (Africa), oc (Oceania). Omit = the whole world (all five). Fewer continents can lower the price. A country is not a continent — use check_country or recommend_config for countries."
},
"gb": {
"type": "integer",
"enum": [
3,
5,
10,
20,
30,
50,
100
],
"description": "The data pool in GB, ONE pool for every included country: 3, 5, 10 (more: 20, 30, 50, 100). Omit = 3 GB. Not sure? Call recommend_config."
},
"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."
}
}
},
"page": "/"
}price_gridAnswer
Every data size (or the sizes asked for) for one coverage choice in one call, each with the server price and its own buy_url; with compare_continents also the whole world against each single continent — to show what a smaller coverage saves. Same server prices as quote_esim. Every size is the full price of that coverage and size; present the options as a table with the currency, never derive per-GB, per-day or per-country figures. Use each buy_url exactly.
View tool JSON
{
"name": "price_grid",
"kind": "answer",
"impl": "imperative",
"description": "Every data size (or the sizes asked for) for one coverage choice in one call, each with the server price and its own buy_url; with compare_continents also the whole world against each single continent — to show what a smaller coverage saves. Same server prices as quote_esim. Every size is the full price of that coverage and size; present the options as a table with the currency, never derive per-GB, per-day or per-country figures. Use each buy_url exactly.",
"inputSchema": {
"type": "object",
"properties": {
"continents": {
"type": "array",
"items": {
"type": "string",
"enum": [
"eu",
"as",
"am",
"af",
"oc"
]
},
"minItems": 1,
"maxItems": 5,
"uniqueItems": true,
"description": "Continents to cover: eu (Europe), as (Asia & Middle East), am (Americas), af (Africa), oc (Oceania). Omit = the whole world (all five). Fewer continents can lower the price. A country is not a continent — use check_country or recommend_config for countries."
},
"gb": {
"type": "array",
"items": {
"type": "integer",
"enum": [
3,
5,
10,
20,
30,
50,
100
]
},
"maxItems": 7,
"description": "Optional: the sizes to price. Omit = every size (3, 5, 10, 20, 30, 50, 100)."
},
"compare_continents": {
"type": "boolean",
"description": "Optional: also price the whole world and each continent alone."
},
"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."
}
}
},
"page": "/"
}recommend_configAction
Use when the customer names the countries of a trip instead of continents and a size: returns the smallest set of continents that covers every named country (countries that are not included come back in not_covered), a suggested data size from the days and usage (light ≈ 0.5 GB/day, normal ≈ 1.5, heavy ≈ 4; rounded up to the next size) and server quotes for that size and one size down and up, each with its buy_url, plus the whole world at the suggested size. Same prices as quote_esim. Every option is a complete eSIM with its own size, full price and buy_url; present them as returned. Countries in not_covered are not included - say so instead of guessing.
View tool JSON
{
"name": "recommend_config",
"kind": "act",
"impl": "imperative",
"description": "Use when the customer names the countries of a trip instead of continents and a size: returns the smallest set of continents that covers every named country (countries that are not included come back in not_covered), a suggested data size from the days and usage (light ≈ 0.5 GB/day, normal ≈ 1.5, heavy ≈ 4; rounded up to the next size) and server quotes for that size and one size down and up, each with its buy_url, plus the whole world at the suggested size. Same prices as quote_esim. Every option is a complete eSIM with its own size, full price and buy_url; present them as returned. Countries in not_covered are not included - say so instead of guessing.",
"inputSchema": {
"type": "object",
"properties": {
"countries": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 30,
"description": "The countries of the trip, names in any language or ISO-2 codes, e.g. [\"Japan\", \"Thailand\", \"Australia\"]. Map cities to their countries first."
},
"usage": {
"type": "string",
"enum": [
"light",
"normal",
"heavy"
],
"description": "light ≈ 0.5 GB/day (messaging, maps, mail), normal ≈ 1.5 GB/day (default; social media, music, some video), heavy ≈ 4 GB/day (video streaming, video calls, hotspot for a laptop)."
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 365,
"description": "Optional: days the customer will use mobile data. Without days the size follows the usage alone (light 3 / normal 5 / heavy 10 GB)."
},
"gb_per_day": {
"type": "number",
"minimum": 0.1,
"maximum": 50,
"description": "Optional: the customer's own estimate in GB per day (wins over usage)."
},
"budget": {
"type": "number",
"description": "Optional budget in the quoted currency; options above it are marked."
},
"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": [
"countries"
]
},
"page": "/"
}start_checkoutSensitive Action
Use only once the customer has decided to buy ("I'll take it", "how do I buy?"): the checkout handoff for one choice (same input as quote_esim). Returns the buy_url to give the customer, the final price and a ready-to-send checkout block (next_step, payment_methods, delivery) — the shop page opens preset to exactly this coverage and size; the customer presses "Get your eSIM" and pays securely. No account needed; the eSIM is delivered on screen and by e-mail right after payment. No in-chat order tracking, no discount codes. For prices while the customer is still comparing, use quote_esim. Give the customer buy_url exactly as returned together with next_step: the shop opens preset to exactly this choice, they press "Get your eSIM" and pay. Quote price as returned (the full amount).
View tool JSON
{
"name": "start_checkout",
"kind": "transact",
"impl": "imperative",
"description": "Use only once the customer has decided to buy (\"I'll take it\", \"how do I buy?\"): the checkout handoff for one choice (same input as quote_esim). Returns the buy_url to give the customer, the final price and a ready-to-send checkout block (next_step, payment_methods, delivery) — the shop page opens preset to exactly this coverage and size; the customer presses \"Get your eSIM\" and pays securely. No account needed; the eSIM is delivered on screen and by e-mail right after payment. No in-chat order tracking, no discount codes. For prices while the customer is still comparing, use quote_esim. Give the customer buy_url exactly as returned together with next_step: the shop opens preset to exactly this choice, they press \"Get your eSIM\" and pay. Quote price as returned (the full amount).",
"inputSchema": {
"type": "object",
"properties": {
"continents": {
"type": "array",
"items": {
"type": "string",
"enum": [
"eu",
"as",
"am",
"af",
"oc"
]
},
"minItems": 1,
"maxItems": 5,
"uniqueItems": true,
"description": "Continents to cover: eu (Europe), as (Asia & Middle East), am (Americas), af (Africa), oc (Oceania). Omit = the whole world (all five). Fewer continents can lower the price. A country is not a continent — use check_country or recommend_config for countries."
},
"gb": {
"type": "integer",
"enum": [
3,
5,
10,
20,
30,
50,
100
],
"description": "The data pool in GB, ONE pool for every included country: 3, 5, 10 (more: 20, 30, 50, 100). Omit = 3 GB. Not sure? Call recommend_config."
},
"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."
}
}
},
"page": "/"
}get_locale_stateAnswer
Read the current site locale: UI language, region and the active /{language-region}/ bucket of the page the user is on.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}set_languageAction
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.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {
"bucket": {
"type": "string",
"description": "Lowercase language-region bucket, e.g. \"de-de\", \"en-us\", \"ja-jp\". The enum is the complete list of buckets this site offers; nothing outside it is accepted.",
"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"
]
},
"page": "/"
}set_currencyAction
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.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "ISO 4217 currency code, e.g. \"EUR\", \"USD\", \"GBP\". The enum is the complete list of currencies this site shows; nothing outside it is accepted.",
"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"
]
},
"page": "/"
}get_consent_stateAnswer
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.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}reject_non_essential_cookiesAction
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.
View tool JSON
{
"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.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}get_configurationAnswer
Read the eSIM the user is configuring on this page right now: the chosen continents, the number of countries, the data size in GB and the price shown. Returns available=false on pages without the eSIM card.
View tool JSON
{
"name": "get_configuration",
"kind": "answer",
"impl": "imperative",
"description": "Read the eSIM the user is configuring on this page right now: the chosen continents, the number of countries, the data size in GB and the price shown. Returns available=false on pages without the eSIM card.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}set_configurationAction
Set the eSIM card on this page for the user: continents = the continent ids to cover (eu, as, am, af, oc; "world" or all five = the whole world); gb = the data size (3, 5, 10, 20, 30, 50, 100). Omit one to change only the other. Nothing is bought - the user still presses "Get your eSIM". Returns the resulting card and the price shown.
View tool JSON
{
"name": "set_configuration",
"kind": "act",
"impl": "imperative",
"description": "Set the eSIM card on this page for the user: continents = the continent ids to cover (eu, as, am, af, oc; \"world\" or all five = the whole world); gb = the data size (3, 5, 10, 20, 30, 50, 100). Omit one to change only the other. Nothing is bought - the user still presses \"Get your eSIM\". Returns the resulting card and the price shown.",
"inputSchema": {
"type": "object",
"properties": {
"continents": {
"type": "array",
"items": {
"type": "string",
"enum": [
"eu",
"as",
"am",
"af",
"oc",
"world"
]
},
"maxItems": 5,
"description": "Continent ids to cover; [\"world\"] = all five."
},
"gb": {
"type": "integer",
"enum": [
3,
5,
10,
20,
30,
50,
100
],
"description": "Data size in GB, one pool for every included country."
}
}
},
"page": "/"
}