List eSIM offers
/v1/esim/offersbird esim offers listcurl -X GET "https://us1.platform.bird.com/v1/esim/offers" \
-H "Authorization: Bearer $TOKEN" \
--url-query "sort=created_at" \
--url-query "order=desc" \
--url-query "limit=25" \
--url-query "include_total=false"{
"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"
}
],
"next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
"prev_cursor": null,
"refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}
Returns the eSIM offers your workspace can order as a cursor-paginated list. Filter by country to find offers covering a destination (the zone's country list is the guarantee), or by zone_id for one coverage footprint. Retired offers are excluded unless requested via status.
Query Parameters
sortstringField to sort by. Possible values: created_at.
Possible values: created_at
orderstringSort direction. Defaults to desc, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.
Possible values: asc, desc
limitintegerMaximum number of items to return per page.
starting_afterstringCursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.
ending_beforestringCursor from the prev_cursor or refresh_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. prev_cursor returns the preceding page. refresh_cursor anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
include_totalbooleanWhen true, the response includes a total field with the total number of items matching the request's filters across all pages.
countrystringKeep only offers whose coverage zone includes this country (ISO 3166-1 alpha-2).
zone_idstringKeep only offers selling this coverage zone.
statusstringFilter by offer availability. Omitted, only active offers are returned.
Possible values: draft, active, retired
Response Payload
dataOffers, newest first.
Show child attributes
data.iddata.nameDisplay name of the offer.
data.revisionIncrements whenever the offer's terms change. Orders lock the revision they were quoted at.
data.zone_idCoverage zone the offer sells. Offers for the same footprint share one zone.
data.speedSpeed class. For reduced-speed offers, the bundle's data.throttled_after_bytes carries the full-speed allowance.
data.stackableWhether packages from this offer can be held alongside packages from other zones on the same eSIM, subject to the eSIM's package_limit.
data.phonePhone 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.
data.pricingCommercial 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.
data.productBilling product the offer's charges post under, as it appears on your invoice line items.
data.statusdata.created_atnext_cursorCursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.
prev_cursorCursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.
refresh_cursorRefresh anchor, the first row of this response. Pass back as ending_before to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.
totalTotal number of items matching the request's filters across all pages. Present only when include_total=true was passed; otherwise null.
Related resources
Continue with the documentation, guides and examples for this topic.