zapi.
APIsPricingDocsMCP
APIsPricingDocsMCP
Sign in
zapi.
APIsPricingDocsMCP
APIsPricingDocsMCP
Sign in
Indonesia/Jadwal Sholat & Hijriah
Logo Jadwal Sholat & Hijriah

Jadwal Sholat & Hijriah

Indonesian prayer schedules for 517 cities sourced from the Ministry of Religious Affairs dataset, plus Hijri/Gregorian conversion and qibla direction.

15 endpoints15 endpoints on this scraper188 calls188 calls so farupdated 27 days agoLast updated 8/29/2026, 9:26:58 AMBusy: 10+ calls so farllms.txt
Endpoints15

15/15 passing
checked 20 hours ago · daily 01:00 WIB

Source Info

Dataset provenance and its last update date.

GET/v1/indonesia:sholat-kemenag/source-info10m cache1 paramchecking key…
Parameters
dummystring

Unused; this endpoint takes no input

·
Response
EXAMPLE
{
  "name": "Jadwal Sholat",
  "source": "bimasislam.kemenag.go.id",
  "language": "Indonesia",
  "provider": "sholat-kemenag",
  "lastUpdate": "25 November 2025",
  "description": "API jadwal Sholat bersumber dari Kementrian Agama Indonesia"
}

Code

Source Info
index.ts
// npm i zpi-sdk
import { ZpiClient } from "zpi-sdk";

const client = new ZpiClient({ apiKey: "zpi_xxxxxxxxxxxxxxxxxxxxxxxx" });

const data = await client.run("indonesia:sholat-kemenag", "source-info", {});
console.log(data);
Recommended · typed errors, safe retries and bulk jobsSDK reference

Full reference

15 endpoints · plain text
GET
Source Info/v1/indonesia:sholat-kemenag/source-info
1 param

Dataset provenance and its last update date.

Parameters

dummystringoptional
Unused; this endpoint takes no input

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/source-info?dummy=" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "name": "Jadwal Sholat",
  "source": "bimasislam.kemenag.go.id",
  "language": "Indonesia",
  "provider": "sholat-kemenag",
  "lastUpdate": "25 November 2025",
  "description": "API jadwal Sholat bersumber dari Kementrian Agama Indonesia"
}
GET
City List/v1/indonesia:sholat-kemenag/city-list
3 params

All 517 regencies/cities that have a prayer schedule.

Parameters

keywordstringoptional
Filter by city name
pagenumberoptional
Page number (starts at 1). Default 1
countnumberoptional
Items per page. Default 100, max 600

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/city-list?keyword=bandung&page=1&count=" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "page": 1,
  "count": 10,
  "items": [
    {
      "city": "KAB. ACEH BARAT",
      "cityId": "c4ca4238a0b923820dcc509a6f75849b"
    },
    {
      "city": "KAB. ACEH BARAT DAYA",
      "cityId": "c81e728d9d4c2f636f067f89cc14862c"
    },
    {
      "city": "KAB. ACEH BESAR",
      "cityId": "eccbc87e4b5ce2fe28308fd9f2a7baf3"
    },
    {
      "city": "KAB. ACEH JAYA",
      "cityId": "a87ff679a2f3e71d9181a67b7542122c"
    },
    {
      "city": "KAB. ACEH SELATAN",
      "cityId": "e4da3b7fbbce2345d7772b0674a318d5"
    },
    {
      "city": "KAB. ACEH SINGKIL",
      "cityId": "1679091c5a880faf6fb5e6087eb1b2dc"
    },
    {
      "city": "KAB. ACEH TAMIANG",
      "cityId": "8f14e45fceea167a5a36dedd4bea2543"
    },
    {
      "city": "KAB. ACEH TENGAH",
      "cityId": "c9f0f895fb98ab9159f51fd0297e236d"
    }
  ],
  "total": 517,
  "hasMore": true,
  "nextPage": 2,
  "provider": "sholat-kemenag",
  "returned": 10
}
GET
City Detail/v1/indonesia:sholat-kemenag/city-detail
1 param

