REST API Documentation
Structured, read-only REST endpoints exposing the Philippine Standard Geographic Code reference data. Responses are lightweight JSON payloads.
https://psgc.cloud/api
Endpoints & Resources
Regions
GET https://psgc.cloud/api/regions
code, name
Quick cURL Request
curl -s https://psgc.cloud/api/regions
Show Language Code Examples ↓
const res = await fetch('https://psgc.cloud/api/regions');
const data = await res.json();
console.log(data);
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/regions');
console.log(data);
$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
code, name
Quick cURL Request
curl -s https://psgc.cloud/api/provinces
Show Language Code Examples ↓
const res = await fetch('https://psgc.cloud/api/provinces');
const data = await res.json();
console.log(data);
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/provinces');
console.log(data);
$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
code, name, type, district, zip_code
Quick cURL Request
curl -s https://psgc.cloud/api/cities
Show Language Code Examples ↓
const res = await fetch('https://psgc.cloud/api/cities');
const data = await res.json();
console.log(data);
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/cities');
console.log(data);
$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
code, name, type, district, zip_code
Quick cURL Request
curl -s https://psgc.cloud/api/municipalities
Show Language Code Examples ↓
const res = await fetch('https://psgc.cloud/api/municipalities');
const data = await res.json();
console.log(data);
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/municipalities');
console.log(data);
$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
code, name, status
Quick cURL Request
curl -s https://psgc.cloud/api/barangays
Show Language Code Examples ↓
const res = await fetch('https://psgc.cloud/api/barangays');
const data = await res.json();
console.log(data);
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/barangays');
console.log(data);
$client = new \GuzzleHttp\Client();
$response = $client->get('https://psgc.cloud/api/barangays');
$items = json_decode($response->getBody(), true);
print_r($items);
Geographic Hierarchy Navigation
Errors & Status Codes
PSGC Cloud REST endpoints utilize standard HTTP status codes. 404 Not Found is returned for missing or invalid parameters, 429 Too Many Requests if rate limiting thresholds are crossed, and 500 Server Error for unexpected events.
API Changelog
Added zip_code and resolved district exposure anomalies across city/municipality reference databases.
Stripped internal database IDs (id, region_id, province_id, city_municipality_id) from REST outputs to optimize JSON size.
Initial public production release and deployment of the REST v1 documentation.