Features How It Works FAQ Login Join Now

Affiliate Integration Docs

Connect your platform with Tourist eSIM feeds in minutes. Use the endpoints below to fetch plans and landing links, append your own affiliate code, and optionally target specific languages.

0) Host & Access
  • Use main website host only: https://touristesim.net/feed/...
  • No auth required: feeds are public GET endpoints.
  • Format: JSON response array (application/json).
1) Endpoints
  • Plans feed: GET /esim-affiliates.json
  • Links feed: GET /esim-affiliates-links.json
2) Query Parameters
Parameter Applies To Description Example
ref Both endpoints Your affiliate identifier. Returned URLs include your tracking query ?ref=.... ?ref=AFF123
lang Both endpoints Single language code. Prefixes returned URLs with /{lang}/ path (e.g. /ja/europe-esim). English is default — no prefix added. ?lang=ja
targetLanguages Both endpoints Comma or space separated language list for targetLanguages in output. ?targetLanguages=en,ja

Active language codes are DB-driven. English (en) is always the default and has no URL prefix.

3) Referral Link Format (Important)
  • Primary format: https://touristesim.net/?ref=YOUR_CODE
  • Use this for user traffic: website buttons, banners, blogs, and direct promotion links.
  • Feed usage is different: call feed endpoints with your ref so returned plan/links are already tracked.

For consistency, use the ?ref= format in all new platform integrations and campaign links.

4) Feed API URLs (for integration)

Plans (affiliate only):

https://touristesim.net/feed/esim-affiliates.json?ref=AFF123

Plans (affiliate + language):

https://touristesim.net/feed/esim-affiliates.json?ref=AFF123&lang=ja

Links with affiliate + multi-language target:

https://touristesim.net/feed/esim-affiliates-links.json?ref=AFF123&targetLanguages=en,ja
5) Direct Affiliate Link (for promotion)

Share this in ads/posts/buttons:

https://touristesim.net/?ref=AFF123

Use this URL when sending users directly to Tourist eSIM without consuming feed JSON.

6) Integration Flow
  1. Fetch esim-affiliates.json?ref=YOUR_CODE and cache the response in your system.
  2. Use &lang=ja only when you need links to open in one specific non-English locale.
  3. Use &targetLanguages=en,ja when you need language metadata for multi-language UI selectors.
  4. Refresh feed on schedule (recommended: every 60 minutes).
  5. Render plan cards from feed fields (name, data, validity, speed, prices, countries).
  6. Use each plan link directly as your CTA destination (already contains ref).
  7. Optionally fetch esim-affiliates-links.json for country/region/global browsing links.
7) Response Notes
  • No plan-detail page: plan link maps to country/regional/global landing pages.
  • Tracking behavior: when ref is passed, returned links include your affiliate code.
  • Language behavior (lang): updates returned links to a single locale path for non-English (example: /ja/europe-esim).
  • Language metadata (targetLanguages): sets/filters the targetLanguages array in the response; it does not force one locale path in every link.
  • Optional fields: some fields can be null depending on provider/source data.
  • Caching: feed responses are cache-optimized; stale data can be served during regeneration windows.
8) Sample cURL
curl -s "https://touristesim.net/feed/esim-affiliates.json?ref=AFF123&lang=ja" | jq '.[0]' curl -s "https://touristesim.net/feed/esim-affiliates-links.json?ref=AFF123&targetLanguages=en,fr" | jq '.[0]'
9) Sample Plan JSON (Real Structure)
[ { "name": "Europe 10GB - 30 Days", "planType": "DATA", "planName": "Europe 10GB - 30 Days", "data": { "amount": 10, "unit": "GB" }, "validity": { "amount": 30, "unit": "DAY" }, "price": { "amount": 19.99, "currency": "USD" }, "prices": [ { "amount": 19.99, "currency": "USD" } ], "coverages": ["FR", "DE", "IT", "ES"], "speed": ["4G", "5G"], "activationType": "ON_PURCHASE", "phoneNumber": null, "link": "https://touristesim.net/europe-esim?ref=AFF123" } ] Japanese example (?lang=ja): [ { "...": "...", "link": "https://touristesim.net/ja/europe-esim?ref=AFF123" } ]
10) Sample Links JSON (Real Structure)
[ { "name": "Buy France eSIM", "link": "https://touristesim.net/france-esim?ref=AFF123", "type": "web", "targetLanguages": ["en", "ja"], "targets": ["FR"] }, { "name": "Buy Europe eSIM", "link": "https://touristesim.net/europe-esim?ref=AFF123", "type": "web", "targetLanguages": ["en", "ja"], "targets": ["FR", "DE", "IT", "ES"] } ]
11) Error Responses
  • 503 Service Unavailable: prewarmed feed cache is not ready yet; retry shortly.
  • 500 Internal Server Error: unexpected server-side issue.

Example:

{ "error": "Feed temporarily unavailable", "message": "Feed cache is not ready yet. Please retry shortly." }
Need multiple tracking links, referral link changes, custom mapping, or webhook-style sync? Contact us at affiliates@touristesim.net.