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

A
Description quality
90%
Schema completeness
84%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'get_shop_facts' description lacks action verbin get_shop_facts

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~6,907Tokens (tool definitions)
~16.6 KBTypical response size
Significant attention impact (5.40% of 128k context)

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-http

What it can do

Tool inventory

Tools (5)

๐ŸŸข Read-only๐ŸŸก Write๐Ÿ”ด Deleteโšช Unknown
๐ŸŸข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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded3 tools
verifiedversion not recorded3 tools