PipedreamHQ / PipedreamHQ/pipedream
[APP] Roamzy — global eSIM billed per MB, agent-native API (USDT/USDC)
- Dominant language
- JavaScript
- Stars
- 11.7k
- Forks
- 5.8k
- Avg merge
- 3d 10h
- Merged PRs (30d)
- 102
Description
**Name of app / service**
Roamzy — a global eSIM for 193 countries billed per megabyte (no packages, no expiry), paid in USDT/USDC. Agent-native: the API works without an account (an anonymous account + API token are minted on request), and the same API backs an MCP server.
**Link to developer documentation**
- API reference (OpenAPI 3): https://roamzy.io/api/v1/openapi.json
- Human docs: https://roamzy.io/api/v1/docs
- Agent integration page: https://roamzy.io/ai-agents
- Auth: Bearer token (`rk_live_…`). Tokens are created in the dashboard, or with no account at all via `POST /api/v1/anon-session` (public). Suggested app auth type: **keys** with a single field `api_key` (Bearer).
**Is lack of support preventing you from moving forward, or do you have a workaround?**
Workaround exists via the generic HTTP Request action, but users have to hand-configure the Bearer header, the pay-currency code lookup and the order → invoice → eSIM polling sequence. A native app makes the connection reusable and exposes the supported values directly in the action form.
**Are there specific actions or triggers you'd like to see for this app?**
1. **Get Catalog** — `GET /api/v1/catalog`: all 193 countries with USD per-MB / per-GB rates (public).
2. **Get Country** — `GET /api/v1/countries/{slug}` (public).
3. **Estimate Cost** — `POST /api/v1/estimate` `{country_slug, mb_estimated}` (public).
4. **List Payment Options** — `GET /api/v1/payment-options`: accepted stablecoin + network codes (public).
5. **Create Order** — `POST /api/v1/orders` `{country_slug, amount_usdt, pay_currency}`: reserves an eSIM and returns a stablecoin invoice `pay_url`.
6. **Get Order** — `GET /api/v1/orders/{id}`: payment / provisioning status.
7. **List eSIMs** / **Get eSIM** — `GET /api/v1/esims`, `GET /api/v1/esims/{id}` (QR payload, LPA string, balance).
8. **Get Account** — `GET /api/v1/me`: limits and effective eSIM cap.
No triggers needed for a first version.
Disclosure: I maintain Roamzy. The components are written and ready (mirroring the `unirateapi` layout); I will open the PR as soon as the app identity exists in the registry, following the required sequencing.
Contributor guide
Research direction
Start by checking the app registry and the existing unirateapi layout, then compare the requested actions with Roamzy's OpenAPI reference and human docs. Verify anonymous and Bearer authentication, payment-option values, and the order-to-invoice-to-eSIM polling flow. Done means the native app identity and all listed actions are represented without triggers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, openapi
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100