> For the complete documentation index, see [llms.txt](https://portal-integracao.intelbras.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://portal-integracao.intelbras.com.br/xpe-ip-3xxx/xpe-ip-3xxx-xpe-3101-ip-xpe-3101t-ip-e-xpe-3001t-ip.md).

# XPE IP 3XXX (XPE 3101 IP, XPE 3101T IP e XPE 3001T IP)

##

### 1. Introdução

A API HTTP permite o controle de funções dos videoporteiros XPE 3101 IP, XPE 3101T IP e XPE 3001T IP via HTTP, possibilitando a integração com produtos de terceiros, como sistemas de automação residencial, segurança e monitoramento.

### 2. Descrição da API HTTP

* Baseado nos métodos HTTP GET/POST
* Formato JSON para mensagens interativas
* Modo de upload FORM padrão para transferência de arquivos
* Todos os comandos enviados via HTTP/HTTPS com o prefixo `/api`
* O caminho absoluto inclui o módulo alvo e o nome da ação

### 3. Requisição da API HTTP

Todas as requisições seguem o formato:

```
http://ip:port/api?target=xxx&action=xxx&xxx=xxx
```

* `target`: nome do módulo (ex.: `system`, `relay`, `sip`)
* `action`: nome da ação (ex.: `get`, `set`, `status`)
* Parâmetros adicionais dependem do módulo e da ação

### 4. Método da API HTTP

| Método | Uso                                             |
| ------ | ----------------------------------------------- |
| GET    | Parâmetros de consulta na URL                   |
| POST   | Corpo JSON ou upload FORM (multipart/form-data) |

### 5. Resposta da API HTTP

#### 5.1 Resposta Positiva sem Parâmetros

```
{
    "Status": "READY"
}
```

#### 5.2 Resposta Positiva com Parâmetros

```
{
    "Status": "READY",
    "param1": "value1",
    "param2": "value2"
}
```

#### 5.3 Resposta Negativa (códigos de erro)

Respostas negativas retornam códigos de erro que indicam o motivo da falha.

### 6. Configuração da API HTTP

| Campo     | Descrição                                  |
| --------- | ------------------------------------------ |
| HTTP API  | Desabilitado/Habilitado                    |
| Auth Mode | Nenhum/Normal/WhiteList/Basic/Digest/Token |
| User Name | admin (padrão)                             |
| Password  | httpapi (padrão)                           |
| IP01      | IP da lista branca                         |
| IP02      | IP da lista branca                         |
| IP03      | IP da lista branca                         |
| IP04      | IP da lista branca                         |
| IP05      | IP da lista branca                         |

### 7. Método de Autenticação da API HTTP

1. **None** — Sem autenticação (somente para testes de demonstração)
2. **Normal** — Reservado
3. **WhiteList** — Controle de acesso baseado em IP para LAN
4. **Basic** — Nome de usuário/senha codificados em Base64 (RFC2671)
5. **Digest** — Criptografia de senha MD5 (RFC2671)
6. **Token** — Reservado

Credenciais padrão: Usuário `admin`, Senha `httpapi`

### 8. Funções da API HTTP

| Módulo      | Ações                                     |
| ----------- | ----------------------------------------- |
| system      | info, status, reboot                      |
| firmware    | param, status, prepare, upload, upgrade   |
| config      | get, set, export, import, reset\_factory  |
| relay       | get, set, status, trig                    |
| input       | get, set, status                          |
| publiccode  | get, set                                  |
| privatekey  | get, add, set, del, clear, export, import |
| rfkey       | get, add, set, del, clear, export, import |
| contact     | get, add, set, del, clear, export, import |
| group       | get, add, set, clear                      |
| call        | status, dial, hangup                      |
| sip         | get, set, status                          |
| dialreplace | get, add, set, del, clear, export, import |
| log         | get, set, export, clear                   |
| calllog     | get, del, clear, export                   |
| doorlog     | get, del, clear, export                   |
| pcap        | status, start, stop, export               |

***

### Api system

#### Api system info

**Descrição:** Obtém informações do sistema.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=system&action=info
```

**Exemplo de Resposta:**

```
{
    "Model": "R29S",
    "MAC": "xx:xx:xx:xx:xx:xx",
    "FirmwareVersion": "29.1.1.250",
    "HardwareVersion": "29.3.0",
    "PortType": "0",
    "LinkStatus": "1",
    "IPAddress": "192.168.1.78",
    "SubnetMask": "255.255.255.0",
    "Gateway": "192.168.1.1",
    "DNS1": "192.168.1.1",
    "DNS2": "192.168.1.1",
    "Account1": {
        "UserName": "114",
        "SipServer": "192.168.1.115",
        "Status": "2"
    },
    "Account2": {
        "UserName": "115",
        "SipServer": "192.168.1.115",
        "Status": "2"
    }
}
```

**Parâmetros:**

| Parâmetro          | Descrição                                                                         |
| ------------------ | --------------------------------------------------------------------------------- |
| Model              | Modelo do dispositivo                                                             |
| MAC                | Endereço MAC                                                                      |
| FirmwareVersion    | Versão do firmware                                                                |
| HardwareVersion    | Versão do hardware                                                                |
| PortType           | 0=DHCP, 1=Estático                                                                |
| LinkStatus         | 0=Desconectado, 1=Conectado, 2=Conflito de IP                                     |
| IPAddress          | Endereço IP                                                                       |
| SubnetMask         | Máscara de sub-rede                                                               |
| Gateway            | Gateway                                                                           |
| DNS1               | Servidor DNS 1                                                                    |
| DNS2               | Servidor DNS 2                                                                    |
| Account1.UserName  | Nome de usuário da conta SIP 1                                                    |
| Account1.SipServer | Servidor da conta SIP 1                                                           |
| Account1.Status    | -1=desconhecido, 0=desabilitado, 1=registrando, 2=registrado, 3=falha no registro |
| Account2.UserName  | Nome de usuário da conta SIP 2                                                    |
| Account2.SipServer | Servidor da conta SIP 2                                                           |
| Account2.Status    | -1=desconhecido, 0=desabilitado, 1=registrando, 2=registrado, 3=falha no registro |

#### Api system status

**Descrição:** Obtém o status do sistema.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=system&action=status
```

**Exemplo de Resposta:**

```
{
    "SystemTime": "1584000000",
    "UpTime": "12345"
}
```

**Parâmetros:**

| Parâmetro  | Descrição                         |
| ---------- | --------------------------------- |
| SystemTime | Tempo Unix                        |
| UpTime     | Tempo de atividade do dispositivo |

#### Api system reboot

**Descrição:** Reinicia o dispositivo.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=system&action=reboot
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api firmware

#### Api firmware param

**Descrição:** Obtém os parâmetros de atualização do firmware.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=firmware&action=param
```

**Exemplo de Resposta:**

```
{
    "md5": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "silent": "0"
}
```

**Parâmetros:**

| Parâmetro | Descrição                                                                             |
| --------- | ------------------------------------------------------------------------------------- |
| md5       | string, opcional, md5sum do firmware                                                  |
| silent    | 0=a interface exibirá o processo de atualização, 1=upload em segundo plano, padrão: 0 |

#### Api firmware status

**Descrição:** Obtém o status da atualização do firmware.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=firmware&action=status
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api firmware prepare

**Descrição:** Prepara a atualização do firmware.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição                                                                             |
| --------- | ------------------------------------------------------------------------------------- |
| md5       | string, opcional, md5sum do firmware                                                  |
| silent    | 0=a interface exibirá o processo de atualização, 1=upload em segundo plano, padrão: 0 |

**Exemplo de Requisição:**

```
http://ip:port/api?target=firmware&action=prepare&md5=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&silent=0
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api firmware upload

**Descrição:** Envia o arquivo do firmware.

**Método:** POST (multipart/form-data)

**Parâmetros:**

| Parâmetro | Descrição           |
| --------- | ------------------- |
| file      | arquivo do firmware |

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=firmware&action=upload
Content-Type: multipart/form-data
file=@firmware.bin
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api firmware upgrade

**Descrição:** Inicia a atualização do firmware.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=firmware&action=upgrade
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api config

#### Api config get

**Descrição:** Obtém a configuração do dispositivo.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=config&action=get
```

**Exemplo de Resposta:**

```
{
    "Config": {
        "DoorSetting": {
            "RELAY": {
                "TypeA": "0",
                "TypeB": "0",
                "TypeC": "0",
                "HoldDelayA": "3",
                "HoldDelayB": "3",
                "HoldDelayC": "3",
                "TriggerDelayA": "0",
                "TriggerDelayB": "0",
                "TriggerDelayC": "0"
            },
            "DTMF": {
                "Enable": "0",
                "Option": "1",
                "Code1": "1",
                "Code2": "2",
                "Code3": "3",
                "MultiCode1": "1234",
                "MultiCode2": "2345",
                "MultiCode3": "3456"
            }
        }
    }
}
```

#### Api config set

**Descrição:** Define a configuração do dispositivo.

**Método:** POST

**Parâmetros:** Corpo JSON com os campos de configuração (consulte `Api config get` para a lista completa de campos).

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=config&action=set
Content-Type: application/json

{
    "Config": {
        "DoorSetting": {
            "RELAY": {
                "TypeA": "0",
                "HoldDelayA": "3",
                "TriggerDelayA": "0"
            }
        }
    }
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api config export

**Descrição:** Exporta o arquivo de configuração.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição                                         |
| --------- | ------------------------------------------------- |
| filetype  | parâmetro opcional, tipo padrão csv (csv/xml/vcf) |

**Exemplo de Requisição:**

```
http://ip:port/api?target=config&action=export&filetype=csv
```

**Exemplo de Resposta:** Download do arquivo de configuração.

#### Api config import

**Descrição:** Importa o arquivo de configuração.

**Método:** POST (multipart/form-data)

**Parâmetros:**

| Parâmetro | Descrição               |
| --------- | ----------------------- |
| file      | arquivo de configuração |

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=config&action=import
Content-Type: multipart/form-data
file=@config.csv
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api config reset\_factory

**Descrição:** Restaura o dispositivo para os padrões de fábrica.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=config&action=reset_factory
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api relay

#### Api relay get

**Descrição:** Obtém a configuração do relé.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=relay&action=get
```

**Exemplo de Resposta:**

```
{
    "Config": {
        "DoorSetting": {
            "RELAY": {
                "TypeA": "0",
                "TypeB": "0",
                "TypeC": "0",
                "HoldDelayA": "3",
                "HoldDelayB": "3",
                "HoldDelayC": "3",
                "TriggerDelayA": "0",
                "TriggerDelayB": "0",
                "TriggerDelayC": "0"
            },
            "DTMF": {
                "Enable": "0",
                "Option": "1",
                "Code1": "1",
                "Code2": "2",
                "Code3": "3",
                "MultiCode1": "1234",
                "MultiCode2": "2345",
                "MultiCode3": "3456"
            }
        }
    }
}
```

**Parâmetros:**

| Parâmetro                              | Descrição                                                       |
| -------------------------------------- | --------------------------------------------------------------- |
| Config.DoorSetting.RELAY.TypeA         | Tipo de abertura do relé (0=Abertura NC-COM, 1=Abertura NO-COM) |
| Config.DoorSetting.RELAY.TypeB         | Tipo de abertura do relé                                        |
| Config.DoorSetting.RELAY.TypeC         | Tipo de abertura do relé                                        |
| Config.DoorSetting.RELAY.HoldDelayA    | Tempo de retenção do relé 0\~60 segundos                        |
| Config.DoorSetting.RELAY.HoldDelayB    | Tempo de retenção do relé                                       |
| Config.DoorSetting.RELAY.HoldDelayC    | Tempo de retenção do relé                                       |
| Config.DoorSetting.RELAY.TriggerDelayA | Atraso de acionamento do relé 0\~60 segundos                    |
| Config.DoorSetting.RELAY.TriggerDelayB | Atraso de X segundos para acionar o relé                        |
| Config.DoorSetting.RELAY.TriggerDelayC | Atraso de acionamento do relé                                   |
| Config.DoorSetting.DTMF.Enable         | Habilitar DTMF                                                  |
| Config.DoorSetting.DTMF.Option         | n=1: DTMF de 1 dígito, n=2~~4: DTMF de 2~~4 dígitos             |
| Config.DoorSetting.DTMF.Code1          | um código DTMF                                                  |
| Config.DoorSetting.DTMF.Code2          | um código DTMF                                                  |
| Config.DoorSetting.DTMF.Code3          | um código DTMF                                                  |
| Config.DoorSetting.DTMF.MultiCode1     | código DTMF de 2\~4 dígitos                                     |
| Config.DoorSetting.DTMF.MultiCode2     | código DTMF de 2\~4 dígitos                                     |
| Config.DoorSetting.DTMF.MultiCode3     | código DTMF de 2\~4 dígitos                                     |

#### Api relay set

**Descrição:** Define a configuração do relé.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api relay get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=relay&action=set
Content-Type: application/json

{
    "Config": {
        "DoorSetting": {
            "RELAY": {
                "TypeA": "0",
                "HoldDelayA": "3"
            }
        }
    }
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api relay status

**Descrição:** Obtém o status do relé.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=relay&action=status
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api relay trig

**Descrição:** Aciona um relé.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição                         |
| --------- | --------------------------------- |
| mode      | 0=Fechamento automático, 1=Manual |
| num       | 1=Relé A, 2=Relé B, 3=Relé C      |
| level     | 0=NO-COM, 1=NC-COM                |
| delay     | 0\~65535 (segundos)               |

**Exemplo de Requisição:**

```
http://ip:port/api?target=relay&action=trig&mode=0&num=1&level=0&delay=3
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api input

#### Api input get

**Descrição:** Obtém a configuração das entradas.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=input&action=get
```

**Exemplo de Resposta:**

```
{
    "Config": {
        "DoorSetting": {
            "INPUT": {
                "EnableA": "0",
                "EnableB": "0",
                "EnableC": "0",
                "OptionA": "0",
                "OptionB": "0",
                "OptionC": "0",
                "DelayA": "0",
                "DelayB": "0",
                "DelayC": "0",
                "RelayIdA": "1",
                "RelayIdB": "1",
                "RelayIdC": "1",
                "ActionUrlA": "",
                "ActionUrlB": "",
                "ActionUrlC": "",
                "FtpEnableA": "0",
                "FtpEnableB": "0",
                "FtpEnableC": "0",
                "HttpEnableA": "0",
                "HttpEnableB": "0",
                "HttpEnableC": "0",
                "SmtpEnableA": "0",
                "SmtpEnableB": "0",
                "SmtpEnableC": "0",
                "SipEnableA": "0",
                "SipEnableB": "0",
                "SipEnableC": "0"
            },
            "Action": {
                "CallNum": "",
                "CallName": ""
            }
        }
    }
}
```

**Parâmetros:**

| Parâmetro                            | Descrição                                              |
| ------------------------------------ | ------------------------------------------------------ |
| Config.DoorSetting.INPUT.EnableA     | Habilitar entrada                                      |
| Config.DoorSetting.INPUT.EnableB     | Habilitar entrada                                      |
| Config.DoorSetting.INPUT.EnableC     | Habilitar entrada                                      |
| Config.DoorSetting.INPUT.OptionA     | 0=Acionamento baixo, 1=Acionamento alto                |
| Config.DoorSetting.INPUT.OptionB     | Opção de acionamento                                   |
| Config.DoorSetting.INPUT.OptionC     | Opção de acionamento                                   |
| Config.DoorSetting.INPUT.DelayA      | Atraso de acionamento 0\~65536 segundos                |
| Config.DoorSetting.INPUT.DelayB      | 0=acionar agora, 1\~65536=acionar após X segundos      |
| Config.DoorSetting.INPUT.DelayC      | Atraso de acionamento                                  |
| Config.DoorSetting.INPUT.RelayIdA    | 1=Relé A, 2=Relé B, 3=Relé C                           |
| Config.DoorSetting.INPUT.RelayIdB    | Acionar qual relé                                      |
| Config.DoorSetting.INPUT.RelayIdC    | Acionar qual relé                                      |
| Config.DoorSetting.INPUT.ActionUrlA  | URL de ação                                            |
| Config.DoorSetting.INPUT.ActionUrlB  | URL de ação                                            |
| Config.DoorSetting.INPUT.ActionUrlC  | URL de ação                                            |
| Config.DoorSetting.INPUT.FtpEnableA  | 0=Desabilitar, 1=Habilitar                             |
| Config.DoorSetting.INPUT.FtpEnableB  | enviar arquivos de captura para o servidor FTP         |
| Config.DoorSetting.INPUT.FtpEnableC  | enviar arquivos de captura para o servidor FTP         |
| Config.DoorSetting.INPUT.HttpEnableA | 0=Desabilitar, 1=Habilitar                             |
| Config.DoorSetting.INPUT.HttpEnableB | enviar uma requisição HTTP GET com URL                 |
| Config.DoorSetting.INPUT.HttpEnableC | enviar uma requisição HTTP GET com URL                 |
| Config.DoorSetting.INPUT.SmtpEnableA | 0=Desabilitar, 1=Habilitar                             |
| Config.DoorSetting.INPUT.SmtpEnableB | enviar arquivos de captura via SMTP                    |
| Config.DoorSetting.INPUT.SmtpEnableC | enviar arquivos de captura via SMTP                    |
| Config.DoorSetting.INPUT.SipEnableA  | quando a entrada for acionada, iniciar uma chamada SIP |
| Config.DoorSetting.INPUT.SipEnableB  | quando a entrada for acionada, iniciar uma chamada SIP |
| Config.DoorSetting.INPUT.SipEnableC  | quando a entrada for acionada, iniciar uma chamada SIP |
| Config.DoorSetting.Action.CallNum    | número da chamada SIP                                  |
| Config.DoorSetting.Action.CallName   | nome de exibição remoto da chamada SIP                 |

#### Api input set

**Descrição:** Define a configuração das entradas.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api input get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=input&action=set
Content-Type: application/json

{
    "Config": {
        "DoorSetting": {
            "INPUT": {
                "EnableA": "1",
                "OptionA": "0",
                "DelayA": "5",
                "RelayIdA": "1"
            }
        }
    }
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api input status

**Descrição:** Obtém o status das entradas.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=input&action=status
```

**Exemplo de Resposta:**

```
{
    "InputA": "0",
    "InputB": "0",
    "InputC": "0"
}
```

**Parâmetros:**

| Parâmetro | Descrição             |
| --------- | --------------------- |
| InputA    | Nível GPIO da porta A |
| InputB    | Nível GPIO da porta B |
| InputC    | Nível GPIO da porta C |

***

### Api publiccode

#### Api publiccode get

**Descrição:** Obtém a configuração do código público.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=publiccode&action=get
```

**Exemplo de Resposta:**

```
{
    "Config": {
        "DoorSetting": {
            "PASSWORD": {
                "PublicKeyEnable": "0",
                "PublicKey1": "",
                "PublicKey2": "",
                "PublicKey3": "",
                "PublicKeyBitsLimit": "0"
            }
        }
    }
}
```

**Parâmetros:**

| Parâmetro                                      | Descrição                                        |
| ---------------------------------------------- | ------------------------------------------------ |
| Config.DoorSetting.PASSWORD.PublicKeyEnable    | 0=Desabilitar, 1=Habilitar                       |
| Config.DoorSetting.PASSWORD.PublicKey1         | Chave pública 1                                  |
| Config.DoorSetting.PASSWORD.PublicKey2         | Chave pública 2                                  |
| Config.DoorSetting.PASSWORD.PublicKey3         | Chave pública 3                                  |
| Config.DoorSetting.PASSWORD.PublicKeyBitsLimit | 0=8 bits, 1=4 bits, 2=5 bits, 3=6 bits, 4=7 bits |

#### Api publiccode set

**Descrição:** Define a configuração do código público.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api publiccode get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=publiccode&action=set
Content-Type: application/json

{
    "Config": {
        "DoorSetting": {
            "PASSWORD": {
                "PublicKeyEnable": "1",
                "PublicKey1": "123456",
                "PublicKeyBitsLimit": "0"
            }
        }
    }
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api privatekey

#### Api privatekey get

**Descrição:** Obtém a lista de chaves privadas.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=privatekey&action=get
```

**Exemplo de Resposta:**

```
{
    "List": [
        {
            "ID": "1",
            "Code": "12345678",
            "DoorNum": "123",
            "Mon": "1",
            "Tue": "1",
            "Wed": "1",
            "Thur": "1",
            "Fri": "1",
            "Sat": "1",
            "Sun": "1",
            "TimeStart": "00:00",
            "TimeEnd": "00:00"
        }
    ]
}
```

**Parâmetros:**

| Parâmetro | Descrição                                                   |
| --------- | ----------------------------------------------------------- |
| ID        | ex.: "ID":"1"                                               |
| Code      | Número de série RF, ex.: "Code":"12345678"                  |
| DoorNum   | 1=Porta A, 2=Porta B, 3=Porta C, ex.: "DoorNum":"123"       |
| Mon       | 0=Desabilitar, 1=Habilitar                                  |
| Tue       | 0=Desabilitar, 1=Habilitar                                  |
| Wed       | 0=Desabilitar, 1=Habilitar                                  |
| Thur      | 0=Desabilitar, 1=Habilitar                                  |
| Fri       | 0=Desabilitar, 1=Habilitar                                  |
| Sat       | 0=Desabilitar, 1=Habilitar                                  |
| Sun       | 0=Desabilitar, 1=Habilitar                                  |
| TimeStart | "00:00"-"23:59", "00:00"-"00:00": a chave funcionará sempre |
| TimeEnd   | "00:00"-"23:59"                                             |

#### Api privatekey add

**Descrição:** Adiciona uma chave privada.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api privatekey get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=privatekey&action=add
Content-Type: application/json

{
    "Code": "12345678",
    "DoorNum": "123",
    "Mon": "1",
    "Tue": "1",
    "Wed": "1",
    "Thur": "1",
    "Fri": "1",
    "Sat": "1",
    "Sun": "1",
    "TimeStart": "00:00",
    "TimeEnd": "00:00"
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api privatekey set

**Descrição:** Define uma chave privada.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api privatekey get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=privatekey&action=set
Content-Type: application/json

{
    "ID": "1",
    "Code": "12345678",
    "DoorNum": "123",
    "TimeStart": "08:00",
    "TimeEnd": "18:00"
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api privatekey del

**Descrição:** Exclui uma chave privada.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição   |
| --------- | ----------- |
| ID        | ID da chave |

**Exemplo de Requisição:**

```
http://ip:port/api?target=privatekey&action=del&ID=1
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api privatekey clear

**Descrição:** Limpa todas as chaves privadas.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=privatekey&action=clear
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api privatekey export

**Descrição:** Exporta as chaves privadas.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição                                         |
| --------- | ------------------------------------------------- |
| filetype  | parâmetro opcional, tipo padrão csv (csv/xml/vcf) |

**Exemplo de Requisição:**

```
http://ip:port/api?target=privatekey&action=export&filetype=csv
```

**Exemplo de Resposta:** Download do arquivo.

#### Api privatekey import

**Descrição:** Importa as chaves privadas.

**Método:** POST (multipart/form-data)

**Parâmetros:**

| Parâmetro | Descrição         |
| --------- | ----------------- |
| file      | arquivo de chaves |

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=privatekey&action=import
Content-Type: multipart/form-data
file=@keys.csv
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api rfkey

#### Api rfkey get

**Descrição:** Obtém a lista de chaves RF.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=rfkey&action=get
```

**Exemplo de Resposta:**

```
{
    "List": [
        {
            "ID": "1",
            "Code": "12345678",
            "DoorNum": "123",
            "Mon": "1",
            "Tue": "1",
            "Wed": "1",
            "Thur": "1",
            "Fri": "1",
            "Sat": "1",
            "Sun": "1",
            "TimeStart": "00:00",
            "TimeEnd": "00:00",
            "Tags": "0",
            "Frequency": "0",
            "DoorWebRelay": ""
        }
    ]
}
```

**Parâmetros:**

| Parâmetro    | Descrição                                                   |
| ------------ | ----------------------------------------------------------- |
| ID           | ex.: "ID":"1"                                               |
| Code         | Número de série RF, ex.: "Code":"12345678"                  |
| DoorNum      | 1=Porta A, 2=Porta B, 3=Porta C, ex.: "DoorNum":"123"       |
| Mon          | 0=Desabilitar, 1=Habilitar                                  |
| Tue          | 0=Desabilitar, 1=Habilitar                                  |
| Wed          | 0=Desabilitar, 1=Habilitar                                  |
| Thur         | 0=Desabilitar, 1=Habilitar                                  |
| Fri          | 0=Desabilitar, 1=Habilitar                                  |
| Sat          | 0=Desabilitar, 1=Habilitar                                  |
| Sun          | 0=Desabilitar, 1=Habilitar                                  |
| TimeStart    | "00:00"-"23:59", "00:00"-"00:00": a chave funcionará sempre |
| TimeEnd      | "00:00"-"23:59"                                             |
| Tags         | 0=PERMITIDA, 1=FREQUÊNCIA, 2=PROIBIDA, 3=AGENDADA           |
| Frequency    | 0\~65535                                                    |
| DoorWebRelay | (Reservado) para ação WebRelay                              |

#### Api rfkey add

**Descrição:** Adiciona uma chave RF.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api rfkey get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=rfkey&action=add
Content-Type: application/json

{
    "Code": "12345678",
    "DoorNum": "123",
    "Tags": "0",
    "Frequency": "0",
    "TimeStart": "00:00",
    "TimeEnd": "00:00"
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api rfkey set

**Descrição:** Define uma chave RF.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api rfkey get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=rfkey&action=set
Content-Type: application/json

{
    "ID": "1",
    "Code": "12345678",
    "DoorNum": "123",
    "Tags": "1",
    "Frequency": "100"
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api rfkey del

**Descrição:** Exclui uma chave RF.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição   |
| --------- | ----------- |
| ID        | ID da chave |

**Exemplo de Requisição:**

```
http://ip:port/api?target=rfkey&action=del&ID=1
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api rfkey clear

**Descrição:** Limpa todas as chaves RF.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=rfkey&action=clear
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api rfkey export

**Descrição:** Exporta as chaves RF.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição                                         |
| --------- | ------------------------------------------------- |
| filetype  | parâmetro opcional, tipo padrão csv (csv/xml/vcf) |

**Exemplo de Requisição:**

```
http://ip:port/api?target=rfkey&action=export&filetype=csv
```

**Exemplo de Resposta:** Download do arquivo.

#### Api rfkey import

**Descrição:** Importa as chaves RF.

**Método:** POST (multipart/form-data)

**Parâmetros:**

| Parâmetro | Descrição         |
| --------- | ----------------- |
| file      | arquivo de chaves |

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=rfkey&action=import
Content-Type: multipart/form-data
file=@rfkeys.csv
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api contact

#### Api contact get

**Descrição:** Obtém a lista de contatos.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=contact&action=get
```

**Exemplo de Resposta:**

```
{
    "List": [
        {
            "ID": "1",
            "Name": "John",
            "Phone": "123456789",
            "DialType": "0",
            "Group": "Family"
        }
    ]
}
```

**Parâmetros:**

| Parâmetro | Descrição                          |
| --------- | ---------------------------------- |
| ID        | ID do contato                      |
| Name      | Nome                               |
| Phone     | Número de telefone                 |
| DialType  | 0=Automático, 1=Conta 1, 2=Conta 2 |
| Group     | Nome do grupo                      |

#### Api contact add

**Descrição:** Adiciona um contato.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api contact get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=contact&action=add
Content-Type: application/json

{
    "Name": "John",
    "Phone": "123456789",
    "DialType": "0",
    "Group": "Family"
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api contact set

**Descrição:** Define um contato.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api contact get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=contact&action=set
Content-Type: application/json

{
    "ID": "1",
    "Name": "John",
    "Phone": "987654321",
    "DialType": "1",
    "Group": "Family"
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api contact del

**Descrição:** Exclui um contato.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição     |
| --------- | ------------- |
| ID        | ID do contato |

**Exemplo de Requisição:**

```
http://ip:port/api?target=contact&action=del&ID=1
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api contact clear

**Descrição:** Limpa todos os contatos.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=contact&action=clear
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api contact export

**Descrição:** Exporta os contatos.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição                                         |
| --------- | ------------------------------------------------- |
| filetype  | parâmetro opcional, tipo padrão csv (csv/xml/vcf) |

**Exemplo de Requisição:**

```
http://ip:port/api?target=contact&action=export&filetype=csv
```

**Exemplo de Resposta:** Download do arquivo.

#### Api contact import

**Descrição:** Importa os contatos.

**Método:** POST (multipart/form-data)

**Parâmetros:**

| Parâmetro | Descrição           |
| --------- | ------------------- |
| file      | arquivo de contatos |

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=contact&action=import
Content-Type: multipart/form-data
file=@contacts.csv
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api group

#### Api group get

**Descrição:** Obtém a lista de grupos.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=group&action=get
```

**Exemplo de Resposta:**

```
{
    "List": [
        {
            "ID": "1",
            "Name": "Family"
        }
    ]
}
```

**Parâmetros:**

| Parâmetro | Descrição     |
| --------- | ------------- |
| ID        | ID do grupo   |
| Name      | Nome do grupo |

#### Api group add

**Descrição:** Adiciona um grupo.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api group get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=group&action=add
Content-Type: application/json

{
    "Name": "Family"
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api group set

**Descrição:** Define um grupo.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api group get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=group&action=set
Content-Type: application/json

{
    "ID": "1",
    "Name": "Friends"
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api group clear

**Descrição:** Limpa todos os grupos.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=group&action=clear
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api call

#### Api call status

**Descrição:** Obtém o status da chamada.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=call&action=status
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api call dial

**Descrição:** Realiza uma chamada.

**Método:** GET

**Parâmetros:**

| Parâmetro   | Descrição               |
| ----------- | ----------------------- |
| Phone       | Número de telefone      |
| DisplayName | Nome de exibição remoto |

**Exemplo de Requisição:**

```
http://ip:port/api?target=call&action=dial&Phone=123456789&DisplayName=John
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api call hangup

**Descrição:** Encerra a chamada.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=call&action=hangup
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api sip

#### Api sip get

**Descrição:** Obtém a configuração SIP.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=sip&action=get
```

**Exemplo de Resposta:**

```
{
    "Config": {
        "Account1": {
            "SIP": {
                "ListenPortMax": "5063",
                "ListenPortMin": "5063",
                "Port": "5060",
                "Port2": "5060",
                "Server": "",
                "Server2": "",
                "TransType": "0"
            },
            "STUN": {
                "Enable": "0",
                "Port": "3478",
                "Server": ""
            }
        },
        "Account2": {
            "SIP": {
                "ListenPortMax": "5063",
                "ListenPortMin": "5063",
                "Port": "5060",
                "Port2": "5060",
                "Server": "",
                "Server2": "",
                "TransType": "0"
            },
            "STUN": {
                "Enable": "0",
                "Port": "3478",
                "Server": ""
            }
        }
    }
}
```

**Parâmetros:**

| Parâmetro                         | Descrição                               |
| --------------------------------- | --------------------------------------- |
| Config.Account1.SIP.ListenPortMax | Porta de escuta SIP máxima, ex.: "5063" |
| Config.Account1.SIP.ListenPortMin | Porta de escuta SIP mínima, ex.: "5063" |
| Config.Account1.SIP.Port          | Porta do servidor SIP, ex.: 5060        |
| Config.Account1.SIP.Port2         | Porta 2 do servidor SIP, ex.: 5060      |
| Config.Account1.SIP.Server        | Servidor SIP, ex.: 192.168.1.115        |
| Config.Account1.SIP.Server2       | Servidor SIP 2                          |
| Config.Account1.SIP.TransType     | Tipo de transporte, ex.: "0"            |
| Config.Account1.STUN.Enable       | Habilitar STUN, ex.: "0"                |
| Config.Account1.STUN.Port         | Porta STUN, ex.: "3478"                 |
| Config.Account1.STUN.Server       | Servidor STUN                           |
| Config.Account2.SIP.ListenPortMax | Porta de escuta SIP máxima, ex.: "5063" |
| Config.Account2.SIP.ListenPortMin | Porta de escuta SIP mínima, ex.: "5063" |
| Config.Account2.SIP.Port          | Porta do servidor SIP, ex.: 5060        |
| Config.Account2.SIP.Port2         | Porta 2 do servidor SIP, ex.: 5060      |
| Config.Account2.SIP.Server        | Servidor SIP, ex.: 192.168.1.115        |
| Config.Account2.SIP.Server2       | Servidor SIP 2                          |
| Config.Account2.SIP.TransType     | Tipo de transporte, ex.: "0"            |
| Config.Account2.STUN.Enable       | Habilitar STUN, ex.: "0"                |
| Config.Account2.STUN.Port         | Porta STUN, ex.: "3478"                 |
| Config.Account2.STUN.Server       | Servidor STUN                           |

#### Api sip set

**Descrição:** Define a configuração SIP.

**Método:** POST

**Parâmetros:**

| Parâmetro                           | Descrição                            |
| ----------------------------------- | ------------------------------------ |
| Config.Account1.GENERAL.Enable      | 0=Desabilitar, 1=Habilitar           |
| Config.Account1.GENERAL.AuthName    | Nome de autenticação do servidor SIP |
| Config.Account1.GENERAL.UserName    | Nome de registro no servidor SIP     |
| Config.Account1.GENERAL.Pwd         | Senha do servidor SIP                |
| Config.Account1.GENERAL.DisplayName | Nome de exibição remoto              |
| Config.Account1.SIP.Server          | Servidor SIP, ex.: 192.168.1.115     |
| Config.Account1.SIP.Port            | Porta do servidor SIP, ex.: 5060     |
| Config.Account2.GENERAL.Enable      | 0=Desabilitar, 1=Habilitar           |
| Config.Account2.GENERAL.AuthName    | Nome de autenticação do servidor SIP |
| Config.Account2.GENERAL.UserName    | Nome de registro no servidor SIP     |
| Config.Account2.GENERAL.Pwd         | Senha do servidor SIP                |
| Config.Account2.GENERAL.DisplayName | Nome de exibição remoto              |
| Config.Account2.SIP.Server          | Servidor SIP, ex.: 192.168.1.115     |
| Config.Account2.SIP.Port            | Porta do servidor SIP, ex.: 5060     |

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=sip&action=set
Content-Type: application/json

{
    "Config": {
        "Account1": {
            "GENERAL": {
                "Enable": "1",
                "AuthName": "130",
                "UserName": "130",
                "Pwd": "130",
                "DisplayName": "130",
                "Label": "130"
            },
            "SIP": {
                "Server": "192.168.1.115",
                "Port": "5060"
            }
        }
    }
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api sip status

**Descrição:** Obtém o status de registro SIP.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=sip&action=status
```

**Exemplo de Resposta:**

```
{
    "Account1": {
        "UserName": "130",
        "SipServer": "192.168.1.115",
        "Status": "2"
    },
    "Account2": {
        "UserName": "",
        "SipServer": "",
        "Status": "0"
    }
}
```

**Parâmetros:**

| Parâmetro          | Descrição                                                                         |
| ------------------ | --------------------------------------------------------------------------------- |
| Account1.UserName  | Nome de usuário da conta SIP 1                                                    |
| Account1.SipServer | Servidor da conta SIP 1                                                           |
| Account1.Status    | -1=desconhecido, 0=desabilitado, 1=registrando, 2=registrado, 3=falha no registro |
| Account2.UserName  | Nome de usuário da conta SIP 2                                                    |
| Account2.SipServer | Servidor da conta SIP 2                                                           |
| Account2.Status    | -1=desconhecido, 0=desabilitado, 1=registrando, 2=registrado, 3=falha no registro |

***

### Api dialreplace

#### Api dialreplace get

**Descrição:** Obtém as regras de substituição de discagem.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=dialreplace&action=get
```

**Exemplo de Resposta:**

```
{
    "List": [
        {
            "ID": "1",
            "Line": "0",
            "Prefix": "110",
            "Replace1": "192.168.2.1",
            "Replace2": "192.168.2.4",
            "Replace3": "192.168.2.2",
            "Replace4": "192.168.2.5",
            "Replace5": "192.168.2.3"
        }
    ]
}
```

**Parâmetros:**

| Parâmetro | Descrição                            |
| --------- | ------------------------------------ |
| ID        | ID                                   |
| Prefix    | número                               |
| Line      | 0 Automático / 1 Conta 1 / 2 Conta 2 |
| Replace1  | número                               |
| Replace2  | número                               |
| Replace3  | número                               |
| Replace4  | número                               |
| Replace5  | número                               |

#### Api dialreplace add

**Descrição:** Adiciona uma regra de substituição de discagem.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api dialreplace get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=dialreplace&action=add
Content-Type: application/json

{
    "Line": "0",
    "Prefix": "110",
    "Replace1": "192.168.2.1",
    "Replace2": "192.168.2.4",
    "Replace3": "192.168.2.2",
    "Replace4": "192.168.2.5",
    "Replace5": "192.168.2.3"
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api dialreplace set

**Descrição:** Define uma regra de substituição de discagem.

**Método:** POST

**Parâmetros:** Mesmos parâmetros de `Api dialreplace get`.

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=dialreplace&action=set
Content-Type: application/json

{
    "ID": "1",
    "Line": "0",
    "Prefix": "110",
    "Replace1": "192.168.2.1"
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api dialreplace del

**Descrição:** Exclui uma regra de substituição de discagem.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição   |
| --------- | ----------- |
| ID        | ID da regra |

**Exemplo de Requisição:**

```
http://ip:port/api?target=dialreplace&action=del&ID=1
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api dialreplace clear

**Descrição:** Limpa todas as regras de substituição de discagem.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=dialreplace&action=clear
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api dialreplace export

**Descrição:** Exporta as regras de substituição de discagem.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição                                         |
| --------- | ------------------------------------------------- |
| filetype  | parâmetro opcional, tipo padrão csv (csv/xml/vcf) |

**Exemplo de Requisição:**

```
http://ip:port/api?target=dialreplace&action=export&filetype=csv
```

**Exemplo de Resposta:** Download do arquivo.

#### Api dialreplace import

**Descrição:** Importa as regras de substituição de discagem.

**Método:** POST (multipart/form-data)

**Parâmetros:**

| Parâmetro | Descrição         |
| --------- | ----------------- |
| file      | arquivo de regras |

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=dialreplace&action=import
Content-Type: multipart/form-data
file=@rules.csv
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api log

#### Api log get

**Descrição:** Obtém a configuração de log.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=log&action=get
```

**Exemplo de Resposta:**

```
{
    "Config": {
        "Settings": {
            "LOGLEVEL": {
                "Level": "3"
            }
        }
    }
}
```

**Parâmetros:**

| Parâmetro                      | Descrição        |
| ------------------------------ | ---------------- |
| Config.Settings.LOGLEVEL.Level | nível de log 0-7 |

#### Api log set

**Descrição:** Define a configuração de log.

**Método:** POST

**Parâmetros:**

| Parâmetro                      | Descrição        |
| ------------------------------ | ---------------- |
| Config.Settings.LOGLEVEL.Level | nível de log 0-7 |

**Exemplo de Requisição:**

```
POST http://ip:port/api?target=log&action=set
Content-Type: application/json

{
    "Config": {
        "Settings": {
            "LOGLEVEL": {
                "Level": "3"
            }
        }
    }
}
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api log export

**Descrição:** Exporta o arquivo de log.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição               |
| --------- | ----------------------- |
| type      | log / kmsg / log\_debug |

**Exemplo de Requisição:**

```
http://ip:port/api?target=log&action=export&type=log
```

**Exemplo de Resposta:** Download do arquivo de log.

#### Api log clear

**Descrição:** Limpa os logs.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição               |
| --------- | ----------------------- |
| type      | log / kmsg / log\_debug |

**Exemplo de Requisição:**

```
http://ip:port/api?target=log&action=clear&type=log
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

***

### Api calllog

#### Api calllog get

**Descrição:** Obtém a lista de registros de chamadas.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=calllog&action=get
```

**Exemplo de Resposta:**

```
{
    "List": [
        {
            "ID": "23",
            "Type": "Received",
            "Date": "2018-12-13",
            "Time": "05:55:59",
            "LocalIdentity": "192.168.1.98@192.168.1.98",
            "Name": "192.168.1.48",
            "Num": "192.168.1.98@192.168.1.98"
        }
    ]
}
```

**Parâmetros:**

| Parâmetro     | Descrição                                                                                |
| ------------- | ---------------------------------------------------------------------------------------- |
| ID            | ID do registro de chamada                                                                |
| Type          | 0 "Todos", 1 "Discadas", 2 "Recebidas", 3 "Perdidas", 4 "Encaminhadas", 5 "Desconhecido" |
| Date          | data                                                                                     |
| Time          | hora                                                                                     |
| LocalIdentity | Servidor SIP                                                                             |
| Name          | Nome de exibição remoto                                                                  |
| Num           | Número da chamada                                                                        |

#### Api calllog del

**Descrição:** Exclui um registro de chamada.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição                 |
| --------- | ------------------------- |
| ID        | ID do registro de chamada |

**Exemplo de Requisição:**

```
http://ip:port/api?target=calllog&action=del&ID=23
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api calllog clear

**Descrição:** Limpa todos os registros de chamadas.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=calllog&action=clear
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api calllog export

**Descrição:** Exporta os registros de chamadas.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição                                         |
| --------- | ------------------------------------------------- |
| filetype  | parâmetro opcional, tipo padrão csv (csv/xml/vcf) |

**Exemplo de Requisição:**

```
http://ip:port/api?target=calllog&action=export&filetype=csv
```

**Exemplo de Resposta:** Download do arquivo.

***

### Api doorlog

#### Api doorlog get

**Descrição:** Obtém a lista de registros de portas.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=doorlog&action=get
```

**Exemplo de Resposta:**

```
{
    "List": [
        {
            "ID": "1",
            "Type": "1",
            "Name": "John",
            "Status": "0",
            "Code": "12345678",
            "Date": "2018-12-13",
            "Time": "05:55:59"
        }
    ]
}
```

**Parâmetros:**

| Parâmetro | Descrição                                                       |
| --------- | --------------------------------------------------------------- |
| ID        | ID do registro de porta                                         |
| Type      | 0 "Desconhecido", 1 "Cartão", 2 "Senha", 3 "Pública", 4 "Rosto" |
| Name      | nome                                                            |
| Status    | 0 Sucesso / 1 Falha                                             |
| Code      | código                                                          |
| Date      | data                                                            |
| Time      | hora                                                            |

#### Api doorlog del

**Descrição:** Exclui um registro de porta.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição               |
| --------- | ----------------------- |
| ID        | ID do registro de porta |

**Exemplo de Requisição:**

```
http://ip:port/api?target=doorlog&action=del&ID=1
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api doorlog clear

**Descrição:** Limpa todos os registros de portas.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=doorlog&action=clear
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api doorlog export

**Descrição:** Exporta os registros de portas.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição                                         |
| --------- | ------------------------------------------------- |
| filetype  | parâmetro opcional, tipo padrão csv (csv/xml/vcf) |

**Exemplo de Requisição:**

```
http://ip:port/api?target=doorlog&action=export&filetype=csv
```

**Exemplo de Resposta:** Download do arquivo.

***

### Api pcap

#### Api pcap status

**Descrição:** Obtém o status da captura de pacotes.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=pcap&action=status
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api pcap start

**Descrição:** Inicia a captura de pacotes.

**Método:** GET

**Parâmetros:**

| Parâmetro | Descrição                 |
| --------- | ------------------------- |
| type      | auto / manual             |
| filter    | filtro pcap (padrão "ip") |
| time      | 1-180 (padrão 60)         |
| size      | padrão 1048576            |

**Exemplo de Requisição:**

```
http://ip:port/api?target=pcap&action=start&type=auto&filter=ip&time=60&size=1048576
```

**Exemplo de Resposta:**

```
{
    "Status": "READY"
}
```

#### Api pcap stop

**Descrição:** Interrompe a captura de pacotes.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=pcap&action=stop
```

**Exemplo de Resposta:**

```
{
    "FileSize": "314407",
    "Time": "9"
}
```

**Parâmetros:**

| Parâmetro | Descrição                     |
| --------- | ----------------------------- |
| FileSize  | tamanho do arquivo de captura |
| Time      | duração da captura (segundos) |

#### Api pcap export

**Descrição:** Exporta o arquivo de captura de pacotes.

**Método:** GET

**Parâmetros:** Nenhum

**Exemplo de Requisição:**

```
http://ip:port/api?target=pcap&action=export
```

**Exemplo de Resposta:** Download do arquivo PCAP.

***

### Histórico de Versões

| Versão | Data       | Descrição                                                                            |
| ------ | ---------- | ------------------------------------------------------------------------------------ |
| V1.0   | 2020.03.13 | Lançamento inicial com interface GET, autenticação Basic/Digest e módulos de sistema |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://portal-integracao.intelbras.com.br/xpe-ip-3xxx/xpe-ip-3xxx-xpe-3101-ip-xpe-3101t-ip-e-xpe-3001t-ip.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
