PipedreamHQ / PipedreamHQ/pipedream

[APP] Roamzy — global eSIM billed per MB, agent-native API (USDT/USDC)

Open
#21,919 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.