# Constructeurs de sites

Les constructeurs de sites affichent votre page dans le navigateur du visiteur, donc la règle est l'inverse des instructions pour l'automatisation : vous insérez un widget, pas une clé. Les deux extraits ci-dessous ont été chargés depuis une page d'un domaine tiers dans Chrome le 2026-09-17, et les deux se sont affichés correctement.

## Insérez l'un des extraits suivants

Iframe standard, lorsque la taille est connue :

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

Chargeur, lorsque vous ne souhaitez pas ajuster la taille : il se remplace par un iframe et ajuste la hauteur au contenu via `postMessage`.

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

Quinze widgets, tous les paramètres et un bouton de copie pour chacun sur la page [Widgets](/products/embed-widgets/). N'importe quel attribut `data-*` devient un paramètre de requête.

## Où insérer le code

| Constructeur | À rechercher |
|---|---|
| Wix | [l'élément d'insertion de code HTML](https://support.wix.com/en/article/wix-editor-embedding-a-site-or-a-widget) |
| Squarespace | [le bloc de code](https://support.squarespace.com/hc/en-us/articles/205815908-Code-blocks) |
| Shopify | section custom liquid ou éditeur de code de thème |
| Webflow | élément embed |
| Tilda | bloc de code HTML, T123 |

Pour Wix et Squarespace, les liens mènent à leurs documentations ; les trois autres sont nommés d'après le nom de la fonction, car leurs pages de documentation ne s'ouvrent pas lors de la vérification automatique, et nous ne voulons pas lier à quelque chose qui n'a pas été vérifié.

## La clé n'est pas nécessaire et n'est pas acceptée

Les endpoints `/v1/embed/*` sont publics. Une clé dans l'attribut de la page serait visible par chaque visiteur, donc le chargeur l'ignore et l'indique dans la console.

Limites : **30 requêtes par heure par IP de visiteur**, les réponses sont mises en cache pendant cinq minutes. Ainsi, une page avec beaucoup de visiteurs fonctionne bien, mais un seul visiteur qui la recharge en boucle ne fonctionnera pas bien.

## Ce que la page ne peut pas appeler

Seuls `/v1/public/*` et `/v1/embed/*` répondent au navigateur sur un domaine tiers. Tout le reste sous `/v1/*` rejette le preflight : depuis une page sur un domaine tiers, `POST /v1/chart` est retourné sans l'en-tête `access-control-allow-origin`, et Chrome l'a bloqué, tandis que `POST /v1/public/chart` depuis la même page a répondu `200`.

Donc, si vous voulez que les visiteurs saisissent leurs propres données de naissance et voient le graphique, utilisez les [endpoints sans clé](/free/) ou le [widget calculateur de carte natale](/products/embed-widgets/#окремий-віджет-калькулятор-натальної-карти), qui calcule simplement dans le navigateur. Tout ce qui nécessite une clé secrète réside sur le serveur : le vôtre propre ou dans l'un des outils de la section [Intégrations sans code](/integrations/).

<Aside type="note" title="Quand une clé publique sera utile">
Une clé `pk_` devrait être créée si la page elle-même appelle `/v1/public/*` et que la limite commune par visiteur est insuffisante : avec un tarif payant, la clé a sa propre limite, et la liste des origins la rend inutile sur tout autre domaine. Pour les widgets ci-dessus, elle n'est pas du tout nécessaire.
</Aside>
