Docs
Developer CenterDashboardesimoa.com
    • Introduction
    • Quickstart
    • Authentication
    • Overview
    • List eSIMs
    • Get an eSIM
    • Countries
    • OpenAPI
    • Tracking & commission
    • Rate limits & errors
    • Overview
    • Claude
    • ChatGPT
    • Gemini
    • Other MCP clients
    • Overview
    • Authentication
    • Products
    • Product detail
    • Countries
    • Errors & rate limits
  1. Docs
  2. Public API (/v1)
  3. List eSIMs

Public API (/v1)

List eSIMs

GET /v1/esims — search eSIMs by country, duration and data, and get purchase URLs that carry your partner code.

On this page
  • Request
  • Query parameters
  • Filter rules
  • Response
  • The Esim object

Request#

GET/v1/esims
curl "https://api.esimoa.com/v1/esims?country=JP&days=7&sort=price&limit=3&lang=en" \
  -H "X-API-Key: esk_live_your_key_here"
const res = await fetch(
  'https://api.esimoa.com/v1/esims?country=JP&days=7&sort=price&limit=3&lang=en',
  { headers: { 'X-API-Key': process.env.ESIMOA_API_KEY } },
);
if (!res.ok) throw new Error(`esimoa API ${res.status}`);

const { items, total } = await res.json();
for (const esim of items) {
  console.log(esim.title, esim.priceKrw, esim.url);
}
import os
import requests

res = requests.get(
    "https://api.esimoa.com/v1/esims",
    params={"country": "JP", "days": 7, "sort": "price", "limit": 3, "lang": "en"},
    headers={"X-API-Key": os.environ["ESIMOA_API_KEY"]},
    timeout=10,
)
res.raise_for_status()

for esim in res.json()["items"]:
    print(esim["title"], esim["priceKrw"], esim["url"])

Query parameters#

All parameters are optional.

ParameterTypeDescription
countrystringCountry code (ISO 3166-1 alpha-2, e.g. JP)
daysintegerExact validity in days
minDaysintegerMinimum validity (days)
maxDaysintegerMaximum validity (days)
dataGbnumberMinimum data (GB)
unlimitedbooleantrue = unlimited plans only
sortstringrecommended (default) | price (lowest first) | data (most data first)
limitinteger1–50, default 10
offsetintegerItems to skip — rounded down to a multiple of limit
langstringResponse language: ko | en | ja | zh-CN | zh-TW (default en)

Filter rules#

  • days overrides minDays and maxDays.
  • unlimited=true ignores dataGb.
  • Results include only products sold directly by esimoa; discontinued products are excluded.

Response#

200 OKjson
{
  "success": true,
  "items": [
    {
      "id": "partner_9VKPYQ3JRYVK5797",
      "title": "Japan · 100 MB · 7 days",
      "countryCode": "JP",
      "countryName": "Japan",
      "coverageCountries": ["JP"],
      "isMultiCountry": false,
      "dataAmount": "100 MB",
      "dataAmountGB": 0.1,
      "isUnlimited": false,
      "dataType": "total",
      "validityDays": 7,
      "priceKrw": 1000,
      "currency": "KRW",
      "provider": "TSIM",
      "networkType": "5G",
      "hotspot": true,
      "hasLocalNumber": false,
      "isLocalNetwork": true,
      "url": "https://www.esimoa.com/en/plans/jp/partner_9VKPYQ3JRYVK5797?ref=p_yourcode&utm_source=esimoa_partner"
    }
  ],
  "total": 42,
  "limit": 10,
  "offset": 0,
  "sort": "price"
}

The Esim object#

FieldTypeDescription
idstringProduct ID — use with the detail endpoint
titlestringDisplay name (in lang)
countryCode / countryNamestring | nullPrimary country (null for multi-country plans)
coverageCountriesstring[]Country codes the eSIM works in
isMultiCountrybooleanMulti-country plan
dataAmount / dataAmountGBstring / numberData allowance (label / GB number)
isUnlimitedbooleanUnlimited plan
dataType'total' | 'daily' | nullTotal allowance or daily allowance
validityDaysintegerValidity in days
priceKrw / currencyinteger / 'KRW'Price in KRW
provider / networkTypestringProvider / network (e.g. 5G)
hotspot / hasLocalNumber / isLocalNetworkbooleanTethering / local phone number / local network
urlstringPurchase link carrying your partner code (?ref=). Show it as-is.

Note

Fields are only ever added — names and meanings never change. Parse responses so that unknown fields are ignored.

Last updated: October 1, 2026

PreviousPublic API (/v1)NextGet an eSIM

On this page

  • Request
  • Query parameters
  • Filter rules
  • Response
  • The Esim object

APIs and MCP for bringing esimoa eSIMs to your product

Resources

  • Docs
  • API reference
  • Partner API (B2B)
  • MCP server
  • OpenAPI spec

esimoa

  • Home
  • eSIM plans
  • Developer Center
  • Dashboard
  • Partner portal

Company

  • About Us
  • Partnership
  • Terms of Service
  • Privacy Policy
  • Delivery & Refunds Policy

Support

  • support@esimoa.com
  • Support chat

NBase Korea Co., Ltd.

902, Bldg A, 767 Sinsu-ro, Suji-gu, Yongin-si, Gyeonggi-do (Dongcheon-dong, Bundang Suji U-TOWER)

US Headquarters: NBASE CORP. · Corporate Park, Irvine, CA 92606, USA

© 2026 esimoa. All rights reserved.