# Erros

> Entenda o formato de erros retornados pela API e consulte a lista completa de códigos.

Quando uma requisição não pode ser processada, a API retorna um objeto `errors` contendo uma lista com os erros identificados. Cada erro possui um código, uma mensagem descritiva e um link para a documentação.

## Formato

Os erros são retornados no array `errors` da resposta. Os códigos são sempre enviados em letras maiúsculas.

```json
{
  "metadata": {
    "key_status": "invalid",
    "cached": false,
    "response_time_ms": 0.0,
    "language": "pt-br"
  },

  "results": [],

  "errors": [
    {
      "code": "INVALID_API_KEY",
      "message": "Chave de API inválida.",
      "help": "https://hgbrasil.com/docs"
    },
    {
      "code": "UNAUTHORIZED_KEY",
      "message": "Chave não possui acesso para este recurso.",
      "help": "https://hgbrasil.com/docs"
    }
  ]
}
```

<field-group>
<field name="code" type="string">

Código identificador do erro, sempre em letras maiúsculas.

</field>

<field name="message" type="string">

Mensagem descritiva explicando o motivo do erro.

</field>

<field name="help" type="string">

Link para a documentação com mais informações.

</field>
</field-group>

## Lista de Erros

<table>
<thead>
  <tr>
    <th>
      Código
    </th>
    
    <th>
      Mensagem
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        INVALID_API_KEY
      </code>
    </td>
    
    <td>
      Chave de API inválida.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        UNAUTHORIZED_KEY
      </code>
    </td>
    
    <td>
      Chave não possui acesso para este recurso.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        REQUIRED_TICKER
      </code>
    </td>
    
    <td>
      Ticker é obrigatório.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        INVALID_TICKER
      </code>
    </td>
    
    <td>
      Ticker inválido.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        INVALID_TIME_SERIES
      </code>
    </td>
    
    <td>
      Série temporal inválida.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        MAX_PER_REQUEST
      </code>
    </td>
    
    <td>
      Máximo de itens por requisição excedido.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        INVALID_RANGE
      </code>
    </td>
    
    <td>
      O dado informado está fora do intervalo permitido.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        HISTORICAL_DATE_LIMIT
      </code>
    </td>
    
    <td>
      Data máxima do histórico deve estar dentro do limite.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        INVALID_DATE
      </code>
    </td>
    
    <td>
      Data inválida.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        INVALID_DATE_RANGE
      </code>
    </td>
    
    <td>
      Intervalo de datas inválido.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        INVALID_PARAMETER
      </code>
    </td>
    
    <td>
      Parâmetro inválido.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        REQUIRED_DATE
      </code>
    </td>
    
    <td>
      Data é obrigatório.
    </td>
  </tr>
</tbody>
</table>
