Versão da API: 2.0

Documentação da versão anterior: Acessar

Todos os métodos da API necessitam de autenticação. É possível utilizar o usuário e senha de acesso via Web.

Tipo da autenticação: Basic Auth

Filtrar/buscar roteadores

Formato da URL
/api/v2/device/search{?page=1}
Método HTTP
PUT
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
Page Número da paǵina da busca. Observe o retorno da busca para o número total de páginas. Inteiro Não
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
filter_list Lista com todos os filtros desejados String Sim
query_result_filter Filtrar campos que serão retornados nos resultados String Não

* Obs.: O parâmetro query_result_filter pode incluir o marcador “-” antes de cada campo para apenas excluir os campos indicados do resultado.

* Obs.2: Os seguintes campos não podem ser filtrados do resultado: releases, status_color, permissions, wifi_state, wifi_state_5ghz.

Exemplo do Body
{
  "filter_list": "online,/ou,offline",
  "query_result_filter": "-firstboot_log,-lastboot_log"
}
Retorno da Requisição
Status Code Descrição
200 OK. Observar variável “success” no body da mensagem para status de sucesso da busca
Exemplos de Retorno
{
  "success": false,
  "message": "Erro ao acessar base de dados",
  "type": "danger"
}
{
    "type": "success",
    "limit": 10,
    "page": 1,
    "pages": 2,
    "min_length_pass_pppoe": 7,
    "status": {
        "onlinenum": 12,
        "recoverynum": 0,
        "offlinenum": 0,
        "totalnum": 12
    },
    "single_releases": [
        {
            "id": "0042-aix",
            "model": [
                "DWR-116A3",
                "NCLOUDV1",
                "ARCHERC20V4",
                "ARCHERC5V4",
                "TL-WDR3500V1",
                "TL-WDR3600V1",
                "TL-WDR4300V1",
                "TL-WR741NDV4",
                "TL-WR840NV4",
                "TL-WR840NV5",
                "TL-WR841NDV7",
                "TL-WR841NDV8"
            ]
        },
        {
            "id": "0000-dos",
            "model": [
                "ARCHERC20V4"
            ]
        }
    ],
    "filter_list": "online",
    "devices": [
        {
            "_id": "0C:80:63:FF:FF:FF",
            "version": "0.16.0",
            "wifi_is_5ghz_capable": true,
            "do_update_status": 1,
            "mqtt_secret_bypass": false,
            "ping_hosts": [
                "www.google.com",
                "www.youtube.com",
                "www.facebook.com",
                "www.instagram.com",
                "www.apple.com"
            ],
            "model": "ARCHERC5V4",
            "installed_release": "0052-aix",
            "release": "0052-aix",
            "pppoe_user": "teste@teste",
            "pppoe_password": "teste",
            "lan_subnet": "192.168.42.0",
            "lan_netmask": 24,
            "wifi_ssid": "Ap-24ghz",
            "wifi_password": "teste1234",
            "wifi_channel": "auto",
            "wifi_band": "HT20",
            "wifi_mode": "11n",
            "wifi_ssid_5ghz": "Ap-5ghz",
            "wifi_password_5ghz": "teste1234",
            "wifi_channel_5ghz": "149",
            "wifi_band_5ghz": "VHT80",
            "wifi_mode_5ghz": "11ac",
            "wan_ip": "177.158.199.199",
            "wan_negociated_speed": "100",
            "wan_negociated_duplex": "full",
            "ip": "177.158.199.199",
            "last_contact": "2019-06-25T20:10:19.405Z",
            "do_update": false,
            "do_update_parameters": false,
            "lan_devices": [
                {
                    "is_blocked": false,
                    "port": [],
                    "router_port": [],
                    "dmz": false,
                    "ipv6": [],
                    "dhcpv6": [],
                    "last_seen": "2019-06-25T19:07:10.917Z",
                    "first_seen": "2019-04-16T01:58:18.074Z",
                    "_id": "88888888888888888888",
                    "mac": "aa:aa:aa:aa:aa:aa",
                    "dhcp_name": "Impressora",
                    "conn_type": 1,
                    "ip": "192.168.42.244",
                    "wifi_mode": "N",
                    "conn_speed": 65,
                    "wifi_signal": -42,
                    "wifi_snr": 50,
                    "wifi_freq": 2.4
                },
                {
                    "is_blocked": false,
                    "port": [],
                    "router_port": [],
                    "dmz": false,
                    "ipv6": [
                        "2804:7f1:c080:45e:aaaa:1b5f:1579:aaaa",
                        "fe80::aaaa:f038:d62d:aaaa"
                    ],
                    "dhcpv6": [],
                    "last_seen": "2019-06-25T04:08:05.672Z",
                    "first_seen": "2019-04-16T01:58:18.074Z",
                    "_id": "99999999999999999999999",
                    "mac": "ff:ff:ff:ff:ff:ff",
                    "dhcp_name": "Galaxy AA",
                    "conn_speed": 6,
                    "conn_type": 1,
                    "ip": "192.168.42.254",
                    "wifi_freq": 2.4,
                    "wifi_mode": "N",
                    "wifi_signal": -92,
                    "wifi_snr": 0
                }
            ],
            "apps": [
                {
                    "_id": "zzzzzzzzzzzz",
                    "id": "aaaaaaaaaaaaaa",
                    "secret": "aaaaaaaaaaaaaaa"
                },
                {
                    "_id": "yyyyyyyyyyyyyyyyy",
                    "id": "bbbbbbbbbbbbbbb",
                    "secret": "bbbbbbbbbbbbbbb"
                }
            ],
            "connection_type": "pppoe",
            "__v": 47,
            "mqtt_secret": "jsadshdajnsudshasjasawqqwass",
            "lastboot_date": "2019-06-23T17:00:33.768Z",
            "lastboot_log": "",
            "ntp_status": "0.000164",
            "firstboot_date": "2019-06-18T04:38:28.537Z",
            "firstboot_log": "",
            "external_reference": {
                "kind": "Outro",
                "data": "Usuário de Teste"
            },
            "app_password": "teste",
            "forward_index": "1561489581029",
            "last_devices_refresh": "2019-06-25T19:07:10.921Z",
            "id": "FF:FF:FF:B9:64:43",
            "releases": [
                {
                    "id": "0042-aix",
                    "model": "ARCHERC5V4"
                },
                {
                    "id": "0047-aix",
                    "model": "ARCHERC5V4"
                }
            ],
            "status_color": "green-text",
            "permissions": {
                "grantViewLogs": true,
                "grantResetDevices": true,
                "grantPortForward": true,
                "grantPortForwardAsym": true,
                "grantPortOpenIpv6": true,
                "grantWifi5ghz": true,
                "grantWifiBand": true,
                "grantPingTest": true,
                "grantLanEdit": true,
                "grantLanDevices": true
            }
        }
    ]
}

