Conceito de $Skip e $top
3 min
Criado por Andre Schäfer de Andrade em 11/06/2020 21:09
Atualizado por Thomaz Figueiredo em 03/08/2026 14:47

Vamos entender um pouco mais em qual momento devemos utilizar estes dois parâmetros em consultas de API 

 

Para utilização de API's aconselhamos a utilização de programas específicos que conseguem ler esses dados RESTful com facilidade. 
No Service, utilizamos diariamente a ferramenta chamada "Postman" ela foi desenvolvida pelo Google, e é gratuita para download.
- Conceito $Skip $top.
O Movidesk trabalha com um limite de 1000 registros é o máximo de request por consulta que podem ser obtidos, seja para uma simples consulta, ou uma integração com sistemas externos.
Para consultas acima de 1000 registros, precisamos utilizar os métodos "$skip" & "$top" cada método tem o seu comportamento.
Verifique abaixo.
• $top: Permite especificar o número de itens que devem ser incluídos no retorno da consulta;

• $skip: Permite especificar a quantidade de itens que devem ser ignorados e não incluídos no retorno da  
Exemplo, vamos pegar esta consulta:
"https://api.movidesk.com/public/v1/tickets?token=SEUTOKEN&$select=id,status&$filter=createdDate gt 2020-06-01T00:00:00.00z&$top=5&$skip=0"
Se aplicarmos esta URL no Postman, vamos obter os seguintes dados.

 

5 Tickets, ou seja, na URL estou passando o valor de 5 no $top e 0 no $skip, ou seja informando a API a me mostrar apenas esses primeiros 5 chamados criados no dia 01/06/2020.
Porém observe que não estou adicionando nenhum valor no método $skip, ou seja não quero pular nenhum ticket desta listagem.
Agora verifiquei como seria a consulta se adicionado valores nos dois parâmetros.
https://api.movidesk.com/public/v1/tickets?token=SEUTOKEN&$select=id,status&$filter=createdDate gt 2020-06-01T00:00:00.00z&$top=5&$skip=2

 

 
Neste exemplo o método $skip fez a sequencia dos próximos tickets pulando os 2 primeiros, ou seja pulando o 3180 e o 3182 da primeira consulta e mostrando o 3186 e 3187 próximos. 
Trabalhando com uma lógica diferente caso você queira aplicar consultas maiores o conceito ainda é o mesmo, para todas as consultas acima de 1000 registros é necessário este método. 

 

A paginação via $skip apresenta limitações de desempenho. Em cenários com elevado volume de dados, a API pode exceder o tempo limite de resposta (timeout) durante a busca.


Recomendação: Utilize a filtragem incremental no parâmetro $filter com a condição "id gt {NumeroDoTicket}"  retirando o $skip da requisição

Essa abordagem otimiza a consulta, retornando os registros a partir do ID informado com maior eficiência.


Importante utilizar com o "$orderby=id" para ordenar em ordem crescente os valores


Exemplificando - 

http://api.movidesk.com/public/v1/tickets/past?token=SEUTOKEN&$select=id,subject,status,createdDate,serviceFull,lastActionDate,resolvedIn,reopenedIn,closedIn,lifetimeWorkingTime&$expand=clients($expand=organization),owner,createdBy,ownerHistories($expand=owner),statusHistories&$filter=createdDate ge 2026-01-01T00:00:00Z and createdDate le 2026-01-08T00:00:00Z and id gt 1234&$orderby=id