Developer documentation is currently available in English.

eSIM Otter / Developers

A world of plans.
One connection.

Bring travel connectivity into your app or AI assistant. Search destinations, compare published plans and help travelers get ready.

For AI assistants

Meet your travel tools.

Add https://esimotter.com/mcp as a remote MCP server in a client that supports Streamable HTTP. Choose “OAuth or no authentication” in ChatGPT. Public tools work immediately; account tools prompt you to sign in and consent.

For clients with a JSON server configuration, use this example. Some clients require type: "http"; follow that client’s configuration format.

The endpoint is stateless: ordinary Streamable HTTP tool requests are supported. Long-lived SSE sessions and standalone GET streams are unavailable.

Explore the API contract ↗
{
  "mcpServers": {
    "esim-otter": {
      "url": "https://esimotter.com/mcp"
    }
  }
}
The same tools, your way

REST endpoints & MCP tools

REST · GETWhat it returnsMCP tool
/api/v1/destinationsSearch countries, regional bundles and global destinations.search_destinations
/api/v1/destinations/{slug}Compare current published plans and retail prices.get_destination
/api/v1/tripsFind one plan covering every country in a trip.find_trip_plans
/api/v1/devicesFind exact Apple, Google and Samsung model names.list_devices
/api/v1/compatibilityCheck phone model, purchase region and unlocking.check_phone_compatibility
/api/v1/helpSearch setup, activation and connectivity answers.search_help
Your account, with consent

Connect to ChatGPT.

In ChatGPT’s Plugins page, choose Add → Create MCP App. Use https://esimotter.com/mcp, choose OAuth or no authentication, and use dynamic client registration. Default scopes: account:read purchase:write offline_access.

Account tools: get_my_account, list_my_orders, get_my_order, list_my_esims, get_my_esim_usage and list_my_topups. Disconnect an app any time from your account.

Review before paying

Prepare a purchase.

prepare_purchase takes a published product ID and currency. For refills, also supply your eSIM ID and an eligible top-up product ID. It returns a review link tied to your account that expires after 24 hours.

You sign in, review the plan and final tax, and complete payment on the website. The tool never charges your card or reserves stock.

OAuth API: GET /api/v1/integrations/account for account resources; POST to prepare a purchase.

Try it here

One request. Real results.

Ready

GET /api/v1/compatibility?model=iPhone%2015&region=US&unlocked=yes

Choose an example and run a request.
Prices & availability

Build with current information.

Prices are integers in minor currency units: 500 means $5.00 in USD. Prices exclude tax. Supported currencies: USD. Checkout rechecks prices and availability; an API result does not reserve a plan.

Requests & errors

Keep requests modest.

REST and MCP share an approximate limit of 60 requests per minute per IP at each Cloudflare location. A rate-limited request returns HTTP 429 and Retry-After: 60. Public REST supports cross-origin GET requests without cookies.

Invalid inputs return HTTP 400; missing destinations return 404; temporary failures return 503. REST errors use {"error":"code"}. MCP tool failures use an error tool result.