json: Get sunrise and sunset times

API: sunrise-sunset.org:sunrise-sunset
Endpoint: /json
Response format: application/json
Auth: none
Method: GET
Last Status: 200
Latency: 464ms

Description

Returns sunrise, sunset, solar noon, day length, and civil, nautical, and astronomical twilight times for a given latitude and longitude.

Parameters (5)

date (string, query, optional)

Date in YYYY-MM-DD format. Defaults to today. Can also be 'today' or 'tomorrow'.

formatted (integer, query, optional, default: 1)

Return time values in ISO 8601 format (0) or 12-hour format (1). Default is 1 (12-hour format).

Constraints: {'enum': [0, 1]}

lat (number, query, required)

Latitude in decimal degrees. Range: -90 to 90.

Constraints: {'minimum': -90, 'maximum': 90}

lng (number, query, required)

Longitude in decimal degrees. Range: -180 to 180.

Constraints: {'minimum': -180, 'maximum': 180}

tzid (string, query, optional)

Timezone identifier (e.g., 'UTC', 'America/New_York'). If not provided, times are returned in UTC.

Examples (1)

Get sunrise and sunset times openapi-spec
curl 'https://api.sunrise-sunset.org/json?lat=36.72016&lng=-4.42034&date=2024-06-21&formatted=0&tzid=UTC'
import requests

resp = requests.get(
    "https://api.sunrise-sunset.org/json",
    params={
        'lat': '36.72016',
        'lng': '-4.42034',
        'date': '2024-06-21',
        'formatted': '0',
        'tzid': 'UTC',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("sunrise-sunset")
result = api.fetch("json", lat=36.72016, lng=-4.42034, date="2024-06-21", formatted=0, tzid="UTC")

for item in result:
    print(item)
const resp = await fetch("https://api.sunrise-sunset.org/json?lat=36.72016&lng=-4.42034&date=2024-06-21&formatted=0&tzid=UTC");
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 02:24:38.316697 200 464ms
2026-04-15 00:03:50.859300 200 236ms
2026-04-14 00:50:13.528800 200 247ms
2026-04-12 13:59:14.775997 200 226ms
2026-04-10 00:41:06.054733 200 174ms