---
title: "Get recurring eSIM offer terms"
method: GET
path: "/v1/esim/offers/{offer_id}/recurrence"
tags: ["esims"]
---

# Get recurring eSIM offer terms

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

## Request

- Base URL: `https://us1.platform.bird.com`
- URL: `https://us1.platform.bird.com/v1/esim/offers/{offer_id}/recurrence`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `bird_session`

Returns the published whole-package recurring price and calendar-month or fixed-day cadence. Enrollment additionally checks that the assigned eSIM mobile network supports these terms.

## Headers

- `X-Workspace-Id` string
- `X-Organization-Id` string

## Response `200`

The requested resource.

- EsimRecurringOffer: The published recurring package price and cadence. Calendar months follow the billing anchor; fixed days use the stated number of 24-hour days.
  - `delivery_mode` 'exact_period' | 'recurring_top_up', 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.
  - `offer_id` string, required
  - `model` 'calendar_month' | 'fixed_days', 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.
  - `interval_count` integer, required: The number of calendar months or fixed days in each period.
  - `revision` integer, required: The recurring configuration revision to accept.
  - `price` Money, required
    - `amount` string, required: Decimal amount as a string, in major currency units.
    - `currency_code` string, required: ISO 4217 three-letter currency code.

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `403`: Insufficient permissions
- `404`: Resource not found
- `409`: Resource conflict
- `422`: The request has invalid field values, violates a business rule, or carries a query parameter the endpoint does not declare. Field validation errors use `type: validation_error` and include the affected fields in `details`. Business-rule errors identify the failed rule in `type`.
- `429`: Rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/messagebird/apis/bird-api.md) · [All operations](https://skmtc.dev/messagebird/apis/bird-api/llms.txt) · [OpenAPI document](https://skmtc.dev/messagebird/apis/bird-api/revisions/3e2a50466454?raw)
