Docs
Centro para desarrolladoresPanelesimoa.com
    • Introducción
    • Inicio rápido
    • Autenticación
    • Overview
    • Listar eSIM
    • Consigue una eSIM
    • Países
    • OpenAPI
    • Seguimiento y comisiones
    • Límites de solicitudes y errores
    • Overview
    • Claude
    • ChatGPT
    • Gemini
    • Otros clientes MCP
    • Overview
    • Autenticación
    • Productos
    • Detalle del producto
    • Países
    • Errors & rate limits
  1. Docs
  2. API para socios (B2B)
  3. Productos

API para socios (B2B)

Productos

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

On this page
  • Request
  • Query parameters
  • Sorting
  • Paginación
  • Respuesta
  • 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#

Todos los parámetros son opcionales. Los valores fuera de rango devuelven 400; los parámetros desconocidos se ignoran.

ParámetroTipoDescripción
countrystringCódigo de país ISO 3166-1 alfa-2 (p. ej., JP). Otros formatos devuelven 400
qstringPalabra clave (hasta 60 caracteres)
isUnlimitedbooleantrue = solo ilimitados, false = excluir ilimitados — true | false (también se aceptan 1 | 0)
minDays · maxDaysintegerRango de validez en días, 1–365
minDataGBnumberDatos mínimos en GB, 0–1000
hasLocalNumberbooleanIncluye un número de teléfono local — true | false (también se aceptan 1 | 0)
isMultiCountrybooleanProducto multipaís — true | false (también se aceptan 1 | 0)
sortBystringrecommended (predeterminado) | price | validity | data
sortOrderstringasc | desc — si se omite, se usa el valor predeterminado de cada sortBy
pageintegerEmpieza en 1, valor predeterminado 1
limitinteger1–50, por defecto 20

Sorting#

sortBysortOrder predeterminadoSignificado
recommendeddescClasificación recomendada de esimoa (incluye ventas) — mismo orden que el sitio web
priceascPrecio: de menor a mayor
validityascMenor validez primero
datadescMás datos primero

Paginación#

page empieza en 1. La respuesta devuelve page y limit junto con total, así que la última página es ceil(total / limit).

Respuesta#

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#

CampoTipoDescripción
idstring'partner_<packageCode>' — el mismo id de producto que se usa en esimoa.com
namestringNombre visible con el formato "<area> <data> <N>일" (sufijo coreano de días). Para otros idiomas, crea tu propia etiqueta a partir de los campos estructurados
countrystringEtiqueta de zona de cobertura (los productos multipaís indican sus países)
countryCodestring?Código de país ISO: se omite si no está disponible
coverageCountriesstring[]Códigos de los países donde funciona el producto
regionstring?Región: se omite si no está disponible
isMultiCountrybooleanProducto multipaís
dataAmountstringEtiqueta del catálogo ('10GB', 'Unlimited', '1GB/Day + Unlimited' …)
dataAmountGBnumber?Datos en GB — se omite en productos totalmente ilimitados
isUnlimitedbooleanPlan ilimitado
validityDaysintegerValidez en días
priceKRW / currencyinteger / 'KRW'Precio de venta de esimoa en KRW — no hay precio de partner en v1
networkTypestringRed (p. ej., 5G): '' si se desconoce
localNetworksstring[]Operadores locales
isLocalNetworkbooleanUsa una red local en lugar de itinerancia
fupPolicystring | nullTexto de la política de uso razonable (FUP)
hotspotEnabledboolean | nullTethering permitido — null = desconocido
hasLocalNumberbooleanIncluye un número de teléfono local
voiceMinutesinteger | nullMinutos de voz — -1 = ilimitado, null = no incluido
smsCountinteger | nullNúmero de SMS: null = no indicado
supportTopUpboolean | nullAdmite recarga — null = desconocido
supportsUsimbooleanTambién disponible como USIM física
activationTypestringTipo de activación (p. ej., 'instant')

Nota

Los campos de proveedor y coste nunca forman parte de la respuesta. Solo se añaden campos nuevos y sus nombres y significados no cambian; procesa la respuesta ignorando los campos desconocidos.

Última actualización: 1 de octubre de 2026

PreviousAutenticaciónSiguienteDetalle del producto

On this page

  • Request
  • Query parameters
  • Sorting
  • Paginación
  • Respuesta
  • The PartnerProduct object

APIs and MCP for bringing esimoa eSIMs to your product

Resources

  • Docs
  • API reference
  • API para socios (B2B)
  • MCP server
  • OpenAPI spec

esimoa

  • Inicio
  • eSIM planes
  • Centro para desarrolladores
  • Panel
  • Portal de socios

Company

  • Sobre nosotros
  • Colaboraciones
  • Términos del servicio
  • Política de privacidad
  • Política de entrega y reembolsos

Ayuda

  • support@esimoa.com
  • Chat de ayuda

NBase Korea Co., Ltd.

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

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

© 2026 esimoa. Todos los derechos reservados.