Worldcitisim

Developer portal

Build eSIM into your app, agent, or LLM.

Four integration surfaces over the same anonymous REST API. Pick the one that matches where your users already are — Claude, ChatGPT, your own code, or another MCP-capable client. Stripe + Bitcoin checkout, eSIM QR delivered by email within ~30 seconds of payment.

REST API

Anonymous, OpenAPI 3.1

The foundation everything else wraps. ETag-aware catalog, idempotent order creation, Stripe + Bitcoin payment rails.

curl -s https://shop.worldcitisim.com/wp-json/esim/v1/plans | jq '.plans[0]'

MCP server

Claude · Cursor · Windsurf · ChatGPT Dev Mode

Stdio MCP server published to npm. Four tools: search plans, get plan, create order (Stripe or BTC), check order status.

claude mcp add --scope user wcs-esim npx -y @worldcitisim/mcp-esim

Custom GPT

Find + buy eSIM through ChatGPT

Listed in the GPT Store under Productivity → Travel. Anonymous, no API key, the user pays via Stripe link or Bitcoin from the chat.

Just chat: “I'm going to Tokyo for 10 days, what eSIM?”

Claude Skill

worldcitisim-esim plugin

Anthropic plugin format. Pairs with the MCP server above. One-command install in Claude Code; will be discoverable in platform.claude.com/plugins once approved.

claude plugin install worldcitisim-esim

Quick example — create an order

Two HTTP calls and the buyer has a Stripe checkout URL. The eSIM QR arrives at their email within ~30 seconds of payment confirming.

# 1. Search the catalog for a Japan plan
curl -s "https://shop.worldcitisim.com/wp-json/esim/v1/plans" \
  | jq '.plans[] | select(.slug == "japan")'

# 2. Create an order — buyer gets a Stripe payment URL back
curl -sX POST "https://shop.worldcitisim.com/wp-json/esim/v1/orders" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "email": "buyer@example.com",
    "variation_id": 12345,
    "payment_method": "stripe",
    "metadata": { "agent_source": "my-integration" }
  }'

Pass payment_method: "btc" instead to get an on-chain Bitcoin address + sats amount + QR data URI in the response — no redirect, the buyer pays from any on-chain wallet.

Rate limits

Anonymous: 120 catalog reads/hour and 10 order creations/hour per IP. Cloudflare-aware so legitimate users behind shared edge IPs aren't bucketed together.

Idempotency

Every POST /orders takes an Idempotency-Key (header or body). 24-hour replay window — same key always returns the same order.

Versioning

URL-pinned at /esim/v1/*. Additive changes only inside v1 — breaking changes get /v2/. CHANGELOG.md per plugin in the public repo.

Discovery manifests

Crawled by AI agents + directories. All three are CORS-open and cached for 1 hour.

Building something? We want to know.

Drop us a line at hello@worldcitisim.com if you're shipping an integration, a custom GPT, or an agent-driven travel product. We'll prioritise platform feature requests from real integrations + can do affiliate referral tracking via the affiliate program.

Source code lives in the public monorepo at https://github.com/easyname889/worldcitisim-frontend. The MCP server, the Custom GPT config, and the Claude Skill bundle are all in apps/.