# Dating-applicaties

Astrologische compatibiliteit is een retentie-driver in dating-apps zoals Bumble, Hinge, Tinder, Tantan en in astro-first-apps zoals NUiT, Struck. De AstroWay API geeft een kant-en-klare synastrie-score van 0–100 met één API-call — zonder eigen ephemeride-engine en zonder een Solar Fire-licentie ($495).

## Hoe werkt het

1. De gebruiker voert bij registratie de geboortedatum, -tijd en -plaats in
2. Bij een match roept je backend `/v1/synastry` aan met de gegevens van beide personen
3. De API retourneert `compatibility.score` (0–100) en `label` (harmonisch/gebalanceerd/gemengd/uitdagend)
4. De score wordt gebruikt als één van de factoren voor rangschikking

```
Match-algoritme
  ├── Locatieproximiteit         (40%)
  ├── Gedeelde interesses        (30%)
  ├── Astrologische compatibiliteit   (20%)  ← AstroWay API
  └── Andere signalen            (10%)
```

## Belangrijkste endpoints

| Endpoint | Credits | Retourneert |
|---|---|---|
| `/v1/synastry` | 50 | Kruis-aspecten + score 0–100 |
| `/v1/human-design/compatibility` | 100 | HD-compatibiliteit (type + strategie) |
| `/v1/horoscope/compatibility` | 50 | Tekstanalyse van compatibiliteit |

## Integratiepatroon

```ts
// Bij een match — roep synastrie aan
async function getCompatibility(userA: UserProfile, userB: UserProfile) {
  const result = await astrowayClient.synastry({
    chart1: {
      date: userA.birthDate,
      time: userA.birthTime || '12:00:00', // default middag als onbekend
      timezoneOffset: userA.tzOffset,
      latitude: userA.birthLat,
      longitude: userA.birthLng,
    },
    chart2: {
      date: userB.birthDate,
      time: userB.birthTime || '12:00:00',
      timezoneOffset: userB.tzOffset,
      latitude: userB.birthLat,
      longitude: userB.birthLng,
    },
  });

  return {
    score: result.compatibility.score,      // 0-100
    label: result.compatibility.label,      // "harmonisch"
    harmony: result.compatibility.harmony,  // gewogen som
    tension: result.compatibility.tension,
  };
}
```

<Aside type="tip">
De synastrie-resultaten zijn onveranderlijk (afhankelijk van alleen de geboortedata). Cache de combinatie `(userA_id, userB_id) → score` in je eigen database. Één API-call en je hoeft nooit meer opnieuw te berekenen.
</Aside>

## Budgetberekening

### Scenario: 1.000 nieuwe matches per dag

| Metriek | Waarde |
|---|---|
| Matches/dag | 1.000 |
| Credits/match | 50 (synastrie) |
| Credits/dag | 50.000 |
| Credits/maand | ~1.500.000 |
| Tarief | **Business ($199/maand, 3.500.000 credits)** |

### Scenario: 50 matches per dag (startup)

| Metriek | Waarde |
|---|---|
| Matches/dag | 50 |
| Credits/dag | 2.500 |
| Credits/maand | ~75.000 |
| Tarief | **Starter ($19/maand, 200.000 credits)** |

### Optimalisatie

- **Caching** — sla de score op in je database, bereken niet opnieuw
- **Lazy processing** — bereken synastrie alleen wanneer de gebruiker de match opent, niet voor alle potentiële combinaties
- **Batchberekening bij registratie** — bereken de compatibiliteit met de top 20 potentiële matches direct

## Geen geboortetijd bekend

Als de gebruiker de tijd niet weet — geef dan `"time": "12:00:00"` (middag) door. De huizen zullen minder nauwkeurig zijn, maar de planetaire posities en kruis-aspecten blijven correct. De compatibiliteitsscore blijft informatief.

Voor HD-compatibiliteit is tijd belangrijker — overweeg `hd/sensitivity` voor het inschatten van de impact van een onnauwkeurige tijd.

<CardGrid>
  <LinkCard title="Synastry API →" href="/products/synastry-api/" description="Details over de compatibiliteits-endpoints" />
  <LinkCard title="Snel starten" href="/getting-started/" description="Je eerste request in 5 minuten" />
  <LinkCard title="Tariefplannen" href="/pricing/" description="Van gratis tot Enterprise" />
</CardGrid>
