NOUSPrayer Times API
Prayer Times API

Prayer times for any place on Earth, built to survive the five-a-day rush.

Send a date and coordinates — get Fajr, sunrise, Dhuhr, Asr, Maghrib, and Isha, computed directly from the sun's position for that exact place and day, not read from a fixed city table. Because the answer for a given place and day never changes, an entire city opening their apps at the same prayer moment collapses to a single computation served from cache — the synchronized surge that forces other services to over-provision barely moves ours. And every response ships the raw solar angles it used, so nothing is a black box.

Sub-ms
compute per call — every response reports its own compute_us
1 compute / surge
a city-wide prayer-time spike collapses to one cached answer
Angles included
the raw solar angles ship with every response — no black box
Cross-checked against standard solar-angle prayer-time methods — the same sun-altitude thresholds used for Fajr and Isha, and true solar noon for Dhuhr, computed independently.
The pain

Every prayer app fights the same six problems

You didn't set out to write timezone logic, high-latitude rescue rules, and moon-phase maths. But these are the bugs that eat the roadmap and the complaints that read as "this app is broken." Here's the ache — and what NOUS takes off your plate.

The five-a-day traffic spike

Your whole city's apps refresh and fire notifications at the same prayer moment. If your source recomputes per request, you provision and pay for the peak, not the average — and a free tier throttles exactly when it matters most.

NOUS: a fresh compute costs ~150 µs on one of eight cores, so even an all-unique-coordinate surge is cheap to serve — and repeated city-level lookups collapse to cache hits on top. The peak barely moves the bill.

The once-a-year DST bug

Coordinate-only APIs leave timezone and daylight-saving to you. One wrong offset and every prayer time is an hour off — the classic support ticket that only shows up on the day the clocks change.

NOUS: send a place and a date; civil times come back already in that place's own clock, historical and DST offset applied, with tz reported for audit.

Broken times at high latitude

Above roughly 48°, Fajr and Isha can stop occurring near the solstices — users in northern Europe and Canada see missing or absurd times, a hard visible failure.

NOUS: exact per-request solar geometry plus the recognised high-latitude rescue rules — and the rule choice stays yours, because it's jurisdictional, not a fact we should fake.

The Ramadan & Eid date fight

Start-of-month dates split by country every year because sighting rules differ. Hardcode one date and you anger the other half of your users — right at your highest-traffic moment.

NOUS: live crescent data — phase, elongation, illumination — plus sunset rise/set, the raw ingredients to show why a date is disputed instead of asserting one.

"Is method=Egypt really Egypt?"

Most services hand you a method name and hide the angles behind it. If those parameters are a quiet reimplementation, the times are wrong for that community — and a devotional app can't afford to lose that trust.

NOUS: every reply returns the exact angles it used — fajr_angle, isha_angle, asr_factor — so you verify the numbers, not a label.

Four dependencies instead of one

Prayer times, Qibla, Hijri date, and crescent data stitched from three or four separate free services multiplies the number of unfunded, SLA-less things that can fail on you at once.

NOUS: all of it from one deterministic engine on the same bounded-cost substrate — bundling reduces your peak risk instead of multiplying it.

Playground

Call the real API

Pick a tab, fill in a date and place, hit run. Live tabs call the actual gateway; anything not yet exposed over HTTP is clearly marked as a sample.

Proof

Real numbers, not adjectives

Every figure here is measured on this engine, not a marketing estimate.

Sub-ms
compute per call, reported back to you as compute_us
1 / surge
one computation serves a whole synchronized prayer-time spike
16 + 2
calculation methods and Asr schools built into the engine
Angles
the raw solar angles ship in every response — nothing hidden
CapabilityNOUS Prayer Times APITypical hosted prayer-time services
Calculation basisDirect solar-angle geometry, computed per requestFixed angle constants, often from a shared table
Behavior at peakDeterministic per place/day — a city-wide surge collapses to one cached answer, so peak barely adds costRecompute or database hit per request — the 5-a-day surge is what you provision (and pay) for
Location precisionExact latitude/longitude, no city listNearest listed city, or manual angle configuration
Raw solar anglesReturned with every response (fajr_angle, isha_angle, asr_factor)Times only — the underlying angles are hidden
IntegrationSingle GET call, flat JSON responseHosted API or a client-side library you run yourself
Honest limits: The engine computes all 16 methods, both Asr schools, Qibla bearing, and the Hijri date — that maths is done and verified. What's still catching up is the public gateway wiring: the prayer route currently forwards only date and coordinates, so over HTTP it returns the Muslim World League method with Shafiʻi Asr until we finish passing the method and madhab options through. Nothing here is a mock-up of maths we can't do; it's a deployment step, not a capability gap.
Why NOUS