Consultar roteadores

Formato da URL
/api/v2/device/get
Método HTTP
POST
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
filter_list Lista com todos os filtros desejados String Sim
fields Filtrar campos que serão retornados nos resultados String Sim
Exemplo do Body
{
    "filter_list": "online,/ou,offline",
    "fields": "_id,use_tr069,model"
}
Retorno da Requisição
Status Code Descrição
200 OK. Retorna as informações dos roteadores encontrados
Exemplos de Retorno
[
    {
        "_id": "18:0D:2C:5E:37:00",
        "use_tr069": false,
        "model": "ACTIONRG1200V1"
    },
    {
        "_id": "F8:6C:E1:E9:30:40",
        "use_tr069": true,
        "model": "G-140W-C"
    },
    {
        "_id": "98:00:6A:96:9B:84",
        "use_tr069": true,
        "model": "F670L"
    }
]

Consultar informações de um roteador

Formato da URL
/api/v2/device/update/{ID do CPE}
Método HTTP
GET
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
ID do CPE Endereço MAC ou Número serial localizado na etiqueta do CPE String. Caracteres sempre maiúsculos Sim
Retorno da Requisição
Status Code Descrição
200 OK, retorna as informações do roteador
404 Roteador não encontrado
500 Erro interno do servidor
Exemplos de Retorno
{
  "success": false,
  "message": "device not found"
}
{
  "success": true,
  "external_reference": {
      "kind": 'CPF',
      "data": '123.456.789-00'
  },
  "apps": [],
  _id: '11:11:11:11:11:11',
  "model": 'TL-MR3020V1',
  "release": '0004-AIX',
  "pppoe_user": '',
  "pppoe_password": '',
  "wifi_ssid": 'TesteSSID',
  "wifi_password": 'SenhaWifi',
  "wifi_channel": 'auto',
  "last_contact": 2018-01-01T03:00:00.000Z,
  "do_update": false,
  "do_update_parameters": true,
  "connection_type": 'dhcp',
  "__v": 0,
  "ip": '5.5.5.5',
  "wan_ip": '10.10.10.10'
}

Alterar informações de um roteador

