Sunrise-Sunset API
Free sunrise and sunset API with no key. Get sunrise, sunset, solar noon, twilight times and day length for any coordinates and date. Tested curl example.
Endpoint tested and returned HTTP 200 on 19 Aug 2026
What is the Sunrise-Sunset API?
The Sunrise-Sunset API is a free, key-free API that returns sunrise, sunset, solar noon, day length and the various twilight times for any latitude, longitude and date.
This API solves a genuinely fiddly astronomical calculation. Sunrise and sunset depend on latitude, longitude, date and atmospheric refraction, and the twilight phases each have their own solar elevation thresholds. Getting it right yourself is a surprising amount of work for what feels like a small feature.
One detail matters more than any other: results are returned in UTC by default. Pass `formatted=0` to get unambiguous ISO 8601 timestamps and convert to local time yourself — treating the default output as local time is the most common bug when integrating this API.
Quick facts
- Base URL
https://api.sunrise-sunset.org- Authentication
- No key required.
- Rate limit
- No published hard limit; the maintainers request reasonable use.
- Pricing
- Free for both personal and commercial use.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the Sunrise-Sunset API
Every request below was executed against the live API on 19 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. Sunrise and sunset times for Lahore
GET https://api.sunrise-sunset.org/json?lat=31.5204&lng=74.3587
curl 'https://api.sunrise-sunset.org/json?lat=31.5204&lng=74.3587'const res = await fetch("https://api.sunrise-sunset.org/json?lat=31.5204&lng=74.3587");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.sunrise-sunset.org/json?lat=31.5204&lng=74.3587", timeout=20)
res.raise_for_status()
print(res.json()){
"results": {
"sunrise": "12:29:02 AM",
"sunset": "1:43:27 PM",
"solar_noon": "7:06:14 AM",
"day_length": "13:14:25",
"civil_twilight_begin": "12:04:56 AM",
"civil_twilight_end": "2:07:33 PM",
"nautical_twilight_begin": "11:34:45 PM",
"nautical_twilight_end": "2:37:43 PM",
"astronomical_twilight_begin": "11:03:31 PM",
"astronomical_twilight_end": "3:08:58 PM"
},
"status": "OK",
"tzid": "UTC"
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
lat | float | Required | Latitude in decimal degrees. 31.5204 |
lng | float | Required | Longitude in decimal degrees. 74.3587 |
date | string | Optional | Date as YYYY-MM-DD, or `today`/`tomorrow`. Defaults to today. 2026-08-19 |
formatted | integer | Optional | Set to 0 for ISO 8601 timestamps instead of human-readable strings. 0 |
tzid | string | Optional | IANA time zone to return results in rather than UTC. Asia/Karachi |
Response fields
results.sunrise / sunsetstring- Sunrise and sunset times — in UTC unless you pass `tzid`.
results.solar_noonstring- Moment the sun reaches its highest point.
results.day_lengthstring- Length of daylight, in seconds when `formatted=0`.
results.civil_twilight_begin / endstring- Civil twilight boundaries — the practical limits of usable outdoor light.
statusstring- `OK` on success, or an error string such as `INVALID_REQUEST`.
What you can build with the Sunrise-Sunset API
- Switch a site or app between light and dark theme at the user's real sunset
- Schedule smart-home lighting and irrigation around actual daylight
- Plan photography golden hour and blue hour shoots
- Show prayer, fasting or observance times that depend on solar position
Common errors and how to fix them
status: INVALID_REQUEST
Missing or malformed `lat`/`lng`.
Fix: Send both as plain decimal numbers; the HTTP status stays 200, so check the `status` field.
status: UNKNOWN_ERROR
Server-side failure, usually transient.
Fix: Retry once after a short delay.
Times look several hours wrong
You read the default output as local time.
Fix: Pass `formatted=0` and convert from UTC, or pass `tzid` with an IANA zone.
Sunrise-Sunset API — frequently asked questions
Is the Sunrise-Sunset API free?
Yes, it is free for personal and commercial use with no API key or signup required.
Why are the sunrise times wrong for my location?
The API returns UTC by default. Either pass `tzid` with an IANA time zone, or pass `formatted=0` and convert the ISO timestamps to local time in your own code.
What is the difference between civil, nautical and astronomical twilight?
They are defined by how far the sun sits below the horizon — 6, 12 and 18 degrees respectively. Civil twilight is the period with enough natural light for outdoor activity, which is the one most applications want.
Does it work at the poles?
Yes, but during polar day or polar night there is no sunrise or sunset, and the API signals this rather than returning a normal time. Handle that case explicitly if you support extreme latitudes.
Tools that pair with this API
Timestamp Converter
Convert timestamps to human-readable dates and dates back to timestamps. Auto-detects seconds vs milliseconds, shows local, UTC and ISO 8601 formats.
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Alternatives to Sunrise-Sunset API
If Sunrise-Sunset does not fit, these geolocation & ip apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| ipify | ipify is a free, unlimited API that returns your public IP address as text, JSON or JSONP. No key, no rate limit, IPv4 and IPv6 endpoints. Live curl example. | No key | Yes | 19 Aug 2026 |
| ip-api.com | Free IP geolocation API returning country, city, coordinates, timezone and ISP for any IP. No key on the free tier, 45 requests per minute. Tested curl example. | No key | Yes | 19 Aug 2026 |
| ipwho.is | Free IP geolocation API with HTTPS and no API key. Returns country, city, coordinates, timezone, currency and connection data. 10,000 requests/month free. | No key | Yes | 19 Aug 2026 |
| Nominatim (OpenStreetMap) | Free OpenStreetMap geocoding API: convert addresses to coordinates and back. No API key, open data, 1 request per second. Tested curl example and usage policy. | No key | No | 19 Aug 2026 |
| TimeAPI.io | Free time zone API with no key: get current time for any IANA time zone, convert between zones and calculate DST offsets. Tested curl example and live response. | No key | Yes | 19 Aug 2026 |
| US Census Geocoder | Free official US address geocoding API with no key or account: match addresses to coordinates and census geography, one at a time or 10,000 per batch. Tested example included. | No key | No | 21 Aug 2026 |
Sunrise-Sunset is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 19 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.