Paginación

Cuando la API devuelve una lista (documentos, firmas, invitaciones), los resultados se paginan automáticamente. AllSign usa paginación por cursor — rápida, estable y eficiente incluso con miles de registros.

¿Cómo funciona?

Piensa en la paginación como pasar páginas de un libro:

  1. Pides la primera página con un limit (cuántos resultados quieres)
  2. La respuesta incluye un cursor — un token que apunta a la siguiente página
  3. Usas ese cursor para pedir la siguiente página, y así sucesivamente
  4. Cuando ya no hay más, hasNext es false y nextCursor es null

Primera petición

Envía una petición con los parámetros de paginación:

  • Name
    limit
    Type
    integer
    Description

    Resultados por página (1-100). Por defecto: 10.

  • Name
    scope
    Type
    string
    Description

    Filtro de alcance: owner (default), org, tenant, o accessible.

  • Name
    sortBy
    Type
    string
    Description

    Campo para ordenar: created_at (default) o updated_at.

  • Name
    sortOrder
    Type
    string
    Description

    Dirección: asc o desc (default).

Primera página

curl -G https://api.allsign.io/v2/documents \
  -H "Authorization: Bearer {token}" \
  -d limit=10 \
  -d scope=accessible \
  -d sortBy=created_at \
  -d sortOrder=desc

Respuesta paginada

{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "name": "Contrato.pdf",
      "createdAt": "2024-11-23T20:00:00Z"
    }
    // ... más documentos
  ],
  "meta": {
    "limit": 10,
    "hasNext": true,
    "nextCursor": "eyJzb3J0X2ZpZWxkIjoi...",
    "prevCursor": null
  }
}

Siguiente página

Usa el nextCursor de la respuesta anterior como parámetro cursor:

  • Name
    cursor
    Type
    string
    Description

    Token opaco obtenido del meta.nextCursor de la respuesta anterior.

Siguiente página

curl -G https://api.allsign.io/v2/documents \
  -H "Authorization: Bearer {token}" \
  -d limit=10 \
  -d cursor="eyJzb3J0X2ZpZWxkIjoi..."

Respuesta con cursor previo

{
  "data": [
    // ... siguientes 10 documentos
  ],
  "meta": {
    "limit": 10,
    "hasNext": true,
    "nextCursor": "eyJzb3J0X2ZpZWxkIjoi...",
    "prevCursor": "eyJzb3J0X2ZpZWxkIjoi..."
  }
}

Última página

Sabes que llegaste al final cuando hasNext es false y nextCursor es null.

Puedes seguir usando prevCursor para navegar hacia atrás.

Última página

{
  "data": [
    {
      "id": "770e8400-e29b-41d4-a716-446655440000",
      "name": "Último documento.pdf",
      "createdAt": "2024-11-01T10:00:00Z"
    }
  ],
  "meta": {
    "limit": 10,
    "hasNext": false,
    "nextCursor": null,
    "prevCursor": "eyJzb3J0X2ZpZWxkIjoi..."
  }
}

Was this page helpful?