Lista os alertas de RMM vinculados a um ticket
curl --request GET \ --url 'https://public-api.mspdesk.com.br/v1/tickets/1/alerts?filter%5Bid%5D%5Bin%5D=1%2C2%2C3&limit=25&sort=-createdAt&fields=id%2Csource%2CdeviceName&expand=customer%2Cagent' \ --header 'Authorization: Bearer <token>'Escopo exigido: tickets:read. A lista é a do Datto RMM ou a do NinjaRMM, conforme a integração ativa na empresa — as duas nunca vêm misturadas, exatamente como na aba Alertas. O campo source diz qual é a origem de cada linha.
Campos nulos conforme a origem. Só existem no Datto: alertDiagnostic, alertPriority, alertCategory, alertType, alertUid e siteName. Só existem no Ninja: severity, statusCode, conditionLabel, jobCode e resolvedAt. Os demais existem nas duas.
Só id e createdAt filtram, porque são os únicos que existem nas duas origens. resolved não filtra: ele é coluna no Datto e derivado de resolvedAt no Ninja, e um filtro que funcionasse em uma empresa e não em outra seria pior que a ausência dele. createdAt é a criação no Datto e o disparo no Ninja.
A ordenação padrão é -id (o alerta mais recente primeiro), a mesma da aba.
Autorizações
Seção intitulada “Authorizations”Parâmetros
Seção intitulada “Parameters”Parâmetros de caminho
Seção intitulada “Path Parameters”ID do ticket
Exemplo
1Parâmetros de consulta
Seção intitulada “Query Parameters”Filtra por id igual ao valor informado.
Exemplo
1,2,3Filtra por id igual a um dos valores informados, separados por vírgula (até 100).
Filtra por createdAt maior ou igual ao valor informado.
Filtra por createdAt menor ou igual ao valor informado.
Itens por página. 1 a 100; padrão 25.
Cursor opaco da próxima página, devolvido em nextCursor da resposta anterior. Omita na primeira página.
Campo de ordenação: id, createdAt (padrão -id). Prefixe com - para descendente (ex.: sort=-createdAt); sempre desempatado por id na mesma direção.
Exemplo
-createdAtCampos de primeiro nível a retornar, separados por vírgula (id sempre volta): id, source, deviceName, alertDescription, alertDiagnostic, alertPriority, alertCategory, alertType, alertUid, siteName, severity, statusCode, conditionLabel, jobCode, resolved, createdAt, updatedAt, resolvedAt.
Exemplo
id,source,deviceNameObjetos a acrescentar à resposta, separados por vírgula, até 3 por requisição: . Sem o escopo exigido de algum item pedido: 403 insufficient_scope.
Exemplo
customer,agentRespostas
Seção intitulada “Responses”Página de alertas
object
Alerta de RMM vinculado a um ticket.
object
Categoria do alerta. Só Datto — nula na origem Ninja.
Descrição do alerta. No Ninja é a mensagem do evento.
Diagnóstico do alerta. Só Datto — nulo na origem Ninja.
Prioridade do alerta. Só Datto — nula na origem Ninja.
Tipo do alerta. Só Datto — nulo na origem Ninja.
Identificador do alerta no Datto RMM. Só Datto — nulo na origem Ninja.
Rótulo do mapeamento de condição, com o jobCode como alternativa. Só Ninja — nulo na origem Datto.
Instante do alerta: a criação no Datto, o disparo no Ninja.
Nome do dispositivo monitorado. No Ninja é o nome de sistema, com o nome de exibição como alternativa.
Identificador do alerta, na tabela da origem.
Código do job no Ninja. Só Ninja — nulo na origem Datto.
Se o alerta já foi baixado. No Ninja é derivado de resolvedAt.
Instante da baixa. Só Ninja — nulo na origem Datto, que não guarda essa data.
Severidade do alerta. Só Ninja — nula na origem Datto.
Nome do site no Datto RMM. Só Datto — nulo na origem Ninja.
Origem do alerta.
Situação do alerta no Ninja (TRIGGERED, RESET, OTHER). Só Ninja — nula na origem Datto.
Última alteração: a data de atualização no Datto; no Ninja, a baixa — ou o próprio disparo, enquanto o alerta estiver aberto.
Cursor opaco da próxima página; null quando não há mais páginas.
Exemplo
{ "data": [ { "alertCategory": "Disco", "alertDescription": "Espaço em disco abaixo de 10%", "alertDiagnostic": "Disco C: com 7% livre", "alertPriority": "HIGH", "alertType": "disk_usage", "alertUid": "5f1c9a2e-7d4b-4e8a-b1c3-2a9d6e0f4b71", "conditionLabel": null, "createdAt": "2026-01-10T11:58:00Z", "deviceName": "SRV-ARQUIVOS-01", "id": 3312, "jobCode": null, "resolved": false, "resolvedAt": null, "severity": null, "siteName": "Acme - Matriz", "source": "DATTO_RMM", "statusCode": null, "updatedAt": "2026-01-10T11:58:00Z" } ], "nextCursor": "eyJpZCI6MTA0Mn0"}Cabeçalhos
Seção intitulada “Headers”Capacidade do balde mais restritivo consumido nesta requisição
Requisições restantes nesse balde
Segundos até o balde encher de novo
Requisição malformada ou parâmetros de consulta inválidos
Erro no formato RFC 9457 (application/problem+json).
object
Código estável do erro, para tratamento programático.
Explicação legível deste erro específico.
Erros de campo — presente quando a falha vem de validação de campo.
object
Código estável do erro de campo.
Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.
Mensagem traduzida no locale da requisição.
Presente só no 429
Presente só quando layer=operation
Identificador da requisição — informe-o ao suporte ao reportar um erro.
Presente só no 403 insufficient_scope
Status HTTP da resposta.
Título curto e legível do erro.
URI que identifica o tipo do erro.
Exemplo
{ "code": "not_found", "detail": "O recurso solicitado não foi encontrado.", "errors": [ { "code": "required" } ], "layer": "ip", "operation": "report", "requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55", "status": 404, "title": "Recurso não encontrado", "type": "https://developers.mspdesk.com.br/erros/#not_found"}Cabeçalhos
Seção intitulada “Headers”Capacidade do balde mais restritivo consumido nesta requisição
Requisições restantes nesse balde
Segundos até o balde encher de novo
Chave de API ausente, inválida, revogada ou expirada
Erro no formato RFC 9457 (application/problem+json).
object
Código estável do erro, para tratamento programático.
Explicação legível deste erro específico.
Erros de campo — presente quando a falha vem de validação de campo.
object
Código estável do erro de campo.
Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.
Mensagem traduzida no locale da requisição.
Presente só no 429
Presente só quando layer=operation
Identificador da requisição — informe-o ao suporte ao reportar um erro.
Presente só no 403 insufficient_scope
Status HTTP da resposta.
Título curto e legível do erro.
URI que identifica o tipo do erro.
Exemplo
{ "code": "not_found", "detail": "O recurso solicitado não foi encontrado.", "errors": [ { "code": "required" } ], "layer": "ip", "operation": "report", "requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55", "status": 404, "title": "Recurso não encontrado", "type": "https://developers.mspdesk.com.br/erros/#not_found"}Acesso negado: empresa inativa (account_inactive), API pública desabilitada para a empresa (public_api_disabled), escopo liberado só com a API pública (scope_requires_public_api) ou escopo insuficiente (insufficient_scope)
Erro no formato RFC 9457 (application/problem+json).
object
Código estável do erro, para tratamento programático.
Explicação legível deste erro específico.
Erros de campo — presente quando a falha vem de validação de campo.
object
Código estável do erro de campo.
Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.
Mensagem traduzida no locale da requisição.
Presente só no 429
Presente só quando layer=operation
Identificador da requisição — informe-o ao suporte ao reportar um erro.
Presente só no 403 insufficient_scope
Status HTTP da resposta.
Título curto e legível do erro.
URI que identifica o tipo do erro.
Exemplo
{ "code": "not_found", "detail": "O recurso solicitado não foi encontrado.", "errors": [ { "code": "required" } ], "layer": "ip", "operation": "report", "requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55", "status": 404, "title": "Recurso não encontrado", "type": "https://developers.mspdesk.com.br/erros/#not_found"}Cabeçalhos
Seção intitulada “Headers”Capacidade do balde mais restritivo consumido nesta requisição
Requisições restantes nesse balde
Segundos até o balde encher de novo
Recurso inexistente, de outra empresa, ou rota inexistente
Erro no formato RFC 9457 (application/problem+json).
object
Código estável do erro, para tratamento programático.
Explicação legível deste erro específico.
Erros de campo — presente quando a falha vem de validação de campo.
object
Código estável do erro de campo.
Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.
Mensagem traduzida no locale da requisição.
Presente só no 429
Presente só quando layer=operation
Identificador da requisição — informe-o ao suporte ao reportar um erro.
Presente só no 403 insufficient_scope
Status HTTP da resposta.
Título curto e legível do erro.
URI que identifica o tipo do erro.
Exemplo
{ "code": "not_found", "detail": "O recurso solicitado não foi encontrado.", "errors": [ { "code": "required" } ], "layer": "ip", "operation": "report", "requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55", "status": 404, "title": "Recurso não encontrado", "type": "https://developers.mspdesk.com.br/erros/#not_found"}Cabeçalhos
Seção intitulada “Headers”Capacidade do balde mais restritivo consumido nesta requisição
Requisições restantes nesse balde
Segundos até o balde encher de novo
Limite de uso atingido (rate_limited); o campo layer indica a camada: ip, company, key, operation ou concurrency
Erro no formato RFC 9457 (application/problem+json).
object
Código estável do erro, para tratamento programático.
Explicação legível deste erro específico.
Erros de campo — presente quando a falha vem de validação de campo.
object
Código estável do erro de campo.
Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.
Mensagem traduzida no locale da requisição.
Presente só no 429
Presente só quando layer=operation
Identificador da requisição — informe-o ao suporte ao reportar um erro.
Presente só no 403 insufficient_scope
Status HTTP da resposta.
Título curto e legível do erro.
URI que identifica o tipo do erro.
Exemplo
{ "code": "not_found", "detail": "O recurso solicitado não foi encontrado.", "errors": [ { "code": "required" } ], "layer": "ip", "operation": "report", "requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55", "status": 404, "title": "Recurso não encontrado", "type": "https://developers.mspdesk.com.br/erros/#not_found"}Cabeçalhos
Seção intitulada “Headers”Capacidade do balde mais restritivo consumido nesta requisição
Requisições restantes nesse balde
Segundos até o balde encher de novo
Segundos até poder repetir
Erro interno inesperado
Erro no formato RFC 9457 (application/problem+json).
object
Código estável do erro, para tratamento programático.
Explicação legível deste erro específico.
Erros de campo — presente quando a falha vem de validação de campo.
object
Código estável do erro de campo.
Campo com erro, em notação de ponto/colchete. Ausente quando o erro não é de um campo específico.
Mensagem traduzida no locale da requisição.
Presente só no 429
Presente só quando layer=operation
Identificador da requisição — informe-o ao suporte ao reportar um erro.
Presente só no 403 insufficient_scope
Status HTTP da resposta.
Título curto e legível do erro.
URI que identifica o tipo do erro.
Exemplo
{ "code": "not_found", "detail": "O recurso solicitado não foi encontrado.", "errors": [ { "code": "required" } ], "layer": "ip", "operation": "report", "requestId": "7f3a9c2e-4b1d-4f7a-9e0c-2b8d6a1f3c55", "status": 404, "title": "Recurso não encontrado", "type": "https://developers.mspdesk.com.br/erros/#not_found"}Cabeçalhos
Seção intitulada “Headers”Capacidade do balde mais restritivo consumido nesta requisição
Requisições restantes nesse balde
Segundos até o balde encher de novo