Conceptos

Paginación

Las operaciones que listan objetos devuelven páginas con un cursor. El orden es fijo: lo más nuevo primero.

Parámetros

  • limitinteger

    Cantidad de objetos a devolver, entre 1 y 100. Default 10.

    Default: 10

  • startingAfterstring

    Cursor: id del último objeto de la página anterior. Devuelve los siguientes.

  • endingBeforestring

    Cursor: id del primer objeto de la página actual. Devuelve los anteriores.

Se usa startingAfter o endingBefore, no los dos a la vez. El cursor es el id de un objeto: si no existe, la respuesta es 400 con parameter_invalid.

La respuesta

  • objectstring
  • dataarray de objetos

    Un paciente de la organización.

  • hasMoreboolean

    Si hay más objetos después de esta página.

  • urlstring
GET /v1/patients?limit=1
{
  "object": "list",
  "data": [
    {
      "id": "pat_cm1a2b3c4d5e6f7g8h9i0j",
      "object": "patient",
      "fullName": "Paciente Demo",
      "phone": "+5493425550000",
      "email": "paciente.demo@example.com",
      "dni": "11111111",
      "externalId": "HC-1234",
      "dateOfBirth": null,
      "stage": "pending_follow_up",
      "optedOut": false,
      "createdAt": "2026-10-01T17:30:00.000Z",
      "updatedAt": "2026-10-01T17:30:00.000Z"
    }
  ],
  "hasMore": false,
  "url": "/v1/patients"
}

El orden es por fecha de creación, de la más nueva a la más vieja. La paginación es por cursor, no por número de página: si se crean objetos mientras se recorre la lista, las páginas siguientes no se corren ni repiten elementos.

Pedir la página siguiente

Con hasMore: true, la página siguiente se pide con startingAfter igual al id del último objeto recibido.

GET /v1/patients
curl -G https://www.kuida.ar/api/v1/patients \
  -H "Authorization: Bearer kd_test_…" \
  -d limit=3 \
  -d startingAfter=pat_cm1a2b3c4d5e6f7g8h9i0j

Recorrer una lista completa

Sin SDK, se piden páginas de 100 hasta que hasMore sea false. Los SDKs tienen un iterador que hace ese recorrido solo, pidiendo cada página cuando hace falta:

Recorrer todos los pacientes
import { Kuida } from "@kuida/sdk";

const kuida = new Kuida("kd_test_…");

// El SDK pide las páginas a medida que hacen falta.
for await (const patient of kuida.patients.list({ limit: 100 })) {
  console.log(patient.id);
}

Filtros

Cada lista acepta filtros como parámetros de consulta con el nombre del campo, por ejemplo GET /v1/appointments?patient=pat_…&status=confirmed o GET /v1/patients?phone=…. Los filtros de cada lista están en la referencia: