# Human Design

AstroWay API는 **12개의 Human Design 엔드포인트**를 제공합니다 — 상업용 API 중 가장 포괄적인 HD 커버리지입니다. 기본 엔드포인트 `POST /v1/human-design`은 전체 Human Design 맵을 반환합니다. 비용: **50 크레딧** (Tier 3).

## 12개의 HD 엔드포인트

| 엔드포인트 | 크레딧 | 반환 내용 |
|---|---|---|
| `/v1/human-design` | 50 | 전체 HD 맵: 타입, 전략, 권한, 채널, 센터, 프로필 |
| `/v1/human-design/transits` | 50 | 지정된 날짜의 HD 트랜짓 |
| `/v1/human-design/compatibility` | 100 | 두 HD 맵의 호환성 |
| `/v1/hd/incarnation-cross` | 50 | 인카네이션 크로스 |
| `/v1/hd/dream-rave` | 50 | Dream Rave 맵 |
| `/v1/hd/hologenetic` | 50 | Hologenetic Profile |
| `/v1/hd/sensitivity` | 50 | 시간 민감도 (출생 시간 변경이 맵에 미치는 영향) |
| `/v1/hd/circuitry` | 20 | контур 분석 |
| `/v1/hd/penta` | 100 | Penta (3~5인 그룹 역학) |
| `/v1/hd/group-overlay` | 100 | 그룹 오버레이 |
| `/v1/hd/design-date` | 10 | Design 날짜 (출생 전 태양 88°) |
| `/v1/hd/rave-new-years` | 10 | Rave New Year 날짜 |

## 요청 예시

파라미터는 `/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);       // e.g. "Generator"
    console.log(hd.strategy);   // e.g. "To Respond"
    console.log(hd.authority);  // e.g. "Sacral"
    console.log(hd.profile);    // e.g. "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'])       # e.g. "Generator"
    print(hd['strategy'])   # e.g. "To Respond"
    print(hd['authority'])  # e.g. "Sacral"
    print(hd['channels'])   # List of defined channels
    ```
  </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'];       // e.g. "Generator"
    echo $hd['strategy'];   // e.g. "To Respond"
    echo $hd['authority'];  // e.g. "Sacral"
    echo $hd['profile'];    // e.g. "1/3"
    ```
  </TabItem>
</Tabs>

## 응답 예시

```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">
응답에는 모든 26개의 액티베이션(13 Personality + 13 Design), 모든 9개의 센터, 그리고 정의된 모든 채널이 포함됩니다. 가독성을 위해 축약되었습니다.
</Aside>

## 주요 응답 필드

| 필드 | 타입 | 설명 |
|---|---|---|
| `type` | string | Manifestor, Generator, Generator Xing (MG), Projector, Reflector |
| `strategy` | string | 의사 결정 전략 |
| `authority` | string | 내부 권한 |
| `profile` | string | 프로필 (예: `"1/3"`, `"4/6"`) |
| `definition` | string | single, split, triple-split, quadruple-split |
| `cross` | object | 인카네이션 크로스(이름, 쿼터, 4개의 게이트) |
| `centers` | array | 정의됨/열림 여부가 표시된 9개의 센터 |
| `channels` | array | 정의된 채널 |
| `personalityActivations` | array | 13개의 Personality 액티베이션(의식) |
| `designActivations` | array | 13개의 Design 액티베이션(무의식) |

## 다음 단계

- [natal 차트](/examples/natal/) — 기본 요청
- [시나스트리](/examples/synastry/) — 두 차트의 호환성
- [트랜짓](/examples/transits/) — 트랜짓 오버레이
- [API reference](/docs/api/) — 모든 {siteMeta.endpoints} 엔드포인트
