Partner Catalogue API

For listing partners and aggregators.

Getting started

This API exposes the live retail catalogue — the same plans, at the same USD prices, that shoppers see on the storefront's destination pages — for syncing to your platform.

To request an API key, reach out via /business or /contact.

Authentication

Every request carries an API key we issue to you:

Authorization: Bearer <your api key>

Requests without a valid key receive 401. Keys are per-partner and can be rotated on request.

The catalogue

GET /api/v1/partner/catalogue

page is optional (defaults to 1). pageSize is optional (defaults to 100, max 250). ref is your attribution code; when present it is baked into every buyUrl. If it is also your voucher code, the voucher is baked in too (see offerUsd).

curl -sS "https://vigxoesim.com/api/v1/partner/catalogue?page=1&pageSize=100&ref=YOURCODE" \
  -H "Authorization: Bearer $VIGXO_API_KEY"

Example response

Note: The response values shown below are illustrative.

{
  "plans": [
    {
      "id": "<plan_id>",
      "name": "<plan_name>",
      "destination": "<destination>",
      "countryCodes": ["XX"],
      "planType": "single",
      "dataGb": 0,
      "validityDays": 0,
      "isDaily": false,
      "topUpSupported": true,
      "has5g": true,
      "operators": ["<operator>"],
      "coverages": [
        { "code": "XX", "networks": [{ "name": "<operator>" }] }
      ],
      "retailUsd": 0.00,
      "offerUsd": 0.00,
      "offerCode": "YOURCODE",
      "currency": "USD",
      "buyUrl": "https://vigxoesim.com/checkout?plan=<plan_id>&ref=YOURCODE&coupon=YOURCODE"
    }
  ],
  "page": 1,
  "pageSize": 100,
  "total": 0,
  "lastUpdated": "2026-01-01T00:00:00.000Z",
  "refundPolicy": "Full refund before the eSIM is installed, within 30 days of purchase. Top-ups are non-refundable once applied."
}

Fields worth knowing

  • coverages lists the networks supported in each covered country. operators is only present on single-country plans. Multi-country plans rely on coverages to detail networks per location.
  • retailUsd is computed by the same code path that charges the checkout, so the number you display and the number the shopper pays cannot disagree. Shoppers paying in another currency are charged the live conversion of the USD price.
  • offerUsd appears only when your ref is also a live voucher. It is the exact total the shopper sees when they land on buyUrl — the voucher is already applied there, they type nothing. Display offerUsd as the offer price and retailUsd as the struck-through list price; when offerUsd is absent, show retailUsd.
  • isDaily: true marks a day-pass plan: dataGb is the allowance per day for validityDays days, after which speed is reduced until the next day's reset. Please present these as daily plans, not as a fixed bundle.
  • topUpSupported: the eSIM can take more data later from the buyer's dashboard.

Sync guidance

  • The feed is the availability signal: a plan present in the response is on sale. Plans that are retired leave the feed within about two days; any order we cannot fulfil is refunded in full.
  • lastUpdated is the time of our last catalog sync. Prices can also change on our side between syncs, so do a full pull at least daily. Hourly polling is fine.
  • The catalogue is sorted stably (destination, data, validity, id), so pagination is safe across requests.

Attribution & commission

Your links carry ?ref=YOURCODE. On first click we set a 60-day, first-touch attribution cookie; every order placed inside that window is recorded against your code — including guest checkouts. Commission is computed from those order records and reported in a monthly statement with order-level detail; you invoice us against it.

Error codes

HTTPmeaning
401Missing, unknown, or revoked API key