API Reference v1

REST API Documentation

Structured, read-only REST endpoints exposing the Philippine Standard Geographic Code reference data. Responses are lightweight JSON payloads.

Base URL: https://psgc.cloud/api

Endpoints & Resources

Regions

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

Fields: code, name

Quick cURL Request

curl -s https://psgc.cloud/api/regions
Show Language Code Examples
fetch API
const res = await fetch('https://psgc.cloud/api/regions');
const data = await res.json();
console.log(data);
Axios
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/regions');
console.log(data);
PHP (Guzzle)
$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

Quick cURL Request

curl -s https://psgc.cloud/api/provinces
Show Language Code Examples
fetch API
const res = await fetch('https://psgc.cloud/api/provinces');
const data = await res.json();
console.log(data);
Axios
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/provinces');
console.log(data);
PHP (Guzzle)
$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

Quick cURL Request

curl -s https://psgc.cloud/api/cities
Show Language Code Examples
fetch API
const res = await fetch('https://psgc.cloud/api/cities');
const data = await res.json();
console.log(data);
Axios
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/cities');
console.log(data);
PHP (Guzzle)
$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

Quick cURL Request

curl -s https://psgc.cloud/api/municipalities
Show Language Code Examples
fetch API
const res = await fetch('https://psgc.cloud/api/municipalities');
const data = await res.json();
console.log(data);
Axios
import axios from 'axios';
const { data } = await axios.get('https://psgc.cloud/api/municipalities');
console.log(data);
PHP (Guzzle)
$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

Quick cURL Request

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

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

v1.1.1

Added zip_code and resolved district exposure anomalies across city/municipality reference databases.

v1.1.0

Stripped internal database IDs (id, region_id, province_id, city_municipality_id) from REST outputs to optimize JSON size.

v1.0.0

Initial public production release and deployment of the REST v1 documentation.