> 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/cameras-and-gravadores/integracao-api-cftvip-e-mibo/cameras-e-gravadores/base-de-dados-de-experiencia.md).

# Base de Dados de Experiência

Integrações ExperienceRegistry: caps e grupos, import/modelagem assíncrona (multiAppend/reAbstract), busca por token e progresso (attachFeatureState).

## Dicas & Boas Práticas <a href="#dicas-and-boas-praticas" id="dicas-and-boas-praticas"></a>

* Utilize **apenas um tipo de fonte por tarefa** (LocalStream, RemoteStream, VideoFile ou PictureFile) para evitar conflitos de processamento.
* Chamadas que utilizam **attachResult** ou streaming multipart mantêm conexão persistente, o cliente deve suportar leitura contínua de dados.
* Sempre trate o pacote **Heartbeat** para manter a conexão ativa e evitar timeout.
* Execute testes de regras e filtros em ambiente controlado antes de aplicar em produção.
* Controle o uso de tokens de pesquisa, finalize buscas com `stopFind` para liberar recursos do dispositivo.
* Em operações assíncronas (multiAppend, reAbstract), monitore progresso via eventos ou status.
* Verifique limites de armazenamento e modelagem antes de importar grandes volumes de dados.
* Padronize timestamps em UTC para evitar inconsistências de busca.
* Valide dimensões e qualidade das imagens antes da modelagem, erros comuns ocorrem por resolução inadequada.

***

### Tabela de Parâmetros

