# n8n

Workflow mit vier Knoten: Eingabe sind Geburtsdaten, in der Mitte die Natalkarte von der API, Ausgabe sind die Zeichen von Sonne, Mond und Aszendent. Er wurde in n8n 2.39.7 importiert und gegen die Produktion am 2026-09-17 ausgeführt, und das Ergebnis unten ist genau das, was er zurückgegeben hat.

Erstelle zuerst einen Schlüssel, wie im Abschnitt [Schlüssel für die Automatisierung](/integrations/#ключ-для-автоматизації) beschrieben, mit dem Bereich `chart`.

## 1. Füge den Schlüssel als Credential hinzu

Der Schlüssel wird im Credential-Speicher von n8n gespeichert und nicht im Knoten, sodass er nicht in den exportierten Workflow gelangt.

1. Erstelle in n8n ein neues Credential vom Typ **Header Auth**.
2. **Name**: `X-Api-Key`.
3. **Value**: dein Schlüssel.
4. Speichere ihn unter dem Namen **AstroWay API key**. Der untenstehende Workflow sucht das Credential genau unter diesem Namen.

## 2. Importiere den Workflow

Lade die Datei [n8n-natal-chart.json](/integrations/n8n-natal-chart.json) herunter, öffne einen leeren Workflow und füge den Inhalt der Datei auf die Leinwand ein oder nutze den Import aus Datei im Workflow-Menü.

Im Inneren gibt es vier Knoten:

- **Start**, Knoten Manual Trigger: startet den Workflow während des Tests.
- **Birth data**, Knoten Edit Fields (Set): `date`, `time`, `timezone`, `latitude` und `longitude` einer Person.
- **AstroWay chart**, Knoten HTTP Request: ruft `POST /v1/chart` auf.
- **Big three**, Knoten Edit Fields (Set): wandelt Längen in Zeichenbezeichnungen um.

## 3. Starte

Führe den Workflow aus. **Big three** gibt zurück:

```json
{
  "sun": "Taurus",
  "moon": "Capricorn",
  "rising": "Virgo",
  "offset_used": 4
}
```

`offset_used` ist die Verschiebung von UTC, die der Server für `Europe/Kyiv` am 1990-05-15 gefunden hat: 4, und nicht 3, wie man normalerweise manuell einträgt.

## Wie der HTTP Request Knoten konfiguriert ist

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

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

- **Authentication**: Generic Credential Type.
- **Generic Auth Type**: Header Auth, Credential **AstroWay API key**.
- **Send Body**: aktiviert.
- **Body Content Type**: JSON.
- **Specify Body**: Using JSON.

Der Body wird durch einen Ausdruck festgelegt, sodass Werte aus jedem vorherigen Knoten unverändert übergeben werden:

```js
{{ JSON.stringify({ date: $json.date, time: $json.time, timezone: $json.timezone, latitude: $json.latitude, longitude: $json.longitude }) }}
```

## Wie die Zeichen berechnet werden

Jedes Feld in **Big three** ist ein Ausdruck. Das Zeichen entspricht der Länge, geteilt durch 30 und abgerundet, als Index in einer Liste:

```js
{{ ['Aries','Taurus','Gemini','Cancer','Leo','Virgo','Libra','Scorpio','Sagittarius','Capricorn','Aquarius','Pisces'][Math.floor($json.data.houses.ascendant / 30)] }}
```

Für Sonne und Mond wird die Länge aus `$json.data.planets.find(p => p.name === 'Sun').longitude` und analog aus `'Moon'` entnommen.

## Setze deine eigenen Daten ein

Ersetze **Start** und **Birth data** durch den Trigger, den du tatsächlich nutzt: ein Formular, webhook oder eine neue Tabellenzeile, und mappe dessen Felder zu den fünf oben genannten Namen. Zwei Dinge solltest du prüfen:

- **`timezone` darf nicht leer sein.** Ein leerer Wert wird mit `400` abgelehnt, also mappe das Feld oder setze `auto`, wenn die Koordinaten zuverlässig sind.
- **Koordinaten sind erforderlich.** Die API geokodiert keinen Stadtnamen; wenn das Formular nur den Ort abfragt, füge einen Geokodierungsschritt vor **AstroWay chart** hinzu.

<Aside type="note">
Ein Aufruf außerhalb des Schlüsselbereichs stoppt die Ausführung mit `403 ENDPOINT_NOT_IN_SCOPE`, und ein Schlüssel, der das Budget überschreitet, führt zu `429 KEY_BUDGET_EXHAUSTED`. Beide Fälle dienen genau dazu: Erhöhe das Limit im Dashboard, anstatt die Anfrage zu wiederholen.
</Aside>