Formato da URL
/api/v2/device/update/{ID do CPE}
Método HTTP
PUT
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
ID do CPE Endereço MAC ou Número serial localizado na etiqueta do CPE String. Caracteres sempre maiúsculos Sim
Parâmetros do Body
Parâmetro Descrição Formato Valores Obrigatório
pppoe_user Usuário PPPoE String Não
pppoe_password Senha do usuário PPPoE String Não
wifi_ssid Identificação do ponto de acesso sem fio do usuário (SSID) String Não
wifi_password Senha do ponto de acesso sem fio do usuário String Mínimo de 8 caracteres Não
wifi_channel Canal do 802.11 String “auto”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“10”,“11” Não
connection_type Tipo de conexão WAN String “dhcp” ou “pppoe” Não
ipv6_enabled Habilitar Ipv6 Integer 0 - Desligado , 1 - Ligado Não
lan_subnet Gateway da subrede LAN String IP válido Não
lan_netmask Máscara da subrede LAN String “24”, “25”, “26” Não
wifi_band Largura de banda Wi-Fi 2.4GHz String 'HT20', 'HT40' Não
wifi_mode Modo de operação Wi-Fi 2.4GHz String '11g', '11n' Não
wifi_power Potência da antena Wi-Fi 2.4GHz Integer 25, 50, 75, 100 (por cento) Não
wifi_state Liga/Desliga Wi-Fi 2.4GHz Integer 0 - Off , 1 - On Não
wifi_hidden Esconder SSID Wi-Fi 2.4GHz Integer 0 - Visível, 1 - Escondido Não
wifi_ssid_5ghz Identificação do ponto de acesso sem fio do usuário (SSID) String Não
wifi_password_5ghz Senha do ponto de acesso sem fio do usuário String Mínimo de 8 caracteres Não
wifi_channel_5ghz Canal do 802.11 String 'auto','36', '40', '44', '48', '52', '56', '60', '64','149', '153', '157', '161', '165' Não
wifi_band_5ghz Largura de banda Wi-Fi 5.0GHz String 'VHT20', 'VHT40', 'VHT80' Não
wifi_mode_5ghz Modo de operação Wi-Fi 5.0GHz String '11na', '11ac' Não
wifi_power_5ghz Potência da antena Wi-Fi 5.0GHz Integer 25, 50, 75, 100 (por cento) Não
wifi_state_5ghz Liga/Desliga Wi-Fi 5.0GHz Integer 0 - Off , 1 - On Não
wifi_hidden_5ghz Esconder SSID Wi-Fi 5.0GHz Integer 0 - Visível, 1 - Escondido Não
mesh_mode Tipo do modo Mesh (Quando for compatível) Integer 0 - Off, 1 - Cabo, 2 - Cabo e 2.4, 3 - Cabo e 5.0, 4 - Cabo e ambos Wi-Fi Não
bridgeEnabled Habilitar modo bridge/AP no roteador Integer 0 - Off, 1 - On Não
bridgeDisableSwitch Desabilitar portas LAN cabeadas Integer 0 - Modo router , 1 - Modo bridge Não
bridgeFixIP Fixar IP WAN do roteador no modo bridge String IP válido Não
bridgeFixGateway Fixar String IP válido Não
bridgeFixDNS String IP válido Não
Exemplo do Body
{
  "content": {
    "pppoe_user": "teste",
    "pppoe_password": "teste123",
    "wifi_ssid": "FlashMan-AP-Teste",
    "wifi_password": "senhateste",
    "wifi_channel": "auto"
  }
}
Retorno da Requisição
Status Code Descrição
200 OK, retorna as informações do roteador alterado
404 Roteador não encontrado
500 Erro no servidor, mais informações no body da mensagem de retorno
Exemplos de Retorno
{
  "success": false,
  "message": "device not found",
  "errors": []
}
{
  "success": true,
  "external_reference": {
      "kind": 'CPF',
      "data": '123.456.789-00'
  },
  "apps": [],
  _id: '11:11:11:11:11:11',
  "model": 'TL-MR3020V1',
  "release": '0004-AIX',
  "pppoe_user": '',
  "pppoe_password": '',
  "wifi_ssid": 'TesteSSID',
  "wifi_password": 'SenhaWifi',
  "wifi_channel": 'auto',
  "last_contact": 2018-01-01T03:00:00.000Z,
  "do_update": false,
  "do_update_parameters": true,
  "__v": 0
}
{
  "success": false,
  "message": 'Erro validando os campos, ver campo "errors"',
  "errors": [
    "password": "Este campo deve ter no mínimo 8 caracteres"
  ]
}

Habilitar ou desabilitar atualização de firmware de um roteador

Formato da URL
/api/v2/device/update/{ID do CPE}/{Release}
Método HTTP
PUT
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
ID do CPE Endereço MAC ou Número serial localizado na etiqueta do CPE String. Caracteres sempre maiúsculos Sim
Release Identificador de release do firmware. Exemplo: 0001-fab String Sim
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
do_update Habilitar ou desabilitar a atualização de firmware Booleano Sim
Exemplo do Body
{
  "do_update": true
}
Retorno da Requisição
Status Code Descrição
200 OK, alteração feita com sucesso
500 Erro no servidor, mais informações no body da mensagem de retorno
Exemplos de Retorno
{
  "success": false,
  "message": "Erro ao encontrar dispositivo"
}
{
  "success": true
}

Remover registro de roteador

Formato da URL
/api/v2/device/delete/{ID do CPE}
Método HTTP
DELETE
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
ID do CPE Endereço MAC ou Número serial localizado na etiqueta do CPE String. Caracteres sempre maiúsculos Sim
Retorno da Requisição
Status Code Descrição
200 OK, roteador foi deletado com sucesso
500 Erro interno do servidor
Exemplos de Retorno
{
  "success": true
}