<table><thead><tr><th>Campo</th><th>Tipo</th><th width="76.1480712890625">R/O</th><th>Descrição</th><th>Exemplo</th></tr></thead><tbody><tr><td>Condition.StartTime</td><td>char[20]</td><td>O</td><td>Hora inicial da busca</td><td>2012-01-04 00:00:00</td></tr><tr><td>Condition.EndTime</td><td>char[20]</td><td>O</td><td>Hora final da busca</td><td>2012-01-04 23:59:59</td></tr><tr><td>Condition.Token</td><td>uint32</td><td>R</td><td>Token da busca</td><td>123</td></tr><tr><td>Condition.BeginNumber</td><td>uint32</td><td>R</td><td>Índice inicial dos registros</td><td>0</td></tr><tr><td>Condition.Count</td><td>uint32</td><td>R</td><td>Quantidade de registros por consulta</td><td>20</td></tr><tr><td>Condition.GroupID</td><td>char[128][64]</td><td>R</td><td>Lista de IDs de grupos</td><td>["00001","00002"]</td></tr><tr><td>Condition.FeatureState</td><td>uint8[5]</td><td>O</td><td>Estado das features (0–4)</td><td>[1,2]</td></tr><tr><td>Results.Found</td><td>uint32/int</td><td>O/R</td><td>Total encontrado</td><td>12</td></tr><tr><td>Results.Info.EventType</td><td>char[32]</td><td>O</td><td>Tipo de evento</td><td>CrossLineDetection</td></tr><tr><td>Results.Info.ClassType</td><td>char[32]</td><td>O</td><td>Categoria do evento IA</td><td>Normal</td></tr><tr><td>Results.Info.UTC</td><td>uint32</td><td>O</td><td>Timestamp UTC do evento</td><td>152463285</td></tr><tr><td>Results.Info.RuleType</td><td>char[32]</td><td>O</td><td>Tipo de regra</td><td>CrossLineDetection</td></tr><tr><td>Results.PicInfoList.BigID</td><td>char[64]</td><td>O</td><td>ID imagem grande</td><td>12</td></tr><tr><td>Results.PicInfoList.GroupID</td><td>char[64]</td><td>O</td><td>ID do banco</td><td>12</td></tr><tr><td>Results.PicInfoList.SmallID</td><td>char[64]</td><td>O</td><td>ID imagem pequena</td><td>1</td></tr><tr><td>Results.PicInfoList.SmallUrl</td><td>char[64]</td><td>O</td><td>URL imagem pequena</td><td>/mnt/small.jpg</td></tr><tr><td>Results.PicInfoList.BigImportTime</td><td>uint32</td><td>O</td><td>Hora importação UTC</td><td>1634604948</td></tr><tr><td>Results.PicInfoList.FeatureState</td><td>uint8</td><td>O</td><td>Estado da modelagem</td><td>1</td></tr><tr><td>GroupTypeList.GroupType</td><td>enumchar[32]</td><td>O</td><td>Tipo de base suportada</td><td>FilterEvent</td></tr><tr><td>GroupTypeList.MaxGroupNum</td><td>uint32</td><td>O</td><td>Máx. grupos suportados</td><td>10</td></tr><tr><td>GroupTypeList.PicStorageNum</td><td>uint32</td><td>O</td><td>Máx. armazenamento de imagens</td><td>1000</td></tr><tr><td>GroupTypeList.SupportDetectWay</td><td>int8</td><td>O</td><td>Métodos de importação suportados</td><td>2</td></tr><tr><td>GroupTypeList.SupportDisposition</td><td>bool</td><td>O</td><td>Suporte a armamento de canal</td><td>true</td></tr><tr><td>GroupTypeList.SinglePicMaxLength</td><td>int32</td><td>O</td><td>Tamanho máximo de imagem (KB)</td><td>4096</td></tr><tr><td>GroupTypeList.ImportBigNumber</td><td>uint32</td><td>O</td><td>Máx. imagens por importação</td><td>40</td></tr><tr><td>GroupTypeList.SupportedObjects.ObjectType</td><td>char[32]</td><td>O</td><td>Tipo de alvo detectável</td><td>Human</td></tr><tr><td>GroupTypeList.Similarity</td><td>uint8</td><td>O</td><td>Similaridade padrão</td><td>80</td></tr><tr><td>Group.GroupID</td><td>char[64]</td><td>R/O</td><td>ID do banco</td><td>11</td></tr><tr><td>Group.GroupName</td><td>char[128]</td><td>R/O</td><td>Nome do banco</td><td>Express</td></tr><tr><td>Group.GroupDetail</td><td>char[256]</td><td>O</td><td>Descrição</td><td>Community Homeowners</td></tr><tr><td>Group.Similarity</td><td>uint</td><td>O</td><td>Limite de similaridade</td><td>23</td></tr><tr><td>Group.SampleAttribute</td><td>uint8</td><td>O</td><td>Tipo de amostra (1+/2-)</td><td>1</td></tr><tr><td>Group.Enable</td><td>bool</td><td>O</td><td>Ativado/desativado</td><td>true</td></tr><tr><td>Group.GroupType</td><td>char[32]</td><td>O</td><td>Tipo da base</td><td>FilterEvent</td></tr><tr><td>Group.ObjectType</td><td>char[32]</td><td>O</td><td>Tipo de alvo</td><td>Human</td></tr><tr><td>GroupList.GroupID</td><td>char[64]</td><td>O</td><td>ID grupo</td><td>000001</td></tr><tr><td>GroupList.GroupName</td><td>char[128]</td><td>O</td><td>Nome grupo</td><td>Express</td></tr><tr><td>GroupList.GroupDetail</td><td>char[256]</td><td>O</td><td>Descrição grupo</td><td>Community Homeowners</td></tr><tr><td>GroupList.GroupSize</td><td>int32</td><td>O</td><td>Nº de features</td><td>30</td></tr><tr><td>GroupList.Similarity</td><td>uint</td><td>O</td><td>Similaridade</td><td>23</td></tr><tr><td>GroupList.SampleAttribute</td><td>uint8</td><td>O</td><td>Tipo de amostra</td><td>1</td></tr><tr><td>GroupList.Enable</td><td>bool</td><td>O</td><td>Ativo</td><td>true</td></tr><tr><td>GroupList.GroupType</td><td>char[32]</td><td>O</td><td>Tipo base</td><td>FilterEvent</td></tr><tr><td>GroupList.Channel</td><td>int</td><td>O</td><td>Canal vinculado</td><td>0</td></tr><tr><td>GroupList.ClassType</td><td>char[32]</td><td>O</td><td>Classe</td><td>Normal</td></tr><tr><td>GroupList.ClassAlias</td><td>char[32]</td><td>O</td><td>Alias</td><td>""</td></tr><tr><td>GroupList.RuleType</td><td>char[32]</td><td>O</td><td>Regra</td><td>CrossLineDetection</td></tr><tr><td>GroupList.EventType</td><td>char[32]</td><td>O</td><td>Evento</td><td>CrossLineDetection</td></tr><tr><td>GroupList.ObjectType</td><td>char[32]</td><td>O</td><td>Tipo alvo</td><td>Human</td></tr><tr><td>TotalSize</td><td>uint32</td><td>O</td><td>Armazenamento total (MB)</td><td>11</td></tr><tr><td>FreeSize</td><td>uint32</td><td>O</td><td>Armazenamento livre (MB)</td><td>11</td></tr><tr><td>TotalCount</td><td>uint32</td><td>O</td><td>Total itens suportados</td><td>11</td></tr><tr><td>FreeCount</td><td>uint32</td><td>O</td><td>Itens restantes</td><td>11</td></tr><tr><td>PicInfo.GroupID</td><td>char[64]</td><td>R</td><td>ID banco</td><td>1</td></tr><tr><td>PicInfo.BigID</td><td>char[64]</td><td>O</td><td>ID imagem grande</td><td>1</td></tr><tr><td>PicInfo.BigName</td><td>char[64]</td><td>O</td><td>Nome imagem grande</td><td>aaaaa</td></tr><tr><td>PicInfo.SmallName</td><td>char[64]</td><td>O</td><td>Nome imagem pequena</td><td>aaaaa</td></tr><tr><td>PicInfo.ObjectRect</td><td>Rect[32]</td><td>O</td><td>Coordenadas alvo</td><td>[0,0,100,100]</td></tr><tr><td>PicInfo.Image.Width</td><td>uint16</td><td>O</td><td>Largura imagem</td><td>100</td></tr><tr><td>PicInfo.Image.Height</td><td>uint16</td><td>O</td><td>Altura imagem</td><td>50</td></tr><tr><td>PicInfo.Image.Offset</td><td>uint32</td><td>O</td><td>Offset binário</td><td>0</td></tr><tr><td>PicInfo.Image.Length</td><td>uint32</td><td>O</td><td>Tamanho imagem</td><td>100000</td></tr><tr><td>PicInfo.Image.FilePath</td><td>char[256]</td><td>O</td><td>Caminho/URL imagem</td><td>/mnt/…jpg</td></tr><tr><td>ImportInfo.Token</td><td>uint16</td><td>O</td><td>Token importação</td><td>—</td></tr><tr><td>ImportInfo.State</td><td>bool</td><td>O</td><td>Finalizado?</td><td>true</td></tr><tr><td>ImportInfo.DetectWay</td><td>int32</td><td>O</td><td>Tipo importação</td><td>1</td></tr><tr><td>SID</td><td>uint32</td><td>R</td><td>ID da assinatura</td><td>1234</td></tr><tr><td>info.Progress</td><td>uint8</td><td>O</td><td>Progresso modelagem (%)</td><td>34</td></tr><tr><td>info.Token</td><td>uint32</td><td>O</td><td>Token assinatura</td><td>1</td></tr><tr><td>info.SucceedCnt</td><td>uint</td><td>O</td><td>Modelagens com sucesso</td><td>100</td></tr><tr><td>info.FailedCnt</td><td>uint</td><td>O</td><td>Modelagens falhas</td><td>20</td></tr><tr><td>info.FailedPicDetails.BigName</td><td>char[64]</td><td>O</td><td>Nome imagem falha</td><td>aaaaa</td></tr><tr><td>info.FailedPicDetails.SmallName</td><td>char[64]</td><td>O</td><td>Nome imagem pequena</td><td>aa_1.jpg</td></tr><tr><td>info.FailedPicDetails.ErrCode</td><td>uint8</td><td>O</td><td>Código erro (1–11)</td><td>1</td></tr></tbody></table>

