# Конструктори сайтів

Конструктор сайтів показує вашу сторінку в браузері відвідувача, тож правило протилежне до інструкцій для автоматизацій: ви вставляєте віджет, а не ключ. Обидва сніпети нижче завантажено зі сторінки на сторонньому домені в Chrome 2026-09-17, і обидва відмалювалися.

## Вставте один зі сніпетів

Звичайний iframe, коли розмір відомий:

```html
<iframe src="https://api.astroway.info/v1/embed/moon-phase?theme=light&lang=uk"
        width="320" height="360" style="border:0"></iframe>
```

Лоадер, коли розмір підбирати не хочеться: він замінює себе на iframe і підганяє висоту під вміст через `postMessage`.

```html
<script src="https://cdn.astroway.info/embed.js"
        data-widget="moon-phase" data-lang="uk" data-theme="light"></script>
```

П'ятнадцять віджетів, усі параметри та кнопка копіювання для кожного на сторінці [Віджети](/products/embed-widgets/). Будь-який атрибут `data-*` стає параметром запиту.

## Куди вставляти код

| Конструктор | Що шукати |
|---|---|
| Wix | [елемент вставки HTML-коду](https://support.wix.com/en/article/wix-editor-embedding-a-site-or-a-widget) |
| Squarespace | [блок коду](https://support.squarespace.com/hc/en-us/articles/205815908-Code-blocks) |
| Shopify | секцію custom liquid або редактор коду теми |
| Webflow | елемент embed |
| Tilda | блок HTML-коду, T123 |

Для Wix і Squarespace посилання ведуть у їхні довідки; решту трьох названо за іменем функції, бо їхні довідкові сторінки не відкриваються автоматичною перевіркою, а посилатися на неперевірене ми не станемо.

## Ключ не потрібен і не приймається

Ендпоінти `/v1/embed/*` публічні. Ключ в атрибуті сторінки побачив би кожен відвідувач, тож лоадер його ігнорує і пише про це в консоль.

Ліміти: **30 запитів на годину з IP відвідувача**, відповіді кешуються на п'ять хвилин. Тож сторінка з великою кількістю відвідувачів почувається добре, а один відвідувач, що перезавантажує її по колу, ні.

## Чого сторінка викликати не може

Браузеру на чужому домені відповідають лише `/v1/public/*` і `/v1/embed/*`. Усе інше під `/v1/*` відхиляє preflight: зі сторінки на сторонньому домені `POST /v1/chart` повернувся без заголовка `access-control-allow-origin`, і Chrome його заблокував, а `POST /v1/public/chart` із тієї ж сторінки відповів `200`.

Тож якщо ви хочете, аби відвідувач вводив власні дані народження й бачив карту, скористайтеся [ендпоінтами без ключа](/free/) або [віджетом-калькулятором натальної карти](/products/embed-widgets/#окремий-віджет-калькулятор-натальної-карти), який рахує просто в браузері. Усе, що потребує секретного ключа, живе на сервері: вашому власному або в одному з інструментів із розділу [Інтеграції без коду](/integrations/).

<Aside type="note" title="Коли стане в пригоді публічний ключ">
Ключ `pk_` варто створити, якщо сторінка сама звертається до `/v1/public/*` і спільного ліміту на відвідувача замало: на платному тарифі ключ має власний ліміт, а список origin робить його марним на будь-якому іншому домені. Для віджетів вище він не потрібен зовсім.
</Aside>