Criar registro de um roteador

Formato da URL
/api/v2/device/create
Método HTTP
PUT
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
mac_address Endereço MAC do roteador que encontra-se na etiqueta do equipamento [A-F]:[A-F]:[A-F]:[A-F]:[A-F]:[A-F] Sim
release Identificador de release do firmware. Exemplo: 0001-fab String Não
pppoe_user Usuário PPPoE String Não
pppoe_password Senha do usuário PPPoE String Não
wifi_ssid Identificação do ponto de acesso sem fio do usuário (SSID) String Não
wifi_password Senha do ponto de acesso sem fio do usuário String Não
wifi_channel Canal do 802.11 Wi-Fi 2.4GHz String Não
wifi_band Largura de banda Wi-Fi 2.4GHz String Não
wifi_mode Modo de operação Wi-Fi 2.4GHz String Não
Exemplo do Body
{
  "content": {
    "mac_address": "FF:FF:FF:00:00:00",
    "release": "0001-fab",
    "pppoe_user": "teste",
    "pppoe_password": "teste123",
    "wifi_ssid": "FlashMan-AP-Teste",
    "wifi_password": "senhateste",
    "wifi_channel": "auto",
    "wifi_band": "auto",
    "wifi_mode": "11g"
  }
}
Retorno da Requisição
Status Code Descrição
200 OK, roteador criado com sucesso
500 Erro no servidor, mais informações no body da mensagem de retorno
Exemplos de Retorno
{
  "success": false,
  "message": "Erro no json recebido",
  "errors": []
}
{
  "success": true,
}
{
  "success": false,
  "message": 'Erro validando os campos, ver campo "errors"',
  "errors": [
    "password": "Este campo deve ter no mínimo 8 caracteres"
  ]
}

Enviar comando para um roteador

Formato da URL
/api/v2/device/command/{ID do CPE}/{Comando}
Método HTTP
PUT
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
ID do CPE Endereço MAC ou Número serial localizado na etiqueta do CPE String. Caracteres sempre maiúsculos Sim
Comando Tipo de comando a ser desempenhado pelo roteador Flashbox Veja os comandos suportados logo abaixo Sim
Comando Descrição
boot Reiniciar roteador Flashbox
log Envia o de log do roteador para o Flashman. Para ver o log, use o comando de visualizar último log
onlinedevs Inicia a coleta de aparelhos conectados ao CPE
ping Inicia execução de teste ping para lista de endereços previamente configurados
pondata Inicia execução da coleta de dados do nível de sinal da interface PON. Utilizar registro de callback para coletar campos pon_rxpower, pon_txpower e pon_signal_measure
rstapp Apagar senha de login do aplicativo do usuário final
rstdevices Reseta a senha do aplicativo do cliente
rstmqtt Cuidado! Gera um novo token MQTT. Apenas use esse comando após a remoção do cadastro do roteador no Flashman
sitesurvey Inicia execução da varredura de redes vizinhas. Utilizar registro de callback para a coleta dos resultados.
speedtest Inicia execução de teste de velocidade para o servidor configurado (Flashman 1.28.0 ou superior e Flashbox 0.24.0 ou superior)
traceroute Inicia execução do teste de traceroute para os destinos previamente definidos através da chamada de API “pinghostslist”
upstatus Inicia execução da coleta de quanto tempo o roteador está online e conectado. Também coleta o tráfego na WAN em bytes
wanbytes Inicia execução da coleta de bytes trafegados na WAN tanto para upload quanto para download. Utilizar registro de callback para coletar resultado
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
500 Erro interno do servidor
404 Comando ou roteador não encontrado
Exemplos de Retorno
{
  "success": true
}
{
    "success": false,
    "message": "CPE não esta online!"
}

Visualizar último log enviado de um roteador

ATENÇÂO! Use esta função após o comando de envio de log.

Formato da URL
/api/v2/device/lastlog/{ID do CPE}
Método HTTP
GET
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
ID do CPE Endereço MAC ou Número serial localizado na etiqueta do CPE String. Caracteres sempre maiúsculos Sim
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
500 Erro interno do servidor
404 Roteador não encontrado
Exemplos de Retorno
{
  "success": true,
  "message": "Não existe log deste roteador"
}
'Content-Encoding', 'gzip',
'Content-Type', 'text/plain'

Visualizar log de boot de um roteador

Formato da URL
/api/v2/device/firstlog/{ID do CPE}
Método HTTP
GET
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
ID do CPE Endereço MAC ou Número serial localizado na etiqueta do CPE String. Caracteres sempre maiúsculos Sim
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
500 Erro interno do servidor
404 Roteador não encontrado
Exemplos de Retorno
{
  "success": true,
  "message": "Não existe log deste roteador"
}
'Content-Encoding', 'gzip',
'Content-Type', 'text/plain'

Consultar abertura de portas de um roteador

