Öffentliche API (/v1)
eSIMs auflisten
GET /v1/esims — search eSIMs by country, duration and data, and get purchase URLs that carry your partner code.
Request#
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"])Query parameters#
Alle Parameter sind optional.
| Parameter | Typ | Beschreibung |
|---|---|---|
country | string | Ländercode (ISO 3166-1 alpha-2, z. B. JP) |
days | integer | Genaue Gültigkeit in Tagen |
minDays | integer | Mindestgültigkeit (Tage) |
maxDays | integer | Maximale Gültigkeit (Tage) |
dataGb | number | Mindestdatenvolumen (GB) |
unlimited | boolean | true = nur unbegrenzte Tarife |
countries | string | Reise in mehrere Länder — 2–8 kommagetrennte Ländercodes (z. B. FR,IT,ES). Nur Tarife, die in allen funktionieren |
maxDataGb | number | Maximales Datenvolumen (GB) |
minPriceKrw / maxPriceKrw | integer | Preisspanne (KRW) |
dataType | string | daily (Volumen wird täglich zurückgesetzt) | total (ein Volumen für den gesamten Zeitraum) |
localNumber | boolean | true = nur Tarife mit lokaler Telefonnummer (Anrufe/SMS) |
network | string | local (Netz eines lokalen Anbieters) | roaming (Roaming-Netz) |
multiCountry | boolean | true = nur Mehrländertarife, false = nur Tarife für ein Land |
provider | string | Anbietercode — wie in provider zurückgegeben |
hotspot / fiveG | boolean | Tethering-Unterstützung / 5G-Netz (ungefähr – siehe Regeln unten) |
sort | string | recommended (Standard) | price (günstigste zuerst) | data (meiste Daten zuerst) | price_per_gb (günstigster GB-Preis zuerst) | validity (längste Laufzeit zuerst) |
limit | integer | 1–50, Standard 10 |
offset | integer | Zu überspringende Einträge – auf ein Vielfaches von limit abgerundet |
lang | string | Antwortsprache: ko | en | ja | zh-CN | zh-TW (Standard: en) |
Filter rules#
daysüberschreibt minDays und maxDays.unlimited=trueignoriert dataGb.countriesüberschreibt country.hotspot·fiveGwerden innerhalb der ersten 50 Tarife geprüft, die zu den anderen Filtern passen. offset wird ignoriert, und die Antwort enthält totalIsApproximate: true.- Boolesche Werte akzeptieren nur true, false, 1 oder 0; alles andere ergibt 400.
- Die Ergebnisse enthalten nur direkt von esimoa verkaufte Produkte; eingestellte Produkte sind ausgeschlossen.
Antwort#
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#
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Produkt-ID – für den Detail-Endpunkt |
title | string | Anzeigename (in lang) |
countryCode / countryName | string | null | Hauptland (null bei Mehrländertarifen) |
coverageCountries | string[] | Ländercodes, in denen die eSIM funktioniert |
isMultiCountry | boolean | Tarif für mehrere Länder |
dataAmount / dataAmountGB | string / number | Datenvolumen (Label / GB-Zahl) |
isUnlimited | boolean | Unbegrenzter Tarif |
dataType | 'total' | 'daily' | null | Gesamtvolumen oder Tagesvolumen |
validityDays | integer | Gültigkeit in Tagen |
priceKrw / currency | integer / 'KRW' | Preis in KRW |
provider / networkType | string | Anbieter / Netz (z. B. 5G) |
hotspot / hasLocalNumber / isLocalNetwork | boolean | Tethering / lokale Telefonnummer / lokales Netz |
url | string | Kauflink mit deinem Partnercode (?ref=). Unverändert anzeigen. |
Hinweis
Felder werden nur hinzugefügt – Namen und Bedeutungen ändern sich nie. Verarbeite Antworten so, dass unbekannte Felder ignoriert werden.
