Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Section titled “[Unreleased]”- Python SDK: Python documents the official
gisphclient (admin geography, reverse geocode, datasets/features, tiles sessions, sync + async). Install from GitHub until PyPI publish. - Reverse geocode: Reverse geocode documents
GET /v1/geocode/reverse?lat=&lng=— point-in-polygon to region → province → municity → barangay. Auth required. Misses (ocean / outside PH) return 200 with null codes andunmatched_reason, not 404. - Waterways (thematic paint): Waterways documents HOT OSM / HDX layers
ph_waterways_lines,ph_waterways_polygons, andph_waterways_points. Includes sampleGET /v1/tilesandPOST /v1/tiles/sessionsJSON, Range 206 behaviour, MapLibre usage, and figures. ODbL attribution required. Not a free-tier surface. - Public free tier (boundary metadata): unauthenticated
GETon/v1/regions,/v1/provinces,/v1/municities, and/v1/barangaysfor JSON only (~30 rpm/IP). GeoJSON and geometry params require an API key (403FREE_TIER_GEOMETRY_DENIEDwithout auth). Documented in Authentication.
Changed
Section titled “Changed”- Admin get-by-id uses PSGC:
GET /v1/{regions,provinces,municities,barangays}/{id}resolves by PSGC code, not the internal serial row id. Examples:/v1/regions/0700000000,/v1/barangays/0730600041. Guides updated under Regions, Provinces, Municities, Barangays. - OpenAPI source of truth: technical contract lives on the API (Scalar, OpenAPI
/doc). This site keeps high-level guides only. - Added API Overview and Interactive API Reference.
- Removed the outdated hand-maintained OpenAPI stub (
src/content/api/openapi.yaml). - API keys: scopes and
rate_limit_rpmare enforced at request time (null scopes = full access; null rpm = 60/min default). Guide updated in Managing API Keys; full vocabulary in API repo auth docs / Scalar.
- Barangay search fields (
GET /v1/barangays/search):- Response now includes
region(name), barangaycode, and parent PSGC codeslCode/pCode/rCode. fullNameincludes region; free-text tokens also match region names (e.g.Lahug NIR).- Documented selection shape for Vue Barangay Search.
- Response now includes
- Municities list
scope(GET /v1/municities):geographic(default) — component cities/municipalities plus HUC/ICC cities hosted in that province (e.g. Cebu City underprovince=Cebu).admin— only LGUs whose admin PSGC parent is the province (excludes region-peer HUCs).- Response fields:
host_province_code,city_class(HUC|ICC). - See Cities & Municipalities.
[0.1.7] - 2026-07-12
Section titled “[0.1.7] - 2026-07-12”- Unified Place Endpoint Response Semantic (Phase 2):
- Standardized response schemas across
/v1/regions,/v1/provinces,/v1/municities, and/v1/barangaysendpoints. - Added support for explicit
formatquery/body parameter (json|geojsonenum) with deprecatedoutputcompatibility mapping. - Integrated shared
geometryselector supporting boundary resolution levels (simple,medium,detailed) across listing, getOne, and POST search endpoints. - GeoJSON responses now output unpaginated RFC 7946
FeatureCollections defaulting tosimplegeometry.
- Standardized response schemas across
- Batch Search & Query Filtering:
- Added batch POST search endpoints (
/v1/regions/search,/v1/provinces/search,/v1/municities/search,/v1/barangays/search) to retrieve multiple records by PSGC codes. - Enforced strict parent parameter scoping for unpaginated GeoJSON operations (e.g.
provincerequired for/v1/municities,provinceandmunicipalityrequired for/v1/barangays) to protect database throughput.
- Added batch POST search endpoints (
- Database & Architecture Performance:
- Integrated Cloudflare Hyperdrive for PostgreSQL database connection pooling and accelerated query latency.
- Added user roles and fine-grained access checks.
[0.1.6] - 2026-02-19
Section titled “[0.1.6] - 2026-02-19”PATCHroutes for partial updates to Datasets and Features- Feature extraction from uploaded GeoJSON files (vector data)
- Automated spatial feature storage in database upon dataset creation
Changed
Section titled “Changed”- Enhanced
GET /v1/features/dataset/{id}to automatically fallback to Cloudflare R2 storage if database features are missing - Improved dataset overview in Dashboard with inline editing of metadata and feature properties
[0.1.5] - 2026-02-17
Section titled “[0.1.5] - 2026-02-17”- Initial release of API.GIS.PH
- Core framework setup with Hono and Cloudflare Workers
- Database integration using Supabase (PostgreSQL) and Drizzle ORM
- Authentication system supporting:
- User API Keys with rate limiting and scoping
- Supabase JWT for authenticated users
- Master Token for admin access
- Geographic endpoints:
/v1/regions,/v1/provinces,/v1/municities,/v1/barangays
- Data management endpoints:
/v1/datasetsfor vector/raster datasets/v1/featuresfor GeoJSON feature operations
- API Key management endpoints (
/v1/api-keys) - OpenAPI 3.0 documentation with Scalar UI