Formato da URL
/api/v2/device/portforward/{ID do CPE}
Método HTTP
GET
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
ID do CPE Endereço MAC ou Número serial localizado na etiqueta do CPE String. Caracteres sempre maiúsculos Sim
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "message": "Roteador não encontrado"
}
{
    "success": true,
    "landevices": [
        {
            "mac": "f8:77:b8:ff:ff:ff",
            "port": [
                555
            ],
            "dmz": true,
            "router_port": [
                444
            ],
            "name": "",
            "has_dhcpv6": false
        },
        {
            "mac": "30:fd:38:ff:ff:ff",
            "port": [
                777
            ],
            "dmz": false,
            "router_port": [
                777
            ],
            "name": "Chromecast",
            "has_dhcpv6": false
        }
    ]
}

Configurar abertura de portas de um roteador

Formato da URL
/api/v2/device/portforward/{MAC do roteador}
Método HTTP
PUT
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
MAC do roteador Endereço MAC do roteador que encontra-se na etiqueta do equipamento [A-F]:[A-F]:[A-F]:[A-F]:[A-F]:[A-F] Sim
Exemplo do Body
{
    "content": [{
        "mac": "30:fd:38:ff:ff:ff",
        "port": [777],
        "dmz": false,
        "router_port": [777]
    }]
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "message": "Error ao realizar parser do JSON"
}
{
    "success": true,
    "message": ""
}

Consultar lista de endereços para teste de ping

Formato da URL
/api/v2/device/pinghostslist/{ID do CPE}
Método HTTP
GET
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
ID do CPE Endereço MAC ou Número serial localizado na etiqueta do CPE String. Caracteres sempre maiúsculos Sim
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "message": "Roteador não encontrado"
}
{
    "success": true,
    "ping_hosts_list": [
        "www.google.com",
        "www.facebook.com",
        "www.instagram.com",
        "www.youtube.com",
        "www.terra.com.br"
    ]
}

Configurar lista de endereços para teste de ping

Formato da URL
/api/v2/device/pinghostslist/{ID do CPE}
Método HTTP
PUT
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
ID do CPE Endereço MAC ou Número serial localizado na etiqueta do CPE String. Caracteres sempre maiúsculos Sim
Exemplo do Body
{
    "content": {
        "hosts": [
            "www.google.com",
            "www.facebook.com",
            "www.instagram.com",
            "www.youtube.com",
            "www.terra.com.br",
            "www.g1.com"
        ]
    }
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "message": "Erro ao tratar JSON"
}
{
    "success": true,
    "hosts": [
        "www.google.com",
        "www.facebook.com",
        "www.instagram.com",
        "www.youtube.com",
        "www.terra.com.br",
        "www.g1.com"
    ]
}

Configurar estado de bloqueio do roteador LAN

Formato da URL
/api/v2/device/landevice/block
Método HTTP
PUT
Exemplo do Body
{
    "id": "18:0D:2C:5E:37:00",
    "lanid": "34:fc:ef:fe:57:64",
    "isblocked": false
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": true
}
{
    "success": false,
    "message": "Erro ao buscar CPE (3093)"
}

Configurar posicionamento GPS de um CPE

Formato da URL
/api/v2/device/coordinates
Método HTTP
PUT
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
devices Lista de roteadores, seguindo o formato descrito abaixo Array Sim
devices.*.id Identificador único do roteador, conforme listado no Flashman String Sim
devices.*.latitude Valor de latitude deste roteador Número Sim
devices.*.longitude Valor de longitude deste roteador Número Sim
devices.*.preventAutoUpdate Flag para prevenir atualizações de posicionamento pelos apps Booleano Sim

* Obs.: Os campos de id, latitude, longitude e preventAutoUpdate devem ser fornecidos para cada roteador dentro do Array

Exemplo do Body
[{
    "id": "18:0D:2C:5E:37:00",
    "latitude": 12.3456789,
    "longitude": 0.1234567,
    "preventAutoUpdate": true
}, {
    "id": "AA:AA:AA:AA:AA:AA",
    "latitude": -22.222222",
    "longitude": -11.111111,
    "preventAutoUpdate": true
}]
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
500 Erro ao processar a requisição

Obs.: Caso somente algumas das edições falhem, o Flashman ainda assim retornará status 200, sendo necessário consultar o body da requisição para ver quantos e quais roteadores falharam na atualização dos campos

Exemplos de Retorno
{
    "success": true,
    "okCount": 2,
    "failCount": 0,
    "status": {
        "18:0D:2C:5E:37:00": "Sucesso",
        "AA:AA:AA:AA:AA:AA": "Sucesso"
    }
}
{
    "success": true,
    "okCount": 1,
    "failCount": 1,
    "status": {
        "18:0D:2C:5E:37:00": "Sucesso",
        "AA:AA:AA:AA:AA:AA": "Erro ao buscar a CPE"
    }
}
{
    "success": false,
    "okCount": 0,
    "failCount": 0,
    "status": {},
    "message": "Campo 'devices' inválido"
}

