Docs
Centro sviluppatoriDashboardesimoa.com
    • Introduzione
    • Avvio rapido
    • Autenticazione
    • Overview
    • Elenca eSIM
    • Ottieni un’eSIM
    • Paesi
    • OpenAPI
    • Tracciamento e commissioni
    • Limiti di richieste ed errori
    • Overview
    • Claude
    • ChatGPT
    • Gemini
    • Altri client MCP
    • Overview
    • Autenticazione
    • Prodotti
    • Dettaglio prodotto
    • Paesi
    • Errors & rate limits
  1. Docs
  2. API per partner (B2B)
  3. Prodotti

API per partner (B2B)

Prodotti

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

On this page
  • Request
  • Query parameters
  • Sorting
  • Paginazione
  • Risposta
  • 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#

Tutti i parametri sono facoltativi. I valori fuori intervallo restituiscono 400; i parametri sconosciuti vengono ignorati.

ParametroTipoDescrizione
countrystringCodice paese ISO 3166-1 alpha-2 (es. JP). Altri formati restituiscono 400
qstringParola chiave (max 60 caratteri)
isUnlimitedbooleantrue = solo illimitati, false = escludi illimitati — true | false (accettati anche 1 | 0)
minDays · maxDaysintegerIntervallo di validità in giorni, 1–365
minDataGBnumberDati minimi in GB, 0–1000
hasLocalNumberbooleanInclude un numero di telefono locale — true | false (accettati anche 1 | 0)
isMultiCountrybooleanProdotto multi-paese — true | false (accettati anche 1 | 0)
sortBystringrecommended (predefinito) | price | validity | data
sortOrderstringasc | desc — se omesso, valore predefinito in base a sortBy
pageintegerParte da 1, predefinito 1
limitinteger1–50, predefinito 20

Sorting#

sortBysortOrder predefinitoSignificato
recommendeddescClassifica consigliata di esimoa (include le vendite) — stesso ordine del sito web
priceascPrezzo più basso prima
validityascValidità più breve prima
datadescPrima più dati

Paginazione#

page parte da 1. La risposta restituisce page e limit insieme a total, quindi l’ultima pagina è ceil(total / limit).

Risposta#

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#

CampoTipoDescrizione
idstring'partner_<packageCode>' — lo stesso id prodotto usato su esimoa.com
namestringNome visualizzato nel formato "<area> <data> <N>일" (suffisso coreano dei giorni). Per le altre lingue, crea la tua etichetta dai campi strutturati
countrystringEtichetta dell’area di copertura (i prodotti multi-paese elencano i paesi)
countryCodestring?Codice paese ISO — omesso se non disponibile
coverageCountriesstring[]Codici dei paesi in cui funziona il prodotto
regionstring?Regione — omessa se non disponibile
isMultiCountrybooleanProdotto multi-paese
dataAmountstringEtichetta del catalogo ('10GB', 'Unlimited', '1GB/Day + Unlimited' …)
dataAmountGBnumber?Dati in GB — omesso per i prodotti completamente illimitati
isUnlimitedbooleanPiano illimitato
validityDaysintegerValidità in giorni
priceKRW / currencyinteger / 'KRW'Prezzo al dettaglio esimoa in KRW — nella v1 non c’è un prezzo partner
networkTypestringRete (es. 5G) — '' se sconosciuta
localNetworksstring[]Operatori locali
isLocalNetworkbooleanUsa una rete locale anziché il roaming
fupPolicystring | nullTesto della politica di uso corretto (FUP)
hotspotEnabledboolean | nullTethering consentito — null = sconosciuto
hasLocalNumberbooleanInclude un numero di telefono locale
voiceMinutesinteger | nullMinuti voce — -1 = illimitati, null = non forniti
smsCountinteger | nullNumero di SMS — null = non fornito
supportTopUpboolean | nullRicaricabile — null = sconosciuto
supportsUsimbooleanDisponibile anche come USIM fisica
activationTypestringTipo di attivazione (ad es. 'instant')

Nota

I campi fornitore e costo non fanno mai parte della risposta. I campi vengono solo aggiunti e nomi e significati non cambiano: esegui il parsing ignorando i campi sconosciuti.

Ultimo aggiornamento: 1 ottobre 2026

PreviousAutenticazioneAvantiDettaglio prodotto

On this page

  • Request
  • Query parameters
  • Sorting
  • Paginazione
  • Risposta
  • The PartnerProduct object

APIs and MCP for bringing esimoa eSIMs to your product

Resources

  • Docs
  • API reference
  • API per partner (B2B)
  • MCP server
  • OpenAPI spec

esimoa

  • Home
  • eSIM piani
  • Centro sviluppatori
  • Dashboard
  • Portale partner

Company

  • Chi siamo
  • Collaborazioni
  • Termini di servizio
  • Informativa sulla privacy
  • Politica di consegna e rimborso

Assistenza

  • support@esimoa.com
  • Chat di assistenza

NBase Korea Co., Ltd.

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

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

© 2026 esimoa. Tutti i diritti riservati.