# Filtros de Consultas

Para aplicar filtros por produtos com queries específicas é necessário utilizar a URL base disponibilizada a seguir:&#x20;

```
http://api.skyhub.com.br/products
```

#### **Request headers:**

| Key                  | Value                                       |
| -------------------- | ------------------------------------------- |
| X-User-Email         | email\_de\_usuario                          |
| X-Api-Key            | token\_de\_integracao de sua conta SkyHub   |
| X-Accountmanager-Key | token\_account único de cada Plataforma/ERP |
| Accept               | application/json                            |
| Content-Type         | application/json                            |

Através da URL e dos headers informados é possível realizar os filtros por:

* Status;
* Nome;
* Quantidade em estoque;
* Campos específicos no retorno.

### Como filtrar por status

É possível realizar a listagem de produtos através de seus status, onde deverá ser informada a query ***?filters\[status]=*** no endpoint */products*, referenciando o status a ser consultado, conforme exemplo a seguir:

```
https://api.skyhub.com.br/products?filters[status]={enabled
 ou disabled}
```

Ao informar o parâmetro ***?filters\[status]=enabled*** serão retornados todos os produtos **ativos** (enabled); caso selecione o parâmetro ***?filters\[status]=disabled*** serão retornados os produtos **inativos** (disabled).

#### **Example request:**

Segue um exemplo de requisição para listagem de produtos com status disabled:

```
curl --location -g --request GET 'https://api.skyhub.com.br/products?filters[status]=disabled' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
```

#### **Response esperado:**

{% hint style="success" %}
200 \[Success] - OK: No retorno para a consulta acima serão visualizados todos os SKUs da conta que possuírem o *status* disabled como vemos a seguir:
{% endhint %}

```
{
    "products": [
        {
            "sku": "SKU_01",
            "name": "Título 01",
            "description": "Descrição 01",
            "status": "disabled",
            (...)
        }
    ],
    "total": 1,
    "next": "https://api.skyhub.com.br/products?cursor=cXVlcnlUa..........wOw=="
}
```

### Como filtrar por nome

Para realizar a listagem de produtos através de um nome específico deverá ser informada a query ***?filters\[name]=*** no endpoint */products*, referenciando o nome a ser consultado, conforme exemplo a seguir:

```
https://api.skyhub.com.br/products?filters[name]={nome_do_item}
```

#### **Example request:**&#x20;

Segue um exemplo de requisição para listagem de SKUs com o termo "produto" no título:

```
curl --location -g --request GET 'https://api.skyhub.com.br/products?filters[name]=produto' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
```

#### **Response esperado:**

{% hint style="success" %}
200 \[Success] - OK: No retorno para a consulta acima serão visualizados todos os SKUs da conta que possuírem no campo *name* a *string* "produto" como vemos a seguir:
{% endhint %}

```
{
    "products": [
        {
            "sku": "SKU_01",
            "name": "Produto teste",
            "description": "Descrição 01",
            "status": "enabled",
          (...)
        },
        {
            "sku": "SKU_02",
            "name": "PRODUTO SIMPLES",
            "description": "Descrição 02",
            "status": "enabled",
          (...)
        },
        {
            "sku": "SKU_03",
            "name": "PRODUTO SIMPLES ESPECIAL",
            "description": "Descrição 03",
            "status": "enabled",
          (...)
        }
    (...)
    ],
    "total": 43,
    "next": "https://api.skyhub.com.br/products?cursor=cXVlcnlUaGVu...........wOw=="
}
```

### Como filtrar por quantidade em estoque

O filtro por quantidade (*qty*) permite a consulta de produtos com determinados estoques, sendo:

#### Consulta de produtos com quantidade em estoque <mark style="color:green;">**maior ou igual**</mark> ao valor especificado

Para realizar a listagem de produtos cujo estoque seja maior ou igual a um valor definido na busca deverá ser informada a query ***?filters\[qty\_from]=*** no endpoint */products*, referenciando a quantidade desejada, conforme exemplo a seguir:

```
https://api.skyhub.com.br/products?filters[qty_from]={qty}
```

#### **Example request:**&#x20;

Segue um exemplo de requisição para listagem de produtos com estoque maior ou igual a 50 unidades:

```
curl --location -g --request GET 'https://api.skyhub.com.br/products?filters[qty_from]=50' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
```

#### **Response esperado:**

{% hint style="success" %}
200 \[Success] - OK: No retorno para a consulta acima serão visualizados todos os SKUs da conta que possuírem o valor maior ou igual a 50 unidades no campo *qty*, como vemos a seguir:
{% endhint %}