Consultar status de licença de CPE

Formato da URL
/api/v2/device/license/get
Método HTTP
PUT
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
id ID de CPE String Sim
Exemplo do Body
{
    "id": "CC:CC:CC:CC:CC:CC",
}
{
    "id": "ZTEDGH1248DD82",
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
500 Erro ao processar a requisição
Exemplos de Retorno
{
    "success": true,
    "status": true // Licença ativa
}
{
    "success": false,
    "message": "JSON fora do formato"
}

Alterar status de licenças de CPEs

Formato da URL
/api/v2/device/license/set
Método HTTP
PUT
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
ids Lista de IDs de CPEs ou um único ID de CPE Array de Strings ou String Sim
block Booleano para bloquear ou desbloquear as licença(s) dos IDs forncecidos Booleano Sim
Exemplo do Body
{
    "ids": "CC:CC:CC:CC:CC:CC",
    "block": true
}
{
    "ids": ["AA:AA:AA:AA:AA:AA", "BB:BB:BB:BB:BB:BB"],
    "block": false
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
500 Erro ao processar a requisição
Exemplos de Retorno
{
    "success": true,
}
{
    "success": false,
    "message": "JSON fora do formato"
}

Consultar callback para notificações de alteração de roteadores

Formato da URL
/api/v2/device/traps/callback
Método HTTP
GET
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": true,
    "exists": true,
    "user": "admin",
    "url": "http://127.0.0.1:5555",
    "devicesCrud": [{
        "url": "http://127.0.0.1:5555",
        "user": "admin"
    }, {
        "url": "http://127.0.0.1:8888",
        "user": "user"
    }, {
        "url": "http://127.0.0.1:9999",
        "user": "usuario123"
    }]
}

Configurar callback para notificações de alteração de roteadores

Formato da URL
/api/v2/device/traps/callback
Método HTTP
PUT
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
url URL da callback para notificação de alteração String Sim
user Usuário usada para autenticação na URL String Não
secret Senha usada para autenticação na URL String Não

* Obs.: Caso a URL especificada já esteja registrada como uma callback no Flashman, somente serão atualizados o user e secret para aquela URL. Caso não esteja registrada, será adicionada uma nova entrada na lista de callbacks.

Exemplo do Body
{
  "url": "http://localhost:5555",
  "user": "admin",
  "secret": "1234"
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "message": "Error gravar dados na base"
}
{
    "success": true,
    "message": "Endereço salvo com sucesso",
}

Deletar callback para notificações de alteração de roteadores

Formato da URL
/api/v2/device/traps/callback
Método HTTP
DELETE
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
index Índice a ser deletado da lista de callbacks registradas Inteiro Sim

* Obs.: O index pode ser consultado através de um GET, para consulta da lista atual

Exemplo do Body
{
  "index": 1
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
500 Erro processando a requisição
Exemplos de Retorno
{
    "success": false,
    "message": "Não foi encontrado nenhum elemento para o índice passado"
}
{
    "success": true,
    "message": "Operação realizada com sucesso"
}

Obter todos os usuários

Formato da URL
/api/v2/user/get/all
Método HTTP
GET
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": true,
    "type": "success",
    "users": [
        {
            "_id": "5d80dd2c04980000aef80ca2",
            "createdAt": "2019-09-17T13:18:36.111Z",
            "autoUpdate": true,
            "maxElementsPerPage": 50,
            "is_superuser": true,
            "name": "CarolinaNNN",
            "password": "$2a$05$MLUESjuUwMW1f5G80e/HjONjo8huRm3lITAVzWHFnsKLYYK3QhkXG",
            "__v": 137,
            "lastLogin": "2022-03-03T17:43:47.220Z",
            "visibleColumnsOnPage": [
                4,
                5,
                6,
                7,
                8,
                10,
                11,
                12
            ],
            "role": "Supervisão"
        },
        {
            "_id": "5d9f72e78a02a80019961fca",
            "createdAt": "2019-10-03T21:49:30.748Z",
            "autoUpdate": true,
            "maxElementsPerPage": 10,
            "is_superuser": false,
            "name": "Rodrigo",
            "password": "$2a$05$kTy5rakI9kPb67dPAnWPhecKXv.7Osb2Y4Gj2w1m.xXEAIN2VUCsa",
            "role": "Supervisão",
            "__v": 4,
            "lastLogin": "2022-03-02T13:24:47.350Z",
            "visibleColumnsOnPage": [
                4,
                5,
                6,
                7,
                8,
                10,
                11,
                12
            ]
        }
    ]
}

Editar usuário

Formato da URL
/api/v2/user/edit/{Id do usuário}
Método HTTP
PUT
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
Id do usuário String com chave identificadora de usuário (_id) String Sim
Exemplo do Body
{
  "name": "teste",
  "password": "teste1234",
  "passwordack": "teste1234",
  "role": "Gerente"
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "type": "danger",
    "message": "Error gravar dados na base"
}
{
    "success": true,
    "type": "success",
    "message": "Editado com sucesso!"
}

Criar usuário

Formato da URL
/api/v2/user/new
Método HTTP
PUT
Exemplo do Body
{
  "name": "joao",
  "password": "teste1234",
  "role": "Gerente"
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "type": "danger",
    "message": "Error gravar dados na base"
}
{
    "success": true,
    "type": "success",
    "message": "Usuário criado com sucesso!"
}

Remover usuário

Formato da URL
/api/v2/user/del
Método HTTP
PUT
Exemplo do Body
{
  "ids": ["8sdu8sdhusdnc8sdc", "jsud8989a8s98asxnuas"],
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "type": "danger",
    "message": "Error gravar dados na base"
}
{
    "success": true,
    "type": "success",
    "message": "Usuário(s) deletado(s) com sucesso!"
}

Consultar callback para notificações de alteração de usuários

Formato da URL
/api/v2/user/traps/callback
Método HTTP
GET
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": true,
    "exists": true,
    "user": "admin",
    "url": "http://127.0.0.1:5555",
    "devicesCrud": [{
        "url": "http://127.0.0.1:5555",
        "user": "admin"
    }, {
        "url": "http://127.0.0.1:8888",
        "user": "user"
    }, {
        "url": "http://127.0.0.1:9999",
        "user": "usuario123"
    }]
}

