Autenticação
Para utilizar a API, é necessário ter uma conta ativa no sistema e um token de autorização. O token de autorização pode ser gerado no perfil pessoal na seção «API».
Uso do token gerado
O token gerado deve ser enviado no cabeçalho HTTP Authorization em todas as solicitações da API.
Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU
Exemplo de solicitação para obter eventos ativos usando o utilitário curl (substitua pelo seu token):
curl --location 'https://detector404.com.br/api/v1/alerts' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Limitações da API
Você pode solicitar dados por mês, trimestre ou ano (depende das permissões da sua conta).
As seguintes limitações de frequência de solicitações à API estão estabelecidas:
Exemplos para o serviço Google
Solicitação com nome especial:
curl --location 'https://detector404.com.br/api/v1/service/google/status' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Lista branca
Método para obter a lista de endereços a partir dos quais o DownDetector realiza verificações de disponibilidade
URL
/api/v1/whitelist
Método
GET
Descrição dos dados retornados
O método retorna um array JSON composto por objetos com os seguintes campos:
Observação
Este método usa um token de autorização separado, disponível para parceiros mediante solicitação.
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/whitelist' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
[ { "ip": "146.185.199.33", "city": "Rio de Janeiro", "active": true }, { "ip": "95.46.196.233", "city": "São Paulo", "active": true }, { "ip": "5.101.218.215", "city": "Brasília", "active": true } ]
Eventos
Método para obter eventos ativos atuais
URL
/api/v1/alerts
Método
GET
Descrição dos dados retornados
O método retorna um objeto JSON com os seguintes campos:
O array data consiste em objetos com os seguintes campos obrigatórios:
Tipos de eventos possíveis e campos adicionais individuais para cada tipo:
url - indisponibilidade de página, campos adicionais:
latency - grande atraso de resposta da página em provedor específico em cidade específica, campos adicionais:
isp - problemas com provedor na cidade, campos adicionais:
city - problemas na cidade, campos adicionais:
complaints - pico de reclamações de usuários, campos adicionais:
function - parou de funcionar alguma função do serviço, campos adicionais:
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/alerts' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": [ { "id": 17112941194, "time": "2025-03-24T15:28:07.717409+00:00", "type": "complaints", "service": "Vivo", "num": 14 }, { "id": 17112941193, "time": "2025-03-24T15:28:07.717409+00:00", "type": "latency", "provider": "Claro", "place": "Brasília", "url": "https://google.com", "service": "Google", "num": 11.794 }, { "id": 17112926215, "time": "2025-03-24T15:03:41.542004+00:00", "type": "url", "url": "https://www.itau.com.br", "service": "Itaú Unibanco", "num": 5 } ] }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
Eventos filtrados
Método para obter eventos ativos atuais que excedem os limites especificados no perfil do usuário
URL
/api/v1/alerts/filtered
Método
GET
Descrição dos dados retornados
A única diferença do método /alerts é que não são retornados todos os eventos atuais, mas apenas aqueles para os quais o valor do parâmetro adicional num não é menor que o limite especificado no perfil do usuário para este tipo de evento
O método retorna um objeto JSON com os seguintes campos:
O array data consiste em objetos com os seguintes campos obrigatórios:
Tipos de eventos possíveis e campos adicionais individuais para cada tipo:
url - indisponibilidade de página, campos adicionais:
latency - grande atraso de resposta da página em provedor específico em cidade específica, campos adicionais:
isp - problemas com provedor na cidade, campos adicionais:
city - problemas na cidade, campos adicionais:
complaints - pico de reclamações de usuários, campos adicionais:
function - parou de funcionar alguma função do serviço, campos adicionais:
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/alerts/filtered' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": [ { "id": 17112941194, "time": "2025-03-24T15:28:07.717409+00:00", "type": "complaints", "service": "Vivo", "num": 14 }, { "id": 17112941193, "time": "2025-03-24T15:28:07.717409+00:00", "type": "latency", "provider": "Claro", "place": "Brasília", "url": "https://google.com", "service": "Google", "num": 11.794 }, { "id": 17112926215, "time": "2025-03-24T15:03:41.542004+00:00", "type": "url", "url": "https://www.itau.com.br", "service": "Itaú Unibanco", "num": 5 } ] }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
Setores
Método para obter a lista de setores na classificação de serviços
URL
/api/v1/branches
Método
GET
Descrição dos dados retornados
O método retorna um objeto JSON com os seguintes campos:
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/branches' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": [ "Agro e indústria alimentícia", "Energia", "Recursos internacionais", "Serviços públicos", "Metais e mineração", "Petróleo e gás", "Defesa e engenharia mecânica", "Viagens", "Telecom" ] }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
Serviços
Método para obter a lista de serviços
URL
/api/v1/services
Método
GET
Descrição dos dados retornados
O método retorna um objeto JSON com os seguintes campos:
O array data consiste em objetos com os seguintes campos obrigatórios:
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/services' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": [ { "name": "Região Norte", "urlname": "regiaonorte", "ecosystem": null, "urls": 1, "branches": [ "Regiões" ] }, { "name": "Itaú Unibanco", "urlname": "itaucombr", "ecosystem": "", "urls": 12, "branches": [ "Finanças" ] } ] }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
Serviços do setor
Método para obter a lista de serviços de um setor
URL
/api/v1/services/branch/{branch}
Valores a serem substituídos:
Método
GET
Descrição dos dados retornados
O método retorna um objeto JSON com os seguintes campos:
O array data consiste em objetos com os seguintes campos obrigatórios:
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/services/branch/Finanças' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": [ { "name": "Itaú Unibanco", "urlname": "itaucombr", "ecosystem": "", "urls": 3 }, { "name": "Banco do Brasil", "urlname": "bbcombr", "ecosystem": null, "urls": 2 } ] }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
Eventos do serviço
Método para obter eventos atuais do serviço de acordo com dados de monitoramento
URL
/api/v1/service/{service}/alerts
Valor a ser substituído:
Método
GET
Descrição dos dados retornados
O método retorna um objeto JSON com os seguintes campos:
O array data consiste em objetos com os seguintes campos obrigatórios:
Tipos de eventos possíveis e campos adicionais individuais para cada tipo:
url - indisponibilidade de página, campos adicionais:
latency - grande atraso de resposta da página em provedor específico em cidade específica, campos adicionais:
isp - problemas com provedor na cidade (incluído caso o serviço seja um provedor de comunicação), campos adicionais:
complaints - pico de reclamações de usuários, campos adicionais:
function - parou de funcionar alguma função do serviço, campos adicionais:
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/service/Unired/alerts' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": [ { "id": 17350524178, "time": "2024-12-24T14:02:52.724695+00:00", "type": "url", "url": "https://unired.uz", "service": "Unired", "place": "ru", "num": 31, "private": false }, { "id": 17350524134, "time": "2024-12-24T14:02:15.269713+00:00", "type": "latency", "provider": "ЭР Телеком", "place": "Irkutsk", "url": "https://unired.uz", "service": "Unired", "num": 0.658, "private": false }, { "id": 17350521990, "time": "2024-12-24T13:59:14.799644+00:00", "type": "latency", "provider": "Megafon", "place": "Moscou", "url": "https://unired.uz", "service": "Unired", "num": 1.256, "private": false }, { "id": 17350486902, "time": "2024-12-24T13:10:06.590936+00:00", "type": "latency", "provider": "Rostelecom", "place": "Donetsk", "url": "https://unired.uz", "service": "Unired", "num": 0.651, "private": false } ] }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
Eventos filtrados do serviço
Método para obter eventos atuais do serviço que excedem os limites especificados no perfil do usuário
URL
/api/v1/service/{service}/alerts/filtered
Valor a ser substituído:
Método
GET
Descrição dos dados retornados
A única diferença do método /service/{service}/alerts é que não são retornados todos os eventos atuais do serviço, mas apenas aqueles para os quais o valor do parâmetro adicional num não é menor que o especificado no perfil do usuário para este tipo de evento.
O método retorna um objeto JSON com os seguintes campos:
O array data consiste em objetos com os seguintes campos obrigatórios:
Tipos de eventos possíveis e campos adicionais individuais para cada tipo:
url - indisponibilidade de página, campos adicionais:
latency - grande atraso de resposta da página em provedor específico em cidade específica, campos adicionais:
isp - problemas com provedor na cidade (incluído caso o serviço seja um provedor de comunicação), campos adicionais:
complaints - pico de reclamações de usuários, campos adicionais:
function - parou de funcionar alguma função do serviço, campos adicionais:
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/service/Unired/alerts/filtered' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": [ { "id": 17350524178, "time": "2024-12-24T14:02:52.724695+00:00", "type": "url", "url": "https://unired.uz", "service": "Unired", "place": "ru", "num": 31, "private": false }, { "id": 17350521990, "time": "2024-12-24T13:59:14.799644+00:00", "type": "latency", "provider": "Megafon", "place": "Moscou", "url": "https://unired.uz", "service": "Unired", "num": 1.256, "private": false } ] }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
Comentários
Método para obter a lista de comentários de usuários sobre o serviço em um dia específico
URL
/api/v1/service/{service}/comments/date/{date}
Valores a serem substituídos:
Método
GET
Descrição dos dados retornados
O método retorna um objeto JSON com os seguintes campos:
O array data consiste em objetos com os seguintes campos obrigatórios:
O objeto category consiste em pares chave-valor, onde a chave é uma das categorias às quais o comentário foi atribuído, e o valor é um array de nomes de subcategorias desta categoria às quais pode ser atribuído.
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/service/Госуслуги/comments/date/2024-03-19' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": [ { "time": "2024-03-19T08:08:31.643480+03:00", "text": "falha nos serviços governamentais", "author": "Innokenty", "likes": 8, "category": { "Falha do site": [ "Site não abre/não carrega/não funciona" ] } } ] }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
Gráficos
Método para obter dados que permitem construir gráficos refletindo o comportamento do serviço em um dia específico
URL
/api/v1/service/{service}/graph/date/{date}
Valores a serem substituídos:
Método
GET
Descrição dos dados retornados
O método retorna um objeto JSON com os seguintes campos:
O objeto data tem os seguintes campos:
Todos os arrays acima consistem em arrays de dois elementos, que devem ser interpretados como [tempo, valor], onde tempo é o timestamp UNIX padrão.
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/service/Госуслуги/graph/date/today' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": { "latency": [[1711289700, 186], [1711290000, 170]], "errors": [[1711290000, 3], [1711290300, 2]], "totals": [[1711290000, 8], [1711290300, 7]], "social": [[1711289700, 1], [1711290000, 1]] } }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
Estatísticas
Método para obter estatísticas sobre comentários e reclamações sobre o serviço
URL
/api/v1/service/{service}/stats/date/{date}
Valores a serem substituídos:
Método
GET
Descrição dos dados retornados
O método retorna um objeto JSON com os seguintes campos:
O objeto data tem os seguintes campos:
regions - array com estatísticas de reclamações por regiões, consiste em objetos com os seguintes campos:
complaints - array com estatísticas de comentários por categorias, consiste em objetos com os seguintes campos:
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/service/Госуслуги/stats/date/2024-03' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": { "regions": [ { "region": "Moscou e Região de Moscou", "percent": 80.76923076923077 } ], "complaints": [ { "complaint": "Falha do site", "percent": 42.97520661157025, "detailed": [ { "type": "Site não abre/não carrega/não funciona", "percent": 42.97520661157025 } ] }, { "complaint": "Falha da conta pessoal", "percent": 37.1900826446281, "detailed": [ { "type": "Não consigo acessar a conta/aplicativo", "percent": 30.578512396694215 }, { "type": "Problema com senha/recuperação de conta", "percent": 6.6115702479338845 } ] } ] } }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
Linha do tempo de problemas
Método para obter informações sobre a presença de problemas do serviço com divisão por minuto
URL
/api/v1/service/{service}/problems/date/{date}
Valores a serem substituídos:
Método
GET
Descrição dos dados retornados
O método retorna um objeto JSON com os seguintes campos:
O array data consiste em objetos com os seguintes campos:
Observação
O método usa implicitamente os limites definidos pelo usuário no perfil: para o número de cidades, a indisponibilidade de onde o recurso é considerado problemática, e para o número de reclamações nos últimos 15 minutos, no qual o pico de reclamações é considerado um problema.
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/service/Госуслуги/problems/date/2024-03-15' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": [ { "time": "2024-03-15 00:00+03:00", "errors": false, "complaints": false }, { "time": "2024-03-15 00:01+03:00", "errors": false, "complaints": false }, ... ] }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
Status
Método para obter o status atual do serviço de acordo com dados de monitoramento
URL
/api/v1/service/{service}/status
Valor a ser substituído:
Método
GET
Descrição dos dados retornados
O método retorna um objeto JSON com os seguintes campos:
O objeto data tem os seguintes campos:
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/service/Госуслуги/status' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": { "down": { "https://dom.gosuslugi.ru": ["Vladimir"] }, "social": false } }
Resposta:
{ "success": true, "data": { "down": { "https://dom.gosuslugi.ru": ["Vladimir"] }, "social": 95 } }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }
URLs
Método para obter a lista de páginas em monitoramento
URL
/api/v1/service/{service}/urls
Valor a ser substituído:
Método
GET
Descrição dos dados retornados
O método retorna um objeto JSON com os seguintes campos:
Exemplo
Solicitação:
curl --location 'https://detector404.com.br/api/v1/service/Госуслуги/urls' \
--header 'Authorization: Bearer wGGtaQVncybYmhbiAab9poccBWoU4n0c1H0ee2zVyICWEM7B9s0DFrzU'
Resposta:
{ "success": true, "data": [ "https://gosuslugi.ru", "https://dom.gosuslugi.ru", "https://esia.gosuslugi.ru" ] }
Resposta em caso de erro:
{ "success": false, "error": "Ocorreu um erro ao executar a solicitação, verifique os parâmetros" }