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/regionsLanguage 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/provincesLanguage 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/citiesLanguage 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/municipalitiesLanguage 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/barangaysLanguage 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);Hierarchy Pages
Errors & Status Codes
Standard HTTP codes. 404 for missing resources. 429 if rate limited. 500 for unexpected errors.
Changelog
- v1.1.1 – Added zip_codeand fixeddistrictexposure 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.