For partners and developers

Let's work together

Running a comparison site, a travel agency or a reseller network? Our whole eSIM catalogue is available programmatically: a key-based plans API with final VAT-inclusive prices, built from the same price list as our shop and checkout.

171destinations: countries and regions
513live plans in the API
4currencies (HUF, EUR, RON, RSD), final prices incl. VAT

Who is it for?

We offer four kinds of partnership. Terms are agreed individually with each partner.

Comparison site / API

eSIM comparison site, travel portal or app: our plans and prices, automatically, with your own API key.

API documentation

Affiliates & creators

Blog, social profile, YouTube channel: your own code and link, commission on purchases. This has its own programme and form.

Affiliate programme

Reseller / B2B

Want to offer eSIMs to your own customers (tour operators, corporate fleets, group travel)? By individual agreement.

Apply

Travel agency

Offer mobile data alongside the booking: a link, a code or a group quote, fitted to your booking flow.

Apply

Plans API

A read-only JSON document with every plan that can be bought online: destination, covered countries and networks, data allowance, validity, final price and product page link. It is rebuilt with every release from our shop's price list — the price on the product page and the amount charged at checkout are the same.

Base URL
https://ql1gdzweui.execute-api.eu-central-1.amazonaws.com/v1
Authentication
x-api-key header, one key per partner
Format
JSON (UTF-8), gzip on request
Limits per key
5 requests/s (bursts up to 10) and 1,000 requests per day
Updates
whenever a price or plan changes; polling once a day is enough

Authentication

Every request needs the x-api-key header. We send your key personally once your application is approved — one key per partner, with its own limits. Use the key server-side only; never ship it in browser or mobile app code. If it leaks, tell us: we revoke it and issue a new one.

There is no separate sandbox: the API is read-only, so the live endpoint is safe to try.

Endpoints

Method and pathReturns
GET /v1/plansThe full document: provider, currencies, eSIM fee, destinations, plans.
GET /v1/schemaThe JSON Schema (2020-12) of the response.

No query parameters: one response contains every plan in every currency.

Response fields

Top level

FieldTypeMeaning
apiVersionintegerAlways 1. Breaking changes get a new path (/v2).
updatedAtstring (date-time)When the content last changed (UTC) — not when it was last rebuilt.
dataVersionstringContent fingerprint; same value = nothing to update. It is also the ETag.
schemastringPath of the schema on this API (/v1/schema).
providerobjectName, website, contact e-mail.
currenciesstring[]ISO 4217 codes; every prices object has all of them (HUF, EUR, RON, RSD).
pricesIncludeVatbooleantrue: every price is the final consumer price including VAT.
esimFeeobjectThe one-time eSIM fee per currency (amount), when it applies (appliesTo) and the fee-free period (waived, currently null: none).
planTermsobjectTerms that hold for every plan: when validity starts, activation window, delivery, hotspot, top-ups, refunds.
linkParametersobjectURL parameters the product pages understand (see Links).
destinationsobject[]One entry per destination (country, region or global bundle).
plansobject[]One entry per plan, flat.

destinations[]