Four things the free services can't hand you

The prayer-times market is full of free options that all do roughly the same thing. These are the four places NOUS is structurally different — not louder, different.

No black box

Every response returns the exact solar angles it used — fajr_angle, isha_angle, asr_factor — and its own compute time. You can verify that method=Egypt is really the Egypt parameters, not a reimplementation. Check the numbers instead of trusting a label — the one thing a devotional product can't afford to get wrong.

One call, not four

Prayer times, Qibla bearing, the Hijri date, and crescent data all come from one deterministic engine. Everywhere else you stitch three or four separate free services together — and quietly inherit the combined peak-failure risk of every one of them.

The time trap, solved

Send a place and a date; get civil times in that place's own clock, with the correct historical and daylight-saving offset already applied, and tz / utc_offset_s reported back for audit. No timezone database to ship, no once-a-year off-by-an-hour bug — the integration that usually breaks prayer products.

Stateless and private

The engine takes a date and a point and returns geometry. No account, no user profile, no location retained. For a devotional category that has been burned by location-data scandals, that's a far smaller privacy surface to defend.

The infrastructure problem

Why "free" can't ship at scale

Every prayer-times API is free of charge — but "free" is a rate cap, not a gift. Here is the chain that forces every serious prayer app to pay someone, and why the cheapest someone is a hosted engine whose cost is bounded at the peak.

1 — The peak sets your cost, not the average. Prayer traffic is not smooth. Apps refresh and fire notifications in five hard, city-wide waves a day — a whole timezone reaches the same prayer moment at once. You have to provision for that peak second, not your daily average.

2 — So a monthly quota is the wrong number; the peak second is the right one. That is exactly where the free tiers throttle: a marketplace prayer API allows 1,000 requests/hour — 0.28 req/s; Aladhan is capped near a dozen req/s per IP with no paid tier to raise it. Under the wave the failure lands at the prayer moment — the worst possible time to break.

3 — The "no rate limit" option doesn't throttle — it bills. A paid astronomy API that promises no cap has to serve every request as a fresh compute, so a 100× spike is a 100× invoice. Throttle or an unpayable bill: those are the two failure modes.

4 — A cache doesn't rescue them. Real apps send each user's exact GPS, so a synchronised spike is thousands of distinct cache keys, not one key repeated — the hit rate collapses toward zero. Round the coordinates to force hits and you break accuracy at city borders (the documented reason one team abandoned its API for on-device math). Their per-miss cost stays heavy — hundreds of milliseconds a call.

5 — So "free" is never the real price. You pay it as throttled failures at adhan, as the DevOps bill of self-hosting the open-source stack, or as owning method fidelity, high-latitude rules and DST correctness on-device forever. Every door costs; the only choice is which.

6 — NOUS changes which door is cheapest. A cache miss costs about 150 microseconds on one of eight worker cores, so even an all-unique-coordinate spike is cheap for us to serve — no high hit-rate required. Repeated city-level and monthly-schedule lookups then collapse to memory-speed cache hits on top. Because our marginal cost at peak is bounded, we can commit a per-second ceiling and hold every tier ~20% under the nearest funded comparable. The hosted call becomes the cheapest path that actually holds at peak.