One city by id.

Parameters

cityIdstringrequired
City id from city-list/city-search

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/city-detail?cityId=eda80a3d5b344bc40f3bc04f65b7a357" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "city": "KOTA KEDIRI",
  "cityId": "eda80a3d5b344bc40f3bc04f65b7a357",
  "provider": "sholat-kemenag"
}
GET
City Search/v1/indonesia:sholat-kemenag/city-search
1 param

Find cities by name keyword.

Parameters

qstringrequired
City name keyword, at least 2 characters

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/city-search?q=kediri" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "count": 3,
  "items": [
    {
      "city": "KAB. BANDUNG",
      "cityId": "0777d5c17d4066b82ab86dff8a46af6f"
    },
    {
      "city": "KAB. BANDUNG BARAT",
      "cityId": "fa7cdfad1a5aaf8370ebeda47a1ff1c3"
    },
    {
      "city": "KOTA BANDUNG",
      "cityId": "fc221309746013ac554571fbd180e1c8"
    }
  ],
  "query": "bandung",
  "provider": "sholat-kemenag"
}
GET
Prayer Times Today/v1/indonesia:sholat-kemenag/jadwal-today
3 params

Today's prayer schedule for one city, by id or name.

Parameters

cityIdstringoptional
City id from city-list/city-search. One of cityId or city is required
citystringoptional
City name to auto-resolve (alternative to cityId)
tzstringoptional
Timezone used to pick today's date. Default Asia/Jakarta

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/jadwal-today?cityId=eda80a3d5b344bc40f3bc04f65b7a357&city=kediri&tz=Asia%2FJakarta" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "city": "KAB. KEDIRI",
  "date": "2026-08-29",
  "isya": "18:44",
  "ashar": "14:55",
  "dhuha": "05:59",
  "imsak": "04:09",
  "subuh": "04:19",
  "cityId": "9188905e74c28e489b44e954ec0b9bca",
  "dzuhur": "11:36",
  "terbit": "05:32",
  "maghrib": "17:34",
  "provider": "sholat-kemenag",
  "province": "JAWA TIMUR",
  "dateLabel": "Sabtu, 29/08/2026"
}
GET
Prayer Times by Date/v1/indonesia:sholat-kemenag/jadwal-daily
3 params

Prayer schedule for one date and city.

Parameters

cityIdstringoptional
City id from city-list/city-search. One of cityId or city is required
citystringoptional
City name to auto-resolve (alternative to cityId)
datestringrequired
Date in YYYY-MM-DD

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/jadwal-daily?cityId=eda80a3d5b344bc40f3bc04f65b7a357&city=kediri&date=2026-08-29" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "city": "KOTA JAKARTA",
  "date": "2026-08-29",
  "isya": "19:05",
  "ashar": "15:15",
  "dhuha": "06:19",
  "imsak": "04:29",
  "subuh": "04:39",
  "cityId": "58a2fc6ed39fd083f55d4182bf88826d",
  "dzuhur": "11:57",
  "terbit": "05:51",
  "maghrib": "17:56",
  "provider": "sholat-kemenag",
  "province": "DKI JAKARTA",
  "dateLabel": "Sabtu, 29/08/2026"
}
GET
Prayer Times by Month/v1/indonesia:sholat-kemenag/jadwal-monthly
4 params

Whole-month prayer schedule for one city.

Parameters

