Godwit SIM for AI agents
Buy a prepaid travel data eSIM for a traveler in three steps, by the JSON API or MCP. No account, no sign-up, no API key.
- API: https://api.godwitsim.com
- MCP: https://api.godwitsim.com/mcp
- Payment: Stripe Checkout, card or Link
- Order access: order ID + order secret (osk_...), optional buyer key (agsk_...)
- Plans and prices: https://godwitsim.com/plans.md
- Markdown: add .md to any page URL, or send
Accept: text/markdown
Find a plan, pay, deliver
- Find a plan.
GET https://api.godwitsim.com/plans?country=JP&market=UKneeds no key.marketis AU (AUD), UK (GBP) or US (USD, the default). Or read https://godwitsim.com/plans.md. Pick a plan with at least as many days as the trip and enough data. - Pay.
POST https://api.godwitsim.com/checkoutwith{"planId":"<planId>","market":"UK"}and no key, or your buyer key. Send anIdempotency-Keyheader (a random string of 22 or more characters) so a retry returns the same order. SaveorderSecret(osk_...) and, on your first order,buyerKey(agsk_...): each is shown once. OpencheckoutUrlin a browser and pay by card or Link on Stripe Checkout. - Deliver. Poll
GET https://api.godwitsim.com/orders/<orderId>withAuthorization: Bearer <orderSecret>every few seconds untilstatusisdelivered, then forwardtravelerMessageto the traveler as is. OrPOST https://api.godwitsim.com/orders/<orderId>/claimwith{"orderSecret":"<osk_...>","phone":"<E.164>","channel":"sms"}: Godwit texts the install details to the traveler and gives them text support for that eSIM.
Routes and tools
| Method | Path or tool | Purpose |
|---|---|---|
| GET | /plans?country&market | Plans for a destination. No key. |
| POST | /checkout | Create an order. Body { planId, market?, currency?, billingState?, device?, agentHint?, idempotencyKey? }, or the Idempotency-Key header. Auth: optional Bearer buyerKey. |
| GET | /orders/{orderId} | Get an order. Auth: optional Bearer orderSecret or buyerKey. |
| GET | /orders | List the buyer's orders. Auth: Bearer buyerKey. |
| POST | /orders/{orderId}/claim | Attach the traveler's phone to an eSIM order. Body { orderSecret, phone, channel }. At most 3 phones per order. |
| POST | /orders/{orderId}/topup | Pay for more data. Body { packageId }. Auth: Bearer orderSecret or buyerKey. |
| POST | /orders/{orderId}/refund | Ask for a refund. Body { reason, notes? }. Auth: Bearer orderSecret or buyerKey. |
| PUT, GET, DELETE | /webhook | One low-data callback per buyer key. Auth: Bearer buyerKey. |
| MCP tool | searchDestinations | Find a destination by name or code. Key: none. |
| MCP tool | listPlans | Plans for a destination, priced for a market. Key: none. |
| MCP tool | getPlan | One plan and its price. Key: none. |
| MCP tool | listRecommendations | The cheapest plan per country that lasts the stay with enough data. Key: none. |
| MCP tool | createOrder | Create an order. Returns checkoutUrl, orderSecret once, and buyerKey once on the first order without one. Pass idempotencyKey to make retries safe. Key: optional buyerKey. |
| MCP tool | getOrder | Status only without a key. With one: the eSIM and travelerMessage. Key: optional orderSecret or buyerKey. |
| MCP tool | listOrders | Every order the buyer key placed. Key: buyerKey. |
| MCP tool | getUsage | Data left on a delivered eSIM. Key: orderSecret or buyerKey. |
| MCP tool | listTopupPackages | Top-ups the eSIM can take. Key: orderSecret or buyerKey. |
| MCP tool | createTopup | Pay for more data on the same eSIM. Key: orderSecret or buyerKey. |
| MCP tool | claimOrder | Attach the traveler's phone to an eSIM order and text them the install details. At most 3 phones per order. Key: orderSecret. |
| MCP tool | requestRefund | Ask for a refund under the refund policy. Key: orderSecret or buyerKey. |
Order IDs and keys
Keys: every agent order has an ID and an order secret (osk_...). The first order without a buyer key also returns a buyer key (agsk_...). Both are returned once and cannot be recovered. Without a key, GET /orders/{id} returns status only. With the order secret, or the buyer key that bought it, it returns the eSIM, usage, top-up options and travelerMessage. A wrong key gets 401, never a status-only answer. The buyer key also lists orders (GET /orders) and manages a low-data callback (/webhook). There are no accounts or passwords. Never put a key in the traveler message.
Setup and rules
- MCP config:
{"mcpServers":{"godwit-sim":{"url":"https://api.godwitsim.com/mcp"}}}. MCP sends no headers, so passorderSecretandbuyerKeyas tool arguments. - Forward
travelerMessage(under 600 characters) as is. Never rewrite the install link or the codes. - The phone must be carrier-unlocked and support eSIM. One purchase is one eSIM for one phone.
- The eSIM is data only. It has no phone number and cannot make calls, send texts or reach emergency numbers. The traveler keeps their usual SIM for those.
- Keep the eSIM switched off until arrival. Validity starts when it first connects to a network.
- Retry
POST /checkoutwith the sameIdempotency-Key(idempotencyKeyin MCP), never without it. Within 24 hours a retry returns the first response with 200 andIdempotent-Replayed: true, keys included. Without a buyer key the key must be 22 or more random letters, digits,-or_. - Poll an order every few seconds, not faster: order reads are limited to 60 a minute per key and per address.
- Only eSIM orders can be claimed, not top-ups. A claim works for Australian (+61), UK (+44) and US or Canadian (+1) numbers, and an order can move to at most 3 phones. After a claim, the traveler can text Godwit for help, resends and refunds.
- A refund of an order whose eSIM is still being issued gets 409
order_provisioning: retry in a minute. - A low-data callback (
PUT /webhook) carries aneventId. Drop aneventIdyou have seen, and reject a signature timestamp more than 5 minutes off. - If the eSIM never installed or never connected, the buyer gets a full refund. The rest is in the refund policy.
Buying by text instead
Text or call +44 7886 075616 (United Kingdom) or +61 420 114 041 (Australia). Use the traveler's own phone, or ask the traveler to send the message. Godwit SIM's AI assistant offers plans, texts a Stripe Checkout link, and texts the eSIM to the same number once paid. On a call, it texts the links to the number that called. Reply HUMAN to reach a person, STOP to opt out.