API Documentation

Structured, read-only REST endpoints exposing PSGC reference data. Responses are JSON arrays or objects; timestamps use ISO 8601.

Resources

Regions

GET https://psgc.cloud/api/regions

Fields: code, name

curl -s https://psgc.cloud/api/regions
Language Examples
# curl
curl -s https://psgc.cloud/api/regions
// JavaScript fetch
const res = await fetch('https://psgc.cloud/api/regions');
const data = await res.json();
console.log(data);
// JavaScript axios
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/regions');
console.log(data);
// PHP (GuzzleHttp)
$client = new \GuzzleHttp\Client();
$response = $client->get('https://psgc.cloud/api/regions');
$items = json_decode($response->getBody(), true);
print_r($items);

Provinces

GET https://psgc.cloud/api/provinces

Fields: code, name

curl -s https://psgc.cloud/api/provinces
Language Examples
# curl
curl -s https://psgc.cloud/api/provinces
// JavaScript fetch
const res = await fetch('https://psgc.cloud/api/provinces');
const data = await res.json();
console.log(data);
// JavaScript axios
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/provinces');
console.log(data);
// PHP (GuzzleHttp)
$client = new \GuzzleHttp\Client();
$response = $client->get('https://psgc.cloud/api/provinces');
$items = json_decode($response->getBody(), true);
print_r($items);

Cities

GET https://psgc.cloud/api/cities

Fields: code, name, type, district, zip_code

curl -s https://psgc.cloud/api/cities
Language Examples
# curl
curl -s https://psgc.cloud/api/cities
// JavaScript fetch
const res = await fetch('https://psgc.cloud/api/cities');
const data = await res.json();
console.log(data);
// JavaScript axios
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/cities');
console.log(data);
// PHP (GuzzleHttp)
$client = new \GuzzleHttp\Client();
$response = $client->get('https://psgc.cloud/api/cities');
$items = json_decode($response->getBody(), true);
print_r($items);

Municipalities

GET https://psgc.cloud/api/municipalities

Fields: code, name, type, district, zip_code

curl -s https://psgc.cloud/api/municipalities
Language Examples
# curl
curl -s https://psgc.cloud/api/municipalities
// JavaScript fetch
const res = await fetch('https://psgc.cloud/api/municipalities');
const data = await res.json();
console.log(data);
// JavaScript axios
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/municipalities');
console.log(data);
// PHP (GuzzleHttp)
$client = new \GuzzleHttp\Client();
$response = $client->get('https://psgc.cloud/api/municipalities');
$items = json_decode($response->getBody(), true);
print_r($items);

Barangays

GET https://psgc.cloud/api/barangays

Fields: code, name, status

curl -s https://psgc.cloud/api/barangays
Language Examples
# curl
curl -s https://psgc.cloud/api/barangays
// JavaScript fetch
const res = await fetch('https://psgc.cloud/api/barangays');
const data = await res.json();
console.log(data);
// JavaScript axios
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/barangays');
console.log(data);
// PHP (GuzzleHttp)
$client = new \GuzzleHttp\Client();
$response = $client->get('https://psgc.cloud/api/barangays');
$items = json_decode($response->getBody(), true);
print_r($items);

Errors & Status Codes

Standard HTTP codes. 404 for missing resources. 429 if rate limited. 500 for unexpected errors.

Changelog

  • v1.1.1 – Added zip_code and fixed district exposure for city / municipality records.
  • v1.1.0 – Removed internal keys (id, region_id, province_id, city_municipality_id) from responses for smaller payloads.
  • v1.0.0 – Initial public documentation.