Integration technical document
Obtain open data through programming interfaces
Fields definition:
Filed Name
Type
Description
nid
string
index
title
string
Name of report
field_year_g
string
Date of report
created
string
report creation date
changed
string
report updated date
field_file
string
File URL
field_opendata_category
string
Category label
Invalid request shows Response with error as below:
{"statusDetails": {"code": 500,"message": "Internal Server Error"}}
How to retrieve data
Retrieve all result Use URL https://apiservices.balady.gov.sa/v1/momrah-
services/open-data?items_per_page=All
Retrieve 10 rows per page use https://apiservices.balady.gov.sa/v1/momrah-
services/open-data?items_per_page=10
Retrieve 25 rows per page use https://apiservices.balady.gov.sa/v1/momrah-
services/open-data?items_per_page=25
Retrieve 50 rows per page use https://apiservices.balady.gov.sa/v1/momrah-
services/open-data?items_per_page=50
Using pager
Use query parameter Page=page number as example to get page number 8 use URL
request https://apiservices.balady.gov.sa/v1/momrah-services/open-data?page=8
Request Examples:
PHP cURL:
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://apiservices.balady.gov.sa/v1/momrah-services/open-data',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
PHP Guzzle:
<?php
$client = new Client();
$request = new Request('GET', 'https://apiservices.balady.gov.sa/v1/momrah-
services/open-data');
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
JavaScript jQuery:
var settings = {
"url": "https://apiservices.balady.gov.sa/v1/momrah-services/open-data",
"method": "GET",
"timeout": 0,
};
$.ajax(settings).done(function (response) {
console.log(response);
});
C# - HttpClient:
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://apiservices.balady.gov.s
a/v1/momrah-services/open-data");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
Python Requests:
import requests
url = "https://apiservices.balady.gov.sa/v1/momrah-services/open-data"
payload={}
headers = {}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
Swift URLSession
var request = URLRequest(url: URL(string: "https://apiservices.balady.gov.sa/v1/momrah
-services/open-data")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Response Example:
{
"statusDetails": {
"code": 200,
"message": "Ok"
},
"data": {
"responseCode": "1",
"responseMessage": "success",
"result": {
"rows": [
{
"nid": "6231",
"title": "  1439",
"field_year_g": "2015",
"created": "2020/01/02",
"changed": "2021/10/26",
"field_opendata_category": "  ",
"field_file": [
"http://momrah.gov.sa/sites/default/files/2021-10/filename.xlsx",
"http://momrah.gov.sa/sites/default/files/2021-10/filename.pdf",
"http://momrah.gov.sa/sites/default/files/2021-10/filename.csv"
],
......
}
],
"pager": {
"current_page": 0,
"total_items": "235",
"total_pages": 24,
"items_per_page": 10
}
}
}
}