Configurar callback para notificações de alteração de usuários

Formato da URL
/api/v2/user/traps/callback
Método HTTP
PUT
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
url URL da callback para notificação de alteração String Sim
user Usuário usada para autenticação na URL String Não
secret Senha usada para autenticação na URL String Não

* Obs.: Caso a URL especificada já esteja registrada como uma callback no Flashman, somente serão atualizados o user e secret para aquela URL. Caso não esteja registrada, será adicionada uma nova entrada na lista de callbacks.

Exemplo do Body
{
  "url": "http://localhost:5555",
  "user": "admin",
  "secret": "1234"
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "message": "Error gravar dados na base"
}
{
    "success": true,
    "message": "Endereço salvo com sucesso",
}

Deletar callback para notificações de alteração de usuários

Formato da URL
/api/v2/user/traps/callback
Método HTTP
DELETE
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
index Índice a ser deletado da lista de callbacks registradas Inteiro Sim

* Obs.: O index pode ser consultado através de um GET, para consulta da lista atual

Exemplo do Body
{
  "index": 1
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
500 Erro processando a requisição
Exemplos de Retorno
{
    "success": false,
    "message": "Não foi encontrado nenhum elemento para o índice passado"
}
{
    "success": true,
    "message": "Operação realizada com sucesso"
}

Obter todas as classes de permissões

Formato da URL
/api/v2/role/get/all
Método HTTP
GET
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": true,
    "type": "success",
    "roles": [
        {
            "grantWifiInfo": 0,
            "grantPPPoEInfo": 0,
            "grantPassShow": false,
            "grantFirmwareUpgrade": false,
            "grantWanType": false,
            "grantDeviceId": false,
            "grantDeviceActions": false,
            "grantDeviceRemoval": false,
            "grantDeviceAdd": false,
            "grantMonitorManage": false,
            "grantFirmwareManage": false,
            "grantAPIAccess": false,
            "grantLOGAccess": false,
            "grantNotificationPopups": false,
            "grantLanEdit": true,
            "grantLanDevices": 2,
            "_id": "5b90a64a82e383001cff8sda3222336",
            "name": "Gerente",
            "__v": 0
        }
    ]
}

Editar classe de permissão

Formato da URL
/api/v2/role/edit/{Id da classe de permissão}
Método HTTP
PUT
Formato da Requisição
Parâmetro Descrição Formato Obrigatório
Id da classe de permissão String com chave identificadora da classe de permissão (_id) String Sim
Exemplo do Body
{
    "grant-wifi-info": 0,
    "grant-pppoe-info": 0,
    "grant-pass-show": false,
    "grant-firmware-upgrade": false,
    "grant-wan-type": false,
    "grant-device-id": false,
    "grant-device-actions": false,
    "grant-device-removal": false,
    "grant-device-add": false,
    "grant-monitor-manage": false,
    "grant-firmware-manage": false,
    "grant-api-access": false,
    "grant-log-access": false,
    "grant-notification-popups": false,
    "grant-lan-edit": true,
    "grant-lan-devices": 2
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "type": "danger",
    "message": "Erro ao editar classe."
}
{
    "success": true,
    "type": "success",
    "message": "Classe de permissões editada com sucesso!"
}

Criar classe de permissão