cityIdstringoptional
City id from city-list/city-search. One of cityId or city is required
citystringoptional
City name to auto-resolve (alternative to cityId)
yearnumberrequired
Gregorian year
monthnumberrequired
Gregorian month, 1-12

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/jadwal-monthly?cityId=eda80a3d5b344bc40f3bc04f65b7a357&city=kediri&year=2026&month=8" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "city": "KAB. KEDIRI",
  "year": 2026,
  "count": 31,
  "items": [
    {
      "date": "2026-08-01",
      "isya": "18:47",
      "ashar": "15:02",
      "dhuha": "06:10",
      "imsak": "04:16",
      "subuh": "04:26",
      "dzuhur": "11:42",
      "terbit": "05:42",
      "maghrib": "17:35",
      "dateLabel": "Sabtu, 01/08/2026"
    },
    {
      "date": "2026-08-02",
      "isya": "18:47",
      "ashar": "15:02",
      "dhuha": "06:10",
      "imsak": "04:16",
      "subuh": "04:26",
      "dzuhur": "11:42",
      "terbit": "05:42",
      "maghrib": "17:35",
      "dateLabel": "Minggu, 02/08/2026"
    },
    {
      "date": "2026-08-03",
      "isya": "18:46",
      "ashar": "15:02",
      "dhuha": "06:10",
      "imsak": "04:16",
      "subuh": "04:26",
      "dzuhur": "11:42",
      "terbit": "05:41",
      "maghrib": "17:35",
      "dateLabel": "Senin, 03/08/2026"
    }
  ],
  "month": 8,
  "cityId": "9188905e74c28e489b44e954ec0b9bca",
  "provider": "sholat-kemenag",
  "province": "JAWA TIMUR"
}
GET
Prayer Times Range/v1/indonesia:sholat-kemenag/jadwal-range
4 params

Prayer schedule across up to 12 months, paced against the source rate limit.

Parameters

cityIdstringoptional
City id from city-list/city-search. One of cityId or city is required
citystringoptional
City name to auto-resolve (alternative to cityId)
fromstringrequired
First month in YYYY-MM
tostringrequired
Last month in YYYY-MM, at most 12 months after from

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/jadwal-range?cityId=eda80a3d5b344bc40f3bc04f65b7a357&city=kediri&from=2026-08&to=2026-10" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "to": "2026-09",
  "city": "KAB. KEDIRI",
  "from": "2026-08",
  "count": 61,
  "items": [
    {
      "date": "2026-08-01",
      "isya": "18:47",
      "ashar": "15:02",
      "dhuha": "06:10",
      "imsak": "04:16",
      "subuh": "04:26",
      "dzuhur": "11:42",
      "terbit": "05:42",
      "maghrib": "17:35",
      "dateLabel": "Sabtu, 01/08/2026"
    },
    {
      "date": "2026-08-02",
      "isya": "18:47",
      "ashar": "15:02",
      "dhuha": "06:10",
      "imsak": "04:16",
      "subuh": "04:26",
      "dzuhur": "11:42",
      "terbit": "05:42",
      "maghrib": "17:35",
      "dateLabel": "Minggu, 02/08/2026"
    },
    {
      "date": "2026-08-03",
      "isya": "18:46",
      "ashar": "15:02",
      "dhuha": "06:10",
      "imsak": "04:16",
      "subuh": "04:26",
      "dzuhur": "11:42",
      "terbit": "05:41",
      "maghrib": "17:35",
      "dateLabel": "Senin, 03/08/2026"
    }
  ],
  "cityId": "9188905e74c28e489b44e954ec0b9bca",
  "hasMore": false,
  "provider": "sholat-kemenag",
  "province": "JAWA TIMUR",
  "monthsReturned": 2,
  "monthsRequested": 2
}
GET
Hijri Date Today/v1/indonesia:sholat-kemenag/hijriah-today
1 param

Today in both the Gregorian and Hijri calendars.

Parameters

