Food Prices (PIHPS)
Freeindonesia:harga-pangan
Prices of rice, chilli, shallots, eggs, cooking oil and other food commodities per province from Bank Indonesia's PIHPS, for traditional markets, modern markets, wholesalers and producers.
No key yet? Sign up free
GET/v1/indonesia:harga-pangan/harga
Price of one commodity per province (IDR per kg or commodity unit).
Cache 3600 s
1 quota / request
indonesia.harga-pangan.harga
cURL
curl -H "x-api-key: ga_live_..." "https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/harga?market=tradisional&commodity=1"
Python
import requests
response = requests.get(
"https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/harga",
params={"market": "tradisional", "commodity": "1"},
headers={"x-api-key": "ga_live_..."},
timeout=30,
)
body = response.json()
print(body["data"] if body["ok"] else body["error"])
JavaScript
const params = new URLSearchParams({"market": "tradisional", "commodity": "1"});
const response = await fetch(`https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/harga?${params}`, {
headers: { "x-api-key": "ga_live_..." },
});
const body = await response.json();
console.log(body.ok ? body.data : body.error);
PHP
<?php
$ch = curl_init('https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/harga?' . http_build_query(['market' => 'tradisional', 'commodity' => '1']));
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: ga_live_...'],
CURLOPT_TIMEOUT => 30,
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($body['ok'] ? $body['data'] : $body['error']);
Go
package main
import (
"encoding/json"
"fmt"
"net/http"
"net/url"
)
func main() {
params := url.Values{}
params.Set("market", "tradisional")
params.Set("commodity", "1")
req, _ := http.NewRequest("GET", "https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/harga?"+params.Encode(), nil)
req.Header.Set("x-api-key", "ga_live_...")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var body map[string]any
json.NewDecoder(res.Body).Decode(&body)
fmt.Println(body["data"])
}
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/harga?market=tradisional&commodity=1"))
.header("x-api-key", "ga_live_...")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
Ruby
require "net/http"
require "json"
uri = URI("https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/harga")
uri.query = URI.encode_www_form({"market" => "tradisional", "commodity" => "1"})
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "ga_live_..."
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
body = JSON.parse(response.body)
puts body["ok"] ? body["data"] : body["error"]
C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "ga_live_...");
var json = await client.GetStringAsync("https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/harga?market=tradisional&commodity=1");
Console.WriteLine(json);
GET/v1/indonesia:harga-pangan/komoditas
List of commodities with their IDs.
Cache 604800 s
1 quota / request
indonesia.harga-pangan.komoditas
cURL
curl -H "x-api-key: ga_live_..." "https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/komoditas"
Python
import requests
response = requests.get(
"https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/komoditas",
headers={"x-api-key": "ga_live_..."},
timeout=30,
)
body = response.json()
print(body["data"] if body["ok"] else body["error"])
JavaScript
const response = await fetch("https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/komoditas", {
headers: { "x-api-key": "ga_live_..." },
});
const body = await response.json();
console.log(body.ok ? body.data : body.error);
PHP
<?php
$ch = curl_init('https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/komoditas');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: ga_live_...'],
CURLOPT_TIMEOUT => 30,
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($body['ok'] ? $body['data'] : $body['error']);
Go
package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/komoditas", nil)
req.Header.Set("x-api-key", "ga_live_...")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var body map[string]any
json.NewDecoder(res.Body).Decode(&body)
fmt.Println(body["data"])
}
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/komoditas"))
.header("x-api-key", "ga_live_...")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
Ruby
require "net/http"
require "json"
uri = URI("https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/komoditas")
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "ga_live_..."
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
body = JSON.parse(response.body)
puts body["ok"] ? body["data"] : body["error"]
C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "ga_live_...");
var json = await client.GetStringAsync("https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/komoditas");
Console.WriteLine(json);
GET/v1/indonesia:harga-pangan/provinsi
List of provinces with their PIHPS IDs.
Cache 604800 s
1 quota / request
indonesia.harga-pangan.provinsi
cURL
curl -H "x-api-key: ga_live_..." "https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/provinsi"
Python
import requests
response = requests.get(
"https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/provinsi",
headers={"x-api-key": "ga_live_..."},
timeout=30,
)
body = response.json()
print(body["data"] if body["ok"] else body["error"])
JavaScript
const response = await fetch("https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/provinsi", {
headers: { "x-api-key": "ga_live_..." },
});
const body = await response.json();
console.log(body.ok ? body.data : body.error);
PHP
<?php
$ch = curl_init('https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/provinsi');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['x-api-key: ga_live_...'],
CURLOPT_TIMEOUT => 30,
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($body['ok'] ? $body['data'] : $body['error']);
Go
package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/provinsi", nil)
req.Header.Set("x-api-key", "ga_live_...")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
var body map[string]any
json.NewDecoder(res.Body).Decode(&body)
fmt.Println(body["data"])
}
Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder(URI.create("https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/provinsi"))
.header("x-api-key", "ga_live_...")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
Ruby
require "net/http"
require "json"
uri = URI("https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/provinsi")
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "ga_live_..."
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") { |http| http.request(request) }
body = JSON.parse(response.body)
puts body["ok"] ? body["data"] : body["error"]
C#
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "ga_live_...");
var json = await client.GetStringAsync("https://kajidata.artonlabs.com/v1/indonesia:harga-pangan/provinsi");
Console.WriteLine(json);