TheShia
Back to all APIs

Moon visibility

The crescent-visibility data behind the moonsighting maps — a world zone grid for any evening of a Hijri month's sighting window, or per-location visibility with first-sighting dates under each criterion (Yallop/Shaukat, calibrated against moonsighting.com).

GET https://theshia.org/api/v1/moon-visibility

Parameters

  • hy default: current Hijri year, 1317 to 1523 — the lunation the maps are anchored to.
  • hm default: current Hijri month, 1 (Muharram) to 12 (Dhul Hijjah).
  • evening default: 0 -2 to 2 — which evening of the sighting window (0 = the sighting evening, the day before the month begins).
  • res default: 5 grid cell size in degrees — values: "5" (72×26 cells, AL-Qamar's native grid) · "2" (180×65 cells).
  • lat point mode latitude -90 to 90 — switches to a per-location response (with lng).
  • lng point mode longitude -180 to 180.
  • city point mode city id from /cities — alternative to lat & lng.
Open live example ↗

Code samples

curl

curl "https://theshia.org/api/v1/moon-visibility?hy=1448&hm=2"

JavaScript

const res = await fetch("https://theshia.org/api/v1/moon-visibility?hy=1448&hm=2");
const data = await res.json();

Python

import requests

data = requests.get("https://theshia.org/api/v1/moon-visibility?hy=1448&hm=2").json()

Rate limits & fair use

Responses are cached hard at the edge — please cache on your side too. Uncached requests are limited to 100 per minute per IP; oversized requests (over 496 day×method computations) are rejected. Free for community use, no uptime guarantee.