PSGC Regions API Documentation
Core entry points to enumerate regions and traverse downward to
provinces, cities, municipalities, sub‑municipalities (where available) and barangays. Use region code
values in URLs (stable identifiers) rather than names.
GET
https://psgc.cloud/api/regions
List regions
Optional future params:
q
(search), pagination (if dataset grows).
GET
https://psgc.cloud/api/regions/{code}
Show a single region
GET
https://psgc.cloud/api/regions/{code}/provinces
Nested provinces
GET
https://psgc.cloud/api/regions/{code}/cities
All cities in region (direct)
GET
https://psgc.cloud/api/regions/{code}/municipalities
All municipalities in region (direct)
GET
https://psgc.cloud/api/regions/{code}/cities-municipalities
Combined cities & municipalities
GET
https://psgc.cloud/api/regions/{code}/sub-municipalities
Sub-municipality layer (if supported)
GET
https://psgc.cloud/api/regions/{code}/barangays
Flattened barangays in region
Code Samples
List Regions
curl -s https://api.example.com/regions
fetch('https://api.example.com/regions')
.then(r => r.json())
.then(console.log)
axios.get('https://api.example.com/regions')
.then(r => console.log(r.data))
<?php
$client = new \GuzzleHttp\Client(['base_uri' => 'https://api.example.com']);
$res = $client->get('/regions');
$body = json_decode($res->getBody(), true);
print_r($body);
Show Region
curl -s https://api.example.com/regions/0200000000
fetch('https://api.example.com/regions/0200000000')
.then(r => r.json())
.then(console.log)
axios.get('https://api.example.com/regions/0200000000')
.then(r => console.log(r.data))
<?php
$client = new \GuzzleHttp\Client(['base_uri' => 'https://api.example.com']);
$res = $client->get('/regions/0200000000');
$body = json_decode($res->getBody(), true);
print_r($body);
Region Provinces
curl -s https://api.example.com/regions/0200000000/provinces
fetch('https://api.example.com/regions/0200000000/provinces')
.then(r => r.json())
.then(console.log)
axios.get('https://api.example.com/regions/0200000000/provinces')
.then(r => console.log(r.data))
<?php
$client = new \GuzzleHttp\Client(['base_uri' => 'https://api.example.com']);
$res = $client->get('/regions/0200000000/provinces');
$body = json_decode($res->getBody(), true);
print_r($body);
Region Cities+Municipalities
curl -s https://api.example.com/regions/0200000000/cities-municipalities
fetch('https://api.example.com/regions/0200000000/cities-municipalities')
.then(r => r.json())
.then(console.log)
axios.get('https://api.example.com/regions/0200000000/cities-municipalities')
.then(r => console.log(r.data))
<?php
$client = new \GuzzleHttp\Client(['base_uri' => 'https://api.example.com']);
$res = $client->get('/regions/0200000000/cities-municipalities');
$body = json_decode($res->getBody(), true);
print_r($body);