# Costruttori di siti

Il costruttore di siti mostra la tua pagina nel browser del visitatore, quindi la regola è l'opposto delle istruzioni per le automazioni: inserisci il widget, non la chiave. Entrambi gli snippet qui sotto sono stati caricati dalla pagina su un dominio esterno in Chrome 2026-09-17, e entrambi sono stati renderizzati.

## Inserisci uno degli snippet

Iframe normale, quando la dimensione è nota:

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

Loader, quando non vuoi scegliere la dimensione: sostituisce se stesso con un iframe e adatta l'altezza al contenuto tramite `postMessage`.

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

Quindici widget, tutti i parametri e un pulsante di copia per ciascuno nella pagina [Widget](/products/embed-widgets/). Qualsiasi attributo `data-*` diventa un parametro di richiesta.

## Dove inserire il codice

| Costruttore | Cosa cercare |
|---|---|
| Wix | [elemento di inserimento HTML](https://support.wix.com/en/article/wix-editor-embedding-a-site-or-a-widget) |
| Squarespace | [blocco di codice](https://support.squarespace.com/hc/en-us/articles/205815908-Code-blocks) |
| Shopify | sezione custom liquid o editor del tema |
| Webflow | elemento embed |
| Tilda | blocco HTML, T123 |

Per Wix e Squarespace i link puntano alle loro guide; gli altri tre sono indicati con il nome della funzione, perché le loro pagine di documentazione non si aprono con il controllo automatico, e non faremo riferimento a fonti non verificate.

## La chiave non è necessaria e non è accettata

Gli endpoint `/v1/embed/*` sono pubblici. La chiave nell'attributo della pagina sarebbe visibile a ogni visitatore, quindi il loader la ignora e lo segnala nella console.

Limiti: **30 richieste all'ora per IP del visitatore**, le risposte sono cache per cinque minuti. Quindi una pagina con molti visitatori funziona bene, ma un singolo visitatore che la ricarica continuamente no.

## Cosa la pagina non può chiamare

Al browser su un dominio esterno rispondono solo `/v1/public/*` e `/v1/embed/*`. Tutto il resto sotto `/v1/*` rifiuta il preflight: dalla pagina su dominio esterno `POST /v1/chart` è tornato senza l'intestazione `access-control-allow-origin`, e Chrome lo ha bloccato, mentre `POST /v1/public/chart` dalla stessa pagina ha risposto `200`.

Quindi, se vuoi che il visitatore inserisca i propri dati di nascita e veda la carta, usa [endpoint senza chiave](/free/) o il [widget-calcolatore della carta natale](/products/embed-widgets/#окремий-віджет-калькулятор-натальної-карти), che calcola direttamente nel browser. Tutto ciò che richiede una chiave segreta vive sul server: il tuo o uno degli strumenti nella sezione [Integrazioni senza codice](/integrations/).

<Aside type="note" title="Quando una chiave pubblica può tornare utile">
Vale la pena creare la chiave `pk_` se la pagina chiama direttamente `/v1/public/*` e il limite condiviso per visitatore è insufficiente: sul piano a pagamento la chiave ha un proprio limite, e la lista di origin la rende inutile su qualsiasi altro dominio. Per i widget sopra non è necessaria affatto.
</Aside>
