esimoa Esims API
The Esims API from esimoa — 2 operation(s) for esims.
The Esims API from esimoa — 2 operation(s) for esims.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/esimoa-com:esimoa-com-esims-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: esimoa Partner Esims API
version: 1.0.0
description: 'Search and compare travel eSIM plans sold by esimoa. Each result includes a purchase link with your partner code; you earn a commission on purchases made through it. Docs: https://www.esimoa.com/en/developers/docs'
servers:
- url: https://api.esimoa.com
security:
- ApiKeyAuth: []
tags:
- name: Esims
paths:
/v1/esims:
get:
operationId: searchEsims
summary: Search and compare eSIM plans
parameters:
- name: country
in: query
schema:
type: string
description: ISO alpha-2 destination, e.g. JP
- name: days
in: query
schema:
type: integer
minimum: 1
description: Exact validity in days
- name: minDays
in: query
schema:
type: integer
minimum: 1
- name: maxDays
in: query
schema:
type: integer
minimum: 1
- name: dataGb
in: query
schema:
type: number
minimum: 0
description: Minimum data in GB
- name: unlimited
in: query
schema:
type: boolean
description: Unlimited-data plans only
- name: countries
in: query
schema:
type: string
description: Comma-separated ISO codes (2-8), e.g. FR,IT,ES — only plans that cover all of them. Overrides country.
- name: maxDataGb
in: query
schema:
type: number
minimum: 0
description: Maximum data in GB
- name: minPriceKrw
in: query
schema:
type: integer
minimum: 0
description: Minimum price in KRW
- name: maxPriceKrw
in: query
schema:
type: integer
minimum: 0
description: Maximum price in KRW
- name: dataType
in: query
schema:
type: string
enum:
- daily
- total
description: daily = data resets every day, total = one allowance for the whole period
- name: localNumber
in: query
schema:
type: boolean
description: true = only plans with a local phone number (calls/SMS)
- name: network
in: query
schema:
type: string
enum:
- local
- roaming
description: local = local carrier network, roaming = roaming network
- name: multiCountry
in: query
schema:
type: boolean
description: true = multi-country plans only, false = single-country plans only
- name: provider
in: query
schema:
type: string
description: Provider code as returned in `provider`
- name: hotspot
in: query
schema:
type: boolean
description: 'Hotspot support. Approximate: checked within the top 50 plans matching the other filters (offset ignored, totalIsApproximate=true).'
- name: fiveG
in: query
schema:
type: boolean
description: 5G network. Approximate, like hotspot.
- name: sort
in: query
schema:
type: string
enum:
- recommended
- price
- data
- price_per_gb
- validity
default: recommended
description: recommended = esimoa default order (unlimited first, then price), price = lowest price first, data = most data first, price_per_gb = lowest price per GB first, validity = longest validity first
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 50
default: 10
- name: offset
in: query
schema:
type: integer
minimum: 0
default: 0
description: Rounded down to a multiple of limit
- name: lang
in: query
required: false
schema:
type: string
enum:
- ko
- en
- ja
- zh-CN
- zh-TW
- es
- fr
- ar
- vi
- th
- id
- it
- de
default: en
description: Language of country names and of the purchase page linked in `url`.
responses:
'200':
description: Matching plans
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
items:
type: array
items:
$ref: '#/components/schemas/Esim'
total:
type: integer
totalIsApproximate:
type: boolean
description: Present (true) when hotspot or fiveG was used
limit:
type: integer
offset:
type: integer
sort:
type: string
'401':
description: Missing or invalid API key
'429':
description: Rate limit exceeded
tags:
- Esims
/v1/esims/{id}:
get:
operationId: getEsim
summary: Get one eSIM plan
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: lang
in: query
required: false
schema:
type: string
enum:
- ko
- en
- ja
- zh-CN
- zh-TW
- es
- fr
- ar
- vi
- th
- id
- it
- de
default: en
description: Language of country names and of the purchase page linked in `url`.
responses:
'200':
description: The plan
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
item:
$ref: '#/components/schemas/Esim'
'404':
description: Not found
tags:
- Esims
components:
schemas:
Esim:
type: object
properties:
id:
type: string
description: Plan id
title:
type: string
description: Human readable summary, e.g. "Japan · 5GB · 7 days"
countryCode:
type:
- string
- 'null'
description: ISO 3166-1 alpha-2 (null for multi-country plans)
countryName:
type:
- string
- 'null'
coverageCountries:
type: array
items:
type: string
isMultiCountry:
type: boolean
dataAmount:
type: string
description: Data as shown to customers, e.g. "5GB" or "1GB/day"
dataAmountGB:
type:
- number
- 'null'
isUnlimited:
type: boolean
dataType:
type:
- string
- 'null'
enum:
- total
- daily
- null
validityDays:
type: integer
priceKrw:
type: integer
description: Price in KRW (tax included)
currency:
type: string
enum:
- KRW
provider:
type: string
networkType:
type:
- string
- 'null'
hotspot:
type:
- boolean
- 'null'
hasLocalNumber:
type: boolean
isLocalNetwork:
type: boolean
url:
type: string
format: uri
description: Purchase link. Carries your partner code — only purchases made through this link earn commission.
required:
- id
- title
- dataAmount
- validityDays
- priceKrw
- currency
- url
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: X-API-Key