公開API(/v1)
eSIM検索
GET /v1/esims — 国・期間・データ量でeSIMを検索し、パートナーコード付きの購入URLを取得します。
リクエスト#
GET
/v1/esimscurl "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"])クエリパラメータ#
すべてのパラメータは任意です。
| パラメータ | 型 | 説明 |
|---|---|---|
country | string | 国コード(ISO 3166-1 alpha-2、例: JP) |
days | integer | 有効日数が完全一致する商品 |
minDays | integer | 最短有効日数 |
maxDays | integer | 最長有効日数 |
dataGb | number | 最小データ量(GB) |
unlimited | boolean | true で無制限プランのみ |
sort | string | recommended(おすすめ順・既定)| price(安い順)| data(データ多い順) |
limit | integer | 1–50、既定 10 |
offset | integer | スキップ件数 — limit の倍数に切り捨て |
lang | string | レスポンス言語 ko | en | ja | zh-CN | zh-TW(既定 en) |
フィルター規則#
daysを指定すると minDays・maxDays は無視されます。unlimited=trueの場合 dataGb は無視されます。- 結果にはesimoaが直接販売する商品のみが含まれ、販売終了の商品は除外されます。
レスポンス#
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"
}Esim オブジェクト#
| フィールド | 型 | 説明 |
|---|---|---|
id | string | 商品ID — 詳細取得に使用 |
title | string | 表示名(lang に準拠) |
countryCode / countryName | string | null | 代表国(複数国商品は null) |
coverageCountries | string[] | 利用可能な国コード一覧 |
isMultiCountry | boolean | 複数国対応か |
dataAmount / dataAmountGB | string / number | データ量(表示文字列 / GB数値) |
isUnlimited | boolean | 無制限プランか |
dataType | 'total' | 'daily' | null | 総量型 / 日次型 |
validityDays | integer | 有効日数 |
priceKrw / currency | integer / 'KRW' | 販売価格(ウォン) |
provider / networkType | string | 提供元 / ネットワーク(例: 5G) |
hotspot / hasLocalNumber / isLocalNetwork | boolean | テザリング / 現地番号付き / 現地回線 |
url | string | 購入リンク — パートナーコード(?ref=)付き。そのまま掲載してください。 |
注記
フィールドは追加のみで、名前や意味は変わりません。未知のフィールドは無視するようにパースしてください。
