e-eSIM Catalog
Search travel eSIM data plans worldwide with live prices, plan details and a buy link.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin get_shop_facts
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"esim-catalog": {
"url": "https://e-esim.com/wp-json/e-esim/mcp"
}
}
}Remote-Endpunkte
https://e-esim.com/wp-json/e-esim/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (5)
🟢search_esim_plans(destination, destinations, type, min_days, limit, ...)
Find e-eSIM eSIM plans for one destination or several (countries or regions, any language). Returns the best-value plans first with full facts, coverage lists and a direct link; multi-country plans that include the destination are returned too and marked covers_via. Use when a user wants mobile data abroad; use recommend_plan when they describe a whole trip.
Eingabe-Schema
{
"type": "object",
"properties": {
"destination": {
"type": "string",
"description": "Country or region in any language, e.g. \"Thailand\", \"Japon\", \"Europa\", or a 2-letter ISO code. For a city, pass its country."
},
"destinations": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5,
"description": "Several countries for one trip; only plans covering ALL of them are returned. Overrides destination."
},
"type": {
"type": "string",
"enum": [
"daily_surf",
"trip_surf",
"all_you_can_surf",
"any"
],
"description": "Plan type. Default any."
},
"min_days": {
"type": "integer",
"minimum": 1,
"description": "Only plans valid for at least this many days."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Plans to return. Default 10; all_plans_url lists everything."
},
"sort": {
"type": "string",
"enum": [
"value",
"price",
"data"
],
"description": "value = best price per GB delivered / cheapest All You Can Surf per day first (default); price = cheapest first; data = most data first."
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare \"en\" is quoted in en-us / USD."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. \"en-gb\", \"de-de\". Wins over language; prices and links are quoted in it."
},
"currency": {
"type": "string",
"description": "Optional ISO 4217 code. Every price in the result is quoted in it."
}
},
"required": []
}Ausgabe-Schema
{
"type": "object",
"properties": {
"destination": {
"type": "string"
},
"destinations": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"query": {
"type": "string"
},
"iso": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"description": "How each requested destination was understood."
},
"iso": {
"type": "string",
"description": "Resolved ISO code or region slug of the (first) destination."
},
"covered": {
"type": "boolean"
},
"from_price": {
"type": "string",
"description": "Lowest price in this result set, shop-formatted (per-day plans count with their day price)."
},
"currency": {
"type": "string"
},
"pricing_bucket": {
"type": "string"
},
"returned": {
"type": "integer"
},
"note": {
"type": "string",
"description": "Present when part of the request could not be honoured (e.g. more than 5 destinations)."
},
"total_available": {
"type": "integer",
"description": "Plans matched before limit; the rest are on all_plans_url."
},
"plans": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "One eSIM plan. Every field is present only when the catalogue holds a value for it; an absent field is unknown, never \"no\".",
"properties": {
"product_id": {
"type": "integer",
"description": "Product id. Use it for get_plan_details and start_checkout."
},
"sku": {
"type": "string",
"description": "Catalogue SKU."
},
"name": {
"type": "string",
"description": "Short plan name: destination · data · validity · type."
},
"title": {
"type": "string",
"description": "Full product title in the requested language."
},
"type": {
"type": "string",
"enum": [
"Daily Surf",
"Trip Surf",
"All You Can Surf"
],
"description": "Plan type. Brand names — keep in English."
},
"grade": {
"type": "string",
"description": "All You Can Surf tier (standard, premium, titanium). Present only the returned value; every grade has a daily full-speed allowance then a reduced speed."
},
"family_id": {
"type": "string",
"description": "Plans sharing a family_id are day-length variants of the same package."
},
"summary": {
"type": "string",
"description": "Short description in the requested language, from the product page."
},
"coverage_countries": {
"type": "array",
"description": "Every country the plan works in.",
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"iso": {
"type": "string",
"description": "ISO 3166-1 alpha-2, lowercase."
},
"name": {
"type": "string",
"description": "Country name in the requested language."
}
}
}
},
"coverage_count": {
"type": "integer",
"description": "Number of countries in coverage_countries."
},
"covers_via": {
"type": "string",
"description": "Present when the plan was returned for a country it covers as part of a multi-country plan: the plan's own region name."
},
"coverage_note": {
"type": "string",
"description": "Coverage caveat to present verbatim, e.g. traffic routed via Hong Kong."
},
"coverage_label": {
"type": "string",
"description": "Human-readable coverage label as the shop shows it (localized)."
},
"coverage": {
"type": "string",
"description": "Same as coverage_label (1.0.x name)."
},
"data_gb": {
"type": "number",
"description": "Data amount in GB. Meaning given by data_period."
},
"data_period": {
"type": "string",
"enum": [
"total",
"per_day"
],
"description": "\"total\": data_gb is the whole plan (Trip Surf). \"per_day\": data_gb is the daily full-speed allowance (Daily Surf, All You Can Surf)."
},
"data": {
"type": "string",
"description": "Trip Surf: total data label, e.g. \"5GB\"."
},
"daily_high_speed": {
"type": "string",
"description": "Daily Surf / All You Can Surf: daily allowance at full speed, e.g. \"2GB\"."
},
"always_on_rate": {
"type": "string",
"description": "Reduced speed after the allowance, e.g. \"5 Mbps\" / \"128 kbps\" (for the rest of that day on per_day plans; for the rest of the trip on Trip Surf). All You Can Surf stays unlimited in volume at this speed."
},
"throttle_kbps": {
"type": "integer",
"description": "The same reduced speed in kbps. 0 = no throttle stated for this plan."
},
"fair_use": {
"type": "string",
"description": "All You Can Surf fair-use policy in plain words (daily full-speed allowance, then the still-unlimited reduced speed). Present it as returned."
},
"fup": {
"type": "string",
"description": "Same as fair_use (1.0.x name)."
},
"network_generation": {
"type": "string",
"description": "Network generation, e.g. \"5G/4G\". Never an operator name."
},
"network": {
"type": "string",
"description": "Same as network_generation (1.0.x name)."
},
"carrier": {
"type": "string",
"description": "Local network operator when specified (1.0.x name; also in networks). NEVER invent one when absent."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Operator name(s) for the plan, as the shop states them."
},
"days": {
"type": "integer",
"description": "Validity in days."
},
"validity": {
"type": "string",
"description": "Validity label, e.g. \"30 days\"."
},
"validity_clock": {
"type": "string",
"description": "What the days count means for THIS plan: 24-hour periods from activation, or calendar days ending at a fixed clock (e.g. \"ends 23:59 (UTC+8)\"). State it; a 1-day calendar plan activated in the evening lasts only hours."
},
"daily_reset_time": {
"type": "string",
"description": "When the daily allowance refreshes (per_day plans only), e.g. \"00:00 (UTC+8)\" or \"every 24 h after activation\"."
},
"data_reset": {
"type": "string",
"description": "Same as daily_reset_time (1.0.x name)."
},
"expires_on": {
"type": "string",
"description": "Hard supplier end date (YYYY-MM-DD) after which the plan stops working and unused data is lost, whatever validity the customer picks. Say it plainly when present."
},
"voice_sms": {
"type": "string",
"description": "Always \"none\": data only, no telephone number, no SMS."
},
"topup": {
"type": "object",
"additionalProperties": true,
"properties": {
"kind": {
"type": "string",
"enum": [
"data",
"days",
"none"
],
"description": "Always \"none\" on e-eSIM: no top-ups or recharges exist; each plan is a self-contained eSIM."
},
"how": {
"type": "string",
"description": "How the customer tops up."
}
},
"description": "Top-up possibility for this plan."
},
"plan_note": {
"type": "string",
"description": "Customer-facing caveat for this plan in plain words: a daily cut-off, a coverage exclusion, an activation or verification step. Present it as returned whenever present."
},
"notice": {
"type": "string",
"description": "Same as plan_note (1.0.x name)."
},
"price": {
"type": "number",
"description": "FULL fixed price of the plan in currency; not per day, not per GB. The price shown is the price paid."
},
"price_basis": {
"type": "string",
"enum": [
"total"
],
"description": "Always \"total\" on e-eSIM."
},
"currency": {
"type": "string",
"description": "ISO 4217 currency of every price in this object."
},
"price_is_final": {
"type": "boolean",
"description": "Always true: no tax or fee is added at checkout."
},
"pricing_bucket": {
"type": "string",
"description": "language-region bucket the prices and links are quoted in, e.g. \"en-us\"."
},
"rating": {
"type": "number",
"description": "Average customer rating (1-5). Present only when reviews exist."
},
"review_count": {
"type": "integer",
"description": "Number of reviews. Present only when > 0."
},
"last_updated": {
"type": "string",
"description": "Date the plan was last updated in the catalogue (YYYY-MM-DD)."
},
"url": {
"type": "string",
"description": "Product page in pricing_bucket. Use verbatim."
}
}
}
},
"all_plans_url": {
"type": "string"
},
"message": {
"type": "string",
"description": "Present when nothing matched: says why and what to try."
}
},
"additionalProperties": true
}🟢get_plan_details(product_id, language, bucket, currency)
Full facts for one e-eSIM plan by product id: coverage list, data and speed rules (daily allowance, reduced speed, fair use), validity clock, expiry date, notice, carrier, price, reviews and link — quoted in the customer's bucket or currency when given.
Eingabe-Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"description": "Product id from search_esim_plans or recommend_plan."
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare \"en\" is quoted in en-us / USD."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. \"en-gb\", \"de-de\". Wins over language; prices and links are quoted in it."
},
"currency": {
"type": "string",
"description": "Optional ISO 4217 code. Every price in the result is quoted in it."
}
},
"required": [
"product_id"
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"description": "Product id. Use it for get_plan_details and start_checkout."
},
"sku": {
"type": "string",
"description": "Catalogue SKU."
},
"name": {
"type": "string",
"description": "Short plan name: destination · data · validity · type."
},
"title": {
"type": "string",
"description": "Full product title in the requested language."
},
"type": {
"type": "string",
"enum": [
"Daily Surf",
"Trip Surf",
"All You Can Surf"
],
"description": "Plan type. Brand names — keep in English."
},
"grade": {
"type": "string",
"description": "All You Can Surf tier (standard, premium, titanium). Present only the returned value; every grade has a daily full-speed allowance then a reduced speed."
},
"family_id": {
"type": "string",
"description": "Plans sharing a family_id are day-length variants of the same package."
},
"summary": {
"type": "string",
"description": "Short description in the requested language, from the product page."
},
"coverage_countries": {
"type": "array",
"description": "Every country the plan works in.",
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"iso": {
"type": "string",
"description": "ISO 3166-1 alpha-2, lowercase."
},
"name": {
"type": "string",
"description": "Country name in the requested language."
}
}
}
},
"coverage_count": {
"type": "integer",
"description": "Number of countries in coverage_countries."
},
"covers_via": {
"type": "string",
"description": "Present when the plan was returned for a country it covers as part of a multi-country plan: the plan's own region name."
},
"coverage_note": {
"type": "string",
"description": "Coverage caveat to present verbatim, e.g. traffic routed via Hong Kong."
},
"coverage_label": {
"type": "string",
"description": "Human-readable coverage label as the shop shows it (localized)."
},
"coverage": {
"type": "string",
"description": "Same as coverage_label (1.0.x name)."
},
"data_gb": {
"type": "number",
"description": "Data amount in GB. Meaning given by data_period."
},
"data_period": {
"type": "string",
"enum": [
"total",
"per_day"
],
"description": "\"total\": data_gb is the whole plan (Trip Surf). \"per_day\": data_gb is the daily full-speed allowance (Daily Surf, All You Can Surf)."
},
"data": {
"type": "string",
"description": "Trip Surf: total data label, e.g. \"5GB\"."
},
"daily_high_speed": {
"type": "string",
"description": "Daily Surf / All You Can Surf: daily allowance at full speed, e.g. \"2GB\"."
},
"always_on_rate": {
"type": "string",
"description": "Reduced speed after the allowance, e.g. \"5 Mbps\" / \"128 kbps\" (for the rest of that day on per_day plans; for the rest of the trip on Trip Surf). All You Can Surf stays unlimited in volume at this speed."
},
"throttle_kbps": {
"type": "integer",
"description": "The same reduced speed in kbps. 0 = no throttle stated for this plan."
},
"fair_use": {
"type": "string",
"description": "All You Can Surf fair-use policy in plain words (daily full-speed allowance, then the still-unlimited reduced speed). Present it as returned."
},
"fup": {
"type": "string",
"description": "Same as fair_use (1.0.x name)."
},
"network_generation": {
"type": "string",
"description": "Network generation, e.g. \"5G/4G\". Never an operator name."
},
"network": {
"type": "string",
"description": "Same as network_generation (1.0.x name)."
},
"carrier": {
"type": "string",
"description": "Local network operator when specified (1.0.x name; also in networks). NEVER invent one when absent."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Operator name(s) for the plan, as the shop states them."
},
"days": {
"type": "integer",
"description": "Validity in days."
},
"validity": {
"type": "string",
"description": "Validity label, e.g. \"30 days\"."
},
"validity_clock": {
"type": "string",
"description": "What the days count means for THIS plan: 24-hour periods from activation, or calendar days ending at a fixed clock (e.g. \"ends 23:59 (UTC+8)\"). State it; a 1-day calendar plan activated in the evening lasts only hours."
},
"daily_reset_time": {
"type": "string",
"description": "When the daily allowance refreshes (per_day plans only), e.g. \"00:00 (UTC+8)\" or \"every 24 h after activation\"."
},
"data_reset": {
"type": "string",
"description": "Same as daily_reset_time (1.0.x name)."
},
"expires_on": {
"type": "string",
"description": "Hard supplier end date (YYYY-MM-DD) after which the plan stops working and unused data is lost, whatever validity the customer picks. Say it plainly when present."
},
"voice_sms": {
"type": "string",
"description": "Always \"none\": data only, no telephone number, no SMS."
},
"topup": {
"type": "object",
"additionalProperties": true,
"properties": {
"kind": {
"type": "string",
"enum": [
"data",
"days",
"none"
],
"description": "Always \"none\" on e-eSIM: no top-ups or recharges exist; each plan is a self-contained eSIM."
},
"how": {
"type": "string",
"description": "How the customer tops up."
}
},
"description": "Top-up possibility for this plan."
},
"plan_note": {
"type": "string",
"description": "Customer-facing caveat for this plan in plain words: a daily cut-off, a coverage exclusion, an activation or verification step. Present it as returned whenever present."
},
"notice": {
"type": "string",
"description": "Same as plan_note (1.0.x name)."
},
"price": {
"type": "number",
"description": "FULL fixed price of the plan in currency; not per day, not per GB. The price shown is the price paid."
},
"price_basis": {
"type": "string",
"enum": [
"total"
],
"description": "Always \"total\" on e-eSIM."
},
"currency": {
"type": "string",
"description": "ISO 4217 currency of every price in this object."
},
"price_is_final": {
"type": "boolean",
"description": "Always true: no tax or fee is added at checkout."
},
"pricing_bucket": {
"type": "string",
"description": "language-region bucket the prices and links are quoted in, e.g. \"en-us\"."
},
"rating": {
"type": "number",
"description": "Average customer rating (1-5). Present only when reviews exist."
},
"review_count": {
"type": "integer",
"description": "Number of reviews. Present only when > 0."
},
"last_updated": {
"type": "string",
"description": "Date the plan was last updated in the catalogue (YYYY-MM-DD)."
},
"url": {
"type": "string",
"description": "Product page in pricing_bucket. Use verbatim."
}
},
"additionalProperties": true,
"description": "One eSIM plan. Every field is present only when the catalogue holds a value for it; an absent field is unknown, never \"no\"."
}🟢start_checkout(product_id, language, bucket, currency)
Hand the customer to the e-eSIM shop to buy one plan. Returns buy_url (the product page where they tap Buy now and pay securely — card, Apple Pay, Google Pay, PayPal; there is no discount-code field) plus the plan name and price in the customer's bucket or currency. No account needed; the eSIM is emailed right after payment. There is no in-chat order tracking.
Eingabe-Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"description": "Product id to buy."
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare \"en\" is quoted in en-us / USD."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. \"en-gb\", \"de-de\". Wins over language; prices and links are quoted in it."
},
"currency": {
"type": "string",
"description": "Optional ISO 4217 code. Every price in the result is quoted in it."
}
},
"required": [
"product_id"
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"product": {
"type": "string"
},
"product_id": {
"type": "integer"
},
"price": {
"type": "number",
"description": "FULL fixed price of the plan."
},
"price_basis": {
"type": "string",
"enum": [
"total"
]
},
"app_links": {
"type": "object",
"additionalProperties": true,
"description": "Optional store links of the free e-eSIM app (android, ios) - the eSIM works without it."
},
"currency": {
"type": "string"
},
"price_is_final": {
"type": "boolean"
},
"pricing_bucket": {
"type": "string"
},
"buy_url": {
"type": "string",
"description": "The exact product page to send the customer to. Use verbatim."
},
"message": {
"type": "string"
},
"presentation": {
"type": "string"
}
},
"additionalProperties": true
}🟢recommend_plan(countries, days, usage, gb_per_day, budget, ...)
Turn a trip into up to three plan recommendations: countries (1-5, any language), number of days and how much data the traveller uses. Each fit carries the full plan facts, the total price for the whole trip and a one-sentence reason built only from catalogue facts. Use this first whenever the user describes a trip rather than asks for a list.
Eingabe-Schema
{
"type": "object",
"properties": {
"countries": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 5,
"description": "Countries or regions of the trip, any language."
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 365,
"description": "Trip length in days."
},
"usage": {
"type": "string",
"enum": [
"light",
"normal",
"heavy"
],
"description": "light ≈ 0.5 GB/day (maps, messaging), normal ≈ 1.5 GB/day (social, some video), heavy ≈ 4 GB/day (video, hotspot). Default normal."
},
"gb_per_day": {
"type": "number",
"minimum": 0.1,
"description": "Overrides usage with an explicit daily need in GB."
},
"budget": {
"type": "number",
"minimum": 0,
"description": "Optional maximum total for the trip, in the result currency."
},
"language": {
"type": "string",
"description": "ISO language of the conversation, e.g. en, de, ja. Plan names and country names come back in it when available. Bare \"en\" is quoted in en-us / USD."
},
"bucket": {
"type": "string",
"description": "Optional language-region bucket the customer shops in, e.g. \"en-gb\", \"de-de\". Wins over language; prices and links are quoted in it."
},
"currency": {
"type": "string",
"description": "Optional ISO 4217 code. Every price in the result is quoted in it."
}
},
"required": [
"countries",
"days"
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"trip": {
"type": "object",
"additionalProperties": true,
"properties": {
"countries": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"days": {
"type": "integer"
},
"gb_per_day": {
"type": "number"
},
"gb_total": {
"type": "number"
}
}
},
"currency": {
"type": "string"
},
"pricing_bucket": {
"type": "string"
},
"recommendations": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"rank": {
"type": "integer"
},
"why": {
"type": "string",
"description": "One sentence built from catalogue facts only."
},
"total_for_trip": {
"type": "number",
"description": "Checkout total for the trip in currency (Flex: days x per-day price with the discount ladder; packs: the plan price, times the number of plans needed when one does not cover the trip)."
},
"plans_needed": {
"type": "integer",
"description": "1, or the number of consecutive plans needed to cover the trip length."
},
"caveats": {
"type": "array",
"items": {
"type": "string"
}
},
"plan": {
"type": "object",
"additionalProperties": true,
"description": "One eSIM plan. Every field is present only when the catalogue holds a value for it; an absent field is unknown, never \"no\".",
"properties": {
"product_id": {
"type": "integer",
"description": "Product id. Use it for get_plan_details and start_checkout."
},
"sku": {
"type": "string",
"description": "Catalogue SKU."
},
"name": {
"type": "string",
"description": "Short plan name: destination · data · validity · type."
},
"title": {
"type": "string",
"description": "Full product title in the requested language."
},
"type": {
"type": "string",
"enum": [
"Daily Surf",
"Trip Surf",
"All You Can Surf"
],
"description": "Plan type. Brand names — keep in English."
},
"grade": {
"type": "string",
"description": "All You Can Surf tier (standard, premium, titanium). Present only the returned value; every grade has a daily full-speed allowance then a reduced speed."
},
"family_id": {
"type": "string",
"description": "Plans sharing a family_id are day-length variants of the same package."
},
"summary": {
"type": "string",
"description": "Short description in the requested language, from the product page."
},
"coverage_countries": {
"type": "array",
"description": "Every country the plan works in.",
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"iso": {
"type": "string",
"description": "ISO 3166-1 alpha-2, lowercase."
},
"name": {
"type": "string",
"description": "Country name in the requested language."
}
}
}
},
"coverage_count": {
"type": "integer",
"description": "Number of countries in coverage_countries."
},
"covers_via": {
"type": "string",
"description": "Present when the plan was returned for a country it covers as part of a multi-country plan: the plan's own region name."
},
"coverage_note": {
"type": "string",
"description": "Coverage caveat to present verbatim, e.g. traffic routed via Hong Kong."
},
"coverage_label": {
"type": "string",
"description": "Human-readable coverage label as the shop shows it (localized)."
},
"coverage": {
"type": "string",
"description": "Same as coverage_label (1.0.x name)."
},
"data_gb": {
"type": "number",
"description": "Data amount in GB. Meaning given by data_period."
},
"data_period": {
"type": "string",
"enum": [
"total",
"per_day"
],
"description": "\"total\": data_gb is the whole plan (Trip Surf). \"per_day\": data_gb is the daily full-speed allowance (Daily Surf, All You Can Surf)."
},
"data": {
"type": "string",
"description": "Trip Surf: total data label, e.g. \"5GB\"."
},
"daily_high_speed": {
"type": "string",
"description": "Daily Surf / All You Can Surf: daily allowance at full speed, e.g. \"2GB\"."
},
"always_on_rate": {
"type": "string",
"description": "Reduced speed after the allowance, e.g. \"5 Mbps\" / \"128 kbps\" (for the rest of that day on per_day plans; for the rest of the trip on Trip Surf). All You Can Surf stays unlimited in volume at this speed."
},
"throttle_kbps": {
"type": "integer",
"description": "The same reduced speed in kbps. 0 = no throttle stated for this plan."
},
"fair_use": {
"type": "string",
"description": "All You Can Surf fair-use policy in plain words (daily full-speed allowance, then the still-unlimited reduced speed). Present it as returned."
},
"fup": {
"type": "string",
"description": "Same as fair_use (1.0.x name)."
},
"network_generation": {
"type": "string",
"description": "Network generation, e.g. \"5G/4G\". Never an operator name."
},
"network": {
"type": "string",
"description": "Same as network_generation (1.0.x name)."
},
"carrier": {
"type": "string",
"description": "Local network operator when specified (1.0.x name; also in networks). NEVER invent one when absent."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Operator name(s) for the plan, as the shop states them."
},
"days": {
"type": "integer",
"description": "Validity in days."
},
"validity": {
"type": "string",
"description": "Validity label, e.g. \"30 days\"."
},
"validity_clock": {
"type": "string",
"description": "What the days count means for THIS plan: 24-hour periods from activation, or calendar days ending at a fixed clock (e.g. \"ends 23:59 (UTC+8)\"). State it; a 1-day calendar plan activated in the evening lasts only hours."
},
"daily_reset_time": {
"type": "string",
"description": "When the daily allowance refreshes (per_day plans only), e.g. \"00:00 (UTC+8)\" or \"every 24 h after activation\"."
},
"data_reset": {
"type": "string",
"description": "Same as daily_reset_time (1.0.x name)."
},
"expires_on": {
"type": "string",
"description": "Hard supplier end date (YYYY-MM-DD) after which the plan stops working and unused data is lost, whatever validity the customer picks. Say it plainly when present."
},
"voice_sms": {
"type": "string",
"description": "Always \"none\": data only, no telephone number, no SMS."
},
"topup": {
"type": "object",
"additionalProperties": true,
"properties": {
"kind": {
"type": "string",
"enum": [
"data",
"days",
"none"
],
"description": "Always \"none\" on e-eSIM: no top-ups or recharges exist; each plan is a self-contained eSIM."
},
"how": {
"type": "string",
"description": "How the customer tops up."
}
},
"description": "Top-up possibility for this plan."
},
"plan_note": {
"type": "string",
"description": "Customer-facing caveat for this plan in plain words: a daily cut-off, a coverage exclusion, an activation or verification step. Present it as returned whenever present."
},
"notice": {
"type": "string",
"description": "Same as plan_note (1.0.x name)."
},
"price": {
"type": "number",
"description": "FULL fixed price of the plan in currency; not per day, not per GB. The price shown is the price paid."
},
"price_basis": {
"type": "string",
"enum": [
"total"
],
"description": "Always \"total\" on e-eSIM."
},
"currency": {
"type": "string",
"description": "ISO 4217 currency of every price in this object."
},
"price_is_final": {
"type": "boolean",
"description": "Always true: no tax or fee is added at checkout."
},
"pricing_bucket": {
"type": "string",
"description": "language-region bucket the prices and links are quoted in, e.g. \"en-us\"."
},
"rating": {
"type": "number",
"description": "Average customer rating (1-5). Present only when reviews exist."
},
"review_count": {
"type": "integer",
"description": "Number of reviews. Present only when > 0."
},
"last_updated": {
"type": "string",
"description": "Date the plan was last updated in the catalogue (YYYY-MM-DD)."
},
"url": {
"type": "string",
"description": "Product page in pricing_bucket. Use verbatim."
}
}
}
}
}
},
"message": {
"type": "string"
},
"all_plans_url": {
"type": "string"
}
},
"additionalProperties": true
}🟢get_shop_facts
How e-eSIM works, in the shop's own words: delivery and installation, device requirements, payment methods, refund policy, no top-ups, hotspot, Usage Dashboard and apps, support and company details. Use for any "how / when / what if" question that is not about one specific plan.
Eingabe-Schema
{
"type": "object",
"properties": {}
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true
}Community
Nachweis