***

### Procurar Eventos Suspeitos de Falso Alarme

**Tópicos:** Inicia uma busca por registros classificados como possíveis falsos alarmes dentro de um intervalo de tempo.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/startFindFilterEvent`

**Exemplo:**

```json
{ 
    "Condition": { 
        "StartTime": "2012-01-04 00:00:00", 
        "EndTime": "2012-01-04 23:59:59" 
    } 
}
```

**Resposta**:

```json
{ 
    "Token": 123, 
    "TotalCount": 23 
}
```

### Ler Resultados de Eventos Suspeitos

**Tópicos:** Retorna registros encontrados na busca de falsos alarmes, com paginação baseada em token.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/doFindFilterEvent`

**Exemplo:**

```json
{ 
    "Condition": { 
        "Token": 123, 
        "BeginNumber": 0, 
        "Count": 20 
    } 
} 
```

**Resposta**:

```json
{ 
    "Results": { 
        "Found": 12, 
        "Info": [ 
            { 
                "EventType": "CrossLineDetection", 
                "ClassType": "Normal", 
                "UTC": 152463285, 
                "RuleType": "CrossLineDetection" 
            } 
        ] 
    } 
} 
```

### Encerrar Busca de Falsos Alarmes

**Tópicos:** Finaliza a sessão de pesquisa e libera recursos internos.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/stopFindFilterEvent`

**Exemplo:**

```json
{ 
    "Token": 123 
} 
```

**Resposta**:

```
{}
```

### Obter Capacidades do Banco

**Tópicos:** Consulta limites e recursos suportados pelo banco de experiência, incluindo armazenamento e tipos de objetos.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/getCaps`