0.28 req/s
what a "free" prayer API actually allows per second — a rate that collapses the instant a city hits adhan
~150 µs
our cost to compute a fresh miss, on one of eight cores — so the synchronised peak is cheap for us to serve, cache or no cache
~20% under
every paid tier held below the nearest funded comparable — with a committed per-second ceiling they don't offer
To be precise: this is a bounded-cost advantage, not an uptime guarantee, and the load-bearing part is the cheap miss — ~150 µs per compute — not the cache. The cache is a bonus when coordinates repeat; the reason we can serve the peak cheaply even when they don't is that a miss barely costs anything. Self-hosting and on-device math are real alternatives — they simply move the cost onto your team. The claim is only that a bounded-cost hosted call is the cheapest path that survives the peak.
All verbs

Everything this API does

Every capability below is computed and verified in the engine. The prayer, crescent, and solar-Qibla verbs answer live today; the Qibla-bearing, Hijri, and monthly routes exist and are being wired onto the public gateway. Here's the complete list.

How it works

Date and place in, prayer times out

01

Send date + place

Year, month, day, latitude, longitude — plain query parameters, no SDK required.

02

Solar angles computed

The sun's position is calculated directly for that exact date and location.

03

Method & madhab applied

Sun-altitude thresholds mark Fajr and Isha and shadow-length rules mark Asr — the engine computes any of 16 conventions (Muslim World League, ISNA, Egyptian, Karachi, Umm al-Qura, Dubai, Qatar, Gulf, Kuwait, Singapore, France, Turkey, Russia, Tehran, Jafari) plus the Moonsighting Committee method, with Shafiʻi or Hanafi Asr, Sunni or Shia midnight, high-latitude rescue, and custom angles — every knob defaulted sanely.

04

Get JSON back

Ten named times — imsak, Fajr, sunrise, Dhuhr, Asr, Maghrib, Isha, midnight and the night thirds — each as an exact and a civil value, with the Hijri date and Qibla bearing folded in. One flat, predictable response.

Use cases

Who this is for

Prayer-time apps

Drop-in prayer time computation for consumer apps that need accurate times without shipping their own solar-position code.

Ramadan apps

The same call gives you the fasting window — sunrise ends Suhoor, Maghrib is Iftar — and the crescent/Hilal endpoint feeds the Ramadan and Eid start dates.

High-traffic & notification apps

Prayer alerts fire in synchronized waves. A deterministic, cache-friendly response absorbs the surge instead of forcing you to over-provision for five daily peaks.

Mosque & community tools

Generate accurate daily prayer schedules for a specific community's exact coordinates.

Travel & location apps

Recompute prayer times instantly as a user's location changes, without a lookup table to keep in sync.

Calendar & reminder apps

Fold prayer times into an existing calendar or notification pipeline with a single call per day.

Docs

Example request

GET /v1/sun/prayer?year=2026&month=7&day=6&lat=21.4225&lon=39.8262
{
  "ok": true,
  "fields": {
    "date": "2026-07-06",
    "lat": 21.4225,
    "lon": 39.8262,
    "method": "MWL",
    "fajr_angle": 18.0,
    "isha_angle": 17.0,
    "asr_factor": 1,
    "fajr": "03:58:19",
    "sunrise": "05:23:00",
    "dhuhr": "12:04:46",
    "asr": "15:22:29",
    "maghrib": "18:46:25",
    "isha": "20:05:51",
    "compute_us": 672
  },
  "raw": "OK date=2026-07-06 lat=21.4225 lon=39.8262 method=MWL fajr_angle=18.0 isha_angle=17.0 asr_factor=1 fajr=03:58:19 sunrise=05:23:00 dhuhr=12:04:46 asr=15:22:29 maghrib=18:46:25 isha=20:05:51 compute_us=672"
}
Pricing

Every plan is a monthly call budget and a per-second ceiling

Two numbers define every tier: how many calls you get per month, and how many requests per second we'll accept in a burst. The per-second ceiling is the one that matters for prayer apps — it is what absorbs the five-a-day adhan spike (problem 1) without a single dropped request. The gateway enforces both today: a per-key token bucket for the rate ceiling (returning a real Retry-After if you exceed it) and a rolling monthly quota.

Priced to enter the market: the "free" prayer APIs aren't free at scale — they cap you hard. A typical marketplace prayer API hands you 500K calls a month but throttles to 1,000 requests an hour — about 0.28 req/s, a rate that collapses the moment a city hits adhan. Real paid tiers begin where those caps end. The nearest funded, hosted comparable — a general astronomy/solar API such as IPGeolocation.io — runs $49/mo for 500K calls and $249/mo for 5M, but commits no per-second guarantee. We hold every tier ~20% under that same-volume price and commit a per-second burst ceiling on top.

