Getting Started
Malaysia Prayer Times (Waktu Solat) JSON API. Data is from JAKIM’s E-Solat.
An brief introduction:
- Built with Ruby (2.3.1) on Rails (5.0.1)
 - Deployed on Heroku on midnight of 01 February 2017
 - Data updates every midnight
 
Status Codes
| Code | Name | Description | 
|---|---|---|
| 200 | OK | Success | 
| 400 | Bad Request | Request may contain insufficient or unpermitted parameters | 
Error Messages
| Error | Description | 
|---|---|
| unpermitted parameters | Request contains unpermitted parameters | 
| [PARAMETER] parameter value is empty | Request contains permitted parameters that are empty | 
All errors will return JSON in the following format:
{
  "error": "error message here"
}
/states
List all states
Endpoint
https://waktu-solat-api.herokuapp.com/api/v1/states.json
Parameters
- negeri (optional)
 - filter state by its name and list its zones
 
Examples
curl https://waktu-solat-api.herokuapp.com/api/v1/states.json
curl https://waktu-solat-api.herokuapp.com/api/v1/states.json?negeri=STATE_NAME
Example Response
{
  "data": {
    "negeri": [
      "labuan",
      "terengganu",
      "sarawak",
      "putrajaya",
      "kuala lumpur",
      "selangor",
      "sabah",
      "perak",
      "pulau pinang",
      "perlis",
      "pahang",
      "negeri sembilan",
      "melaka",
      "kelantan",
      "kedah",
      "johor"
    ]
  }
}
{
  "data": {
    "negeri": {
    "nama": "selangor",
    "zon": [
        "sabak bernam",
        "kuala selangor",
        "klang",
        "kuala langat",
        "gombak",
        "h. selangor",
        "rawang",
        "h. langat",
        "sepang",
        "petaling",
        "s. alam"
      ]
    }
  }
}
/zones
List all zones
Endpoint
https://waktu-solat-api.herokuapp.com/api/v1/zones.json
Parameters
- zon (optional)
 - filter zone by its name and get its corresponding state
 
Examples
curl https://waktu-solat-api.herokuapp.com/api/v1/zones.json
curl https://waktu-solat-api.herokuapp.com/api/v1/zones.json?zon=ZONE_NAME
Example Response
{
  "data": {
    "zon": [
      "lumut",
      "labuan",
      "kemaman dungun",
      "hulu terengganu",
      "besut",
      "setiu",
      "kuala terengganu",
      "marang",
      ...,
      "mersing",
      "johor bahru",
      "pulau aur",
      "pemanggil"
    ]
  }
}
{
  "data": {
    "negeri": "selangor",
    "zon": "sepang"
  }
}
/prayer_times
List all prayer times
Endpoint
https://waktu-solat-api.herokuapp.com/api/v1/prayer_times.json
Parameters
- negeri (optional)
 - list prayer times by state
 - zon (optional)
 - list prayer times by zone
 
Examples
curl https://waktu-solat-api.herokuapp.com/api/v1/prayer_times.json
curl https://waktu-solat-api.herokuapp.com/api/v1/prayer_times.json?negeri=STATE_NAME
curl https://waktu-solat-api.herokuapp.com/api/v1/prayer_times.json?zon=ZONE_NAME
curl https://waktu-solat-api.herokuapp.com/api/v1/prayer_times.json?negeri=STATE_NAME&zon=ZONE_NAME
Example Response
{
  "data": {
    "negeri": [
      {
        "nama": "labuan",
        "zon": [
          {
            "nama": "labuan",
            "waktu_solat": [
              {
                "name": "imsak",
                "time": "05:06"
              },
              ...,
              {
                "name": "isyak",
                "time": "19:42"
              }
            ]
          }
        ]
      },
      ...,
      {
        "nama": "johor",
        "zon": [
          ...,
          {
            "nama": "pemanggil",
            "waktu_solat": [
              {
                "name": "imsak",
                "time": "05:46"
              },
              ...,
              {
                "name": "isyak",
                "time": "20:29"
              }
            ]
          }
        ]
      }
    ]
  }
}
{
  "data": {
    "negeri": "selangor",
    "zon": [
      {
        "nama": "sabak bernam",
        "waktu_solat": [
          {
            "name": "imsak",
            "time": "06:01"
          },
          ...,
          {
            "name": "isyak",
            "time": "20:41"
          }
        ]
      },
      ...,
      {
        "nama": "s. alam",
        "waktu_solat": [
          {
            "name": "imsak",
            "time": "05:59"
          },
          ...,
          {
            "name": "isyak",
            "time": "20:39"
          }
        ]
      }
    ]
  }
}
{
  "data": [
    {
      "negeri": "selangor",
      "zon": "sepang",
      "waktu_solat": [
        {
          "name": "imsak",
          "time": "05:59"
        },
        {
          "name": "subuh",
          "time": "06:09"
        },
        {
          "name": "syuruk",
          "time": "07:26"
        },
        {
          "name": "zohor",
          "time": "13:29"
        },
        {
          "name": "asar",
          "time": "16:51"
        },
        {
          "name": "maghrib",
          "time": "19:27"
        },
        {
          "name": "isyak",
          "time": "20:39"
        }
      ]
    }
  ]
}
{
  "data": {
    "negeri": "selangor",
    "zon": [
      {
        "nama": "sepang",
        "waktu_solat": [
          {
            "name": "imsak",
            "time": "05:59"
          },
          {
            "name": "subuh",
            "time": "06:09"
          },
          {
            "name": "syuruk",
            "time": "07:26"
          },
          {
            "name": "zohor",
            "time": "13:29"
          },
          {
            "name": "asar",
            "time": "16:51"
          },
          {
            "name": "maghrib",
            "time": "19:27"
          },
          {
            "name": "isyak",
            "time": "20:39"
          }
        ]
      }
    ]
  }
}