Parcourir la documentation

Référence

Pagination

Les listes d'agents, d'appels, de campagnes, de numéros de téléphone et d'entités sont paginées : page commence à 1, limit va de 1 à 100 (50 par défaut), et la réponse indique pageCount.
async function* allCalls(query = {}) {
  for (let page = 1, pageCount = 1; page <= pageCount; page++) {
    const params = new URLSearchParams({ ...query, page, limit: 100 });
    const res = await fetch(`https://api.callshift.ai/v1/calls?${params}`, {
      headers: { Authorization: `Bearer ${process.env.CALLSHIFT_API_KEY}` },
    });
    const body = await res.json();
    pageCount = body.pageCount;
    yield* body.data;
  }
}

for await (const call of allCalls({ campaignId })) console.log(call.id, call.endedReason);
def all_calls(**query):
    page, page_count = 1, 1
    while page <= page_count:
        res = requests.get(
            "https://api.callshift.ai/v1/calls",
            headers={"Authorization": f"Bearer {os.environ['CALLSHIFT_API_KEY']}"},
            params={**query, "page": page, "limit": 100},
        ).json()
        page_count = res["pageCount"]
        yield from res["data"]
        page += 1

for call in all_calls(campaignId=campaign_id):
    print(call["id"], call["endedReason"])

Autres listes

  • Les factures utilisent un curseur : passez le nextCursor d'une réponse dans le paramètre cursor ; il vaut null sur la dernière page.
  • Les outils, les webhooks et les trunks SIP ne sont pas paginés : ils sont renvoyés en une seule réponse.