---
title: "Get Eclipse Point"
method: GET
path: "/eclipse/point"
tags: ["eclipse"]
---

# Get Eclipse Point

`GET /eclipse/point`

Click-dossier for one coordinate: local circumstances + horizon skyline.

Fast: the solver is offline and the PVGIS horizon is cached forever. No
climatology here — the UI fetches that async from `/eclipse/climatology`.

## Query parameters

- `lat` number, required — Latitude, decimal degrees, north-positive
- `lon` number, required — Longitude, decimal degrees, EAST-positive
- `eclipse_date` string, required — Eclipse date, YYYY-MM-DD

## Response `200`

Successful Response

- EclipsePointResponse — The click-dossier for one exact coordinate: full local circumstances plus the horizon block (present only when an eclipse is visible here).
  - `eclipse_date` string, required
  - `eclipse_type` string, required
  - `latitude` number, required
  - `longitude` number, required
  - `elevation_m` number, required
  - `timezone` string, required
  - `is_visible` boolean, required
  - `is_in_path` boolean, required
  - `local_type` string, required
  - `magnitude` number, required
  - `obscuration` number, required
  - `coverage_percent` number, required
  - `distance_to_centerline_km` number, nullable, required
  - `centerline_side` string, nullable, required
  - `central_phase` string, nullable, required
  - `duration_seconds` number, nullable, required
  - `duration_display` string, nullable, required
  - `maximum_time_utc` string, required
  - `maximum_time_local` string, required
  - `sun_altitude_deg` number, required
  - `sun_azimuth_deg` number, required
  - `contacts` ContactOut[], required
    - `label` string, required — C1, C2, C3, or C4
    - `time_utc` string, required
    - `time_local` string, required
    - `sun_altitude_deg` number, required
  - `near_limit_warning` boolean, required
  - `near_limit_note` string, nullable, required
  - `partial_geometry` PartialGeometryOut, required — Static disk geometry at maximum so the UI can draw the partially-covered Sun and animate the transit client-side (no time series needed): reconstruct centre separation with s(t)=sqrt(s_min² + k²(t−t_max)²), s_min = 1 + moon_sun_ratio − 2·magnitude in Sun-radius units, bounded by the contacts.
    - `moon_sun_ratio` number, required — Apparent Moon/Sun radius ratio at max
    - `position_angle_at_max_deg` number, required — Moon-from-Sun bearing at max, ZENITH-referenced (0 = Moon above the Sun toward the zenith, increasing toward celestial-east)
    - `position_angle_north_deg` number, required — Same, measured from celestial north through east
    - `position_angle_c1_deg` number, nullable
    - `position_angle_c4_deg` number, nullable
  - `horizon` HorizonBlock, required — The horizon-obstruction verdict + the raw ingredients to draw a skyline panorama: the 360° horizon silhouette (`horizon_profile`) and the sun's C1→C4 arc across it (`sun_track`).
    - `totality_verdict` string, nullable, required — clear/marginal/blocked across C2→C3; None when not in path
    - `totality_min_margin_deg` number, nullable, required
    - `full_eclipse_verdict` string, required — clear/marginal/blocked across C1→C4
    - `full_eclipse_min_margin_deg` number, required
    - `max_horizon_deg` number, required
    - `dem_caveat` string, nullable, required
    - `horizon_profile` HorizonBinOut[], required
      - `azimuth_deg` number, required — Compass azimuth (N=0, E=90)
      - `horizon_height_deg` number, required
    - `sun_track` SunTrackSample[], required
      - `time_utc` string, required
      - `time_local` string, required
      - `in_totality` boolean, required
      - `sun_altitude_apparent_deg` number, required — Refraction-corrected sun altitude
      - `sun_azimuth_deg` number, required
      - `horizon_height_deg` number, required
      - `margin_deg` number, required — sun altitude − horizon (negative = blocked)
      - `status` string, required — clear / marginal / blocked
    - `data_source` string, required
    - `note` string, required
    - `attribution` string
  - `attribution` string

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/stardrift/apis/fastapi.md) · [All operations](https://skmtc.dev/stardrift/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stardrift/fastapi/revisions/00746572572a/schema)
