Sign inGet Started

List offers an eSIM can take

GET
/v1/esim/sims/{esim_id}/compatible-offers
bird esim compatible-offers <esim-id>
Response200
{
  "data": [
    {
      "id": "eof_01krdgeqcxet5s7t44vh8rt9mg",
      "name": "Europe 10 GB / 30 days",
      "zone_id": "ezn_01krdgeqcxet5s7t44vh8rt9mg",
      "speed": "full",
      "phone": {
        "included": "always",
        "voice_inbound": false,
        "voice_outbound": false,
        "sms_inbound": true,
        "sms_outbound": false
      },
      "pricing": {
        "data": {
          "amount_bytes": 10737418240
        },
        "validity": {
          "type": "one_time",
          "unit": "day",
          "value": 30
        },
        "price": {
          "amount": "0.00995",
          "currency_code": "USD"
        }
      },
      "product": "email_sends",
      "status": "draft"
    }
  ]
}

Returns offers currently compatible with this eSIM’s network, package capacity, and existing packages. Use these offers for top-ups. Availability can change before purchase; refresh the list before ordering. An incompatible top-up returns 409.

Parameters

esim_idstring

Identifier of the eSIM.

Query Parameters

recurring_onlyboolean

Keep only offers with recurring service configured. Enrollment still checks supplier support and the published recurring price.

Response Payload

data
array of object
required

Orderable top-up offers for this eSIM.

Show child attributes
data.id
string
required
data.name
string
required

Display name of the offer.

data.revision
integer
required

Increments whenever the offer's terms change. Orders lock the revision they were quoted at.

data.zone_id
string
required

Coverage zone the offer sells. Offers for the same footprint share one zone.

data.speed
string
required

Speed class. For reduced-speed offers, the bundle's data.throttled_after_bytes carries the full-speed allowance.

data.stackable
boolean
required

Whether packages from this offer can be held alongside packages from other zones on the same eSIM, subject to the eSIM's package_limit.

data.phone
nullable object
required

Phone service that comes with the plan, or null when the plan includes no phone number. When present, included says how the number is provided and the flags state which call and text directions work.

Show child attributes
data.pricing
object
required

Commercial terms of the offer. Every offer in the current catalog is a bundle: a fixed allowance with a validity period for a fixed price. Match on the pricing type; treat an unrecognized type as an offer your integration cannot order yet.

Show child attributes
data.pricing.type
string
required

Pricing type.

Value: bundle

data.pricing.data
object
required
Show child attributes
data.pricing.validity
object
required

Validity of packages created from this offer. The period starts at activation, which happens on first use in the coverage zone. The effective validity is capped by the eSIM's service period: see the package's expires_at for the real expiry.

Show child attributes
data.pricing.validity.type
string
required
data.pricing.validity.unit
string
required
data.pricing.validity.value
integer
required

Number of units per period.

data.pricing.validity.minimum_periods
nullable integer

For recurring offers, the minimum number of periods committed. Null when there is no minimum, and for one_time offers.

data.pricing.price
object
required

What your workspace is billed per package provisioned from this offer.

Show child attributes
data.product
string
required

Billing product the offer's charges post under, as it appears on your invoice line items.

data.status
string
required
data.created_at
string
required
as_of
string
required

When this answer was computed.

Continue with the documentation, guides and examples for this topic.