Partners

Affiliate program

Promote eSimHero to travelers and creators. Clear terms, fair attribution, and tools to integrate plans and pricing.

Straightforward, published terms
Predictable first-touch rules
Dedicated partner support

Program at a glance

These are the pillars of how we work with affiliates today.

10% commission on net sales

Earn on completed orders after discounts. Taxes and fees may be excluded depending on region; exact terms are in your partner agreement.

30-day cookie window

Attribution lasts 30 days from your referral link click, so you get credit for shoppers who return within that window.

First-touch attribution

The first qualifying referral receives commission when the sale completes—no confusing last-click overrides.

API for plans, pricing & data

Use our affiliate catalogue API to pull destinations, plans, and live retail pricing for your site, apps, or internal tools.

Affiliate API

Two read-only JSON endpoints for your site, app or comparison table. Every plan and link comes back ready to publish, with your referral tag attached.

Authentication

Your API key goes in the URL path. Keys are issued per partner and sent in your onboarding email - keep them server-side and don't ship them in client-side code.

cURL
curl "https://esimhero.com/api/affiliate/catalogue/esh_3f9c1a7e2b8d4f6a0c5e9b2d7a4f1c83?utm=true" \
  -H "Accept: application/json"
Caching
Responses are cached for 5 minutes (Cache-Control: public, max-age=300). Pricing and coverage refresh automatically.
Errors
An unknown or deactivated key returns 401 with this JSON body: {"error": "Invalid API key"}
GET/api/affiliate/catalogue/{apiKey}

Returns every active retail plan with pricing in all supported currencies (USD, EUR, GBP), network coverage per country, and a ready-to-use checkout URL.

Query parameters

utmbooleanSet to true to append your referral tag to every purchase URL, so clicks are attributed to you: ?utm_source=your-slug

Response schema

slugstringStable plan identifier.
namestringHuman-readable plan name (destination, data, validity).
dataobjectData allowance as bytes, a display string and an unlimited flag.
validityobjectValidity as days, unit and a formatted display string.
pricesarrayOne entry per currency with amount, currency and symbol.
speedstringNetwork speed label, e.g. 5G or LTE.
typestringPlan type, e.g. data.
categorystringstandard, or unlimited for day passes with a daily high-speed cap.
popularbooleanWhether we highlight this plan on the destination page.
coverageobjectCoverage type (local, regional or global) plus every covered country and its networks.
purchase_urlstringDirect checkout link, including your utm_source when utm=true.

Example response

200 · application/json
[
  {
    "slug": "france-5gb-30-days",
    "name": "France 5 GB 30 days",
    "data": {
      "bytes": 5368709120,
      "display": "5 GB",
      "unlimited": false
    },
    "validity": {
      "days": 30,
      "unit": "DAY",
      "display": "30 days"
    },
    "prices": [
      { "amount": 12.99, "currency": "USD", "symbol": "$" },
      { "amount": 11.99, "currency": "EUR", "symbol": "€" },
      { "amount": 10.49, "currency": "GBP", "symbol": "£" }
    ],
    "speed": "5G",
    "type": "data",
    "category": "standard",
    "popular": true,
    "coverage": {
      "type": "local",
      "countries": [
        {
          "name": "France",
          "iso": "FR",
          "networks": [
            { "name": "Orange", "type": "5G" }
          ]
        }
      ]
    },
    "purchase_url": "https://esimhero.com/france-esim/france-5gb-30-days/checkout?utm_source=yourbrand"
  }
]
GET/api/affiliate/links/{apiKey}

Returns one link per destination we sell - countries and regions - with the ISO codes each link should be shown for. Built for comparison sites that place destination links by visitor location.

Response schema

namestringCTA text, max 30 characters.
linkstringDestination page URL.
type"web"Platform type of the destination. Always web.
targetsstring[]ISO country codes this link should be shown for. Regional links list every member country.

Example response

200 · application/json
[
  {
    "name": "France eSIM",
    "link": "https://esimhero.com/france-esim?utm_source=yourbrand",
    "type": "web",
    "targets": ["FR"]
  },
  {
    "name": "Europe eSIM",
    "link": "https://esimhero.com/europe-esim?utm_source=yourbrand",
    "type": "web",
    "targets": ["FR", "DE", "ES", "IT", "PT"]
  }
]

Apply now

Tell us where you'll promote us and the discount code you want. We'll get you set up and email your API key.

3-20 characters: letters, numbers and hyphens. Travellers enter this at checkout and it credits your account.

By joining, you agree to our Affiliate Terms & Conditions