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
| Estilo | Parametros | Usado por |
|---|---|---|
Cursores de ID (after / before) | after, before | Notificacoes, comentarios de linhas |
Cursor keyset (cursor / nextCursor) | limit, cursor | Bookings |
Offset (limit / offset) | limit, offset | Channels, membros do workspace, teams do workspace |
| Apenas limite (sem continuacao) | limit | Busca, busca de docs, busca de drive |
| Sem paginacao | — | Listagem 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.
| Endpoint | limit (padrao / max) | offset |
|---|---|---|
GET /chat/channels | 100 / 200 | a partir de 0 |
GET /workspace/members | 100 / 500 | a partir de 0 |
GET /workspace/teams | 100 / 200 | a 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.
| Endpoint | limit (padrao / max) |
|---|---|
GET /search | 50 / 100 |
GET /docs/search | 20 / 50 |
GET /drive/search | 20 / 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-boardsGET /board/{boardId}/table/{tableId}/rows— suportaq,filteresort, mas retorna todas as linhas correspondentes.GET /booking-types
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.