eSIM-Global.VIP eSIM Catalog
Find prepaid travel eSIM plans for 200+ destinations with live prices, specs and a buy link.
Should I use this
Quality & Safety
Findings (1)
- LOWin get_shop_facts
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"esim-catalog": {
"url": "https://esim-global.vip/esimshop/wp-json/esimglobal/mcp"
}
}
}Remote endpoints
https://esim-global.vip/esimshop/wp-json/esimglobal/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
๐ขsearch_esim_plans(destination, destinations, type, min_days, limit, ...)
Find eSIM-Global.VIP 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.
Input 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": [
"data_pack",
"daily_pack",
"unlimited_flex",
"any"
],
"description": "Plan type. Default any."
},
"min_days": {
"type": "integer",
"minimum": 1,
"description": "Only plans valid for at least this many days (Unlimited Flex counts when days_range allows it)."
},
"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 / cheapest Flex 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": []
}Output 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": [
"Data Pack",
"Daily Pack",
"Unlimited Flex"
],
"description": "Plan type."
},
"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, with the network operators per country when known.",
"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."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Operator names in that country, as the supplier lists them."
}
}
}
},
"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."
},
"ip_breakout": {
"type": "string",
"description": "Country whose internet connection the customer appears to use (IP breakout), ISO code(s) โ matters for banking apps, streaming and mainland-China access. Vendor fact."
},
"coverage_note": {
"type": "string",
"description": "Coverage caveat to present verbatim, e.g. traffic routed via Hong Kong."
},
"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 (Data Pack). \"per_day\": data_gb is the daily full-speed allowance (Unlimited Flex, Daily Pack)."
},
"data": {
"type": "string",
"description": "Data Pack: total data label, e.g. \"5GB\"."
},
"daily_high_speed": {
"type": "string",
"description": "Unlimited Flex / Daily Pack: daily allowance at full speed, e.g. \"2GB\"; \"unlimited\" = unlimited data every day at full speed (fair-use policy)."
},
"always_on_rate": {
"type": "string",
"description": "Unlimited Flex / Daily Pack: reduced speed after the daily allowance, e.g. \"512 Kbit/s\". Empty when the plan has a speed_cap or is unlimited."
},
"speed_cap": {
"type": "string",
"description": "Present only on plans with a PERMANENT speed cap, e.g. \"10 Mbit/s\". Never call such a plan high-speed."
},
"fair_use": {
"type": "string",
"description": "Fair-use policy text from the supplier, when stated."
},
"network_generation": {
"type": "string",
"description": "Network technology, e.g. \"4G/LTE/5G\". Never an operator name."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Operator names across the plan (deduplicated). Per-country detail is in coverage_countries."
},
"days": {
"type": "integer",
"description": "Validity in days (Data Pack, Daily Pack)."
},
"validity": {
"type": "string",
"description": "Validity label, e.g. \"30 days\"."
},
"days_range": {
"type": "string",
"description": "Unlimited Flex: choosable durations in days, e.g. \"1-30\"."
},
"daily_reset_time": {
"type": "string",
"description": "When the daily allowance resets, as the vendor states it (clock and time zone). Absent = resets 24 h after activation is NOT implied; simply unknown."
},
"activation_trigger": {
"type": "string",
"enum": [
"install",
"first_connection"
],
"description": "\"install\": validity and billing start the moment the eSIM is installed โ install only when ready to use. \"first_connection\": the eSIM can be installed before travel; validity starts on first connection to a network at the destination."
},
"install_before_travel": {
"type": "boolean",
"description": "true when the eSIM can safely be installed before departure (activation_trigger first_connection)."
},
"unused_valid_days": {
"type": "integer",
"description": "Days the eSIM may remain unused after purchase before it expires (supplier value)."
},
"start_date_required": {
"type": "boolean",
"description": "true when a start date must be chosen at checkout."
},
"expires_on": {
"type": "string",
"description": "Stock expiry date (YYYY-MM-DD) when the product itself has one."
},
"hotspot": {
"type": "string",
"description": "Hotspot / tethering rule as the vendor states it, e.g. \"Supported\" or a device limit."
},
"apn": {
"type": "string",
"description": "APN to set when the vendor requires one."
},
"kyc_required": {
"type": "boolean",
"description": "true when the vendor requires real-name registration (ID verification) on arrival before data works."
},
"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": "What TopUp can add without a new eSIM: data (Data Pack), days (Unlimited Flex / Daily Pack), or none."
},
"how": {
"type": "string",
"description": "How the customer tops up."
}
},
"description": "Top-up possibility for this plan."
},
"refund_class": {
"type": "string",
"enum": [
"until_install",
"non_refundable",
"no_cancel"
],
"description": "Vendor refund/cancellation class for this plan."
},
"refund_rule": {
"type": "string",
"description": "The refund class in words - present verbatim."
},
"plan_note": {
"type": "string",
"description": "One-sentence vendor fact to present verbatim when present; overrides the generic type description."
},
"transparency": {
"type": "boolean",
"description": "A per-order Transparency link shows remaining data in near real-time."
},
"price": {
"type": "number",
"description": "Price in currency, read WITH price_basis: the full price of the plan when \"total\", the price of ONE day when \"per_day\". Never a per-GB rate. The price shown is the price paid."
},
"price_basis": {
"type": "string",
"enum": [
"total",
"per_day"
],
"description": "What `price` means."
},
"price_max": {
"type": "number",
"description": "Only on price_basis \"per_day\": the price for the longest duration in days_range, discount applied โ the figure to quote for a full period. Never infer it by multiplying."
},
"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 eSIM-Global.VIP plan by product id: coverage with networks per country, data and speed rules, activation and validity rules, hotspot / APN / registration facts, top-up, refund rule, price with basis, reviews and link โ quoted in the customer's bucket or currency when given.
Input 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"
]
}Output 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": [
"Data Pack",
"Daily Pack",
"Unlimited Flex"
],
"description": "Plan type."
},
"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, with the network operators per country when known.",
"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."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Operator names in that country, as the supplier lists them."
}
}
}
},
"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."
},
"ip_breakout": {
"type": "string",
"description": "Country whose internet connection the customer appears to use (IP breakout), ISO code(s) โ matters for banking apps, streaming and mainland-China access. Vendor fact."
},
"coverage_note": {
"type": "string",
"description": "Coverage caveat to present verbatim, e.g. traffic routed via Hong Kong."
},
"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 (Data Pack). \"per_day\": data_gb is the daily full-speed allowance (Unlimited Flex, Daily Pack)."
},
"data": {
"type": "string",
"description": "Data Pack: total data label, e.g. \"5GB\"."
},
"daily_high_speed": {
"type": "string",
"description": "Unlimited Flex / Daily Pack: daily allowance at full speed, e.g. \"2GB\"; \"unlimited\" = unlimited data every day at full speed (fair-use policy)."
},
"always_on_rate": {
"type": "string",
"description": "Unlimited Flex / Daily Pack: reduced speed after the daily allowance, e.g. \"512 Kbit/s\". Empty when the plan has a speed_cap or is unlimited."
},
"speed_cap": {
"type": "string",
"description": "Present only on plans with a PERMANENT speed cap, e.g. \"10 Mbit/s\". Never call such a plan high-speed."
},
"fair_use": {
"type": "string",
"description": "Fair-use policy text from the supplier, when stated."
},
"network_generation": {
"type": "string",
"description": "Network technology, e.g. \"4G/LTE/5G\". Never an operator name."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Operator names across the plan (deduplicated). Per-country detail is in coverage_countries."
},
"days": {
"type": "integer",
"description": "Validity in days (Data Pack, Daily Pack)."
},
"validity": {
"type": "string",
"description": "Validity label, e.g. \"30 days\"."
},
"days_range": {
"type": "string",
"description": "Unlimited Flex: choosable durations in days, e.g. \"1-30\"."
},
"daily_reset_time": {
"type": "string",
"description": "When the daily allowance resets, as the vendor states it (clock and time zone). Absent = resets 24 h after activation is NOT implied; simply unknown."
},
"activation_trigger": {
"type": "string",
"enum": [
"install",
"first_connection"
],
"description": "\"install\": validity and billing start the moment the eSIM is installed โ install only when ready to use. \"first_connection\": the eSIM can be installed before travel; validity starts on first connection to a network at the destination."
},
"install_before_travel": {
"type": "boolean",
"description": "true when the eSIM can safely be installed before departure (activation_trigger first_connection)."
},
"unused_valid_days": {
"type": "integer",
"description": "Days the eSIM may remain unused after purchase before it expires (supplier value)."
},
"start_date_required": {
"type": "boolean",
"description": "true when a start date must be chosen at checkout."
},
"expires_on": {
"type": "string",
"description": "Stock expiry date (YYYY-MM-DD) when the product itself has one."
},
"hotspot": {
"type": "string",
"description": "Hotspot / tethering rule as the vendor states it, e.g. \"Supported\" or a device limit."
},
"apn": {
"type": "string",
"description": "APN to set when the vendor requires one."
},
"kyc_required": {
"type": "boolean",
"description": "true when the vendor requires real-name registration (ID verification) on arrival before data works."
},
"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": "What TopUp can add without a new eSIM: data (Data Pack), days (Unlimited Flex / Daily Pack), or none."
},
"how": {
"type": "string",
"description": "How the customer tops up."
}
},
"description": "Top-up possibility for this plan."
},
"refund_class": {
"type": "string",
"enum": [
"until_install",
"non_refundable",
"no_cancel"
],
"description": "Vendor refund/cancellation class for this plan."
},
"refund_rule": {
"type": "string",
"description": "The refund class in words - present verbatim."
},
"plan_note": {
"type": "string",
"description": "One-sentence vendor fact to present verbatim when present; overrides the generic type description."
},
"transparency": {
"type": "boolean",
"description": "A per-order Transparency link shows remaining data in near real-time."
},
"price": {
"type": "number",
"description": "Price in currency, read WITH price_basis: the full price of the plan when \"total\", the price of ONE day when \"per_day\". Never a per-GB rate. The price shown is the price paid."
},
"price_basis": {
"type": "string",
"enum": [
"total",
"per_day"
],
"description": "What `price` means."
},
"price_max": {
"type": "number",
"description": "Only on price_basis \"per_day\": the price for the longest duration in days_range, discount applied โ the figure to quote for a full period. Never infer it by multiplying."
},
"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, days, language, bucket, currency)
Hand the customer to the eSIM-Global.VIP 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, with an optional discount code) 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.
Input Schema
{
"type": "object",
"properties": {
"product_id": {
"type": "integer",
"description": "Product id to buy."
},
"days": {
"type": "integer",
"minimum": 1,
"description": "Unlimited Flex only: the duration the customer wants; the returned total_for_days is the checkout total for it."
},
"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"
]
}Output Schema
{
"type": "object",
"properties": {
"product": {
"type": "string"
},
"product_id": {
"type": "integer"
},
"price": {
"type": "number",
"description": "Read WITH price_basis."
},
"price_basis": {
"type": "string",
"enum": [
"total",
"per_day"
]
},
"days_range": {
"type": "string"
},
"price_max": {
"type": "number"
},
"total_for_days": {
"type": "number",
"description": "Unlimited Flex: checkout total for the requested days, discount applied."
},
"days": {
"type": "integer"
},
"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.
Input 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"
]
}Output 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 Data Packs 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": [
"Data Pack",
"Daily Pack",
"Unlimited Flex"
],
"description": "Plan type."
},
"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, with the network operators per country when known.",
"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."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Operator names in that country, as the supplier lists them."
}
}
}
},
"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."
},
"ip_breakout": {
"type": "string",
"description": "Country whose internet connection the customer appears to use (IP breakout), ISO code(s) โ matters for banking apps, streaming and mainland-China access. Vendor fact."
},
"coverage_note": {
"type": "string",
"description": "Coverage caveat to present verbatim, e.g. traffic routed via Hong Kong."
},
"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 (Data Pack). \"per_day\": data_gb is the daily full-speed allowance (Unlimited Flex, Daily Pack)."
},
"data": {
"type": "string",
"description": "Data Pack: total data label, e.g. \"5GB\"."
},
"daily_high_speed": {
"type": "string",
"description": "Unlimited Flex / Daily Pack: daily allowance at full speed, e.g. \"2GB\"; \"unlimited\" = unlimited data every day at full speed (fair-use policy)."
},
"always_on_rate": {
"type": "string",
"description": "Unlimited Flex / Daily Pack: reduced speed after the daily allowance, e.g. \"512 Kbit/s\". Empty when the plan has a speed_cap or is unlimited."
},
"speed_cap": {
"type": "string",
"description": "Present only on plans with a PERMANENT speed cap, e.g. \"10 Mbit/s\". Never call such a plan high-speed."
},
"fair_use": {
"type": "string",
"description": "Fair-use policy text from the supplier, when stated."
},
"network_generation": {
"type": "string",
"description": "Network technology, e.g. \"4G/LTE/5G\". Never an operator name."
},
"networks": {
"type": "array",
"items": {
"type": "string"
},
"description": "Operator names across the plan (deduplicated). Per-country detail is in coverage_countries."
},
"days": {
"type": "integer",
"description": "Validity in days (Data Pack, Daily Pack)."
},
"validity": {
"type": "string",
"description": "Validity label, e.g. \"30 days\"."
},
"days_range": {
"type": "string",
"description": "Unlimited Flex: choosable durations in days, e.g. \"1-30\"."
},
"daily_reset_time": {
"type": "string",
"description": "When the daily allowance resets, as the vendor states it (clock and time zone). Absent = resets 24 h after activation is NOT implied; simply unknown."
},
"activation_trigger": {
"type": "string",
"enum": [
"install",
"first_connection"
],
"description": "\"install\": validity and billing start the moment the eSIM is installed โ install only when ready to use. \"first_connection\": the eSIM can be installed before travel; validity starts on first connection to a network at the destination."
},
"install_before_travel": {
"type": "boolean",
"description": "true when the eSIM can safely be installed before departure (activation_trigger first_connection)."
},
"unused_valid_days": {
"type": "integer",
"description": "Days the eSIM may remain unused after purchase before it expires (supplier value)."
},
"start_date_required": {
"type": "boolean",
"description": "true when a start date must be chosen at checkout."
},
"expires_on": {
"type": "string",
"description": "Stock expiry date (YYYY-MM-DD) when the product itself has one."
},
"hotspot": {
"type": "string",
"description": "Hotspot / tethering rule as the vendor states it, e.g. \"Supported\" or a device limit."
},
"apn": {
"type": "string",
"description": "APN to set when the vendor requires one."
},
"kyc_required": {
"type": "boolean",
"description": "true when the vendor requires real-name registration (ID verification) on arrival before data works."
},
"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": "What TopUp can add without a new eSIM: data (Data Pack), days (Unlimited Flex / Daily Pack), or none."
},
"how": {
"type": "string",
"description": "How the customer tops up."
}
},
"description": "Top-up possibility for this plan."
},
"refund_class": {
"type": "string",
"enum": [
"until_install",
"non_refundable",
"no_cancel"
],
"description": "Vendor refund/cancellation class for this plan."
},
"refund_rule": {
"type": "string",
"description": "The refund class in words - present verbatim."
},
"plan_note": {
"type": "string",
"description": "One-sentence vendor fact to present verbatim when present; overrides the generic type description."
},
"transparency": {
"type": "boolean",
"description": "A per-order Transparency link shows remaining data in near real-time."
},
"price": {
"type": "number",
"description": "Price in currency, read WITH price_basis: the full price of the plan when \"total\", the price of ONE day when \"per_day\". Never a per-GB rate. The price shown is the price paid."
},
"price_basis": {
"type": "string",
"enum": [
"total",
"per_day"
],
"description": "What `price` means."
},
"price_max": {
"type": "number",
"description": "Only on price_basis \"per_day\": the price for the longest duration in days_range, discount applied โ the figure to quote for a full period. Never infer it by multiplying."
},
"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 eSIM-Global.VIP works, in the shop's own words: delivery and installation, device requirements, payment methods, money-back guarantee, top-up, hotspot, support and company details. Use for any "how / when / what if" question that is not about one specific plan.
Input Schema
{
"type": "object",
"properties": {}
}Output Schema
{
"type": "object",
"additionalProperties": true
}Community
Evidence