**Exemplo:**

```
{}
```

**Resposta**:

```json
{ 
     "GroupTypeList": [{ 
        "GroupType": "FilterEvent", 
        "MaxGroupNum": 10, 
        "PicStorageNum": 1000, 
        "SupportDetectWay": 2, 
        "SupportDisposition": true, 
        "SinglePicMaxLength": 4096, 
        "ImportBigNumber": 50, 
        "SupportedObjects": [{ 
            "ObjectType": "Human" 
        },…{}], 
        "Similarity": 80 
    },…{}] 
} 
```

### Criar Banco de Experiência

**Tópicos:** Cria um novo grupo de aprendizado para filtragem ou análise de eventos.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/createGroup`

**Exemplo:**

```json
{ 
    "Group": { 
        "GroupName": "zl", 
        "GroupDetail": "11", 
        "SampleAttribute": 1, 
        "GroupType": "FilterEvent", 
        "Channel": 0, 
        "ClassType": "Normal", 
        "RuleType": "RuleType", 
        "ObjectType": "ObjectType", 
        "Disposition": [ 
            { 
                "DeployedChannel": 0, 
                "Similarity": 90, 
                "Enable" : false 
            } 
        ] 
    } 
```

**Resposta**:

```json
{ 
    "GroupID": "34" 
}
```

### Buscar Grupos

**Tópicos:** Lista informações dos bancos de experiência existentes.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/findGroup`

**Exemplo:**

```json
{ 
    "GroupID": [], 
    "GroupType": "FilterEvent" 
}
```

**Resposta**:

```json
{ 
    "GroupList": [{ 
        "GroupID": "000001", 
        "GroupName": "快递", 
        "GroupDetail": "小区业主", 
        "GroupSize": 30, 
        "Similarity": 23, 
        "SampleAttribute": 1, 
        "Enable": true, 
        "GroupType": "FilterEvent", 
        "Channel": 0, 
        "ClassType": "Normal", 
        "ClassAlias": "", 
        "RuleType": "CrossLineDetection", 
        "EventType": "CrossLineDetection", 
        "ObjectType": "Human" 
    },…{}] 
} 
```

### Excluir Grupos

**Tópicos:** Remove um grupo do banco de experiência.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/deleteGroup`

**Exemplo:**

```json
{ 
"GroupID": “000001” 
} 
```

**Resposta**:

```
{}
```

### Modificar Grupo

**Tópicos:** Atualiza parâmetros de um grupo existente.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/modifyGroup`

**Exemplo:**

```json
{ 
    "Group": { 
        "GroupID": "0001", 
        "GroupName": "园区", 
        "GroupDetail": "小区业主", 
        "Similarity": 23, 
        "Enable": true 
    } 
} 
```

**Resposta**:

```
{}
```

### Consulta de Armazenamento

**Tópicos:** Mostra capacidade total e disponível do banco de experiência.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/getGroupSpaceInfo`

**Exemplo:**

```json
{ 
    "GroupType": "FilterEvent" 
}  
```

**Resposta**:

```json
{ 
    "TotalSize": 11, 
    "FreeSize": 11, 
    "TotalCount": 11, 
    "FreeCount": 11 
} 
```

### Obter Token de Modelagem

**Tópicos:** Gera token para operações assíncronas de modelagem/importação.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/getDetectToken`

**Exemplo:**

```
{}
```

**Resposta**:

```json
{ 
    "Token": 17 
} 
```

### Importar Múltiplas Imagens Assincronamente

**Tópicos:** Adiciona imagens ao banco para modelagem de forma assíncrona.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/multiAppend`

**Exemplo:**

```json
Content-Type: application/json 
Content-Length: <data length> 
{ 
    "PicInfo": [ 
        { 
            "GroupID": "1", 
            "BigID": "1", 
            "BigName": "aaaaa", 
            "Image": { 
                "Width": 100, 
                "Height": 50, 
                "Offset": 0, 
                "Length": 100000, 
                "FilePath": "/mnt/2010/8/1/dav/15:40:50.jpg" 
            }, 
            "SmallName": "aaaaa", 
            "ObjectRect": [ 
                [ 
                    0, 
                    0, 
                    100, 
                    100 
                ] 
            ] 
        } 
    ], 
    "Info": { 
        "Token": 1, 
        "State": false, 
        "DetectWay": 2 
    } 
} --<boundary> 
Content-Type: image/jpeg 
Content-Length: <image size> 
<Jpeg image data> --<boundary> 
```

**Resposta**:

```json
{ 
    "ErrCode": [ 
        1, 
        2 
    ] 
} 
```

### Buscar Imagens no Banco

**Tópicos:** Inicia pesquisa por imagens armazenadas no banco de experiência.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/multiAppend`

**Exemplo:**

```json
Content-Type: application/json 
Content-Length: <data length> 
{ 
    "PicInfo": [ 
        { 
            "GroupID": "1", 
            "BigID": "1", 
            "BigName": "aaaaa", 
            "Image": { 
                "Width": 100, 
                "Height": 50, 
                "Offset": 0, 
                "Length": 100000, 
                "FilePath": "/mnt/2010/8/1/dav/15:40:50.jpg" 
            }, 
            "SmallName": "aaaaa", 
            "ObjectRect": [ 
                [ 
                    0, 
                    0, 
                    100, 
                    100 
                ] 
            ] 
        } 
    ], 
    "Info": { 
        "Token": 1, 
        "State": false, 
        "DetectWay": 2 
    } 
} --<boundary> 
Content-Type: image/jpeg 
Content-Length: <image size> 
<Jpeg image data> --<boundary> 
```

**Resposta**:

```json
{ 
    "ErrCode": [ 
        1, 
        2 
    ] 
} 
```

### Procura de Imagens No Banco de Dados

**Tópicos:** Retorna imagens encontradas na pesquisa.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/startFind`

**Exemplo:**

```json
{
 "Condition": {
 "GroupID": ["00001"]
 },
"FeatureState" : [1,4]
}
```

**Resposta**:

```json
{
 "Token": 2342343,
 "TotalCount": 3333
}
```

### Ler Imagens no Banco de Dados

**Tópicos:** Procure as informações da imagem no banco de dados de experiências.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/doFind`

**Exemplo:**

```json
{
 "Token": 46878,
 "BeginNumber": 0,
 "Count": 20
}
```

**Resposta**:

```json
{
 "Results": {
 "Found": 12,
 "PicInfoList": [{
 "BigID": "12",
 "GroupID": "12",
 "SmallID": "1",
 "SmallUrl": "/mnt/small.jpg",
 "BigImportTime": 1634604944
 },…{}]
 }
}
```

### Encerrar Busca Por Imagens

**Tópicos:** Finaliza a sessão de pesquisa de imagens.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/stopFind`

**Exemplo:**

```json
{
 "Token": 46878
}
```

**Resposta**:

```
{}
```

### Excluindo Imagens

**Tópicos:** Remove imagens específicas do banco de experiência.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/deleteByFeatureID`

**Exemplo:**

```json
{
 "GroupID": "1",
 "SmallID": [
 "123",
 "234"
 ]
}
```

**Resposta**:

```json
{
 "ErrCode": [
 1,
 2
 ]
}
```

### Assinar Progresso de Modelagem

**Tópicos:** Cria conexão persistente para receber atualizações em tempo real da modelagem.

**Métodos: `POST/`**`cgi-bin/api/ExperienceRegistry/attachFeatureState`

**Exemplo:**

```http
HTTP/1.1 200 OK
Content-Type: multipart/x-mixed-replace; boundary=<boundary>
Connection: close
--<boundary>
Content-Type: application/json
Content-Length: <data length>
{
"SID": 1234U,
"Infos": [
{
"TaskID": 1,
"TaskUserData": "asdvbtgrffg",
"UserData": "asdvbtgrffg",
"TaskCustomData": null,
"FileID": "file-1234",
"FileState": 0,
"FileAnalyseMsg": "Decode Failed, Download Failed",
"Events": [{}],
"Flag": 2,
"Image": {
"Offset": 0,
"Length": 60000
}
}
]
}
--<boundary>
Content-Type: text/plain
Content-Length: 11
Heartbeat
--<boundary>
```

**Resposta**:

```http
HTTP/1.1 200 OK
Content-Type: multipart/x-mixed-replace; boundary=<boundary>
Connection: close
--<boundary>
Content-Type: application/json
Content-Length: <data length>
{
 "SID": 123,
 "info": {
 "Progress": 34,
 "Token": 1,
 "SucceedCnt": 100,
 "FailedCnt": 20,
 "FailedPicDetails": [
 {
 "SmallName": "aaaaa",
 "BigName": "aaaaa",
 "ErrCode": 1
 }
 ]
 }
}
--<boundary>
Content-Type: text/plain
Content-Length: 11
Heartbeat
--<boundary>
```

### Reprocessar Imagens

**Tópicos:** Refaz modelagem de imagens específicas.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/reAbstract`

**Exemplo:**

```json
{
 "GroupID": "00001",
 "PicInfoList": [
 {
 "SmallID": "111"
 }
 ]
}
```

**Resposta**:

```json
{
 "Token": 1
}
```

### Reprocessar Grupo

**Tópicos:** Refaz modelagem de todos os itens de um grupo.

**Métodos: `POST` /**`cgi-bin/api/ExperienceRegistry/groupReAbstract`

**Exemplo:**

```json
{
 "GroupID": [
 "00001"
 ]
}
```

**Resposta**:

```json
{
 "Token": 1
}
```

### Desvincular Bancos de Dados

**Tópicos:** Remove associação do banco com canais ou regras.

**Métodos: `POST`**`/cgi-bin/api/ExperienceRegistry/unbind`

**Exemplo:**

```json
{
 "GroupID": [
 "00001"
 ]
}
```

**Resposta**:

```
{}
```

***

Notas Finais:

* A API de **Experience Registry** gerencia bancos de dados de aprendizado usados para filtragem e reconhecimento de eventos.
* Operações de busca funcionam com **token de sessão**, exigindo leitura paginada dos resultados.
* Importação e modelagem de imagens ocorrem de forma **assíncrona**, podendo exigir acompanhamento de status.
* Conexões multipart são persistentes e enviam dados + heartbeat continuamente.
* Alguns endpoints manipulam armazenamento, sempre valide espaço disponível antes de inserir dados.
* Estados de modelagem indicam se a imagem está pronta para uso ou precisa ser reconstruída.
* Recursos podem variar conforme firmware/dispositivo.
* Recomenda-se tratamento de erros por código retornado (`ErrCode`) em todas as operações críticas.

***


---

# 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/cameras-and-gravadores/integracao-api-cftvip-e-mibo/cameras-e-gravadores/base-de-dados-de-experiencia.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.
