# Zapier

Zap, який бере дату, час, зону й координати народження з тригера, запитує в API карту і перетворює Асцендент на назву знака. Запит нижче надіслано на продакшен саме в тому вигляді, в якому його складає крок; кроки в Zapier написані за довідкою Zapier станом на 2026-09-17.

<Aside type="caution" title="Потрібен платний тариф Zapier">
API by Zapier, Webhooks by Zapier і Formatter є преміум-застосунками. Довідка Zapier позначає всі три як недоступні на тарифі Free, а крок Lookup Table потребує тарифу Professional або вищого. На Free скористайтеся [Make](/integrations/make/) або [n8n](/integrations/n8n/).
</Aside>

Спершу створіть ключ, як описано в розділі [Ключ для автоматизації](/integrations/#ключ-для-автоматизації), з областю `chart`.

## 1. Покладіть ключ у з'єднання

Заголовки, введені в крок Webhooks by Zapier, зберігаються в самому кроці, і їх бачить кожен, хто має доступ до Zap. API by Zapier тримає їх у з'єднанні.

1. На сторінці **Apps** натисніть **+ Add connection** і виберіть **API by Zapier**.
2. **Authentication type**: Static Headers (API key).
3. **Headers**: `X-Api-Key: ` і далі ваш ключ, в одному рядку.
4. **Domain filter**: `api.astroway.info`, щоб з'єднання не можна було спрямувати кудись іще.

## 2. Викличте карту

Додайте дію, виберіть **API by Zapier**, подію **API Request** і з'єднання.

- **Method**: `POST`.
- **URL**:

  ```
  https://api.astroway.info/v1/chart
  ```

- **Body**: JSON нижче з полями тригера замість значень.

```json
{
  "date": "1990-05-15",
  "time": "14:30:00",
  "timezone": "Europe/Kyiv",
  "latitude": "50.45",
  "longitude": "30.52"
}
```

Замініть кожне значення відповідним полем тригера й залиште лапки навколо кожного, числа теж. Zapier вставляє зіставлене поле як простий текст і лапок сам не додає, а API приймає `"50.45"` як число. Ключ у Headers кроку не додавайте: його підставляє з'єднання.

Протестуйте крок. Правильна відповідь починається з `"ok": true`, а `data.input.timezoneOffset` для прикладу дорівнює `4`: зсув, який Київ мав того дня.

## 3. Перетворіть Асцендент на знак

Два кроки Formatter.

**Formatter, подія Numbers, перетворення Spreadsheet-Style Formula.** Формула:

```
FLOOR(ASCENDANT / 30)
```

де замість `ASCENDANT` підставлено `data.houses.ascendant` із кроку 2. Для прикладу виходить `5`.

**Formatter, подія Utilities, перетворення Lookup Table.** Lookup Key це результат формули. Таблиця:

| Key | Value |
|---|---|
| 0 | Aries |
| 1 | Taurus |
| 2 | Gemini |
| 3 | Cancer |
| 4 | Leo |
| 5 | Virgo |
| 6 | Libra |
| 7 | Scorpio |
| 8 | Sagittarius |
| 9 | Capricorn |
| 10 | Aquarius |
| 11 | Pisces |

Для прикладу результат `Virgo`. Щоб отримати українські назви, впишіть їх у стовпець Value.

Сонце й Місяць рахуються так само. Це перший і другий запис у `data.planets`, кожен із власною `longitude`: для прикладу 54.34 (Телець) і 296.39 (Козеріг).

## Якщо ви користуєтеся Webhooks by Zapier

Працює, але ключ лежить у кроці, а не в з'єднанні. Для карти виберіть подію **Custom Request**: вона надсилає поле Data рівно так, як його введено, тож JSON вище піде без змін. Поставте **Method** `POST`, а в **Headers** додайте і `X-Api-Key` з вашим ключем, і `Content-Type` зі значенням `application/json`.

## Коли крок падає

- **`400 INVALID_FIELD` з `timezone` у `details`**: зіставлена зона порожня, це абревіатура на кшталт `EST` або не назва зони.
- **`400` з `date` чи `time` у `details`**: формат тригера не `YYYY-MM-DD` / `HH:MM:SS`; додайте перед викликом крок Formatter для дати.
- **`403 ENDPOINT_NOT_IN_SCOPE`**: в області ключа немає `chart`.
- **`429 KEY_BUDGET_EXHAUSTED`**: ключ вичерпав власний бюджет; підніміть його в дашборді.

API не геокодує. Якщо тригер має лише назву місця, координати мають прийти з самого тригера або із сервісу геокодування, до якого у вас є ключ.
