Concepts
Pagination
Parcourez les listes avec un curseur.
Chaque liste renvoie les objets du plus récent au plus ancien, dans cette enveloppe :
{
"object": "list",
"url": "/v1/collections",
"data": [ { "id": "9e2d4a7b-…", "object": "collection" } ],
"has_more": true
}| Paramètre | Description |
|---|---|
limit |
Objets par page, de 1 à 100. 20 par défaut. |
starting_after |
Identifiant du dernier objet reçu. Renvoie les objets qui le suivent. |
Pour tout lire, répétez l’appel avec starting_after égal au dernier id de data, tant que has_more vaut true :
async function* all(path) {
let after = null;
while (true) {
const url = new URL('https://api.monerail.com/v1' + path);
url.searchParams.set('limit', '100');
if (after) url.searchParams.set('starting_after', after);
const page = await (await fetch(url, { headers: { Authorization: `Bearer ${process.env.MONERAIL_KEY}` } })).json();
yield* page.data;
if (!page.has_more) return;
after = page.data[page.data.length - 1].id;
}
}
for await (const tx of all('/transactions')) console.log(tx.type, tx.amount);def all_objects(path):
after = None
while True:
params = {"limit": 100}
if after:
params["starting_after"] = after
page = requests.get(
"https://api.monerail.com/v1" + path,
headers={"Authorization": f"Bearer {os.environ['MONERAIL_KEY']}"},
params=params,
timeout=30,
).json()
yield from page["data"]
if not page["has_more"]:
return
after = page["data"][-1]["id"]
for tx in all_objects("/transactions"):
print(tx["type"], tx["amount"])Certaines listes acceptent des filtres, comme type sur les transactions et les événements, ou status et cardholder sur les cartes. Gardez les mêmes filtres d’une page à l’autre. Chaque page compte dans la limite de débit.