Formato da URL
/api/v2/role/new
Método HTTP
PUT
Exemplo do Body
{
    "name": "Teste",
    "grant-wifi-info": 0,
    "grant-pppoe-info": 0,
    "grant-pass-show": false,
    "grant-firmware-upgrade": false,
    "grant-wan-type": false,
    "grant-device-id": false,
    "grant-device-actions": false,
    "grant-device-removal": false,
    "grant-device-add": false,
    "grant-monitor-manage": false,
    "grant-firmware-manage": false,
    "grant-api-access": false,
    "grant-log-access": false,
    "grant-notification-popups": false,
    "grant-lan-edit": true,
    "grant-lan-devices": 2
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "type": "danger",
    "message": "Error gravar dados na base"
}
{
    "success": true,
    "type": "success",
    "message": "Classe de permissões criada com sucesso!"
}

Remover classe de permissão

Formato da URL
/api/v2/role/del
Método HTTP
PUT
Exemplo do Body
{
        "names": ["Gerente", "Tecnico"],
  "ids": ["asdaoss8jx8sdasgdfgdasdas", "$saa88ajj2121bbshs"]
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "type": "danger",
    "message": "Error gravar dados na base"
}
{
    "success": true,
    "type": "success",
    "message": "Classes deletada(s) com sucesso!"
}

Consultar callback para notificações de alteração de classe de permissões

Formato da URL
/api/v2/role/traps/callback
Método HTTP
GET
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": true,
    "exists": true,
    "user": "admin",
    "url": "http://127.0.0.1:5555",
    "devicesCrud": [{
        "url": "http://127.0.0.1:5555",
        "user": "admin"
    }, {
        "url": "http://127.0.0.1:8888",
        "user": "user"
    }, {
        "url": "http://127.0.0.1:9999",
        "user": "usuario123"
    }]
}

Configurar callback para notificações de alteração de classe de permissões

Formato da URL
/api/v2/role/traps/callback
Método HTTP
PUT
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
url URL da callback para notificação de alteração String Sim
user Usuário usada para autenticação na URL String Não
secret Senha usada para autenticação na URL String Não

* Obs.: Caso a URL especificada já esteja registrada como uma callback no Flashman, somente serão atualizados o user e secret para aquela URL. Caso não esteja registrada, será adicionada uma nova entrada na lista de callbacks.

Exemplo do Body
{
  "url": "http://localhost:5555",
  "user": "admin",
  "secret": "1234"
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "message": "Error gravar dados na base"
}
{
    "success": true,
    "message": "Endereço salvo com sucesso",
}

Deletar callback para notificações de alteração de classe de permissões

Formato da URL
/api/v2/role/traps/callback
Método HTTP
DELETE
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
index Índice a ser deletado da lista de callbacks registradas Inteiro Sim

* Obs.: O index pode ser consultado através de um GET, para consulta da lista atual

Exemplo do Body
{
  "index": 1
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
500 Erro processando a requisição
Exemplos de Retorno
{
    "success": false,
    "message": "Não foi encontrado nenhum elemento para o índice passado"
}
{
    "success": true,
    "message": "Operação realizada com sucesso"
}

Consultar callback para notificações de alteração de certificações

Formato da URL
/api/v2/certification/traps/callback
Método HTTP
GET
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": true,
    "exists": true,
    "user": "admin",
    "url": "http://127.0.0.1:5555",
    "devicesCrud": [{
        "url": "http://127.0.0.1:5555",
        "user": "admin"
    }, {
        "url": "http://127.0.0.1:8888",
        "user": "user"
    }, {
        "url": "http://127.0.0.1:9999",
        "user": "usuario123"
    }]
}

Configurar callback para notificações de alteração de certificações

Formato da URL
/api/v2/certification/traps/callback
Método HTTP
PUT
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
url URL da callback para notificação de alteração String Sim
user Usuário usada para autenticação na URL String Não
secret Senha usada para autenticação na URL String Não

* Obs.: Caso a URL especificada já esteja registrada como uma callback no Flashman, somente serão atualizados o user e secret para aquela URL. Caso não esteja registrada, será adicionada uma nova entrada na lista de callbacks.

Exemplo do Body
{
  "url": "http://localhost:5555",
  "user": "admin",
  "secret": "1234"
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
Exemplos de Retorno
{
    "success": false,
    "message": "Error gravar dados na base"
}
{
    "success": true,
    "message": "Endereço salvo com sucesso",
}

Deletar callback para notificações de alteração de certificações

Formato da URL
/api/v2/certification/traps/callback
Método HTTP
DELETE
Parâmetros do Body
Parâmetro Descrição Formato Obrigatório
index Índice a ser deletado da lista de callbacks registradas Inteiro Sim

* Obs.: O index pode ser consultado através de um GET, para consulta da lista atual

Exemplo do Body
{
  "index": 1
}
Retorno da Requisição
Status Code Descrição
200 OK, comando executado com sucesso
500 Erro processando a requisição
Exemplos de Retorno
{
    "success": false,
    "message": "Não foi encontrado nenhum elemento para o índice passado"
}
{
    "success": true,
    "message": "Operação realizada com sucesso"
}