# Підводні камені

Нічого з цього не є помилкою. Це поведінка, про яку краще дізнатися з документації, ніж із розбору чужої відповіді.

## У відповіді є зайве поле `_footer`

Безкоштовний тариф і **будь-який** виклик без ключа отримують у тілі додаткове поле `_footer` з підписом. Платні ключі його не бачать. Якщо ваш парсер сувора до зайвих полів, це перше, на чому він спіткнеться.

## Повторний однаковий виклик коштує нуль

Ідентичний запит протягом вікна кешу повертає `X-Cache: HIT`, і такий виклик **не списує кредитів**: у відповіді `X-Credits-Used: 0`, а залишок повертається назад. Тобто виміряти вартість, ганяючи один і той самий запит, не вийде: заплатите один раз.

## Sandbox-ключ не витрачає нічого

`aw_test_*` не списує кредитів взагалі й не входить у ліміт акаунта. Це не «маленька квота», це нуль. Розробляти варто саме на ньому, а `aw_live_*` брати тоді, коли перевіряєте білінг.

## Незнайомі поля проходять мовчки

Тіло приймає зайві ключі й ігнорує їх. Виняток лише для явно відхилених коротких написань (`lat`, `tz` і решта, див. [Формати полів](/agent-setup/field-formats/)). Тому одруківка в назві поля зазвичай не дасть про себе знати: ви отримаєте `200` і карту, порахувану без вашого параметра.

<Aside type="caution">
Найдорожчий випадок цього роду: `city` виглядає як адреса, але нічого не геокодує. Без `latitude` і `longitude` карти не буде.
</Aside>

## За полярним колом система домів підміняється

Для квадрантних систем при `|latitude| > 66.5°` Swiss Ephemeris мовчки віддає Porphyry. Ми це не приховуємо: у відповіді з'являється поле `warning`. Whole Sign і Equal працюють на будь-якій широті.

Сусідній випадок ми закрили відмовою: невідомий код `houseSystem` більше не дає Placidus під чужою назвою, а повертає `400`.

## Ключ має три незалежні межі

Браузерний ключ `pk_` і секретний `aw_` можуть нести три обмеження одразу, і вони не замінюють одне одного:

| Межа | Що каже | Відмова |
|---|---|---|
| список доменів | звідки можна викликати | `403 ORIGIN_REQUIRED` / `ORIGIN_NOT_ALLOWED` |
| `credits_cap_cycle` | скільки цей ключ може витратити | `429 KEY_BUDGET_EXHAUSTED` |
| `allowed_endpoints` | що саме можна викликати | `403 ENDPOINT_NOT_IN_SCOPE` |

Область ендпоінтів **не** звільняє службові читання: ключ, звужений до `embed/*`, не прочитає й власну статистику. Це навмисно, подробиці в [Автентифікації](/authentication/).

## Правка ключа діє з наступного запиту

Ключі кешуються на 60 секунд, але будь-яка зміна через `PATCH /v1/keys/{id}` скидає кеш одразу. Чекати хвилину не треба.
