Stream Eclipse Totality
POST
/stream/eclipse-totality
curl -X POST https://api.astroway.info/v1/stream/eclipse-totality \ -H "X-Api-Key: aw_live_..." \ -H "Content-Type: application/json" \ -d '{}'const res = await fetch('https://api.astroway.info/v1/stream/eclipse-totality', { method: 'POST', headers: { 'X-Api-Key': process.env.ASTROWAY_API_KEY, 'Content-Type': 'application/json', }, body: JSON.stringify({}),});const { ok, data, error } = await res.json();if (!ok) throw new Error(error.message);console.log(data);import os, requests
r = requests.post( 'https://api.astroway.info/v1/stream/eclipse-totality', headers={'X-Api-Key': os.environ['ASTROWAY_API_KEY'], 'Content-Type': 'application/json'}, json={},)result = r.json()if not result['ok']: raise RuntimeError(result['error']['message'])print(result['data'])<?phpuse GuzzleHttp\Client;
$client = new Client(['base_uri' => 'https://api.astroway.info/v1/']);$r = $client->post('stream/eclipse-totality', [ 'headers' => ['X-Api-Key' => getenv('ASTROWAY_API_KEY')], 'json' => [],]);$result = json_decode($r->getBody(), true);if (!$result['ok']) throw new \RuntimeException($result['error']['message']);print_r($result['data']);Next solar+lunar eclipses with totality info.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ” fields
string
Comma-separated dotted paths, relative to data, to keep in the response. A path is applied to every element of an array, so planets.name means the name of each planet. Paths that match nothing come back in _fields_unmatched; a list where nothing matches at all is a 400, because an empty object would be a confident wrong answer.
Example
planets.name,planets.longitude precision
integer
Round every non-integer number in the response to this many decimal places. Integers are left alone, because an id is not a measurement. Ecliptic longitudes ship with fourteen decimals by default; 2 is about a tenth of an arcminute.
Example
4Request Body required
Section titled “Request Body required ” Media type application/json
object
latitude
number
longitude
number
Example
{}Responses
Section titled “ Responses ”Successful calculation
Media type application/json
object
ok
boolean
data
object
timestamp
string
nextSolar
object
type
string
longitude
number
sign
string
maxAt
string
beginAt
string
endAt
string
durationHours
number
daysUntil
number
isTotal
boolean
nextLunar
object
type
string
longitude
number
sign
string
maxAt
string
beginAt
string
endAt
string
durationHours
number
daysUntil
number
isTotal
boolean
note
string
nextEventAt
string
tickSeconds
number
transport
string
sseUpgrade
string
pricing
string
Example
{ "ok": true, "data": { "timestamp": "2026-08-23T22:05:27.448Z", "nextSolar": { "type": "annular", "longitude": 317.62961434553335, "sign": "Aquarius", "maxAt": "2027-02-06T15:59:40.318Z", "beginAt": "2027-02-06T12:57:51.310Z", "endAt": "2027-02-06T19:01:40.865Z", "durationHours": 6.06, "daysUntil": 166.75, "isTotal": false }, "nextLunar": { "type": "partial", "longitude": 334.8525422076384, "sign": "Pisces", "maxAt": "2026-08-28T04:12:58.339Z", "beginAt": "2026-08-28T02:33:53.071Z", "endAt": "2026-08-28T05:52:03.261Z", "durationHours": 3.3, "daysUntil": 4.26, "isTotal": false }, "note": "Path-of-totality geographic resolution requires per-location calculation; current API returns event-level data only.", "nextEventAt": "2026-08-28T04:12:58.339Z", "tickSeconds": 3600, "transport": "http-polling", "sseUpgrade": "Use the same endpoint with /sse subpath for Server-Sent Events (planned).", "pricing": "10 credits/call (Tier 1): each tick recomputes positions, so it is a live compute, not a cheap lookup. Poll on the returned `tickSeconds`; see docs/PRICING.md §11." }}Validation error
Media type application/json
Example
{ "ok": false, "error": { "code": "INVALID_INPUT", "message": "Validation failed: date: Date must be YYYY-MM-DD", "details": [ { "path": "date", "message": "Date must be YYYY-MM-DD" } ] }}Missing or invalid API key
Media type application/json
Example
{ "ok": false, "error": { "code": "INVALID_API_KEY", "message": "Invalid API key" }} Корисно?
Дякуємо за фідбек.