# Airalo API and MCP server

> Airalo has an API only for business partners who resell its eSIMs (checked 11 Oct 2026). It does not reach a personal Airalo account, so your own eSIMs, Airmoney, orders and refunds stay in the app and on airalo.com.

Travel eSIM store: buy a data package for a country or region, install it on your phone and top it up when it runs low.

## What is the Airalo API?

Cotlet's Airalo API exposes 13 endpoints for your own Airalo account: search packages, list my eSIMs, get eSIM details, get data usage, get install instructions, list top-up packages, list orders, get Airmoney, buy eSIM, top up eSIM, set renewals, redeem eSIM voucher and request refund. The search_packages endpoint returns eSIM packages from the store for a country or region, with data, validity and price. Each endpoint takes simple JSON inputs like esim_id, package_id or airmoney_usd and works both as an MCP tool for agents and as a REST call for scripts.

- **Category:** [Travel](https://cotlet.dev/integrations/category/travel)
- **Endpoints:** 13 (8 read, 5 write)
- **Updated:** 2026-10-11

Airalo has an API only for business partners who resell its eSIMs (checked 11 Oct 2026). Cotlet is a hosted MCP server and REST API for Airalo with 13 endpoints (8 read, 5 write): your AI agent signs in as you and does the work.

## Does Airalo have an official API?

Airalo has an API only for business partners who resell its eSIMs (checked 11 Oct 2026). It does not reach a personal Airalo account, so your own eSIMs, Airmoney, orders and refunds stay in the app and on airalo.com.

| Task | Airalo official | Cotlet |
|---|---|---|
| List the eSIMs in your account | No | Yes |
| Check remaining data on an eSIM | Partly: Partner API usage call, only for eSIMs the partner sold | Yes |
| Browse packages for a destination | Partly: Partner API package lists, for partners | Yes |
| Buy an eSIM | Partly: Partner orders, not your account or payment method | Yes |
| Top up an eSIM | Partly: Partner API top-ups, only for eSIMs the partner sold | Yes |
| Get QR code and manual install details | Partly: Partner API instructions call, only for eSIMs the partner sold | Yes |
| Turn renewals on or off | No | Yes |
| Request a refund | No | Yes |

Sources: [Airalo Partner API docs](https://developers.partners.airalo.com/introduction-752814m0), [Airalo Partner API overview](https://www.airalo.com/partner-with-us/api-partners), [Airalo PHP SDK (partner methods)](https://github.com/Airalo/airalo-php-sdk), [Airalo Help: What are renewals and how do they work?](https://www.airalo.com/help/using-managing-esims/ZSEEHBT5HW6F/what-are-renewals-and-how-do-they-work/PM7FMOUCP2U9), [Airalo Help: Wrong eSIM or change of plans (refunds)](https://www.airalo.com/help/using-managing-esims/ZSEEHBT5HW6F/what-can-i-do-if-i-didnt-purchase-the-right-esim-or-have-a-change-of-plans/NYBBU4NC7KN6), [Airalo Help: How can I top up an eSIM?](https://www.airalo.com/help/using-managing-esims/ZSEEHBT5HW6F/how-can-i-top-up-an-esim/2DMCF3341SYF)

## For AI agents

```text
Airalo has an API only for business partners who resell its eSIMs (checked 11 Oct 2026). It does not reach a personal Airalo account, so your own eSIMs, Airmoney, orders and refunds stay in the app and on airalo.com.
Cotlet provides a hosted MCP server and REST API for Airalo: 13 tools (8 read, 5 write).
Access       Request access at https://cotlet.dev/app/signup?app=airalo; we email the API key.

MCP server   https://cotlet.dev/mcp/v1
REST base    https://cotlet.dev/api/v1/airalo
Auth         Authorization: Bearer <COTLET_API_KEY>. Listing endpoints and schemas needs no key; calling an endpoint needs one.
Tools        search_packages, list_esims, get_esim, get_data_usage, get_install_instructions, list_topup_packages, list_orders, get_airmoney, buy_esim, top_up_esim, set_renewals, redeem_voucher, request_refund
Confirm      buy_esim, top_up_esim, set_renewals, redeem_voucher, request_refund (by default the user approves each call; the user can switch this off per tool, e.g. for scheduled automations)
Markdown     https://cotlet.dev/integrations/airalo-api-mcp-server.md

How access works:
1. The user requests access at https://cotlet.dev/app/signup?app=airalo (Airalo is pre-selected). Each request is reviewed and the API key is sent by email.
2. The user signs in to Airalo once in a browser. An agent cannot do this step.
3. The API key goes into the MCP client or the REST call as a bearer token.

Fits: people who want a hosted Airalo server that someone else maintains, including non-developers.

Policy: Cotlet never stores passwords, never solves CAPTCHAs, never bypasses MFA.
Company: legal details in the Terms of service at https://cotlet.dev/terms. Contact contact@cotlet.dev.
Session: the user signs in to Airalo in a browser; Cotlet keeps only the session, AES-256 encrypted, revocable in the dashboard at any time.
Terms: the user stays responsible for following Airalo's terms; Cotlet is not affiliated with Airalo.
```

## What can an AI agent do in Airalo?

Cotlet is best for frequent travellers who want their AI agent to watch eSIM data, top up, fetch install codes and handle refunds on their own Airalo account without running or fixing a server.

- **Check how much eSIM data is left** (runs: daily): "How much data is left on my Thailand eSIM, and when does it expire?" → `list_esims`, `get_data_usage`
- **[Top up an eSIM before data runs out](https://cotlet.dev/integrations/airalo-api-mcp-server/top-up-esim-automatically)** (runs: daily): "Every morning while I am in Thailand, check my Airalo eSIM. If less than 1 GB is left and the package is still valid for more than two days, add the smallest top-up and use my Airmoney first." → `list_esims`, `get_data_usage`, `list_topup_packages`, `get_airmoney`, `top_up_esim`
- **[Turn off eSIM renewals after a trip](https://cotlet.dev/integrations/airalo-api-mcp-server/manage-esim-renewals)**: "I fly home tomorrow. Turn off renewals on every Airalo eSIM from this trip and tell me which ones still have data left." → `list_esims`, `get_esim`, `get_data_usage`, `set_renewals`
- **Get eSIM install details**: "Send me the QR code and manual codes for the eSIM I bought yesterday." → `list_esims`, `get_install_instructions`
- **[Request a refund for the wrong eSIM](https://cotlet.dev/integrations/airalo-api-mcp-server/request-esim-refund)**: "I bought the Japan eSIM by mistake yesterday and have not installed it. Request a refund for that order and tell me where the money goes." → `list_orders`, `list_esims`, `get_esim`, `request_refund`

## Can Airalo automations run on a schedule in n8n, Make or Zapier?

Yes. Cotlet does not replace your automation platform: it gives it a Airalo connection it does not have, with the same API key as your agent. Write actions ask for your OK by default; switch that off in your dashboard for the tools you choose, for example to check how much esim data is left, and the schedule runs on its own. Cotlet runs in the cloud, so it keeps going while your computer is off.

| Where | How to connect | How to schedule |
|---|---|---|
| Your AI agent | Add https://cotlet.dev/mcp/v1 with your API key. | A scheduled agent run, for example a Claude Code routine. |
| n8n | MCP Client node with https://cotlet.dev/mcp/v1, or an HTTP Request node to https://cotlet.dev/api/v1/airalo/{tool}. | Schedule Trigger node. |
| Make | HTTP module: POST https://cotlet.dev/api/v1/airalo/{tool} with an Authorization: Bearer header and a JSON body. | Scenario schedule. |
| Zapier | Webhooks by Zapier: POST https://cotlet.dev/api/v1/airalo/{tool} with the same header and body. | Schedule by Zapier trigger. |
| Your own script | POST https://cotlet.dev/api/v1/airalo/{tool} with your API key. | cron or GitHub Actions. |

## Tools

**For AI agents:** Every endpoint and its schema is public. The 13 endpoints on this page, with parameters and example responses, can be listed without an account. Calling one returns 403 until the account has an API key with access to Airalo.

### search_packages

eSIM packages from the store for a country or region, with data, validity and price. Access: read. REST: `POST /api/v1/airalo/search_packages`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `destination` | string | yes | Country or region, e.g. Japan, Europe, Global. |

Returns the packages the Airalo store lists for a destination. Each item has the data amount, validity in days and price in USD, and says whether the eSIM is rechargeable, which Airalo shows under Additional information. Use package_id with buy_esim.

Example response:

```json
{
  "packages": [
    {
      "package_id": "jp-7d-5gb",
      "title": "Japan 5 GB, 7 days",
      "data_gb": 5,
      "validity_days": 7,
      "price_usd": 9.5,
      "rechargeable": true
    },
    {
      "package_id": "jp-30d-10gb",
      "title": "Japan 10 GB, 30 days",
      "data_gb": 10,
      "validity_days": 30,
      "price_usd": 19.5,
      "rechargeable": true
    }
  ]
}
```

### list_esims

eSIMs under My eSIMs, with destination, ICCID and whether they can be topped up. Access: read. REST: `POST /api/v1/airalo/list_esims`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `rechargeable_only` | boolean | no | Only eSIMs that can be topped up. Default: false. |

Lists the eSIMs in your account with destination, package, ICCID and whether the eSIM is rechargeable. Use esim_id from each item with the other eSIM tools. Set rechargeable_only to see only the eSIMs a top-up can reach.

Example response:

```json
{
  "esims": [
    {
      "esim_id": "es_48213",
      "destination": "Thailand",
      "package": "Thailand 5 GB, 30 days",
      "iccid": "8910300000000048213",
      "rechargeable": true
    },
    {
      "esim_id": "es_47790",
      "destination": "Japan",
      "package": "Japan 5 GB, 7 days",
      "iccid": "8910300000000047790",
      "rechargeable": false
    }
  ]
}
```

### get_esim

Details of one eSIM: ICCID, package history, whether it is rechargeable and whether renewals are offered and on. Access: read. REST: `POST /api/v1/airalo/get_esim`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `esim_id` | string | yes | eSIM ID from list_esims. |

Returns one eSIM as My eSIMs shows it under Details: ICCID, the packages bought for it (Package History) and whether renewals are offered and switched on. Use it before set_renewals.

Example response:

```json
{
  "esim_id": "es_48213",
  "destination": "Thailand",
  "iccid": "8910300000000048213",
  "rechargeable": true,
  "renewals": {
    "offered": true,
    "enabled": false
  },
  "package_history": [
    {
      "order_id": "2026100198765",
      "package": "Thailand 5 GB, 30 days"
    }
  ]
}
```

### get_data_usage

Remaining and used data on an eSIM and when the current package expires. Access: read. REST: `POST /api/v1/airalo/get_data_usage`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `esim_id` | string | yes | eSIM ID from list_esims. |

Returns the data bar from My eSIMs: total, used and remaining data and the expiry date. Airalo shows the bar only "if available"; when it is missing, usage_available is false and no numbers come back.

Example response:

```json
{
  "esim_id": "es_48213",
  "usage_available": true,
  "total_gb": 5,
  "used_gb": 4.2,
  "remaining_gb": 0.8,
  "expires_at": "2026-11-02T23:59:00+07:00"
}
```

### get_install_instructions

QR code, SM-DP+ address and activation code to install the eSIM, from Install or share. Access: read. REST: `POST /api/v1/airalo/get_install_instructions`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `esim_id` | string | yes | eSIM ID from list_esims. |

Returns what Install or share, Share and more shows in the app: a QR code image and the manual installation details (SM-DP+ address, activation code and a confirmation code if Airalo gives one). The tool does not install anything; you scan the QR code or enter the codes on the phone.

Example response:

```json
{
  "esim_id": "es_48213",
  "qr_code_url": "https://example.com/qr/es_48213.png",
  "smdp_address": "smdp.example-esim.com",
  "activation_code": "K2-AB12CD-XY34ZW",
  "confirmation_code": null
}
```

### list_topup_packages

Top-up packages available for a rechargeable eSIM, with data, validity and price. Access: read. REST: `POST /api/v1/airalo/list_topup_packages`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `esim_id` | string | yes | eSIM ID from list_esims. |

Returns the top-up packages Airalo offers for one eSIM. The list is empty for an eSIM that is not rechargeable or whose network carrier has changed; in that case you need a new eSIM. Use package_id with top_up_esim.

Example response:

```json
{
  "esim_id": "es_48213",
  "packages": [
    {
      "package_id": "th-topup-1gb-7d",
      "title": "Thailand 1 GB, 7 days",
      "price_usd": 2.5
    },
    {
      "package_id": "th-topup-3gb-30d",
      "title": "Thailand 3 GB, 30 days",
      "price_usd": 6.5
    }
  ]
}
```

### list_orders

Your orders from Profile > Orders: package, date, amount and order number. Access: read. REST: `POST /api/v1/airalo/list_orders`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `since` | date | no | Only orders on or after this date. |

Lists the orders in your account with order number, package, date and amount in USD. Use order_id with request_refund.

Example response:

```json
{
  "orders": [
    {
      "order_id": "2026101112345",
      "package": "Japan 5 GB, 7 days",
      "ordered_at": "2026-10-11T08:40:00Z",
      "amount_usd": 9.5
    },
    {
      "order_id": "2026100198765",
      "package": "Thailand 5 GB, 30 days",
      "ordered_at": "2026-10-01T10:05:00Z",
      "amount_usd": 11.5
    }
  ]
}
```

### get_airmoney

Airmoney balance in USD, from Airmoney & Membership. Access: read. REST: `POST /api/v1/airalo/get_airmoney`.

No parameters.

Returns your Airmoney balance. Airmoney is tied to US dollars. Airalo applies it at checkout only when the balance is at least 1 USD, and it cannot pay for renewals; applies_at_checkout tells you which side of that line you are on.

Example response:

```json
{
  "balance_usd": 4.3,
  "applies_at_checkout": true
}
```

### buy_esim

Buy a package from search_packages; the eSIM appears under My eSIMs, ready to install. Access: write, asks the user first. REST: `POST /api/v1/airalo/buy_esim`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `package_id` | string | yes | Package ID from search_packages. |
| `airmoney_usd` | number | no | Amount of Airmoney to apply, in USD. Default: 0. |

Prepares the order for one package. Set airmoney_usd to apply Airmoney, which needs a balance of at least 1 USD. When Airalo's checkout needs payment or extra authentication, the tool stops and returns a checkout_url for you to finish; Cotlet never enters card details. Once the order completes, the eSIM appears in My eSIMs and get_install_instructions can follow. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "order_id": "2026101112345",
  "package": "Japan 5 GB, 7 days",
  "price_usd": 9.5,
  "airmoney_applied_usd": 2.4,
  "due_usd": 7.1,
  "status": "checkout_required",
  "checkout_url": "https://example.com/checkout/2026101112345"
}
```

### top_up_esim

Add a top-up package to a rechargeable eSIM. Access: write, asks the user first. REST: `POST /api/v1/airalo/top_up_esim`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `esim_id` | string | yes | eSIM ID from list_esims. |
| `package_id` | string | yes | Top-up package ID from list_topup_packages. |
| `airmoney_usd` | number | no | Amount of Airmoney to apply, in USD. Default: 0. |

Adds a package from list_topup_packages to an eSIM you already installed. Set airmoney_usd to apply Airmoney. When Airalo's checkout needs payment or extra authentication, the tool stops and returns a checkout_url for you to finish; Cotlet never enters card details. It fails for an eSIM that is not rechargeable. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "esim_id": "es_48213",
  "order_id": "2026101112399",
  "package": "Thailand 3 GB, 30 days",
  "price_usd": 6.5,
  "airmoney_applied_usd": 2.4,
  "due_usd": 4.1,
  "status": "checkout_required",
  "checkout_url": "https://example.com/checkout/2026101112399"
}
```

### set_renewals

Turn renewals on or off for an eSIM, when it offers them. Access: write, asks the user first. REST: `POST /api/v1/airalo/set_renewals`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `esim_id` | string | yes | eSIM ID from list_esims. |
| `enabled` | boolean | yes | true turns renewals on, false turns them off. |

Switches the Renewals toggle under My eSIMs, Details. A renewal repeats your original package and is bought when about 10% of the data remains. It cannot be turned on once the data is used up or the validity has ended, and it needs a saved payment method. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "esim_id": "es_48213",
  "renewals": "off"
}
```

### redeem_voucher

Redeem an eSIM voucher code, which adds one package to your account. Access: write, asks the user first. REST: `POST /api/v1/airalo/redeem_voucher`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `code` | string | yes | eSIM voucher code. |

Redeems an eSIM voucher under Airmoney & Membership, Redeem Voucher. The voucher adds one specific eSIM package to your account, which you then use like any package you bought. A voucher is used up once redeemed. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "status": "redeemed",
  "esim_id": "es_49002",
  "package": "Europe 3 GB, 15 days"
}
```

### request_refund

Ask for a refund on an eligible order, the same as the Request Refund button. Access: write, asks the user first. REST: `POST /api/v1/airalo/request_refund`.

| Parameter | Type | Required | Description |
|---|---|---|---|
| `order_id` | string | yes | Order number from list_orders. |
| `reason` | enum | yes | wrong_purchase, plans_changed, installation_issues or esim_not_working. |
| `refund_to` | enum | no | airmoney or original_payment. original_payment only for installation_issues and esim_not_working. Default: airmoney. |

Requests a refund the way the Request Refund button does under Package History or Profile > Orders. The button appears only for eligible orders, and expired or fully used eSIMs are not eligible; otherwise the call returns an error. Airmoney refunds are instant. Refunds to the original payment method typically take 7 to 10 business days. Several recent automated refunds can send a request to manual review. By default you confirm each call; you can switch that off for this tool.

Example response:

```json
{
  "order_id": "2026101112345",
  "reason": "wrong_purchase",
  "refund_to": "airmoney",
  "refund_usd": 9.5,
  "status": "refunded"
}
```

## How do I connect Airalo to Claude Code, Codex or Cursor?

Connecting Airalo takes three steps: request access, sign in to Airalo once, then add one MCP server or call the REST API with the same key.

### Connect Airalo to your agent.

1. **Create an account** Sign up and add Airalo in the console. Your API key is there too.

2. **Sign in to Airalo once** Open the connect page from the console and sign in to Airalo the way you always do. We keep the session, never your password, and you can revoke it anytime.

3. **Add Cotlet to your agent** Paste the snippet for your client. The same server and key serve every app you connect, so you do this once.

   Claude Code:

```
claude mcp add --transport http cotlet \
  https://cotlet.dev/mcp/v1 \
  --header "Authorization: Bearer $COTLET_API_KEY"
```

   Cursor:

```
{
  "mcpServers": {
    "cotlet": {
      "url": "https://cotlet.dev/mcp/v1",
      "headers": {
        "Authorization": "Bearer ${COTLET_API_KEY}"
      }
    }
  }
}
```

   Codex:

```
# ~/.codex/config.toml
[mcp_servers.cotlet]
url = "https://cotlet.dev/mcp/v1"
bearer_token_env_var = "COTLET_API_KEY"
```

4. **Ask your agent** Ask in plain words. Your agent finds the Airalo tools on the server and calls them for you; anything that reaches other people waits for your OK unless you switch that off for a tool.

```
How much data is left on my Thailand eSIM, and when does it expire?
```

### Call Airalo from your scripts.

1. **Export your API key** Your scripts use the same API key as your agent. Keep it in an environment variable, never in your code.

```
export COTLET_API_KEY="cotlet_..."
```

2. **Call a tool** Every tool is a POST endpoint at /api/v1/airalo/{tool}. Send its parameters as JSON, exactly as listed in the endpoints above.

```
curl https://cotlet.dev/api/v1/airalo/top_up_esim \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"esim_id":"es_48213","package_id":"th-topup-3gb-30d","airmoney_usd":2.4}'
```

3. **Read the result** You get plain JSON back, ready for your script. A failed call costs nothing.

```
{
  "esim_id": "es_48213",
  "order_id": "2026101112399",
  "package": "Thailand 3 GB, 30 days",
  "price_usd": 6.5,
  "airmoney_applied_usd": 2.4,
  "due_usd": 4.1,
  "status": "checkout_required",
  "checkout_url": "https://example.com/checkout/2026101112399"
}
```

## Why use Cotlet for Airalo?

**Built for agents**

- One MCP server for every app you connect.
- The same tools as a REST API for scripts and cron jobs.
- Works with Claude Code, Codex and Cursor.

**Your login stays yours**

- You sign in to Airalo yourself. We keep only the session, encrypted with AES-256.
- The model never sees a login.
- No stored passwords, no CAPTCHA solving, no MFA bypass.

**You stay in control**

- Pick read only, or read and write.
- Anything that reaches other people waits for your OK, unless you switch it off per tool.
- Revoke access in one click.

**Kept working for you**

- We test every integration daily.
- When Airalo changes, the tool pauses until we fix it.
- Failed calls cost nothing.

## Is there a Airalo MCP server on GitHub?

No community MCP server for a personal Airalo account turned up. The one API is the Partner API for businesses that resell eSIMs. For your own eSIMs the other way is the Airalo app, by hand.

|  | Airalo Partner API | Cotlet |
|---|---|---|
| Who can use it | Businesses that are Airalo Partners | Anyone with an Airalo account |
| Setup | Become a partner, get client credentials, build on REST or an SDK | Request access, sign in to Airalo once, add one MCP server or API key |
| Whose eSIMs | eSIMs ordered through the partner account | The eSIMs, orders and Airmoney in your own account |
| When Airalo changes | Airalo versions the API; you update your code | Our team tests it daily and fixes it for you; failed calls are free |
| When the session expires | Token refresh in your code | If Airalo logs you out, your agent gets a link to sign in again |
| Where it runs | Your own backend | Hosted: Claude Code, Codex, Cursor, n8n and scripts, also on a schedule |
| Price | Partner terms, agreed with Airalo | Free 7-day trial with 5,000 credits, then credits per call |

### Which one fits you

**Pick Cotlet if**

- you are not a developer, or you do not want to maintain a server
- you need it to keep working when Airalo changes, without checking it yourself
- your agent or a script should run it on a schedule, also while your computer is off

**Pick an open-source server if**

- you are comfortable installing, updating and fixing it yourself
- you want the session to stay on your own computer
- you only need it now and then, from one MCP client

## How much does the Airalo API cost?

Free 7-day trial with 5,000 credits, no card needed. After that, the Airalo API comes with the Cotlet plan, from $29 a month for 3,000 credits, with no limit on apps. Each month's credits stay valid for 3 months, so unused credits add up.

| Size | Price | Credits / month | Per credit |
|---|---|---|---|
| Solo | $29/mo | 3,000 | about $0.0097 |
| Pro | $99/mo | 12,000 | about $0.0083 |
| Agency | $299/mo | 40,000 | $0.0075 |

Each successful call uses credits for the work it takes; failed calls and timeouts cost nothing. A hard spend cap is on by default. Authenticate with the `Authorization: Bearer` header. [See full pricing](https://cotlet.dev/pricing)

## How Cotlet holds your access

Cotlet hosts MCP servers and REST APIs for apps with no usable API. Your agent works in your own Airalo account.

- **Company details:** The legal name, address and registration numbers of the company behind Cotlet are in the Terms of service. [Terms](https://cotlet.dev/terms)
- **Your session:** You sign in to Airalo yourself, in your browser. We keep only the session, never your password: encrypted with AES-256 in an EU vault, isolated to your account and used only when your agent calls a Airalo tool you allowed. When it expires, your agent gives you a link to sign in again. [Security](https://cotlet.dev/security)
- **Revoking access:** Disconnect Airalo in your dashboard: the session is deleted and access ends at once. Actions that reach other people wait for your OK unless you switch that off per tool.
- **What we never do:** Store passwords, solve CAPTCHAs or bypass MFA.
- **Airalo's terms:** You use your own Airalo account and stay responsible for following Airalo's terms. Cotlet is independent and not affiliated with Airalo. [Terms](https://cotlet.dev/terms)
- **Contact:** Questions about the company, security or an app: [contact@cotlet.dev](mailto:contact@cotlet.dev)

## Frequently asked questions

**How do I get access?**

Request access and pick Airalo. Cotlet reviews each request and emails you your API key.

**Do I need to be technical?**

No. You sign in to Airalo once in your browser and paste one command into your agent, or one URL into n8n. Your agent can walk you through it. There is no server to install, update or fix.

**Is a hosted server safe? My Airalo session would leave my computer.**

Cotlet keeps your Airalo session encrypted with AES-256 in an EU vault, isolated to your account and used only for the tools you allow: read only, or read and write. The AI model never sees it, and you revoke it in one click. A local server keeps the same session in a file on your computer, readable by any program you run, and needs a fresh sign-in whenever it expires.

**Can my agent install the eSIM on my phone?**

No. get_install_instructions returns the QR code and the manual codes, and you scan or enter them in your phone's Settings. Airalo's iOS guide describes manual installation with the SM-DP+ address, the activation code and a confirmation code if one is provided.

**Can it pay with my Airmoney balance?**

Yes, for purchases and top-ups, through airmoney_usd. Airalo needs a balance of at least 1 USD to apply Airmoney, and Airmoney cannot pay for renewals, which need a saved payment method.

**Can my agent post or send messages in Airalo without asking me?**

No. Every call to buy_esim, top_up_esim, set_renewals, redeem_voucher or request_refund waits for your OK by default. For scheduled automations you can switch confirmation off per tool in your dashboard, for example only for approvals.

**Can I use the Airalo API in n8n?**

Yes. Add https://cotlet.dev/mcp/v1 with your API key in n8n's MCP Client node, or call https://cotlet.dev/api/v1/airalo/{tool} from the HTTP Request node.
