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.
- /.well-known/openapi.json
302 → live OpenAPI 3.1
- /.well-known/mcp
MCP manifest (SEP-1960)
- /.well-known/mcp/server-card.json
MCP server card (SEP-1649)
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/.
