# Armadilhas

Nada disto é um erro. É um comportamento que é melhor aprender da documentação do que da análise de uma resposta alheia.

## Na resposta há um campo extra `_footer`

O plano gratuito e **qualquer** chamada sem chave recebem no corpo um campo extra `_footer` com assinatura. Chaves pagas não o veem. Se o seu parser é rigoroso quanto a campos extras, este será o primeiro em que ele tropeça.

## Uma chamada idêntica repetida custa zero

Um pedido idêntico dentro da janela de cache retorna `X-Cache: HIT`, e tal chamada **não deduz créditos**: na resposta `X-Credits-Used: 0`, e o saldo é devolvido. Portanto, não é possível medir o custo, batendo o mesmo pedido repetidamente: você pagará uma vez.

## Chave Sandbox não gasta nada

`aw_test_*` não deduz créditos de todo e não entram no limite da conta. Não é uma "cota pequena", é zero. O desenvolvimento deve ser feito nele, e `aw_live_*` deve ser usado quando verificar a faturação.

## Campos desconhecidos são ignorados silenciosamente

O corpo aceita chaves extras e as ignora. A exceção são as notações curtas explicitamente rejeitadas (`lat`, `tz` e as restantes, ver [Formatos de Campo](/agent-setup/field-formats/)). Portanto, um erro de digitação no nome de um campo geralmente não se manifestará: você receberá `200` e um gráfico calculado sem o seu parâmetro.

<Aside type="caution">
O pior caso deste tipo: `city` parece um endereço, mas não geocodifica nada. Sem `latitude` e `longitude` não haverá gráfico.
</Aside>

## Acima do Círculo Polar, o sistema de casas é substituído

Para sistemas de quadrante com `|latitude| > 66.5°`, o Swiss Ephemeris retorna silenciosamente Porphyry. Isto não é oculto: um campo `warning` aparece na resposta. Whole Sign e Equal funcionam em qualquer latitude.

Um caso similar fechámos com rejeição: códigos `houseSystem` desconhecidos já não dão Placidus sob outro nome, mas retornam `400`.

## A chave tem três limites independentes

A chave do navegador `pk_` e a secreta `aw_` podem ter três restrições ao mesmo tempo, e elas não se substituem:

| Limite | O que diz | Recusa |
|---|---|---|
| lista de domínios | de onde pode ser chamado | `403 ORIGIN_REQUIRED` / `ORIGIN_NOT_ALLOWED` |
| `credits_cap_cycle` | quanto esta chave pode gastar | `429 KEY_BUDGET_EXHAUSTED` |
| `allowed_endpoints` | o que exatamente pode ser chamado | `403 ENDPOINT_NOT_IN_SCOPE` |

O âmbito de endpoint **não** liberta leituras de serviço: uma chave restrita a `embed/*` não lerá as suas próprias estatísticas. É intencional, detalhes em [Autenticação](/authentication/).

## A alteração da chave entra em vigor a partir do próximo pedido

As chaves são cacheadas por 60 segundos, mas qualquer alteração via `PATCH /v1/keys/{id}` limpa o cache imediatamente. Não é necessário esperar um minuto.
