# Skryté úskalí

Nic z toho není chyba. Jde o chování, o kterém je lepší se dozvědět z dokumentace než z rozboru cizí odpovědi.

## Odpověď obsahuje nadbytečné pole `_footer`

Bezplatný tarif a **jakékoli** volání bez klíče obdrží v těle dodatečné pole `_footer` s podpisem. Placené klíče ho nevidí. Pokud je tvůj parser přísný na nadbytečná pole, je to první, na čem se zasekne.

## Opakované identické volání stojí nula

Identický požadavek během okna cache vrátí `X-Cache: HIT`, a takové volání **neodečítá kredity**: v odpovědi je `X-Credits-Used: 0` a zbytek se vrátí zpět. To znamená, že změřit náklady opakováním stejného požadavku se ti nepodaří: zaplatíš jednou.

## Sandbox klíč nic nestojí

`aw_test_*` neodečítá kredity vůbec a nezapočítává se do limitu účtu. Není to „malá kvóta“, je to nula. Vyvíjet bys měl právě na něm a `aw_live_*` použít, až když ověřuješ fakturaci.

## Neznámá pole jsou tiše ignorována

Tělo přijímá nadbytečné klíče a ignoruje je. Výjimkou jsou pouze explicitně odmítnuté krátké zápisy (`lat`, `tz` a zbytek, viz [Formáty polí](/agent-setup/field-formats/)). Proto se překlep v názvu pole obvykle neprojeví: dostaneš `200` a mapu vypočítanou bez tvého parametru.

<Aside type="caution">
Nejdražší případ tohoto druhu: `city` vypadá jako adresa, ale nic geokóduje. Bez `latitude` a `longitude` mapa nebude.
</Aside>

## Za polárním kruhem se systém domů nahrazuje

Pro kvadrantové systémy při `|latitude| > 66.5°` Swiss Ephemeris tiše vrací Porphyry. My to neskrýváme: v odpovědi se objeví pole `warning`. Whole Sign a Equal fungují na jakékoli zeměpisné šířce.

Sousední případ jsme vyřešili odmítnutím: neznámý kód `houseSystem` již nevrací Placidus pod cizím názvem, ale vrací `400`.

## Klíč má tři nezávislé limity

Prohlížečový klíč `pk_` a tajný `aw_` mohou nést tři omezení najednou, a ta se navzájem nenahrazují:

| Limit | Co říká | Odmítnutí |
|---|---|---|
| seznam domén | odkud lze volat | `403 ORIGIN_REQUIRED` / `ORIGIN_NOT_ALLOWED` |
| `credits_cap_cycle` | kolik tento klíč může utratit | `429 KEY_BUDGET_EXHAUSTED` |
| `allowed_endpoints` | co přesně lze volat | `403 ENDPOINT_NOT_IN_SCOPE` |

Rozsah endpointů **ne**osvobozuje služební čtení: klíč, zúžený na `embed/*`, nepřečte ani vlastní statistiku. To je záměrné, podrobnosti v [Autentizaci](/authentication/).

## Úprava klíče platí od dalšího požadavku

Klíče jsou cachovány po dobu 60 sekund, ale jakákoli změna přes `PATCH /v1/keys/{id}` okamžitě resetuje cache. Nemusíš čekat minutu.