```
{
    "products": [
        {
            "sku": "SKU_01",
            "name": "Título 01",
            "description": "Descrição 01",
            "status": "enabled",
            "qty": 10000,
            (...)
        },
        {
            "sku": "SKU_02",
            "name": "Título 02",
            "description": "Descrição 02",
            "status": "enabled",
            "qty": 100,
            (...)
        },
        {
            "sku": "SKU_03",
            "name": "Título 03",
            "description": "Descrição 03",
            "status": "enabled",
            "qty": 400,
            (...)
        }
    (...)
    ],
    "total": 15,
    "next": "https://api.skyhub.com.br/products?cursor=cXVlcnlUa............swOw=="
```

#### Consulta de produtos com quantidade em estoque <mark style="color:green;">**menor ou igual**</mark> ao valor especificado

Para realizar a listagem de produtos cujo estoque seja menor ou igual a um valor definido na busca deverá ser informada a query ***?filters\[qty\_to]=*** no endpoint */products* referenciando a quantidade desejada, conforme exemplo a seguir:

```
https://api.skyhub.com.br/products?filters[qty_to]={qty}
```

#### **Example request:**

Segue um exemplo de requisição para listagem de produtos com estoque menor ou igual a 50 unidades:

```
curl --location -g --request GET 'https://api.skyhub.com.br/products?filters[qty_to]=50' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
```

#### **Response esperado:**

{% hint style="success" %}
200 \[Success] - OK: No retorno para a consulta acima serão visualizados todos os SKUs da conta que possuírem o valor menor ou igual a 50 unidades para o campo *qty*, como vemos a seguir:
{% endhint %}

```
{
    "products": [
        {
            "sku": "SKU_01",
            "name": "Título 01",
            "description": "Descrição 01",
            "status": "disabled",
            "qty": 5,
            (...)
        },
        {
            "sku": "SKU_02",
            "name": "Título 02",
            "description": "Descrição 03",
            "status": "enabled",
            "qty": 3,
            (...)
        },
        {
            "sku": "SKU_03",
            "name": "Título 03",
            "description": "Descrição 03",
            "status": "enabled",
            "qty": 49,
            (...)
        }
    (...)
    ],
    "total": 86,
    "next": "https://api.skyhub.com.br/products?cursor=cXVlcnlUaG...........swOw=="
}
```

{% hint style="info" %}
É possível combinar os parâmetros ***filters\[qty\_from]*** e ***filters\[qty\_to]*** para listar produtos cujos estoques se encontram dentro de uma faixa específica, por exemplo:

* Desejo consultar apenas os SKUs que possuem estoque entre 5 e 10 unidades: Para isso basta adicionar ao GET no endpoint */products* o filtro **?filters\[qty\_from]=5\&filters\[qty\_to]=10**;
* Desejo consultar apenas os produtos que possuem 5 unidades em estoque: Para essa listagem basta incluir na pesquisa o **?filters\[qty\_from]=5\&filters\[qty\_to]=5**.
  {% endhint %}

### **Como consultar campos específicos**

Na estrutura de um produto são definidos diversos campos, como SKU, imagens, EAN, entre outros.

Através da API é possível restringir a consulta para que o retorno mostre apenas determinados atributos. Para isto, deverá ser informada a query ***?only\[]=*** no endpoint */products* referenciando o atributo que deseja visualizar, conforme descrito a seguir:

```
https://api.skyhub.com.br/products?only[]={atributo}
```

#### **Example request:**&#x20;

Segue um exemplo de requisição para listagem de todos os produtos, filtrando no retorno apenas os campos SKU, imagem e custo:

```
curl --location -g --request GET 'https://api.skyhub.com.br/products?only[]=sku&only[]=images&only[]=cost' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json'
```

#### **Response esperado:**

{% hint style="success" %}
200 \[Success] - OK: No retorno para a consulta acima serão visualizados os campos *sku*, *images* e *cost* de todos os produtos da conta, como vemos a seguir:
{% endhint %}

```
{
    "products": [
        {
            "sku": "SKU_01",
            "cost": 1374.45,
            "images": [
                "https://images-americanas.b2w.io/produtos/1234567890/imagens/camiseta-branca-tam-un/1234567890_1_xlarge.jpg"
            ]
        },
        {
            "sku": "SKU_02",
            "cost": 49.0,
            "images": [
                "https://images-americanas.b2w.io/produtos/1122334455/imagens/camiseta-preta/1122334455_1_xlarge.jpg"
            ]
        },
        {
            "sku": "SKU_03",
            "cost": 49.0,
            "images": [
                "https://images-americanas.b2w.io/produtos/0123456789/imagens/livro-para-colorir/0123456789_1_xlarge.jpg"
            ]
        }
    (...)
    ],
    "total": 101,
    "next": "https://api.skyhub.com.br/products?only[]=sku&only[]=images&only[]=cost&cursor=cXVlcnlUa........swOw=="
```


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://desenvolvedores.skyhub.com.br/produtos/outros-recursos-de-produtos/filtros-produtos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