adjnumberoptional
Whole-day offset applied by the source. Default 0

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/hijriah-today?adj=0" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "hijri": {
    "day": 17,
    "date": "Sabtu, 17 Rabiulawal 1448 H",
    "year": 1448,
    "month": 3,
    "dayName": "Sabtu",
    "monthName": "Rabiulawal"
  },
  "method": "standar",
  "provider": "sholat-kemenag",
  "gregorian": {
    "day": 29,
    "date": "Sabtu, 29 Agustus 2026",
    "year": 2026,
    "month": 8,
    "dayName": "Sabtu",
    "monthName": "Agustus"
  },
  "adjustment": 0
}
GET
Gregorian to Hijri/v1/indonesia:sholat-kemenag/hijriah-convert
2 params

Convert a Gregorian date to Hijri; the source's method and day adjustment are returned with it.

Parameters

datestringrequired
Gregorian date in YYYY-MM-DD
adjnumberoptional
Whole-day offset applied by the source. Default 0

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/hijriah-convert?date=2026-08-29&adj=0" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "hijri": {
    "day": 17,
    "date": "Sabtu, 17 Rabiulawal 1448 H",
    "year": 1448,
    "month": 3,
    "dayName": "Sabtu",
    "monthName": "Rabiulawal"
  },
  "method": "standar",
  "provider": "sholat-kemenag",
  "gregorian": {
    "day": 29,
    "date": "Sabtu, 29 Agustus 2026",
    "year": 2026,
    "month": 8,
    "dayName": "Sabtu",
    "monthName": "Agustus"
  },
  "adjustment": 0
}
GET
Hijri to Gregorian/v1/indonesia:sholat-kemenag/hijriah-to-masehi
2 params

Convert a Hijri date to Gregorian.

Parameters

datestringrequired
Hijri date in YYYY-MM-DD
adjnumberoptional
Whole-day offset applied by the source. Default 0

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/hijriah-to-masehi?date=1448-03-15&adj=0" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "hijri": {
    "day": 15,
    "date": "Kamis, 15 Rabiulawal 1448 H",
    "year": 1448,
    "month": 3,
    "dayName": "Kamis",
    "monthName": "Rabiulawal"
  },
  "method": "standar",
  "provider": "sholat-kemenag",
  "gregorian": {
    "day": 27,
    "date": "Kamis, 27 Agustus 2026",
    "year": 2026,
    "month": 8,
    "dayName": "Kamis",
    "monthName": "Agustus"
  },
  "adjustment": 0
}
GET
Hijri Calendar (Month)/v1/indonesia:sholat-kemenag/hijriah-calendar
3 params

Every day of one Gregorian month with its Hijri equivalent.

Parameters

yearnumberrequired
Gregorian year
monthnumberrequired
Gregorian month, 1-12
adjnumberoptional
Whole-day offset applied by the source. Default 0

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/hijriah-calendar?year=2026&month=8&adj=0" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "year": 2026,
  "count": 31,
  "items": [
    {
      "date": "2026-08-01",
      "dayName": "Sabtu",
      "hijriDay": 18,
      "hijriDate": "Sabtu, 18 Safar 1448 H",
      "hijriYear": 1448,
      "hijriMonth": 2,
      "hijriMonthName": "Safar"
    },
    {
      "date": "2026-08-02",
      "dayName": "Minggu",
      "hijriDay": 19,
      "hijriDate": "Ahad, 19 Safar 1448 H",
      "hijriYear": 1448,
      "hijriMonth": 2,
      "hijriMonthName": "Safar"
    },
    {
      "date": "2026-08-03",
      "dayName": "Senin",
      "hijriDay": 20,
      "hijriDate": "Senin, 20 Safar 1448 H",
      "hijriYear": 1448,
      "hijriMonth": 2,
      "hijriMonthName": "Safar"
    }
  ],
  "month": 8,
  "total": 31,
  "method": "standar",
  "hasMore": false,
  "provider": "sholat-kemenag",
  "adjustment": 0
}
GET
Qibla Direction/v1/indonesia:sholat-kemenag/qibla
2 params

Qibla bearing in degrees from true north for a coordinate.

Parameters

