eSIMfly API

eSIMfly API as documented publicly: 11 operations. Contract generated from the documentation by API Evangelist (2026-11-07); not the provider's own document.

GitHub OpenAPI

Operations 11

GET /api/v1/business/balance GET /api/v1/business/balance #
GET /api/v1/business/esims GET /api/v1/business/esims #
POST /api/v1/business/esims/cancel POST /api/v1/business/esims/cancel #
GET /api/v1/business/esims/packages Get All Packages #
POST /api/v1/business/esims/send-sms POST /api/v1/business/esims/send-sms #
GET /api/v1/business/orders GET /api/v1/business/orders #
GET /api/v1/business/webhooks Webhooks | eSIMfly Business API #
PUT /api/v1/business/webhooks Webhooks | eSIMfly Business API #
GET /esims Retrieve all purchased eSIMs for your business account. #
GET /esims/packages Get All Packages #
GET /esims/usage/query Query eSIM usage. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/esimfly-net:esimfly-net-api"
All apis
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.

Get an API 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 Specification

esimfly-net-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: eSIMfly API
  version: '2026-11-07'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-07: 11 operation(s) read from 7 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; eSIMfly has published no machine-readable contract that the pipeline
    could find. Engine: local.'
  x-evidence-tiers:
    code-example: 5
    documentation: 6
    pages-with-code: 5
    pages-read: 7
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-07'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://docs.esimfly.net/docs/api/esims
  - https://docs.esimfly.net/docs/api/orders
  - https://docs.esimfly.net/docs/api/balance
  - https://docs.esimfly.net/docs/api/packages
  - https://docs.esimfly.net/docs/api/send-sms
  - https://docs.esimfly.net/docs/api/webhooks
  - https://docs.esimfly.net/docs/api/cancel-esim
