---
title: "Get eSIM checkout options"
canonical: "https://bird.com/docs/api/reference/get-esim-offer-checkout-options"
---

# Get eSIM checkout options

`GET /v1/esim/offers/{offer_id}/checkout`

Returns published one-time terms and automatic renewal availability for a new eSIM. Automatic renewal includes its own price and cadence when an eligible mobile network is available. Availability is checked again when purchasing; this read does not reserve a package.

## Code samples

**CLI**

```sh
bird esim offers checkout-options <offer-id>
```

Examples: [CLI](/docs/api/reference/get-esim-offer-checkout-options.cli.md) · [MCP](/docs/api/reference/get-esim-offer-checkout-options.mcp.md) · [cURL](/docs/api/reference/get-esim-offer-checkout-options.curl.md)

## Example response `200`

```json
{
  "offer_id": "eof_01krdgeqcxet5s7t44vh8rt9mg",
  "one_time": {
    "price": {
      "amount": "0.00995",
      "currency_code": "USD"
    }
  },
  "recurrence": {
    "available": true,
    "quote": {
      "delivery_mode": "exact_period",
      "price": {
        "amount": "0.00995",
        "currency_code": "USD"
      },
      "model": "calendar_month"
    }
  }
}
```

## Path parameters

- `offer_id` (string): The offer.

## Response body

- `offer_id` (string, required)
- `one_time` (object, required): Published one-time purchase terms before tax.
- `one_time.offer_revision` (integer, required): The offer revision to accept when purchasing.
- `one_time.price` (object, required)
- `one_time.price.amount` (string, required): Decimal amount as a string, in major currency units.
- `one_time.price.currency_code` (string, required): ISO 4217 currency code.
- `recurrence` (object, required): When available is true, quote contains the recurring terms and unavailable_reason is null. Otherwise quote is null and unavailable_reason explains why renewal is unavailable.
- `recurrence.available` (boolean, required): Whether automatic renewal is currently available for a new eSIM.
- `recurrence.quote` (nullable object, required)
- `recurrence.quote.delivery_mode` (string, required)

  Relationship between the paid period and package delivery.

  - `exact_period`: the package covers the accepted paid interval.
  - `recurring_top_up`: each funded period purchases a standard package. Activation, expiry, and accumulation follow that package’s terms.

  Possible values: `exact_period`, `recurring_top_up`
- `recurrence.quote.offer_revision` (integer, required): The offer revision to accept when purchasing.
- `recurrence.quote.recurrence_revision` (integer, required): The recurring configuration revision to accept when purchasing.
- `recurrence.quote.price` (object, required)
- `recurrence.quote.price.amount` (string, required): Decimal amount as a string, in major currency units.
- `recurrence.quote.price.currency_code` (string, required): ISO 4217 currency code.
- `recurrence.quote.model` (string, required)

  Billing cadence for recurring packages.

  - `calendar_month`: periods follow calendar months from the billing anchor.
  - `fixed_days`: each period lasts the stated number of 24-hour days.

  Possible values: `calendar_month`, `fixed_days`
- `recurrence.quote.interval_count` (integer, required): The number of calendar months or fixed 24-hour days per period.
- `recurrence.unavailable_reason` (nullable string, required)

## Related resources

- [Should I use a Bird SDK or call the API directly?](/explained/platform/should-i-use-an-sdk-or-call-the-api-directly) (answer)
- [Build your first integration](/learn/paths/integration) (course)
- [Send your first email](/docs/get-started/send-your-first-email) (docs)

[Get an implementation brief](/learn/workspace?topic=api-basics)
