# Διαβάσεις

Δύο endpoints για εργασία με μεταβάσεις:

| Endpoint | Πιστώσεις | Τι κάνει |
|---|---|---|
| `POST /v1/transits` | 50 | Χάρτης μεταβάσεων για συγκεκριμένη ημερομηνία, επικαλυμμένος στη natal τοποθεσία |
| `POST /v1/transit-calendar` | 100 | Ημερολόγιο μεταβατικών γεγονότων για εύρος ημερομηνιών |

## POST /v1/transits — overlay

Υπολογίζει τις θέσεις των πλανητών στη συγκεκριμένη ημερομηνία μεταβάσεων στις συντεταγμένες της natal τοποθεσίας.

### Παραμέτρους

Όλες οι παράμετροι του natal chart (`date`, `time`, `timezoneOffset`, `latitude`, `longitude`, `houseSystem`) συν:

| Παράμετρος | Τύπος | Υποχρεωτικό | Περιγραφή |
|---|---|---|---|
| `transitDate` | string | Ναι | Ημερομηνία μεταβάσεων `YYYY-MM-DD` |
| `transitTime` | string | Όχι (`12:00:00`) | Ώρα μεταβάσεων `HH:mm:ss` |
| `transitTzOffset` | number | Όχι (0) | Μετατόπιση ζώνης ώρας μεταβάσεων |

### Παράδειγμα

<Tabs syncKey="lang">
  <TabItem label="cURL">
    ```bash frame="terminal"
    curl -X POST https://api.astroway.info/v1/transits \
      -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,
        "transitDate": "2026-04-14",
        "transitTime": "12:00:00",
        "transitTzOffset": 3
      }'
    ```
  </TabItem>
  <TabItem label="Node.js">
    ```ts
    const res = await fetch('https://api.astroway.info/v1/transits', {
      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,
        transitDate: '2026-04-14', transitTime: '12:00:00', transitTzOffset: 3,
      }),
    });
    const transits = await res.json();
    console.log(transits.planets); // Θέσεις πλανητών μεταβάσεων
    ```
  </TabItem>
  <TabItem label="Python">
    ```python

    r = requests.post(
        'https://api.astroway.info/v1/transits',
        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,
            'transitDate': '2026-04-14', 'transitTime': '12:00:00', 'transitTzOffset': 3,
        },
    )
    transits = r.json()
    print(transits['planets'])
    ```
  </TabItem>
  <TabItem label="PHP">
    ```php
    <?php
    use GuzzleHttp\Client;

    $client = new Client(['base_uri' => 'https://api.astroway.info/v1/']);
    $r = $client->post('transits', [
        '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,
            'transitDate' => '2026-04-14',
            'transitTime' => '12:00:00',
            'transitTzOffset' => 3,
        ],
    ]);

    $transits = json_decode($r->getBody(), true);
    print_r($transits['planets']);
    ```
  </TabItem>
</Tabs>

### Απάντηση

Η ίδια δομή με το `/v1/chart` — πλήρης χάρτης με πλανήτες, οίκους, όψεις, αλλά υπολογισμένος στη ημερομηνία μεταβάσεων.

---

## POST /v1/transit-calendar — ημερολόγιο γεγονότων

Σαρώνει ένα εύρος ημερομηνιών και επιστρέφει μια λίστα μεταβατικών γεγονότων: ακριβείς όψεις των μεταβατικών πλανητών προς τους natal, ingresses, retrograde κινήσεις.

### Πρόσθετες παράμετροι

| Παράμετρος | Τύπος | Υποχρεωτικό | Περιγραφή |
|---|---|---|---|
| `startDate` | string | Ναι | Αρχή εύρους `YYYY-MM-DD` |
| `endDate` | string | Ναι | Τέλος εύρους `YYYY-MM-DD` |

<Aside type="caution">
Εύρος έως 365 ημέρες. Όσο μεγαλύτερο το εύρος, τόσο μεγαλύτερος ο χρόνος υπολογισμού (τυπικά 0.5–2 δευτερόλεπτα). Κόστος: **100 πιστώσεις** ανεξαρτήτως μήκους εύρους.
</Aside>

### Παράδειγμα

<Tabs syncKey="lang">
  <TabItem label="cURL">
    ```bash frame="terminal"
    curl -X POST https://api.astroway.info/v1/transit-calendar \
      -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,
        "startDate": "2026-04-01",
        "endDate": "2026-04-30"
      }'
    ```
  </TabItem>
  <TabItem label="TypeScript">
    ```ts
    const r = await fetch('https://api.astroway.info/v1/transit-calendar', {
      method: 'POST',
      headers: { 'X-Api-Key': apiKey, 'Content-Type': 'application/json' },
      body: JSON.stringify({date: '1990-07-14',
      time: '14:30:00',
      timezoneOffset: 3,
      latitude: 50.4501,
      longitude: 30.5234,
      startDate: '2026-04-01',
      endDate: '2026-04-30',}),
    });
    const { data: calendar } = await r.json();

    for (const event of calendar.events) {
      console.log(`${event.date}: ${event.transitPlanet} ${event.aspect} ${event.natalPlanet}`);
    }
    ```
  </TabItem>
  <TabItem label="Python">
    ```python
    r = requests.post(
        'https://api.astroway.info/v1/transit_calendar',
        headers={'X-Api-Key': apiKey},
        json={
            'date': "1990-07-14",
            'time': "14:30:00",
            'timezone_offset': 3,
            'latitude': 50.4501,
            'longitude': 30.5234,
            'start_date': "2026-04-01",
            'end_date': "2026-04-30"
        },
    )
    calendar = r.json()['data']

    for event in calendar["events"]:
        print(f"{event['date']}: {event['transitPlanet']} {event['aspect']} {event['natalPlanet']}")
    ```
  </TabItem>
  <TabItem label="PHP">
    ```php
    <?php
    $r = $client->post('transit-calendar', [
        '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,
            'startDate' => '2026-04-01',
            'endDate' => '2026-04-30',
        ],
    ]);

    $calendar = json_decode($r->getBody(), true);
    foreach ($calendar['events'] as $e) {
        echo "{$e['date']}: {$e['transitPlanet']} {$e['aspect']} {$e['natalPlanet']}\n";
    }
    ```
  </TabItem>
</Tabs>

### Παράδειγμα απάντησης

```json
{
  "events": [
    {
      "date": "2026-04-03",
      "transitPlanet": "Mars",
      "natalPlanet": "Sun",
      "aspect": "conjunction",
      "orb": 0.12,
      "exact": true
    },
    {
      "date": "2026-04-15",
      "transitPlanet": "Jupiter",
      "natalPlanet": "Moon",
      "aspect": "trine",
      "orb": 0.45,
      "exact": true
    }
  ]
}
```

## Σχετικά endpoints

| Endpoint | Πιστώσεις | Τι προσθέτει |
|---|---|---|
| `/v1/forecast-calendar` | 100 | Ετήσια πρόβλεψη — heatmap για 365 ημέρες |
| `/v1/progressions` | 50 | Δευτερεύουσες προόδους |
| `/v1/solar-return` | 50 | Σολάρι (ετήσιος χάρτης) |
| `/v1/aspect-timeline` | 100 | Timeline όψεων για εύρος |

## Συνέχισε

- [Natal chart](/examples/natal/) — βασική ερώτηση
- [Συναστρία](/examples/synastry/) — συμβατότητα δύο charts
- [Human Design](/examples/human-design/) — πλήρες HD chart
- [API reference](/docs/api/) — όλα τα {siteMeta.endpoints} endpoints
