# Pułapki

Nic z tego nie jest błędem. To zachowanie, o którym lepiej dowiedzieć się z dokumentacji, niż z analizy cudzej odpowiedzi.

## W odpowiedzi jest dodatkowe pole `_footer`

Bezpłatny plan i **każde** wywołanie bez klucza otrzymują w treści dodatkowe pole `_footer` z podpisem. Klucze płatne go nie widzą. Jeśli Twój parser jest ścisły co do dodatkowych pól, to o tym pierwszy się potknie.

## Powtórzone identyczne wywołanie kosztuje zero

Identyczne żądanie w oknie cache zwraca `X-Cache: HIT`, a takie wywołanie **nie zużywa kredytów**: w odpowiedzi `X-Credits-Used: 0`, a reszta jest zwracana. Oznacza to, że nie można zmierzyć kosztu, wysyłając to samo żądanie wielokrotnie: płacisz raz.

## Klucz testowy nie zużywa niczego

`aw_test_*` nie zużywa w ogóle kredytów i nie wchodzi do limitu konta. To nie jest "mała kwota", to zero. Powinieneś rozwijać aplikację właśnie na nim, a `aw_live_*` brać wtedy, gdy sprawdzasz rozliczenia.

## Nieznane pola są ignorowane

Treść akceptuje dodatkowe klucze i je ignoruje. Wyjątkiem są tylko wyraźnie odrzucone skrócone zapisy (`lat`, `tz` i resztę, zobacz [Formaty pól](/agent-setup/field-formats/)). Dlatego literówka w nazwie pola zwykle nie da o sobie znać: otrzymasz `200` i wykres obliczony bez Twojego parametru.

<Aside type="caution">
Najdroższy przypadek tego typu: `city` wygląda jak adres, ale nic nie geokoduje. Bez `latitude` i `longitude` nie będzie wykresu.
</Aside>

## Na biegunach system domów jest zastępowany

Dla systemów kwadrantowych przy `|latitude| > 66.5°` Swiss Ephemeris cicho zwraca Porphyry. Nie ukrywamy tego: w odpowiedzi pojawia się pole `warning`. Whole Sign i Equal działają na każdej szerokości geograficznej.

Sąsiedni przypadek zamknęliśmy odrzuceniem: nieznany kod `houseSystem` już nie daje Placidusa pod inną nazwą, ale zwraca `400`.

## Klucz ma trzy niezależne limity

Klucz przeglądarkowy `pk_` i tajny `aw_` mogą nieść trzy ograniczenia jednocześnie, i się nie wykluczają:

| Limit | Co mówi | Odrzucenie |
|---|---|---|
| lista domen | skąd można go wywołać | `403 ORIGIN_REQUIRED` / `ORIGIN_NOT_ALLOWED` |
| `credits_cap_cycle` | ile ten klucz może wydać | `429 KEY_BUDGET_EXHAUSTED` |
| `allowed_endpoints` | co dokładnie można wywołać | `403 ENDPOINT_NOT_IN_SCOPE` |

Zakres endpointów **nie** zwalnia z odczytów usługowych: klucz zawężony do `embed/*` nie odczyta nawet własnej statystyki. Jest to celowe, szczegóły w [Autentykacji](/authentication/).

## Edycja kluczu obowiązuje od następnego żądania

Klucze są cache'owane przez 60 sekund, ale każda zmiana przez `PATCH /v1/keys/{id}` resetuje cache natychmiast. Nie trzeba czekać minuty.
