Skip to main content
GET
/
esim
/
packages
Get Packages
curl --request GET \
  --url https://api.fyatu.com/api/v3/esim/packages \
  --header 'Authorization: Bearer <token>'
{
  "success": true,
  "status": 200,
  "message": "<string>",
  "data": {
    "packages": [
      {
        "packageId": "<string>",
        "slug": "<string>",
        "name": "<string>",
        "tier": "standard",
        "data": {
          "amount": 123,
          "display": "<string>",
          "isUnlimited": true
        },
        "validity": {
          "days": 123,
          "display": "<string>"
        },
        "price": {
          "amount": 123,
          "currency": "USD"
        },
        "features": {
          "hasVoice": true,
          "hasSms": true,
          "voiceMinutes": 123,
          "smsCount": 123
        },
        "operator": {
          "name": "<string>",
          "imageUrl": "<string>"
        },
        "shortInfo": "<string>"
      }
    ],
    "total": 123
  },
  "meta": {
    "requestId": "req_abc123def456",
    "timestamp": "2023-11-07T05:31:56Z"
  }
}

Overview

Retrieve available eSIM packages for a specific destination. Packages contain data allowances, validity periods, and pricing.
The destination query parameter is required. Use destination slugs from the List Destinations endpoint.

Query Parameters

ParameterTypeRequiredDescription
destinationstringYesDestination slug (e.g., france, europe)
tierstringNoFilter by tier: standard, premium, or unlimited
minDataintegerNoMinimum data amount in MB
maxPricenumberNoMaximum price in USD
validityintegerNoExact validity period in days

Package Tiers

TierDescription
standardData-only packages
premiumPackages with voice calls and/or SMS
unlimitedUnlimited data packages

Response Fields

Each package includes:
FieldTypeDescription
packageIdstringUnique package identifier (use for purchase)
namestringPackage display name
tierstringPackage tier (standard/premium/unlimited)
data.amountintegerData in MB (null if unlimited)
data.displaystringHuman-readable data amount
data.isUnlimitedbooleanWhether data is unlimited
validity.daysintegerValidity period in days
price.amountnumberPrice in USD
features.hasVoicebooleanIncludes voice minutes
features.hasSmsbooleanIncludes SMS
features.voiceMinutesintegerVoice minutes included (if any)
features.smsCountintegerSMS count included (if any)
operator.namestringNetwork operator name

Example Usage

// Get all packages for France
const response = await fetch('https://api.fyatu.com/api/v3/esim/packages?destination=france', {
  headers: {
    'Authorization': `Bearer ${accessToken}`
  }
});

const { data } = await response.json();

// Group by tier for display
const grouped = {
  standard: data.packages.filter(p => p.tier === 'standard'),
  premium: data.packages.filter(p => p.tier === 'premium'),
  unlimited: data.packages.filter(p => p.tier === 'unlimited')
};

// Display with formatting
grouped.standard.forEach(pkg => {
  console.log(`${pkg.name}: ${pkg.data.display} / ${pkg.validity.days} days - $${pkg.price.amount}`);
});

Filtering Examples

// Premium packages only
GET /esim/packages?destination=france&tier=premium

// At least 5GB data
GET /esim/packages?destination=france&minData=5120

// Under $20
GET /esim/packages?destination=france&maxPrice=20

// 30-day validity
GET /esim/packages?destination=france&validity=30

// Combine filters
GET /esim/packages?destination=france&tier=standard&maxPrice=15&minData=3072

Authorizations

Authorization
string
header
required

JWT access token obtained from /auth/token

Query Parameters

destination
string

Country code or region slug

tier
enum<string>

Package tier

Available options:
standard,
premium,
unlimited
validity
integer

Validity in days

dataMin
number

Minimum data in GB

Response

Packages retrieved successfully

success
boolean
Example:

true

status
integer
Example:

200

message
string
data
object
meta
object