# Projektowanie Ludzkie

AstroWay API oferuje **12 endpointów Human Design** — najgłębsze pokrycie HD wśród komercyjnych API. Główny endpoint `POST /v1/human-design` zwraca pełną mapę. Koszt: **50 kredytów** (Tier 3).

## 12 endpointów HD

| Endpoint | Kredyty | Zwraca |
|---|---|---|
| `/v1/human-design` | 50 | Pełna mapa HD: typ, strategia, autorytet, kanały, centra, profil |
| `/v1/human-design/transits` | 50 | Tranzyty HD na wybrany dzień |
| `/v1/human-design/compatibility` | 100 | Kompatybilność dwóch map HD |
| `/v1/hd/incarnation-cross` | 50 | Krzyż inkarnacyjny |
| `/v1/hd/dream-rave` | 50 | Mapa Dream Rave |
| `/v1/hd/hologenetic` | 50 | Profil Hologenetyczny |
| `/v1/hd/sensitivity` | 50 | Czasowa wrażliwość (jak zmiana czasu urodzenia wpływa na mapę) |
| `/v1/hd/circuitry` | 20 | Analiza obwodów |
| `/v1/hd/penta` | 100 | Penta (grupowa dynamika 3–5 osób) |
| `/v1/hd/group-overlay` | 100 | Nakładka grupowa |
| `/v1/hd/design-date` | 10 | Data Design (88° Słońca przed narodzinami) |
| `/v1/hd/rave-new-years` | 10 | Daty Rave New Year |

## Przykładowe zapytanie

Parametry są takie same jak dla `/v1/chart`:

<Tabs syncKey="lang">
  <TabItem label="cURL">
    ```bash frame="terminal"
    curl -X POST https://api.astroway.info/v1/human-design \
      -H "X-Api-Key: aw_live_your_key_here" \
      -H "Content-Type: application/json" \
      -d '{
        "date": "1990-07-14",
        "time": "14:30:00",
        "timezoneOffset": 3,
        "latitude": 50.4501,
        "longitude": 30.5234
      }'
    ```
  </TabItem>
  <TabItem label="Node.js">
    ```ts
    const res = await fetch('https://api.astroway.info/v1/human-design', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'X-Api-Key': process.env.ASTROWAY_API_KEY!,
      },
      body: JSON.stringify({
        date: '1990-07-14',
        time: '14:30:00',
        timezoneOffset: 3,
        latitude: 50.4501,
        longitude: 30.5234,
      }),
    });
    const hd = await res.json();
    console.log(hd.type);       // np. "Generator"
    console.log(hd.strategy);   // np. "To Respond"
    console.log(hd.authority);  // np. "Sacral"
    console.log(hd.profile);    // np. "1/3"
    ```
  </TabItem>
  <TabItem label="Python">
    ```python

    r = requests.post(
        'https://api.astroway.info/v1/human-design',
        headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY'], 'Content-Type': 'application/json'},
        json={
            'date': '1990-07-14',
            'time': '14:30:00',
            'timezoneOffset': 3,
            'latitude': 50.4501,
            'longitude': 30.5234,
        },
    )
    hd = r.json()
    print(hd['type'])       # np. "Generator"
    print(hd['strategy'])   # np. "To Respond"
    print(hd['authority'])  # np. "Sacral"
    print(hd['channels'])   # Lista zdefiniowanych kanałów
    ```
  </TabItem>
  <TabItem label="PHP">
    ```php
    <?php
    use GuzzleHttp\Client;

    $client = new Client(['base_uri' => 'https://api.astroway.info/v1/']);
    $r = $client->post('human-design', [
        'headers' => ['X-Api-Key' => getenv('ASTROWAY_API_KEY')],
        'json' => [
            'date' => '1990-07-14',
            'time' => '14:30:00',
            'timezoneOffset' => 3,
            'latitude' => 50.4501,
            'longitude' => 30.5234,
        ],
    ]);

    $hd = json_decode($r->getBody(), true);
    echo $hd['type'];       // np. "Generator"
    echo $hd['strategy'];   // np. "To Respond"
    echo $hd['authority'];  // np. "Sacral"
    echo $hd['profile'];    // np. "1/3"
    ```
  </TabItem>
</Tabs>

## Przykładowa odpowiedź

```json
{
  "input": {
    "date": "1990-07-14",
    "time": "14:30:00",
    "timezoneOffset": 3,
    "latitude": 50.4501,
    "longitude": 30.5234
  },
  "type": "Generator",
  "strategy": "To Respond",
  "notSelfTheme": "Frustration",
  "authority": "Sacral",
  "profile": "1/3",
  "definition": "single",
  "cross": {
    "name": "Right Angle Cross of the Sphinx",
    "quarter": "Civilization",
    "gates": [1, 2, 7, 13]
  },
  "centers": [
    { "name": "Sacral", "defined": true },
    { "name": "Root", "defined": true },
    { "name": "SolarPlexus", "defined": false },
    { "name": "Heart", "defined": false },
    { "name": "Throat", "defined": true },
    { "name": "Ajna", "defined": false },
    { "name": "Head", "defined": false },
    { "name": "Spleen", "defined": true },
    { "name": "G", "defined": true }
  ],
  "channels": [
    { "gate1": 34, "gate2": 20, "name": "Channel of Charisma", "type": "Generated" }
  ],
  "personalityActivations": [
    { "gate": 1, "line": 3, "planet": "Sun", "side": "personality" }
  ],
  "designActivations": [
    { "gate": 2, "line": 5, "planet": "Sun", "side": "design" }
  ],
  "designJd": 2448000.123,
  "personalityJd": 2448087.979
}
```

<Aside type="note">
Odpowiedź zawiera wszystkie 26 aktywacji (13 Personality + 13 Design), wszystkie 9 centrów oraz wszystkie zdefiniowane kanały. Skrócono dla przejrzystości.
</Aside>

## Kluczowe pola odpowiedzi

| Pole | Typ | Opis |
|---|---|---|
| `type` | string | Manifestor, Generator, Generator Xing (MG), Projector, Reflector |
| `strategy` | string | Strategia podejmowania decyzji |
| `authority` | string | Wewnętrzny autorytet |
| `profile` | string | Profil (np. `"1/3"`, `"4/6"`) |
| `definition` | string | single, split, triple-split, quadruple-split |
| `cross` | object | Krzyż inkarnacyjny (nazwa, kwartał, 4 bramy) |
| `centers` | array | 9 centrów z flagą defined/open |
| `channels` | array | Zdefiniowane kanały |
| `personalityActivations` | array | 13 aktywacji Personality (świadome) |
| `designActivations` | array | 13 aktywacji Design (nieświadome) |

## Dalej

- [Karta natalna](/examples/natal/) — podstawowe zapytanie
- [Synastria](/examples/synastry/) — kompatybilność dwóch map
- [Tranzyty](/examples/transits/) — nakładka tranzytyczna
- [Dokumentacja API](/docs/api/) — wszystkie {siteMeta.endpoints} endpointy
