> 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/defense-ia-and-lite/readme/metadados.md).

# Metadados

Guia de endpoints de Metadados/Análise: busca assíncrona de human detection por imagem (start/stop/paginação), download de snapshots, consulta por atributos (features) e paginação de capturas de veícu

### Como usar:

* Substitua as variáveis `{{host}}`, `{{loginToken}}` e demais identificadores pelos valores reais do ambiente.
* Utilize variáveis globais do seu projeto quando disponíveis para evitar hardcode.
* Ajuste parâmetros de query conforme o cenário (paginação, filtros, IDs).
* Campos JSON opcionais podem ser removidos ou adicionados sem alterar a estrutura base.
* Sempre valide os tipos esperados pelo backend antes de enviar requisições em lote.

***

### Convenções e autenticação

* Códigos de resultado (padrão): `code: 1000` indica sucesso
* Content-Type: `application/json;charset=UTF-8`
* Idioma (opcional): `Accept-Language: en`
* Autenticação: header `X-Subject-Token: {{loginToken}}` (obtenha o token no seu fluxo de login do projeto)
* Base URL: `http://{{host}}/iams/api/v1.1`

***

### Erros comuns (modelo):

| Situação                   |                       Sintoma | Como resolver                             |
| -------------------------- | ----------------------------: | ----------------------------------------- |
| Token ausente/expirado     |                         `401` | Refaça login e atualize `X-Subject-Token` |
| Content-Type incorreto     |  `415 Unsupported Media Type` | Use `application/json;charset=UTF-8`      |
| Campos obrigatórios vazios | `400` / mensagem de validação | Revise a seção **Parâmetros** do endpoint |

***

### Iniciar Consulta Assíncrona de Registros de Captura Corporal

**Tópico**: Inicia uma consulta assíncrona para busca de registros de **captura corporal (human detection)** com base em uma imagem fornecida.

* Método: `POST /brms/api/v1.1/video-analyse/human/record/search-by-picture/start`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/brms/api/v1.1/video-analyse/human/record/search-by-picture/start' 
--header 'X-Subject-Token: 3075F5A6B4384638a1643f0ca3236351' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/' 
--data '{
    "startTime": "1609257600",
    "endTime": "1609343999",
    "similarity": "92",
    "channelIds": [
        "1000000$1$0$0",
        "1000000$1$0$1",
        "1000000$1$0$6",
        "1000000$1$0$7"
    ],
    "imageData": "iVBORw0KGgoAAAANSUhEU...TeHTY5gAAAABJRU5ErkJggg=="
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "pageData": [
            {
                "recordId": "1748593029483021",
                "channelId": "1000000$1$0$1",
                "captureTime": "1609302456",
                "similarity": "94",
                "snapshotUrl": "/brms/api/v1.1/video-analyse/human/record/snapshot/1748593029483021",
                "featureId": "HUMAN_FEAT_8839201"
            },
            {
                "recordId": "1748593029483022",
                "channelId": "1000000$1$0$7",
                "captureTime": "1609311120",
                "similarity": "92",
                "snapshotUrl": "/brms/api/v1.1/video-analyse/human/record/snapshot/1748593029483022",
                "featureId": "HUMAN_FEAT_8839202"
            }
        ],
        "totalCount": "2",
        "pageNo": 1,
        "pageSize": 20
    }
}
```

### Interromper Consulta Assíncrona de Registros de Captura Corporal

**Tópico**: Interrompe uma consulta assíncrona previamente iniciada para busca de registros de **captura corporal (human detection)** por imagem.

* Método: `POST /brms/api/v1.1/video-analyse/human/record/search-by-picture/stop`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/brms/api/v1.1/video-analyse/human/record/search-by-picture/stop' 
--header 'X-Subject-Token: 3075F5A6B4384638a1643f0ca3236351' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/' 
--data '{
    "session": "2acd14e7290048d88611101e779543fb"
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": null
}
```

### Consultar Registros de Captura Corporal por Página

**Tópico**: Consulta os registros de **captura corporal (human detection)** gerados por uma pesquisa reversa por imagem previamente iniciada.

* Método: `POST /brms/api/v1.1/video-analyse/human/record/search-by-picture/{session}/page`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location --globoff 'https://{{Host}}/brms/api/v1.1/video-analyse/human/record/search-by-picture/{session}/page' 
--header 'X-Subject-Token: 3075F5A6B4384638a1643f0ca3236351' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/; Path=/' 
--data '{
    "page": "1",
    "pageSize": "20",
    "orderType": "1",
    "orderDirection": "1"
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "totalCount": "0",
        "pageData": []
    }
}
```

### Baixar Imagem Corporal Capturada

**Tópico**: Realiza o download de imagens de **captura corporal (human detection)** armazenadas no dispositivo ou servidor.

* Método: `POST /brms/api/v1.1/video-analyse/human/record/device/picture/download`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/brms/api/v1.1/video-analyse/human/record/device/picture/download' 
--header 'X-Subject-Token: 3075F5A6B4384638a1643f0ca3236351' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/' 
--data '{
    "deviceCode": "1000001",
    "urls": [
        {
            "id": "2",
            "type": "1",
            "url": "/picid/2789283.jpg"
        }
    ]
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "totalCount": "1",
        "pageData": [
            {
                "id": "2",
                "type": "1",
                "fileName": "2789283.jpg",
                "imageData": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxISEhUTEhIV..."
            }
        ]
    }
}
```

