Explorar la documentación

Referencia

Paginación

Las listas de agentes, llamadas, campañas, números de teléfono y entidades están paginadas: page empieza en 1, limit va de 1 a 100 (50 por defecto) y la respuesta incluye 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"])

Otras listas

  • Las facturas usan un cursor: pasa el nextCursor de una respuesta como cursor; vale null en la última página.
  • Las herramientas, los webhooks y los trunks SIP llegan en una sola respuesta.