latnumberrequired
Latitude, -90 to 90
lngnumberrequired
Longitude, -180 to 180

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/qibla?lat=-6.2&lng=106.8" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "latitude": -6.2,
  "provider": "sholat-kemenag",
  "direction": 295.1605319853645,
  "longitude": 106.8
}
GET
Source Usage Stats/v1/indonesia:sholat-kemenag/stats
1 param

Monthly request counts reported by the upstream dataset.

Parameters

yearnumberoptional
Year. Omit for the current year

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/stats?year=2026" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "year": null,
  "count": 8,
  "items": [
    {
      "hits": 1531509,
      "year": 2026,
      "month": 1
    },
    {
      "hits": 1315623,
      "year": 2026,
      "month": 2
    },
    {
      "hits": 2775884,
      "year": 2026,
      "month": 3
    },
    {
      "hits": 2217113,
      "year": 2026,
      "month": 4
    },
    {
      "hits": 2827523,
      "year": 2026,
      "month": 5
    },
    {
      "hits": 2811013,
      "year": 2026,
      "month": 6
    },
    {
      "hits": 3166694,
      "year": 2026,
      "month": 7
    },
    {
      "hits": 2256460,
      "year": 2026,
      "month": 8
    }
  ],
  "average": 2362727.38,
  "provider": "sholat-kemenag"
}
GET
Source Health/v1/indonesia:sholat-kemenag/health
1 param

Upstream liveness and uptime.

Parameters

dummystringoptional
Unused; this endpoint takes no input

Request

curl -X GET "https://api.zapi.ink/v1/indonesia:sholat-kemenag/health?dummy=" \
  -H "x-api-key: zpi_xxxxxxxxxxxxxxxxxxxxxxxx"

Example response

{
  "provider": "sholat-kemenag",
  "timezone": "Asia/Jakarta",
  "startedAt": "2026-05-26T02:00:46.816Z",
  "serverTime": "2026-08-29T09:26:32.299Z",
  "uptimeSeconds": 8234745
}

Related APIs

More in indonesia

Al-Qur'an Kemenag

indonesiaquran-kemenag

Official Indonesian Ministry of Religious Affairs Qur'an: 114 surah, 6,236 ayah with Arabic, kitabah, transliteration, Indonesian translation and footnotes, plus the full Kemenag tafsir (wajiz, tahlili, kosakata, munasabah, sabab nuzul).

242242 calls so far10mResponses cached for 10m
Busy: 10+ calls so far

Perpusnas

indonesiaperpusnas

Perpustakaan Nasional RI — Khastara digitised manuscripts and the OPAC national catalogue with full MARC records and digital content listings.

111111 calls so far5mResponses cached for 5m
Busy: 10+ calls so far

Bimas Islam Kemenag

indonesiabimasislam

Directorate General of Islamic Community Guidance: sharia consultation Q&A answered by the Kemenag team, official news, and directorate profile pages.

8282 calls so far10mResponses cached for 10m
Busy: 10+ calls so far

Wilayah Indonesia

indonesiawilayah

Indonesian administrative regions — province, regency, district and village — from official government registries, with BPS and Kemendagri codes.

222222 calls so far1dResponses cached for 1d
Busy: 10+ calls so far

Cek BPOM

indonesiacek-bpom

Pencarian registrasi produk obat, kosmetik, suplemen, dan pangan pada database resmi BPOM RI.

3838 calls so far5mResponses cached for 5m
Busy: 10+ calls so far

Cek NIK

indonesiacek-nik

Decode structural information from a 16-digit Indonesian NIK identifier.

4040 calls so far5mResponses cached for 5m
Busy: 10+ calls so far
zapi.

One key, one response shape. We keep the scrapers working.

Get an API key
ProductBrowse APIsPricingDocsMCP server
DevelopersSDK on npmGitHubOpenAPI specllms.txt
SupportReport an issueDiscord
LegalTermsPrivacyCookiesAUPRefunds
© 2026 ZapiPublic web data, one API.
zapi.