1. Quick start
Airalo Partner API
  • OVERVIEW
    • Introduction
    • Attribute descriptions
    • FAQ
    • Developer feedback
    • Quick start
      • Step 1: Request access token
        POST
      • Step 2: Get packages
        GET
      • Step 3: Submit order
        POST
      • Step 4: Get installation instructions
        GET
    • Guides
      • How to set up a brand for eSIMs Cloud link sharing
      • How to get the eSIMs Cloud sharing link through API
      • How to generate the QR code for an eSIM
      • eSIM installation methods for API Partners
  • REST API
    • Introduction
    • Rate limits
    • Error handling
    • Go live checklist
    • Sandbox mode
    • Endpoints
      • Authenticate
        • Request access token
      • Browse packages
        • Get packages
      • Place order
        • Future orders
        • Submit order
        • Submit order async
        • eSIM voucher
      • Request refund
        • Request refund
      • Install eSIM
        • Get eSIM
        • Get installation instructions
      • Monitor usage
        • Get usage (data, text & voice)
      • Top up eSIM
        • Get top-up package list
        • Submit top-up order
      • Manage orders
        • Get order list
        • Get order
        • Cancel future orders
        • Future Orders
      • Manage eSIMs
        • Update eSIM brand
        • Get eSIMs list
        • Get eSIM package history
      • Compatible devices
        • [Deprecated] Get compatible device list
        • Get compatible device lite list
      • Notifications
        • Airalo webhooks opt-in and flow
        • Webhooks guide
        • Webhook definition
        • Notification: Low data
          • Opt in
          • Get notification details
          • Opt out
        • Notification: Credit limit
          • Opt in
          • Get notification details
          • Opt out
        • Notification: Async orders
          • Opt in
          • Get notification details
          • Opt out
        • Webhook simulator
      • Check balance
        • Get balance
  • SDKs
    • Introduction
    • SDK vs. REST API
    • Technical notes
  • WOOCOMMERCE PLUGIN
    • Introduction
    • Guides
      • How to install the Airalo Plugin for WooCommerce
      • How to customize the "My eSIMs" page colors in WooCommerce
      • How to convert prices into your local currency
  • Whitelabel eSIM platform
    • Whitelabel eSIM platform integration guide
  1. Quick start

Step 2: Get packages

GET
/v2/packages
πŸ’‘
This endpoint comes with a Rate Limit: 80 requests per minute to fetch packages per unique authentication token.
Retrieve a list of local and global eSIM packages available through the Airalo Partners API. Local packages cover a single country, while global packages span multiple countries and regions. This endpoint helps you synchronize eSIM plans/packages with your system, ensuring newly introduced packages are available to your clients and out-of-stock packages are handled properly.

Features#

Package Types: Supports standard data packages and the new "Voice and Text" packages.
Filtering: Filter results by operator type or country code to tailor the package list to your needs.
Pagination: Adjust pagination settings to retrieve results in manageable chunks.
Limit: Set the limit parameter to a high value (e.g., 1,000) to fetch all packages in a single request without using pagination.
Include Top-Up: Use the include:top-up parameter to fetch eSIM packages along with their associated top-up packages.
Multi language support: Pass on the Accept-language header to get your response translated in the language you prefer. All languages available in Sandbox and production mode are found in our FAQs.

Multi-Currency#

This endpoint provides pricing information in multiple currencies for both net prices and recommended retail prices. All currency conversion rates are updated once daily at 00:00 UTC.

Step-by-step implementation:#

To keep your catalog up to date, including stock availability, new packages, and pricing, while avoiding performance or rate-limit issues, it’s important to run an hourly backend sync.
Below, we provide a step-by-step guide to help you successfully sync your packages:

Hourly Sync#

Set up a background job via cron, worker, or cloud scheduler that calls GET /v2/packages once every hour.
Include the required authentication header: Authorization: Bearer <ACCESS_TOKEN> (Refer to Request access token)

Single Full Fetch (No Limit Param)#

Call the endpoint without a limit parameter to retrieve the full catalogue (~3,200 packages) in a single response. This eliminates pagination and keeps the sync logic straightforward.
Alternatively, you can implement pagination or split sync runs (e.g. alternating between eSIMs and top-ups).

Rate-Limit Context#

The API allows up to 40 requests per minute. One request per hour is far below this threshold and safe to run continuously.

Snapshot-Based Processing#

Store the returned JSON as a complete snapshot (file, object storage, or database).
Upsert packages using package_id as the unique key.
Remove any packages missing from the latest snapshot.
Sync operators, coverage, pricing, and metadata fields.

Throtlling policy#

Identify unlimited packages with usage restrictions by checking the is_fair_usage_policy boolean. If enabled, the fair_usage_policy field contains a string describing the specific limitations.
Example:
"is_fair_usage_policy": true,
"fair_usage_policy": "Lower speed rate of 1 Mbps after 3 GB usage per day."
✍
Got a Minute? We'd love to hear your feedback. Share your thoughts β†’

Request

Query Params

Header Params

Body Params graphql
No need to define the Body

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://partners-api.airalo.com/v2/packages?limit=&page=1' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{token}}' \
--header 'Accept-Language: en' \
--header 'url: https://partners-api.airalo.com' \
--header 'Content-Type: application/json' \
--data ''

Responses

No need to define the Response
Modified atΒ 2026-06-15 14:50:36
Previous
Step 1: Request access token
Next
Step 3: Submit order
Built with