> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.erp.olist.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Obter Árvore de Categorias dos Produtos

> Serviço destinado a obter a árvore de categorias de produtos.

## Endpoint

```
POST https://api.tiny.com.br/api2/produtos.categorias.arvore.php
```

## Parâmetros

| Parâmetro | Tipo   | Ocorrência  | Descrição                                 |
| --------- | ------ | ----------- | ----------------------------------------- |
| token     | string | obrigatório | Chave gerada para identificar sua empresa |

## Retorno

| Campo                           | Tipo   | Tamanho | Ocorrência  | Descrição                                 |
| ------------------------------- | ------ | ------- | ----------- | ----------------------------------------- |
| retorno                         | object | -       | obrigatório | Elemento raiz do retorno                  |
| retorno.status\_processamento   | int    | -       | obrigatório | Conforme tabela "Status de Processamento" |
| retorno.status                  | string | -       | obrigatório | Status "OK" ou "Erro"                     |
| retorno.codigo\_erro            | int    | -       | condicional | Conforme tabela "Códigos de erro"         |
| retorno.erros\[]                | list   | -       | condicional | Lista dos erros encontrados               |
| retorno.erros\[].erro           | string | -       | condicional | Mensagem descritiva do erro               |
| retorno.categorias\[]           | lista  | -       | condicional | Lista de categorias                       |
| retorno.categorias\[].id        | int    | -       | condicional | ID da categoria na Olist                  |
| retorno.categorias\[].descricao | string | -       | condicional | Descrição da categoria                    |
| retorno.categorias\[].nodes\[]  | lista  | -       | condicional | Lista com subcategorias                   |

## Exemplo de chamada

```php theme={null}
$url = 'https://api.tiny.com.br/api2/produtos.categorias.arvore.php';
$token = 'sua_chave_api';
$data = "token=$token";

$params = array('http' => array(
    'method' => 'POST',
    'content' => $data
));
$ctx = stream_context_create($params);
$fp = fopen($url, 'rb', false, $ctx);
$response = stream_get_contents($fp);
```

## Exemplos de retorno

### Sucesso - Categorias com estrutura hierárquica

```json theme={null}
{
  "retorno": {
    "status_processamento": 3,
    "status": "OK",
    "categorias": [
      {
        "id": "440269263",
        "descricao": "Roupas",
        "nodes": [
          {"id": "440292323", "descricao": "Masculino", "nodes": []},
          {"id": "440490942", "descricao": "Feminino", "nodes": []}
        ]
      },
      {
        "id": "440430710",
        "descricao": "Teste",
        "nodes": [
          {
            "id": "440430711",
            "descricao": "Teste 1",
            "nodes": [
              {
                "id": "440430712",
                "descricao": "Teste 2",
                "nodes": [
                  {"id": "440430713", "descricao": "Teste 3", "nodes": []}
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}
```

### Erro - Token inválido

```json theme={null}
{
  "retorno": {
    "status_processamento": 1,
    "status": "Erro",
    "codigo_erro": 2,
    "erros": [
      {"erro": "token invalido"}
    ]
  }
}
```

### Erro - Sem registros

```json theme={null}
{
  "retorno": {
    "status_processamento": 2,
    "status": "Erro",
    "codigo_erro": 20,
    "erros": [
      {"erro": "A Consulta não retornou registros"}
    ]
  }
}
```