servers:
- url: https://esimfly.net
paths:
  /api/v1/business/balance:
    get:
      operationId: get_api_v1_business_balance
      tags:
      - Api
      summary: GET /api/v1/business/balance
      x-source: https://docs.esimfly.net/docs/api/balance
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1BusinessBalanceResponse'
      x-evidence:
        kind: code-example
        language: javascript
        snippet: 'fetch ( ''https://esimfly.net/api/v1/business/balance'' , { headers : { ''RT-AccessCode'' : accessCode , ''RT-RequestID'' :
          requestId , ''RT-Timestamp'' : timestamp , ''RT-Signature'' : signature } } )'
  /api/v1/business/esims:
    get:
      operationId: get_api_v1_business_esims
      tags:
      - Api
      summary: GET /api/v1/business/esims
      x-source: https://docs.esimfly.net/docs/api/esims
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: javascript
        snippet: 'fetch ( ''https://esimfly.net/api/v1/business/esims'' , { headers : generateHMACHeaders ( ) //Your HMAC function } )'
  /api/v1/business/esims/cancel:
    post:
      operationId: post_api_v1_business_esims_cancel
      tags:
      - Api
      summary: POST /api/v1/business/esims/cancel
      x-source: https://docs.esimfly.net/docs/api/cancel-esim
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: javascript
        snippet: 'fetch ( ''https://esimfly.net/api/v1/business/esims/cancel'' , { method : ''POST'' , headers : { ''RT-AccessCode'' : accessCode
          , ''RT-RequestID'' : requestId , ''RT-Timestamp'' : timestamp , ''RT-Signature'' : signature , ''Content-Type'' : ''application/json''
          } , body } )'
  /api/v1/business/esims/packages:
    get:
      operationId: get_api_v1_business_esims_packages
      tags:
      - Api
      summary: Get All Packages
      description: Retrieve available eSIM packages with your pricing.
      x-source: https://docs.esimfly.net/docs/api/packages
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
        description: Page number for pagination (default 1)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: Number of results per page (default 50, max 100)
      - name: type
        in: query
        required: false
        schema:
          type: string
        description: 'Filter by package type: "local", "regional", "global" (enterprise accounts return "enterprise")'
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Search packages by country name or destination
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1BusinessEsimsPackagesResponse'
      x-evidence:
        kind: documentation
  /api/v1/business/esims/send-sms:
    post:
      operationId: post_api_v1_business_esims_send_sms
      tags:
      - Api
      summary: POST /api/v1/business/esims/send-sms
      x-source: https://docs.esimfly.net/docs/api/send-sms
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: javascript
        snippet: 'fetch ( ''https://esimfly.net/api/v1/business/esims/send-sms'' , { method : ''POST'' , headers : { ''RT-AccessCode'' : accessCode
          , ''RT-RequestID'' : requestId , ''RT-Timestamp'' : timestamp , ''RT-Signature'' : signature , ''Content-Type'' : ''application/json''
          } , body } )'
  /api/v1/business/orders:
    get:
      operationId: get_api_v1_business_orders
      tags:
      - Api
      summary: GET /api/v1/business/orders
      x-source: https://docs.esimfly.net/docs/api/orders
      responses:
        '200':
          description: Success (shape read from the example response on the page)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1BusinessOrdersResponse'
      x-evidence:
        kind: code-example
        language: javascript
        snippet: 'fetch ( ''https://esimfly.net/api/v1/business/orders'' , { headers : { ''RT-AccessCode'' : accessCode , ''RT-RequestID'' : requestId
          , ''RT-Timestamp'' : timestamp , ''RT-Signature'' : signature } } )'
  /api/v1/business/webhooks:
    get:
      operationId: get_api_v1_business_webhooks
      tags:
      - Api
      summary: Webhooks | eSIMfly Business API
      description: View current webhook settings and recent deliveries.
      x-source: https://docs.esimfly.net/docs/api/webhooks
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetApiV1BusinessWebhooksResponse'
      x-evidence:
        kind: documentation
    put:
      operationId: put_api_v1_business_webhooks
      tags:
      - Api
      summary: Webhooks | eSIMfly Business API
      description: Configure the eSIMfly webhook (one‑time or rotate secret).
      x-source: https://docs.esimfly.net/docs/api/webhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutApiV1BusinessWebhooksRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutApiV1BusinessWebhooksResponse'
      x-evidence:
        kind: documentation
  /esims:
    get:
      operationId: get_esims
      tags:
      - Esims
      summary: Retrieve all purchased eSIMs for your business account.
      x-source: https://docs.esimfly.net/docs/api/esims
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
        description: Page number for pagination (default 1).
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: Number of results per page (default 20, max 100).
      - name: status
        in: query
        required: false
        schema:
          type: string
        description: 'Filter by status: all|NEW|ACTIVE|EXPIRED|CANCELLED|DEPLETED|DELETED.'
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Search by ICCID, package name or package code.
      - name: include_base64
        in: query
        required: false
        schema:
          type: boolean
        description: Include base64 QR code data (default false).
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEsimsResponse'
      x-evidence:
        kind: documentation
  /esims/packages:
    get:
      operationId: get_esims_packages
      tags:
      - Esims
      summary: Get All Packages
      description: Retrieve available eSIM packages with your pricing (used for sync jobs).
      x-source: https://docs.esimfly.net/docs/api/packages
      parameters:
      - name: page
        in: query
        required: false
        schema:
          type: integer
        description: Page number for pagination (default 1)
      - name: limit
        in: query
        required: false
        schema:
          type: integer
        description: Number of results per page (default 50, max 100)
      - name: type
        in: query
        required: false
        schema:
          type: string
        description: 'Filter by package type: "local", "regional", "global" (enterprise accounts return "enterprise")'
      - name: search
        in: query
        required: false
        schema:
          type: string
        description: Search packages by country name or destination
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEsimsPackagesResponse'
      x-evidence:
        kind: documentation
  /esims/usage/query:
    get:
      operationId: get_esims_usage_query
      tags:
      - Esims
      summary: Query eSIM usage.
      x-source: https://docs.esimfly.net/docs/api/esims
      parameters:
      - name: iccid
        in: query
        required: true
        schema:
          type: string
        description: ICCID of the eSIM to query.
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEsimsUsageQueryResponse'
      x-evidence:
        kind: documentation
