List plans
This is the only endpoint in the catalogue rate class, and it is the reason that class exists: one request is the entire price list computed for one buyer.
Ordering is stable across pages — country code, then data, then duration, then id — and the cursor is a keyset over exactly that tuple, so a full walk sees every row once even while the catalogue sync rewrites rows underneath it.
Query parameters
| Name | Type | Rules |
|---|---|---|
| country | string | ISO 3166-1 alpha-2, case-insensitive. The examples here use ZZ, a code ISO reserves for private use so that nothing in this reference can be mistaken for a claim about a real destination — send a real one (JP, TR) against your own key.at most 2 characters — a 3-letter code is a 400, but a 1-letter code validates and returns an empty page rather than an error |
| region | string | Matches either a regional-bundle slug or a country’s region.≤ 64 characters |
| type | enum | Bundle shape.One of: fixed, daily |
| min_days | integer | Inclusive lower bound on duration_days.≥ 1 |
| max_days | integer | Inclusive upper bound on duration_days.≥ 1 |
| min_data_mb | integer | Inclusive lower bound on data_amount_mb.≥ 0 |
| max_data_mb | integer | Inclusive upper bound on data_amount_mb.≥ 0 |
| unlimited | enum | The strings only. ?unlimited=yes is a 400, deliberately.One of: true, false |
| updated_since | ISO 8601 | EXCLUSIVE — >. The incremental-sync parameter. |
| limit | integer | Page size.1–200Default 50 |
| cursor | string | Opaque. Pass back next_cursor from the previous page, or omit it to start again. A malformed cursor is a 400 naming cursor, never a silent first page.≤ 512 characters |