Docs
개발자 센터대시보드esimoa.com
    • 소개
    • 빠른 시작
    • 인증
    • 개요
    • eSIM 검색
    • eSIM 상세
    • 판매 국가
    • OpenAPI 스펙
    • 추적 링크와 커미션
    • 요청 한도와 오류
    • 개요
    • Claude
    • ChatGPT
    • Gemini
    • 기타 MCP 클라이언트
    • 개요
    • 인증
    • 상품 검색
    • 상품 상세
    • 판매 국가
    • 오류와 요청 한도
  1. 문서
  2. 파트너 API (B2B)
  3. 상품 검색

파트너 API (B2B)

상품 검색

GET /b2b/v1/products — 국가·키워드·기간·데이터량 등으로 이심모아 상품을 검색해요.

이 페이지 내용
  • 요청
  • 쿼리 파라미터
  • 정렬
  • 페이지 나누기
  • 응답
  • PartnerProduct 객체

요청#

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"]

쿼리 파라미터#

모든 파라미터는 선택이에요. 값이 범위를 벗어나면 400 이고, 알 수 없는 파라미터는 무시돼요.

파라미터타입설명
countrystringISO 3166-1 alpha-2 국가 코드 (예: JP). 다른 형식은 400
qstring키워드 (최대 60자)
isUnlimitedbooleantrue 면 무제한만, false 면 무제한 제외 — true | false (1 | 0 도 가능)
minDays · maxDaysinteger사용 기간(일) 범위, 1–365
minDataGBnumber최소 데이터량(GB), 0–1000
hasLocalNumberboolean현지 전화번호 제공 여부 — true | false (1 | 0 도 가능)
isMultiCountryboolean다국가 상품 여부 — true | false (1 | 0 도 가능)
sortBystringrecommended(기본) | price | validity | data
sortOrderstringasc | desc — 생략하면 정렬별 기본값
pageinteger1부터 시작, 기본 1
limitinteger1–50, 기본 20

정렬#

sortBy기본 sortOrder의미
recommendeddesc이심모아 추천순 (판매량 반영) — 웹과 같은 순서
priceasc가격 낮은 순
validityasc사용 기간 짧은 순
datadesc데이터 많은 순

페이지 나누기#

page 는 1부터 시작해요. 응답에 page·limit·total 이 함께 오니 마지막 페이지는 ceil(total / limit) 로 계산하세요.

응답#

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
}

PartnerProduct 객체#

필드타입설명
idstring'partner_<packageCode>' — 이심모아 웹의 상품 id 와 같아요
namestring"<지역> <데이터> <N>일" 형식의 표시 이름. 다른 언어로 보여 줄 때는 구조화 필드로 직접 만드세요
countrystring적용 지역 표시 문구 (다국가 상품은 국가 나열)
countryCodestring?ISO 국가 코드 — 없으면 생략
coverageCountriesstring[]사용 가능한 국가 코드 목록
regionstring?권역 — 없으면 생략
isMultiCountryboolean다국가 상품 여부
dataAmountstring카탈로그 표시 문자열 ('10GB', 'Unlimited', '1GB/Day + Unlimited' …)
dataAmountGBnumber?GB 숫자 — 완전 무제한이면 생략
isUnlimitedboolean무제한 요금제 여부
validityDaysinteger사용 기간(일)
priceKRW / currencyinteger / 'KRW'이심모아 소비자가 (원화) — v1 에는 파트너가가 없어요
networkTypestring네트워크 (예: 5G) — 모르면 ''
localNetworksstring[]현지 통신사 목록
isLocalNetworkboolean로밍이 아닌 현지망 사용 여부
fupPolicystring | null공정 사용 정책(FUP) 문구
hotspotEnabledboolean | null테더링 가능 여부 — null 은 모름
hasLocalNumberboolean현지 전화번호 제공 여부
voiceMinutesinteger | null통화 분 — -1 은 무제한, null 은 미제공
smsCountinteger | null문자 건수 — null 은 미제공
supportTopUpboolean | null충전 가능 여부 — null 은 모름
supportsUsimboolean실물 USIM 으로도 판매되는지
activationTypestring개통 방식 (예: 'instant')

참고

공급사·원가 필드는 응답에 없어요. 필드는 추가만 되고 이름·의미는 바뀌지 않으니, 모르는 필드는 무시하도록 파싱하세요.

마지막 수정: 2026년 10월 1일

이전인증다음상품 상세

이 페이지 내용

  • 요청
  • 쿼리 파라미터
  • 정렬
  • 페이지 나누기
  • 응답
  • PartnerProduct 객체

이심모아 eSIM을 내 서비스에 연결하는 API와 MCP 문서

리소스

  • 문서
  • API 레퍼런스
  • 파트너 API (B2B)
  • MCP 서버
  • OpenAPI 스펙

esimoa

  • 홈
  • eSIM 요금제
  • 개발자 센터
  • 대시보드
  • 파트너 포털

회사

  • 회사 소개
  • 제휴 문의
  • 이용약관
  • 개인정보처리방침
  • 배송 및 환불 정책

지원

  • support@esimoa.com
  • 고객센터 채팅

엔베이스코리아 주식회사

경기도 용인시 수지구 신수로 767, A동 902호(동천동,분당수지U-TOWER)

미국 본사: NBASE CORP. · Corporate Park, Irvine, CA 92606, USA

© 2026 esimoa. All rights reserved.