components:
  schemas:
    GetApiV1BusinessBalanceResponse:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
        code:
          type: string
    GetApiV1BusinessEsimsPackagesResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Indicates request success
        data:
          type: object
          description: Payload containing packages and pagination
        data.packages:
          type: array
          description: List of Package objects
        data.packages[].package_code:
          type: string
          description: Opaque unique package identifier
        data.packages[].name:
          type: string
          description: Package display name
        data.packages[].region:
          type: string
          description: Region or country name
        data.packages[].type:
          type: string
          description: '"local"|"regional"|"global"|"enterprise"'
        data.packages[].data_amount_gb:
          type: number
          description: Data allowance in GB
        data.packages[].validity_days:
          type: integer
          description: Validity period in days
        data.packages[].cost:
          type: number
          description: Your cost price in the account currency
        data.packages[].currency:
          type: string
          description: Currency code (USD, IQD, EUR)
        data.packages[].features:
          type: object
          description: Package features
        data.packages[].features.voice_minutes:
          type: integer
          description: Voice minutes included
        data.packages[].features.sms_count:
          type: integer
          description: SMS count included
        data.packages[].features.is_rechargeable:
          type: boolean
          description: Whether package can be recharged
        data.packages[].is_unlimited:
          type: boolean
          description: Unlimited data flag
        data.packages[].has_voice:
          type: boolean
          description: Has voice minutes included
        data.packages[].has_sms:
          type: boolean
          description: Has SMS included
        data.packages[].countries:
          type: array
          description: ISO country codes covered (optional)
        data.packages[].locationNetworkList:
          type: array
          description: Detailed network coverage by location
        data.packages[].networks:
          type: array
          description: Raw per-network coverage rows (optional)
        data.pagination:
          type: object
          description: Pagination info
        data.pagination.page:
          type: integer
          description: Current page
        data.pagination.limit:
          type: integer
          description: Page size
        data.pagination.total:
          type: integer
          description: Total number of packages
        data.pagination.total_pages:
          type: integer
          description: Total pages available
    GetApiV1BusinessOrdersResponse:
      type: object
      properties:
        success:
          type: boolean
        error:
          type: string
        code:
          type: string
    GetApiV1BusinessWebhooksResponse:
      type: object
      properties:
        success:
          type: boolean
        webhook:
          type: object
          description: Current webhook settings
        available_events:
          type: array
          description: List of events that can be subscribed
        recent_deliveries:
          type: array
          description: Recent webhook delivery attempts
    PutApiV1BusinessWebhooksRequest:
      type: object
      properties:
        webhook_url:
          type: string
          description: URL to receive webhook events
        events:
          type: array
          description: List of event names to subscribe to
      required:
      - webhook_url
      - events
    PutApiV1BusinessWebhooksResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
        webhook:
          type: object
          description: Webhook configuration returned
        note:
          type: string
    GetEsimsResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Indicates request success.
        data:
          type: object
          description: Contains eSIM list and pagination.
    GetEsimsPackagesResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Indicates request success
        data:
          type: object
          description: Payload containing packages and pagination
        data.packages:
          type: array
          description: List of Package objects
        data.packages[].package_code:
          type: string
          description: Opaque unique package identifier
        data.packages[].name:
          type: string
          description: Package display name
        data.packages[].region:
          type: string
          description: Region or country name
        data.packages[].type:
          type: string
          description: '"local"|"regional"|"global"|"enterprise"'
        data.packages[].data_amount_gb:
          type: number
          description: Data allowance in GB
        data.packages[].validity_days:
          type: integer
          description: Validity period in days
        data.packages[].cost:
          type: number
          description: Your cost price in the account currency
        data.packages[].currency:
          type: string
          description: Currency code (USD, IQD, EUR)
        data.packages[].features:
          type: object
          description: Package features
        data.packages[].features.voice_minutes:
          type: integer
          description: Voice minutes included
        data.packages[].features.sms_count:
          type: integer
          description: SMS count included
        data.packages[].features.is_rechargeable:
          type: boolean
          description: Whether package can be recharged
        data.packages[].is_unlimited:
          type: boolean
          description: Unlimited data flag
        data.packages[].has_voice:
          type: boolean
          description: Has voice minutes included
        data.packages[].has_sms:
          type: boolean
          description: Has SMS included
        data.packages[].countries:
          type: array
          description: ISO country codes covered (optional)
        data.packages[].locationNetworkList:
          type: array
          description: Detailed network coverage by location
        data.packages[].networks:
          type: array
          description: Raw per-network coverage rows (optional)
        data.pagination:
          type: object
          description: Pagination info
        data.pagination.page:
          type: integer
          description: Current page
        data.pagination.limit:
          type: integer
          description: Page size
        data.pagination.total:
          type: integer
          description: Total number of packages
        data.pagination.total_pages:
          type: integer
          description: Total pages available
    GetEsimsUsageQueryResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Indicates request success.
        data:
          type: object
          description: Usage details for the requested eSIM.
tags:
- name: Api
- name: Esims