FieldTypeMeaning
idstringStable, opaque identifier (our internal slug — don't parse it).
namestringEnglish name.
typestringcountry, region (e.g. Europe) or global.
countriesobject[]Every covered country (see below).
urlstring (uri)The Hungarian product page.
localizedUrlsobjectThe same page in other languages, keyed by language code (hu, en, de…); 8 languages for the 23 most popular destinations.

destinations[].countries[]

FieldTypeMeaning
iso2stringISO 3166-1 alpha-2, upper case.
namestringEnglish country name.
networksstring[]Partner networks in that country.

plans[]

FieldTypeMeaning
idstringStable while the plan exists; a different allowance or validity gives a new id.
destinationIdstringPoints to destinations[].id.
namestringe.g. Turkey 5 GB / 15 days.
countriesstring[]ISO codes covered (same as the destination's).
dataTypestringfixed: dataGb for the whole validity. (daily means a daily allowance — we have no such plans today.)
dataGbnumber | nullData allowance in GB.
dailyDataGbnumber | nullDaily allowance in GB; null for fixed plans.
validityDaysintegerValidity in days, from the first data connection at the destination.
throttlingobject | nullnull: full speed until the data is used up.
pricesobjectFinal price per currency in major units (2.9 = €2.90; HUF has no decimals).
urlstring (uri)Product page with the plan pre-selected (?plan=).

Example

Request

curl -H "x-api-key: $ESIMPONT_API_KEY" -H "Accept-Encoding: gzip" --compressed \
  https://ql1gdzweui.execute-api.eu-central-1.amazonaws.com/v1/plans

Response (shortened to one destination)

{
  "apiVersion": 1,
  "updatedAt": "2026-10-22T16:35:31Z",
  "dataVersion": "0a7c39d7c287ce38",
  "schema": "/v1/schema",
  "provider": {
    "name": "eSIMPont",
    "website": "https://www.esimpont.hu/",
    "contact": "partner@esimpont.hu"
  },
  "currencies": [
    "HUF",
    "EUR",
    "RON",
    "RSD"
  ],
  "pricesIncludeVat": true,
  "esimFee": {
    "amount": {
      "HUF": 490,
      "EUR": 1.36,
      "RON": 6.94,
      "RSD": 166.06
    },
    "appliesTo": "Purchases that need a new eSIM profile: the traveller's first purchase, or a destination that cannot be loaded onto the eSIM they already have. Top-ups onto an eSIMPont eSIM the traveller already has are exempt.",
    "waived": null
  },
  "planTerms": {
    "validityStarts": "first data connection at the destination",
    "activateWithinMonths": 12,
    "delivery": "QR code by e-mail right after payment",
    "hotspot": true,
    "topUps": true,
    "refund": "The 14-day withdrawal right ends when the QR code is delivered (the buyer consents at checkout). If a fault on our side cannot be fixed, the price is refunded."
  },
  "linkParameters": {
    "plan": "pre-selects a plan on the product page, e.g. ?plan=5gb-15d (already in every plan url)",
    "ref": "partner code for attribution, e.g. ?ref=CODE (ask us for one); remembered for 30 days",
    "utm_*": "utm_source / utm_medium / utm_campaign / utm_content are recorded",
    "currency": "fixed by the page language: hu = HUF, en/de/es/fr/sk = EUR, ro = RON, sr = RSD (see destinations[].localizedUrls)"
  },
  "destinations": [
    {
      "id": "torokorszag",
      "name": "Turkey",
      "type": "country",
      "countries": [
        {
          "iso2": "TR",
          "name": "Turkey",
          "networks": [
            "Turk Telekom Turkey",
            "Vodafone Turkey"
          ]
        }
      ],
      "url": "https://www.esimpont.hu/esim-torokorszag.html",
      "localizedUrls": {
        "hu": "https://www.esimpont.hu/esim-torokorszag.html",
        "en": "https://www.esimpont.hu/en/esim-turkey.html",
        "de": "https://www.esimpont.hu/de/esim-tuerkei.html",
        "es": "https://www.esimpont.hu/es/esim-turquia.html",
        "fr": "https://www.esimpont.hu/fr/esim-turquie.html",
        "sk": "https://www.esimpont.hu/sk/esim-turecko.html",
        "ro": "https://www.esimpont.hu/ro/esim-turcia.html",
        "sr": "https://www.esimpont.hu/sr/esim-turska.html"
      }
    }
  ],
  "plans": [
    {
      "id": "torokorszag-s-1gb-7d",
      "destinationId": "torokorszag",
      "name": "Turkey 1 GB / 7 days",
      "countries": [
        "TR"
      ],
      "dataType": "fixed",
      "dataGb": 1,
      "dailyDataGb": null,
      "validityDays": 7,
      "throttling": null,
      "prices": {
        "HUF": 890,
        "EUR": 2.9,
        "RON": 12.9,
        "RSD": 390
      },
      "url": "https://www.esimpont.hu/esim-torokorszag.html?plan=1gb-7d"
    },
    {
      "id": "torokorszag-m-5gb-15d",
      "destinationId": "torokorszag",
      "name": "Turkey 5 GB / 15 days",
      "countries": [
        "TR"
      ],
      "dataType": "fixed",
      "dataGb": 5,
      "dailyDataGb": null,
      "validityDays": 15,
      "throttling": null,
      "prices": {
        "HUF": 1990,
        "EUR": 5.9,
        "RON": 28.9,
        "RSD": 690
      },
      "url": "https://www.esimpont.hu/esim-torokorszag.html?plan=5gb-15d"
    },
    {
      "id": "torokorszag-l-20gb-30d",
      "destinationId": "torokorszag",
      "name": "Turkey 20 GB / 30 days",
      "countries": [
        "TR"
      ],
      "dataType": "fixed",
      "dataGb": 20,
      "dailyDataGb": null,
      "validityDays": 30,
      "throttling": null,
      "prices": {
        "HUF": 5590,
        "EUR": 15.9,
        "RON": 79.9,
        "RSD": 1890
      },
      "url": "https://www.esimpont.hu/esim-torokorszag.html?plan=20gb-30d"
    }
  ]
}

The example is today's real data. The full response has 513 plans and 171 destinations.

ETag / 304

curl -i -H "x-api-key: $ESIMPONT_API_KEY" \
  -H 'If-None-Match: "0a7c39d7c287ce38"' \
  https://ql1gdzweui.execute-api.eu-central-1.amazonaws.com/v1/plans
# HTTP/2 304  (nothing changed since this dataVersion)

What the prices mean

Links and attribution

Example: https://www.esimpont.hu/esim-torokorszag.html?plan=5gb-15d&ref=CODE&utm_source=yoursite&utm_medium=referral

Limits, error codes, caching

CodeWhenWhat to do
200Success.—
304The ETag you sent in If-None-Match is still current.Keep using your copy; there is no body.
403Missing or invalid x-api-key, revoked key, or unknown path.The body says which: {"message": "…"}.
429Too many requests per second (over 5, bursts over 10).Wait for the Retry-After header (1 second).
429Daily quota (1,000 requests) used up.It resets at 00:00 UTC; the body says so.
5xxA temporary error on our side or at AWS.Retry with increasing back-off.

Caching and ETag

Responses carry Cache-Control: private, max-age=3600, an ETag and Last-Modified. Send the last ETag back in If-None-Match: if nothing changed you get 304 Not Modified with no body. With Accept-Encoding: gzip the response is compressed.

We don't offer an availability guarantee (SLA) or a status page; the API runs on AWS API Gateway and Lambda. If something is wrong, write to partner@esimpont.hu.

Versioning and deprecation

Changelog

2026-10-22v1 — first release: GET /v1/plans, GET /v1/schema, per-partner key and limits, ETag/304.

Downloads

Terms of use

By using a key the partner accepts the following. If they are broken, we may revoke the key.

  1. Show the price as the final, VAT-inclusive amount and currency from the response, together with the one-time eSIM fee (€1.36, on the first purchase) — the buyer must not meet an unexpected item at checkout.
  2. Keep the data current: refresh at least daily, and don't show a price older than 24 hours as ours.
  3. Display the data on your own site or service only; don't pass it on to third parties, sell it, or use it to price other providers.
  4. Send buyers to the product page link from the response (url) with your own utm or ref parameter. Checkout happens on eSIMPont; partners never handle payments or card data.
  5. Don't present eSIMPont or its offer misleadingly (e.g. a price, plan or coverage that is not in the response).
  6. Keep the key confidential, use it server-side only, and stay within the limits (5 requests/s, 1,000 per day).

Apply as a partner

Tell us who you are and how you would use the API or the partnership — we reply personally. Affiliate or content creator? Your form is on the affiliate programme page.

Partnership type (required)

Required for comparison sites / API.

Thank you, we've got it!

Your application is with our partnerships team. We'll reply personally to .

Contact

API keys, partner codes, questions or a missing field: partner@esimpont.hu. Operated by SoundCam Productions Kft. (legal notice).

Affiliate programme Legal notice Privacy notice Terms and conditions TikTok Instagram Facebook © 2026 eSIMPont — SoundCam Productions Kft.