# Intégrations sans code

Tout sur ces pages est réalisé contre la production 2026-09-17. Le workflow pour n8n a été importé et lancé dans un vrai n8n ; les étapes pour Zapier et Make sont écrites selon leur propre documentation, et les requêtes qu'ils composent sont envoyées exactement comme telles.

## D'où provient la requête

Cela détermine quelle clé est nécessaire.

- **Zapier, Make et n8n** envoient la requête depuis leurs serveurs. Une clé "Serveur uniquement" avec la portée des endpoints et le budget est nécessaire, comme décrit ci-dessous. Instructions : [Zapier](/integrations/zapier/), [Make](/integrations/make/), [n8n](/integrations/n8n/).
- **Bubble** envoie aussi les requêtes depuis ses serveurs, et la clé se trouve dans l'en-tête qui reste là : [Bubble](/integrations/bubble/).
- **FlutterFlow** est compilé en application que l'utilisateur détient, donc l'appel doit être privé : [FlutterFlow](/integrations/flutterflow/).
- **Wix, Squarespace, Shopify, Webflow et Tilda** affichent la page dans le navigateur du visiteur. Insérez le widget, pas la clé : [constructeurs de sites](/integrations/site-builders/).
- **WordPress** fait la requête depuis votre propre serveur. La clé est gérée par le [plugin AstroWay](https://wordpress.org/plugins/astroway/).

<Aside type="caution">
La clé publique `pk_` ne fonctionne pas avec Zapier, Make ou n8n. Elle rejette la requête sans origine de sa liste, et ces outils n'envoient pas d'origine. Depuis une page web, elle ne récupère que `/v1/public/*` et `/v1/embed/*`.
</Aside>

## Clé pour l'automatisation

Quiconque peut modifier un Zap, un script ou un workflow voit la clé à l'intérieur. Donnez à chaque automatisation sa propre clé et limitez-la à ce qu'elle fait.

1. Dans le tableau de bord, ouvrez les [clés API](https://api.astroway.info/dashboard/keys) et cliquez sur **Nouvelle clé**. Nommez-la en fonction de l'automatisation, par exemple `zapier-intake-form`.
2. Dans le champ **Où cette clé sera-t-elle utilisée ?**, laissez **Serveur uniquement**.
3. Copiez la clé. La boîte de dialogue l'affiche complètement une seule fois ; plus tard, elle est accessible via **Afficher** dans le menu de la clé.
4. Dans le menu de la clé, ouvrez **Portée des endpoints** et listez les chemins que l'automatisation appelle, un par ligne : `chart` pour le thème natal, `public/horoscope/*` pour les horoscopes quotidiens.
5. Dans le même menu, ouvrez **Définir le budget** et indiquez combien de crédits cette clé peut dépenser par cycle.

Un appel hors liste obtient `403 ENDPOINT_NOT_IN_SCOPE`. Une clé qui a épuisé son budget obtient `429 KEY_BUDGET_EXHAUSTED`, même quand le compte a encore des crédits, donc une automatisation qui boucle s'arrêtera au nombre indiqué. Les deux limites fonctionnent sur n'importe quel tarif et sont décrites dans la section [Authentification](/authentication/).

## Envoyez le moment de naissance, pas le décalage

La forme donne la date, l'heure sur l'horloge et le lieu. Envoyez-les comme ceci :

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

- **`timezone`** est le nom du fuseau, et le serveur trouve lui-même le décalage par rapport à UTC que les horloges avaient cette date, y compris l'heure d'été. Kiev 1990-05-15 était à UTC+4, pas +3 : c'est exactement cette erreur que donne le décalage entré manuellement. Envoyez `auto` pour prendre le fuseau à partir des coordonnées.
- **Sans `timezone` et sans décalage**, le thème est calculé pour UTC. La réponse est toujours `200`, donc vérifiez que le champ est bien mappé.
- **`timezone` vide** est rejeté avec `400`, car sinon un champ de formulaire non rempli serait interprété comme UTC.
- **`date`** au format `YYYY-MM-DD`, **`time`** au format `HH:MM:SS`. Si le formulaire les enregistre différemment, utilisez le formatage de date dans l'outil lui-même.
- **Les nombres peuvent venir en texte.** `"latitude": "50.45"` est accepté, et c'est comme ça que la plupart des champs de formulaire les envoient.
- **L'API ne géocode pas.** Les coordonnées doivent venir du formulaire ou d'une étape de géocodage dans l'outil. Le champ `city` est juste pour l'étiquette.

Les règles pour convertir les heures et dates avant 1970 sont décrites dans [formats de champ](/agent-setup/field-formats/#timezone-nom-du-fuseau-au-lieu-du-décalage).

## Comment convertir les longitudes en signes

`POST /v1/chart` répond en degrés le long du zodiaque, dans l'enveloppe `{ "ok": true, "data": { ... } }`. Le signe est `floor(longitude / 30)`, en partant de zéro :

0 Bélier, 1 Taureau, 2 Gémeaux, 3 Cancer, 4 Lion, 5 Vierge, 6 Balance, 7 Scorpion, 8 Sagittaire, 9 Capricorne, 10 Verseau, 11 Poissons.

Où se trouvent les trois valeurs les plus populaires :

- **Soleil** : entrée dans `data.planets` avec `"name": "Sun"`, la première.
- **Lune** : entrée dans `data.planets` avec `"name": "Moon"`, la deuxième.
- **Ascendant** : `data.houses.ascendant`.
- **Décalage utilisé** : `data.input.timezoneOffset`.

Pour l'exemple ci-dessus : Soleil 54.34, donc Taureau ; Lune 296.39, Capricorne ; Ascendant 159.26, Vierge ; décalage 4.

## Combien ça coûte

- `POST /v1/chart` coûte 20 crédits. Tableau complet sur la page [Coût des endpoints](/credits/).
- La même requête, envoyée à nouveau dans les cinq minutes, est renvoyée depuis le cache et n'est pas débitée. Un test qui répète le même corps ne consomme pas le budget.
- `GET /v1/public/horoscope/daily` ne consomme pas de crédits. Sans clé ou avec une clé sur le tarif Free, il est compté dans la limite de 30 requêtes par heure par adresse IP, et les plateformes d'automatisation partagent leurs adresses entre clients. Une clé sur un tarif payant a sa propre limite.
