Como podemos ajudar?

Extração Completa de Tickets Movidesk (Rotas /tickets/ e /tickets/past/). Otimização via $filter para Prevenir Erro 500
4 min
Criado por Moysés Tonelli em 06/04/2026 16:08
Atualizado por Thomaz Figueiredo em 03/08/2026 14:49

Campo

Valor

ID do Processo

POP-082

Dono(a) do Processo

Thomaz de Paiva Figueiredo

Status

Ativo

Versão

1.0

Data da Última Revisão

06/04/2026

Categoria

Zenvia Service/Movidesk

1. Objetivo

Garantir a extração completa de todos os tickets de um ambiente via API, fornecendo práticas para otimizar a performance das requisições e evitar o Erro 500.

2. Escopo

  • Aplica-se a:

    • Usuários que buscam realizar a extração completa de todos os tickets de seus ambientes.

    • Requisições que utilizam as rotas /tickets/ e /tickets/past/.

    • Otimização de requisições de API que utilizam parâmetros como $select, $expand, $skip, e $filter.

  • Não se aplica a:

    • Procedimentos de autenticação da API ou mapeamento de campos ENUM.

    • Tratativa de erros de limite de acesso da API (Status: 429 Too Many Requests).

3. Responsáveis

O procedimento é de responsabilidade da empresa que utiliza a API para realizar a extração e análise avançada de dados de ambientes.

4. Pré-requisitos

  • Possuir um token válido para acesso à API do Movidesk.

  • Ter conhecimento sobre as duas rotas de Tickets: /tickets/ e /tickets/past/.

  • Entender a aplicação dos parâmetros de requisição como $select, $expand, $skip, e $filter.

5. Procedimento (passo a passo)

Para realizar a extração completa e otimizada de todos os tickets do ambiente:

  1. Entenda as Rotas de Tickets: A rota /tickets/ extrai tickets com data de atualização (lastUpdate) inferior a 90 dias, enquanto a rota /tickets/past/ deve ser usada em conjunto para buscar tickets mais antigos, com lastUpdate acima de 90 dias.

  2. Faça Requisições para Ambas as Rotas: Para extrair todos os tickets, é obrigatório fazer requisições para a rota /tickets/ e a rota /tickets/past/.

  3. Otimize a Performance Evitando o Erro 500:

    • Evite utilizar o parâmetro $skip em valores muito elevados, especialmente se combinado com muitos parâmetros em $select, $expand e $filter, pois isso pode causar um Erro 500.

    • O ideal é utilizar um $filter de data de criação (createdDate) nos chamados, o que permite que o sistema limite a busca e mantenha o $skip em valores menores.

  4. Exemplifica a Requisição Otimizada (Filtro por Data de Criação):

    • Para buscar os primeiros 1000 tickets de um período (Ex: Janeiro de 2023), utilize o $filter nas duas rotas.

    • Exemplo Rota /tickets: https://api.movidesk.com/public/v1/tickets?token=SEUTOKEN&$select=id,subject,createdDate&$filter=createdDate gt 2023-01-1T00:00:00.00z and createdDate lt 2023-01-31 T00:00:00.00z

    • Exemplo Rota /tickets/past: https://api.movidesk.com/public/v1/tickets/past?token=SEUTOKEN&$select=id,subject,createdDate&$filter=createdDate gt 2023-01-1T00:00:00.00z and createdDate lt 2023-01-31 T00:00:00.00z

  5. Realize a Paginação: Para buscar os próximos 1000 tickets dentro do período filtrado, aumente o $skip de 1000 em 1000.

Exemplo de requisição mais completa

https://api.movidesk.com/public/v1/tickets?token=TOKEN&$select=id,subject,createdDate,resolvedIn,Status,Justification,serviceFull,urgency,category&$expand=owner($select=id,businessName),clients($expand=organization($select=businessName);$select=id,businessName),customfieldvalues&$filter=createdDate gt 2025-01-01T00:00:00.00z and createdDate lt 2025-01-31T00:00:00.00z

Nota: se quiser saber mais sobre as rotas da API de Tickets do Movidesk, veja os artigos públicos:


Importante

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



Versão

Data

Autor da Alteração

Descrição da Mudança

1.0

06/04/2026

Moysés Tonelli

Versão inicial

1.103/08/2026Thomaz FigueiredoAdicionado pontos sobre utilização do $skip





Este artigo resolveu sua dúvida?
Últimos artigos visitados