The endpoint
| URL | GET https://api.meisimusa.com/mm/products |
|---|---|
| Auth | None. There is no key to request. |
| Rate limit | 30 requests per minute per IP. Responses are CDN-cached for 60 seconds, so polling harder gains you nothing. |
| Filters | ?country=FR · ?region=europe · ?search=japan |
| CORS | Open — call it straight from a browser. |
# Every plan we sell
curl 'https://api.meisimusa.com/mm/products'
# Only plans covering France
curl 'https://api.meisimusa.com/mm/products?country=FR'
# A single plan by id
curl 'https://api.meisimusa.com/mm/products/p3:2:631'
What comes back
A JSON object shaped { ok, count, products[] }. The fields worth knowing:
productId | Stable identifier. Use it to fetch one plan, and as plan_id when provisioning a line through the numbers API. |
|---|---|
retailPrice | What a customer pays, in currencyCode (USD). |
countries | ISO country codes the plan covers. regions carries the regional grouping where one applies. |
providerName | The network the plan runs on. |
productDetails | Array of { name, value } pairs — data allowance, validity in hours, voice and SMS terms, and network detail. |
Reading productDetails
Details are a list rather than fixed keys, because different plan types carry different attributes. Pick out what you need:
const detail = (p, name) =>
(p.productDetails || []).find(d => d.name === name)?.value;
const plans = (await (await fetch(
'https://api.meisimusa.com/mm/products?country=JP'
)).json()).products;
for (const p of plans) {
console.log(
p.productId,
'$' + p.retailPrice,
detail(p, 'PLAN_DATA_LIMIT'),
detail(p, 'PLAN_VALIDITY') + 'h'
);
}
Fair use
There is no key because we would rather you had the data than scraped the storefront for it. The only ask is that you stay inside the rate limit and cache what you can — the catalogue changes on the order of hours, not seconds.
Related
Numbers API — provision a real US carrier line by API, for AI agents and automation. Authenticated, usage-billed.
Dealer API — ordering, wallet and top-ups for authorised resellers. Requires a dealer key.
Want to sell these plans, not just read them?
Dealers get their own pricing, a prepaid wallet and programmatic ordering.