Docs
EntwicklerbereichDashboardesimoa.com
    • Einführung
    • Schnellstart
    • Authentifizierung
    • Overview
    • eSIMs auflisten
    • eSIM holen
    • Länder
    • OpenAPI
    • Tracking & Provision
    • Ratenlimits & Fehler
    • Overview
    • Claude
    • ChatGPT
    • Gemini
    • Andere MCP-Clients
    • Overview
    • Authentifizierung
    • Produkte
    • Produktdetails
    • Länder
    • Errors & rate limits
  1. Docs
  2. Partner-API (B2B)
  3. Produkte

Partner-API (B2B)

Produkte

GET /b2b/v1/products — search esimoa products by country, keyword, duration, data and more.

On this page
  • Request
  • Query parameters
  • Sorting
  • Seitennavigation
  • Antwort
  • The PartnerProduct object

Request#

GET/b2b/v1/products
curl "https://api.esimoa.com/b2b/v1/products?country=JP&isUnlimited=true&minDays=5&sortBy=price&limit=20" \
  -H "X-API-Key: $ESIMOA_PARTNER_KEY"
const params = new URLSearchParams({
  country: 'JP',
  isUnlimited: 'true',
  minDays: '5',
  sortBy: 'price',
  limit: '20',
  page: '1',
});
const res = await fetch(`https://api.esimoa.com/b2b/v1/products?${params}`, {
  headers: { 'X-API-Key': process.env.ESIMOA_PARTNER_KEY },
});
const body = await res.json();
if (!res.ok) throw new Error(`${body.code}: ${body.message}`);

const { data: products, total, page, limit } = body;
import os
import requests

res = requests.get(
    "https://api.esimoa.com/b2b/v1/products",
    params={"country": "JP", "isUnlimited": "true", "minDays": 5, "sortBy": "price", "limit": 20, "page": 1},
    headers={"X-API-Key": os.environ["ESIMOA_PARTNER_KEY"]},
    timeout=10,
)
body = res.json()
if not res.ok:
    raise RuntimeError(f"{body['code']}: {body['message']}")

products = body["data"]

Query parameters#

Alle Parameter sind optional. Werte außerhalb des Bereichs liefern 400; unbekannte Parameter werden ignoriert.

ParameterTypBeschreibung
countrystringLändercode nach ISO 3166-1 Alpha-2 (z. B. JP). Andere Formate liefern 400
qstringSuchbegriff (bis zu 60 Zeichen)
isUnlimitedbooleantrue = nur unbegrenzt, false = unbegrenzte ausschließen — true | false (1 | 0 werden auch akzeptiert)
minDays · maxDaysintegerGültigkeitsbereich in Tagen, 1–365
minDataGBnumberMindestdatenvolumen in GB, 0–1000
hasLocalNumberbooleanInklusive lokaler Telefonnummer –true | false (1 | 0 werden auch akzeptiert)
isMultiCountrybooleanProdukt für mehrere Länder –true | false (1 | 0 werden auch akzeptiert)
sortBystringrecommended (Standard) | price | validity | data
sortOrderstringasc | desc — ohne Angabe gilt der Standard je sortBy
pageintegerBeginnt bei 1, Standard 1
limitinteger1–50, Standard 20

Sorting#

sortByStandard-sortOrderBedeutung
recommendeddescVon esimoa empfohlene Rangfolge (inkl. Verkäufe) — gleiche Reihenfolge wie auf der Website
priceascGünstigste zuerst
validityascKürzeste Gültigkeit zuerst
datadescMeiste Daten zuerst

Seitennavigation#

page beginnt bei 1. Die Antwort gibt page und limit zusammen mit total zurück, die letzte Seite ist also ceil(total / limit).

Antwort#

200 OKjson
{
  "success": true,
  "data": [
    {
      "id": "partner_9VKPYQ3JRYVK5797",
      "name": "Japan Unlimited 5일",
      "country": "Japan",
      "countryCode": "JP",
      "coverageCountries": ["JP"],
      "isMultiCountry": false,
      "dataAmount": "Unlimited",
      "isUnlimited": true,
      "validityDays": 5,
      "priceKRW": 12000,
      "currency": "KRW",
      "networkType": "5G",
      "localNetworks": ["SoftBank"],
      "isLocalNetwork": true,
      "fupPolicy": null,
      "hotspotEnabled": true,
      "hasLocalNumber": false,
      "voiceMinutes": null,
      "smsCount": null,
      "supportTopUp": false,
      "supportsUsim": false,
      "activationType": "instant"
    }
  ],
  "total": 128,
  "page": 1,
  "limit": 20
}

The PartnerProduct object#

FeldTypBeschreibung
idstring'partner_<packageCode>' — dieselbe Produkt-ID wie auf esimoa.com
namestringAnzeigename im Format "<area> <data> <N>일" (koreanisches Tagessuffix). Für andere Sprachen erstelle dein eigenes Label aus den strukturierten Feldern
countrystringLabel für das Abdeckungsgebiet (Mehrländerprodukte listen ihre Länder auf)
countryCodestring?ISO-Ländercode – entfällt, wenn nicht verfügbar
coverageCountriesstring[]Ländercodes, in denen das Produkt funktioniert
regionstring?Region – entfällt, wenn nicht verfügbar
isMultiCountrybooleanProdukt für mehrere Länder
dataAmountstringKatalog-Label ('10GB', 'Unlimited', '1GB/Day + Unlimited' …)
dataAmountGBnumber?Daten in GB — entfällt bei vollständig unbegrenzten Produkten
isUnlimitedbooleanUnbegrenzter Tarif
validityDaysintegerGültigkeit in Tagen
priceKRW / currencyinteger / 'KRW'esimoa-Verkaufspreis in KRW — in v1 gibt es keinen Partnerpreis
networkTypestringNetz (z. B. 5G) – '' wenn unbekannt
localNetworksstring[]Lokale Anbieter
isLocalNetworkbooleanNutzt ein lokales Netz statt Roaming
fupPolicystring | nullText der Fair-Use-Richtlinie (FUP)
hotspotEnabledboolean | nullTethering erlaubt — null = unbekannt
hasLocalNumberbooleanInklusive lokaler Telefonnummer
voiceMinutesinteger | nullSprachminuten — -1 = unbegrenzt, null = nicht angegeben
smsCountinteger | nullSMS-Anzahl – null = nicht angegeben
supportTopUpboolean | nullAufladbar — null = unbekannt
supportsUsimbooleanAuch als physische USIM erhältlich
activationTypestringAktivierungsart (z. B. 'instant')

Hinweis

Lieferanten- und Kostenfelder sind nie Teil der Antwort. Felder kommen nur hinzu, Namen und Bedeutungen ändern sich nicht – parse so, dass unbekannte Felder ignoriert werden.

Zuletzt aktualisiert: 1. Oktober 2026

PreviousAuthentifizierungWeiterProduktdetails

On this page

  • Request
  • Query parameters
  • Sorting
  • Seitennavigation
  • Antwort
  • The PartnerProduct object

APIs and MCP for bringing esimoa eSIMs to your product

Resources

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

esimoa

  • Startseite
  • eSIM Tarife
  • Entwicklerbereich
  • Dashboard
  • Partnerportal

Company

  • Über uns
  • Partnerschaft
  • Nutzungsbedingungen
  • Datenschutzerklärung
  • Liefer- und Erstattungsbedingungen

Hilfe

  • 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-Hauptsitz: NBASE CORP. · Corporate Park, Irvine, CA 92606, USA

© 2026 esimoa. Alle Rechte vorbehalten.