Build on sim.zip

Sell or buy travel eSIMs programmatically. No API key: an order only matters once the buyer pays at its payment_url, so the API is as open as the store. OpenAPI document: /api/openapi.json.

REST (v1)

EndpointWhat it does
GET /api/v1/countriesDestinations on sale, with slugs and plan counts.
GET /api/v1/countries/{slug}A destination's plans: sizes, validity, prices (GBP; EUR and USD cost the same).
POST /api/v1/ordersCreate an order for an email address; returns payment_url for the buyer. Rate limited per IP.
GET /api/v1/orders/{token}Status, and the eSIM activation codes once delivered.

The agent flow

curl -s https://sim.zip/api/v1/countries
curl -s https://sim.zip/api/v1/countries/albania
curl -s -X POST https://sim.zip/api/v1/orders \
  -H 'content-type: application/json' \
  -d '{"country":"albania","plan_id":"<from plans>","email":"buyer@example.com"}'
# → { order: {token, …}, payment_url: "https://sim.zip/pay/<token>" }
# Hand payment_url to the buyer; they pay with card, Apple Pay or Google Pay.
curl -s https://sim.zip/api/v1/orders/<token>   # poll until "delivered"

MCP

Streamable-HTTP MCP server at https://sim.zip/mcp with six tools: list_destinations, get_plans, list_regions, get_region_plans, create_order and order_status. A region (Europe, Asia, …) is its own product whose plans cover many countries; country and region slugs are case-insensitive. Point Claude, ChatGPT or any MCP client at it; agents create the order and give the human the payment link — the human always makes the payment.

Affiliate feeds

Comparison sites read /api/v1/feed/data/packages/ and /api/v1/feed/data/links/ (the esimdb importer shape), with referrer carrying the affiliate.