Pular para o conteúdo principal

Paginacao

Os endpoints de listagem usam um de tres estilos de paginacao, dependendo do dominio. Leia a Referencia da API para os parametros exatos de um determinado endpoint; esta pagina explica os padroes que voce vai encontrar e quais endpoints usam cada um.

Em resumo

EstiloParametrosUsado por
Cursores de ID (after / before)after, beforeNotificacoes, comentarios de linhas
Cursor keyset (cursor / nextCursor)limit, cursorBookings
Offset (limit / offset)limit, offsetChannels, membros do workspace, teams do workspace
Apenas limite (sem continuacao)limitBusca, busca de docs, busca de drive
Sem paginacaoListagem de linhas de board, list-boards, tipos de booking

Cursores de ID — after / before

Alguns endpoints paginam usando o _id de um item como cursor. Voce passa de volta o ID do ultimo (ou primeiro) item que viu como after (ou before) para obter a pagina adjacente.

Notificacoes

GET /public/v1/notifications

  • after — retorna notificacoes depois deste ID de notificacao.
  • before — retorna notificacoes antes deste ID de notificacao.

A resposta e { notifications, unreadCount, count }. Nao ha um campo de cursor separado — o cursor e o _id de uma notificacao. Para avancar de pagina, pegue o _id da ultima notificacao e passe-o como after na proxima requisicao:

# First page
curl "https://api.copera.ai/public/v1/notifications" \
-H "Authorization: Bearer cp_pat_your_token_here"

# Next page — use the last notification's _id from the previous response
curl "https://api.copera.ai/public/v1/notifications?after=665f0a1b2c3d4e5f60718293" \
-H "Authorization: Bearer cp_pat_your_token_here"

Comentarios de linhas

GET /public/v1/board/{boardId}/table/{tableId}/row/{rowId}/comments

Mesmos parametros de cursor after / before (IDs de comentarios), mais um filtro visibility (all | internal | external, padrao all). Diferente das notificacoes, este endpoint retorna um pageInfo no estilo relay:

{
"items": [ /* ...comments... */ ],
"pageInfo": {
"endCursor": "665f0a1b2c3d4e5f60718293",
"startCursor": "665f0a1b2c3d4e5f60718210",
"hasNextPage": true,
"hasPreviousPage": false
}
}

Para avancar de pagina, passe endCursor como after enquanto hasNextPage for true.

Cursor keyset — cursor / nextCursor

Bookings

GET /public/v1/bookings

  • limit — tamanho da pagina, 1–100 (padrao 25).
  • cursor — cursor keyset opaco da resposta anterior.

A resposta inclui nextCursor e hasMore:

{
"bookings": [ /* ... */ ],
"nextCursor": "eyJpZCI6Ii4uLiJ9",
"hasMore": true
}

Faca o loop enquanto hasMore for true, passando nextCursor de volta como cursor:

curl "https://api.copera.ai/public/v1/bookings?limit=50&cursor=eyJpZCI6Ii4uLiJ9" \
-H "Authorization: Bearer cp_pat_your_token_here"

Offset — limit / offset

Paginacao classica com um offset numerico.

Endpointlimit (padrao / max)offset
GET /chat/channels100 / 200a partir de 0
GET /workspace/members100 / 500a partir de 0
GET /workspace/teams100 / 200a partir de 0
# Second page of 50 members
curl "https://api.copera.ai/public/v1/workspace/members?limit=50&offset=50" \
-H "Authorization: Bearer cp_pat_your_token_here"

Apenas limite

Os endpoints no estilo de busca limitam a contagem de resultados com limit, mas nao oferecem um cursor de continuacao — solicite um limit maior (ate o max do endpoint) ou refine sua query.

Endpointlimit (padrao / max)
GET /search50 / 100
GET /docs/search20 / 50
GET /drive/search20 / 50

Os endpoints de arvore de docs e drive (/docs/tree, /drive/tree) sao limitados por um parametro depth (padrao 3, max 10) e um parentId, e nao por limit/cursor.

Sem paginacao

Alguns endpoints de listagem retornam o conjunto completo em uma unica resposta:

  • GET /board/list-boards
  • GET /board/{boardId}/table/{tableId}/rows — suporta q, filter e sort, mas retorna todas as linhas correspondentes.
  • GET /booking-types
dica

Ao iterar sobre grandes conjuntos de resultados, adicione um pequeno intervalo entre as requisicoes para ficar abaixo do limite por minuto, e pare assim que um flag hasMore / hasNextPage for false.