Developer
$0 / mo
30,000calls / month
15 req/sburst · 5 sustained
  • All 10 named times, exact + civil, every call
  • Raw solar angles + compute_us in every response
  • Crescent & solar-Qibla endpoints
  • Community support
Get a key
Scale
$199 / mo
5,000,000calls / month
1,000 req/sburst · 250 sustained
  • Throughput sized for city-wide synchronised peaks
  • Custom methods, higher ceilings on request
  • Contractual SLA & direct engineering support
  • Overage billed per call, never a hard cut-off
Talk to us
Why a per-second ceiling, and why it's crucial: a prayer app's traffic isn't smooth — it arrives in five hard waves a day as every device in a timezone hits adhan at once. A monthly budget alone can't describe that; you need headroom for the peak second. Because our answer is deterministic and cached, a whole synchronised wave collapses to one compute plus cache hits on our side — so we can hand you a high burst ceiling without over-provisioning for it. That is the peak we price for. Need more than Scale? Enterprise plans carry dedicated capacity and negotiated ceilings — talk to us.

Ready to get today's times?

No signup required to try the playground above.

Try it live
FAQ

Common questions

What calculation method do you use?+
The engine computes 16 conventions — Muslim World League, ISNA, Egyptian, Karachi, Umm al-Qura, Makkah, Dubai, Qatar, Gulf, Kuwait, Singapore, France, Turkey, Russia, Tehran, and Jafari — plus the Moonsighting Committee seasonal method and both Asr schools (Shafiʻi and Hanafi), all from the sun's actual position for the date and coordinates you supply. The public endpoint serves Muslim World League with Shafiʻi Asr today; per-request selection of the others is the next gateway update going live.
What happens at prayer-time peaks?+
Prayer times are deterministic: for a given place and day the answer never changes, so the first request computes it and every identical one after is served from cache. A whole city's apps refreshing at the same prayer moment becomes one computation plus cache hits — the synchronized surge that forces table-driven services to over-provision barely adds to ours.
Do you support Qibla direction or Hijri dates?+
Yes — both. The engine returns the great-circle Qibla bearing and distance to the Kaaba, and the Hijri date, and in fact both already ride along inside every prayer reply. Their standalone routes (/v1/qibla and /v1/date/hijri) are being wired onto the public gateway. Solar Qibla is also live via the subsolar endpoint: on the two days a year the sun stands directly over the Kaaba, your users can find Qibla by their own shadow.
Can I get a whole month of prayer times in one call?+
The engine computes it — a whole month in one call, with the same per-day maths and DST-aware civil offsets as the daily verb. The batch route (/v1/sun/prayer/month) is being wired onto the public gateway; until then, call the daily endpoint once per day of the month.
Does this work anywhere on Earth?+
Yes — any latitude and longitude, any date. At very high latitudes where the sun doesn't cross the usual thresholds around certain dates, solar-angle methods generally require a fallback convention, same as any other angle-based calculation. The engine exposes the recognised high-latitude rescue rules; which rule to apply is a jurisdictional choice, so it stays yours to set rather than something we silently pick for you.
There's already a free prayer-times API — why pay for this?+
Because "free" in this market means unfunded — no SLA, no status page, no capacity commitment — and that cost lands on you at exactly the wrong moment. Prayer traffic arrives in five synchronised, city-wide waves a day; a free tier throttling under that wave fails right at the prayer moment. Our answer is deterministic, cacheable compute: the same request always returns the same answer, so a synchronised spike collapses to one computation plus cache hits and the peak barely adds to the bill. You're not paying to beat free on price — you're paying for a bounded, predictable cost you can build a business on.
What do you do with user location data?+
Nothing is retained. The engine is a stateless compute: it takes a date and a coordinate and returns geometry — no account, no user profile, no stored location. That keeps the privacy surface of a devotional app small, in a category that has been burned before by location data being resold. You can compute prayer times without shipping user identity anywhere.