### Consultar Registros de Captura de Corpo e Exibir os Registros em Página

**Tópico**: Realiza a consulta de registros de **captura corporal (human detection)** com base em **atributos físicos (features).**

* Método: `POST /iams/api/v1.1/video-analyse/human/record/search-by-feature/page`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/iams/api/v1.1/video-analyse/human/record/search-by-feature/page' 
--header 'X-Subject-Token: 3075F5A6B4384638a1643f0ca3236351' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/' 
--data '{
    "channelIds": [
        "1000021$1$0$0"
    ],
    "startTime": "1689523200",
    "endTime": "1689609599",
    "currentPage": "1",
    "splitTime": "",
    "splitId": "",
    "gender": "1",
    "coat": "1",
    "coatColors": [
        "2",
        "4"
    ],
    "trouser": "2",
    "trouserColors": [
        "2",
        "8"
    ],
    "hat": "1",
    "bag": "1",
    "orderType": "1",
    "orderDirection": "1",
    "pageSize": "20",
    "page": "1"
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "totalCount": "0",
        "pageData": []
    }
}
```

### Obter Registros de Captura de Veículos Motorizados em Página

**Tópico**: Consulta registros de **captura de veículos motorizados** detectados pelo sistema (ex.: LPR/ANPR ou análise veicular).

* Método: `POST /ipms/api/v1.1/fusion/vehicle-capture/record/fetch/page`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/ipms/api/v1.1/fusion/vehicle-capture/record/fetch/page' 
--header 'X-Subject-Token: 3075F5A6B4384638a1643f0ca3236351' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/' 
--data '{
    "page": "1",
    "pageSize": "20",
    "currentPage": "1",
    "splitTime": "1629734395",
    "splitId": "2021082300000015880",
    "orderType": "1",
    "orderDirection": "0",
    "channelIds": [
        "1000051$1$0$0"
    ],
    "startTime": "1689177600",
    "endTime": "1689263999",
    "vehicleColor": "1",
    "vehicleBrand": "1",
    "plateNoMatchMode": "0",
    "plateNos": []
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "totalCount": "0",
        "pageData": []
    }
}
```

### Obter Registros de Captura de Veículos Não Motorizados na Detecção de Objetos em Página

**Tópico**: Consulta registros de **captura de veículos motorizados** detectados pelo sistema (ex.: LPR/ANPR ou análise veicular).

* Método: `POST /iams/api/v1.1/video-analyse/non-vehicle/record/fetch/page`
* Headers: `X-Subject-Token`, `Content-Type`

Exemplo (curl):

```bash
curl --location 'https://{{Host}}/iams/api/v1.1/video-analyse/non-vehicle/record/fetch/page' 
--header 'X-Subject-Token: 3075F5A6B4384638a1643f0ca3236351' 
--header 'Content-Type: application/json' 
--header 'Cookie: Path=/' 
--data '{
    "channelIds": [
        "1000014$1$0$0"
    ],
    "startTime": "1689523200",
    "endTime": "1689609599",
    "page": "1",
    "pageSize": "20",
    "currentPage": "1",
    "splitTime": "",
    "splitId": ""
}'
```

Resposta (modelo – sucesso):

```json
{
    "code": 1000,
    "desc": "Success",
    "data": {
        "totalCount": "0",
        "pageData": []
    }
}
```

***

Notas Finais:

* Campos JSON opcionais podem ser removidos ou adicionados sem alterar a estrutura base.
* Sempre valide os tipos esperados pelo backend antes de enviar requisições em lote.
* Sempre valide o campo `code` antes de processar `data`.
* Timestamps devem estar em formato **Unix (10 dígitos – segundos)**.
* Utilize `page` e `pageSize` para paginação tradicional.
* Recomenda-se `pageSize ≤ 100` para melhor desempenho.
* Sempre valide `totalCount` antes de iterar sobre `pageData`.
* Evite múltiplas sessões simultâneas desnecessárias.
* Imagens retornadas em `imageData` estão em Base64 puro (sem prefixo `data:image/...`).
* Para salvar imagens: decodifique o Base64 e gere arquivo `.jpg` ou `.png`.

***


---

# 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/defense-ia-and-lite/readme/metadados.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.
