{"openapi":"3.1.0","info":{"title":"Peta Kuesus API Region Data","version":"1.0.0","description":"Region data endpoints for Indonesian administrative hierarchy from cahyadsn/wilayah. Postal codes come from cahyadsn/wilayah_kodepos. Boundary availability is included where source coverage exists."},"servers":[{"url":"/api/v1","description":"Region data endpoints"}],"paths":{"/meta.json":{"get":{"tags":["Metadata"],"responses":{"200":{"description":"API metadata","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/provinces.json":{"get":{"tags":["Region Data"],"responses":{"200":{"description":"All provinces","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["code","name","latitude","longitude","boundary"],"properties":{"code":{"type":"string"},"name":{"type":"string"},"province_code":{"type":"string"},"regency_code":{"type":"string"},"district_code":{"type":"string"},"postal_code":{"type":["string","null"]},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"boundary":{"type":"object","required":["available"],"properties":{"available":{"type":"boolean"},"source":{"type":"string","enum":["cahyadsn/wilayah_boundaries"]},"reason":{"type":"string"}}}}}}}}}}}},"/regencies/by-province/{province_code}.json":{"get":{"tags":["Region Data"],"parameters":[{"name":"province_code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Regencies in a province","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["code","name","latitude","longitude","boundary"],"properties":{"code":{"type":"string"},"name":{"type":"string"},"province_code":{"type":"string"},"regency_code":{"type":"string"},"district_code":{"type":"string"},"postal_code":{"type":["string","null"]},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"boundary":{"type":"object","required":["available"],"properties":{"available":{"type":"boolean"},"source":{"type":"string","enum":["cahyadsn/wilayah_boundaries"]},"reason":{"type":"string"}}}}}}}}}}}},"/districts/by-regency/{regency_code}.json":{"get":{"tags":["Region Data"],"parameters":[{"name":"regency_code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Districts in a regency","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["code","name","latitude","longitude","boundary"],"properties":{"code":{"type":"string"},"name":{"type":"string"},"province_code":{"type":"string"},"regency_code":{"type":"string"},"district_code":{"type":"string"},"postal_code":{"type":["string","null"]},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"boundary":{"type":"object","required":["available"],"properties":{"available":{"type":"boolean"},"source":{"type":"string","enum":["cahyadsn/wilayah_boundaries"]},"reason":{"type":"string"}}}}}}}}}}}},"/villages/by-district/{district_code}.json":{"get":{"tags":["Region Data"],"parameters":[{"name":"district_code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Villages in a district","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["code","name","latitude","longitude","boundary"],"properties":{"code":{"type":"string"},"name":{"type":"string"},"province_code":{"type":"string"},"regency_code":{"type":"string"},"district_code":{"type":"string"},"postal_code":{"type":["string","null"]},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"boundary":{"type":"object","required":["available"],"properties":{"available":{"type":"boolean"},"source":{"type":"string","enum":["cahyadsn/wilayah_boundaries"]},"reason":{"type":"string"}}}}}}}}}}}},"/search/villages-by-province/{province_code}.json":{"get":{"tags":["Region Data"],"summary":"Advanced region data search shard","description":"Region data helper grouped by province for advanced/offline clients. Most clients should use /search.","parameters":[{"name":"province_code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Search index rows for villages in one province","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["code","name","latitude","longitude","boundary"],"properties":{"code":{"type":"string"},"name":{"type":"string"},"province_code":{"type":"string"},"regency_code":{"type":"string"},"district_code":{"type":"string"},"postal_code":{"type":["string","null"]},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]},"boundary":{"type":"object","required":["available"],"properties":{"available":{"type":"boolean"},"source":{"type":"string","enum":["cahyadsn/wilayah_boundaries"]},"reason":{"type":"string"}}}}}}}}}}}},"/lookup/provinces.json":{"get":{"tags":["Region Data"],"responses":{"200":{"description":"Province lookup object keyed by code","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/lookup/regencies.json":{"get":{"tags":["Region Data"],"responses":{"200":{"description":"Regency lookup object keyed by code","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/lookup/districts-by-province/{province_code}.json":{"get":{"tags":["Region Data"],"parameters":[{"name":"province_code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"District lookup object keyed by code for one province","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/lookup/villages-by-regency/{regency_code}.json":{"get":{"tags":["Region Data"],"parameters":[{"name":"regency_code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Village lookup object keyed by code for one regency","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"}}},"Region":{"type":"object","properties":{"level":{"type":"string","enum":["province","regency","district","village"]},"code":{"type":"string"},"code_plain":{"type":"string"},"name":{"type":"string"},"parent_path":{"type":"string"},"province_code":{"type":"string"},"regency_code":{"type":"string"},"district_code":{"type":"string"},"postal_code":{"type":["string","null"]},"boundary":{"type":"object","properties":{"available":{"type":"boolean"}}},"bbox":{"type":["array","null"],"minItems":4,"maxItems":4,"items":{"type":"number"}}}},"SearchResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Region"}},"meta":{"type":"object","properties":{"query":{"type":"string"},"limit":{"type":"integer"},"count":{"type":"integer"}}}}},"AutocompleteResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AutocompleteItem"}},"meta":{"type":"object","properties":{"query":{"type":"string"},"limit":{"type":"integer"},"count":{"type":"integer"}}}}},"AutocompleteItem":{"type":"object","properties":{"label":{"type":"string","example":"Banyumudal, Moga, Pemalang, Jawa Tengah"},"level":{"type":"string","enum":["province","regency","district","village"]},"code":{"type":"string","example":"33.27.07.2006"},"name":{"type":"string","example":"Banyumudal"},"postal_code":{"type":["string","null"],"example":"52354"},"components":{"type":"object","properties":{"province":{"$ref":"#/components/schemas/AutocompleteComponent"},"regency":{"$ref":"#/components/schemas/AutocompleteComponent"},"district":{"$ref":"#/components/schemas/AutocompleteComponent"},"village":{"$ref":"#/components/schemas/AutocompleteComponent"}}},"boundary":{"type":"object","properties":{"available":{"type":"boolean"}}}}},"AutocompleteComponent":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}}},"ChildrenResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Region"}},"meta":{"type":"object","properties":{"limit":{"type":"integer"},"offset":{"type":"integer"},"count":{"type":"integer"}}}}},"GeoJsonFeature":{"type":"object","required":["type","properties","geometry"],"properties":{"type":{"type":"string","const":"Feature"},"properties":{"type":"object"},"geometry":{"type":"object","properties":{"type":{"type":"string","enum":["Polygon","MultiPolygon"]},"coordinates":{"type":"array"}}}}},"GeoJsonFeatureCollection":{"type":"object","required":["type","features","metadata"],"properties":{"type":{"type":"string","const":"FeatureCollection"},"name":{"type":"string","example":"Peta Kuesus selected regions"},"features":{"type":"array","items":{"$ref":"#/components/schemas/GeoJsonFeature"}},"metadata":{"$ref":"#/components/schemas/BoundaryExportMetadata"}}},"BoundaryExportRequest":{"type":"object","required":["codes"],"properties":{"codes":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"string"}},"scope":{"type":"string","enum":["selected","regencies","districts","villages"],"default":"selected"},"simplify":{"type":"boolean","default":false},"tolerance":{"type":"number","minimum":0,"maximum":1,"default":0.001}}},"BoundaryExportMetadata":{"type":"object","properties":{"generated_by":{"type":"string","example":"Peta Kuesus"},"selected_count":{"type":"integer"},"expanded_count":{"type":"integer"},"output_feature_count":{"type":"integer"},"downloaded_count":{"type":"integer"},"missing_boundary_count":{"type":"integer"},"expansion_scope":{"type":"string","enum":["selected","regencies","districts","villages"]},"missing_boundaries":{"type":"array","items":{"$ref":"#/components/schemas/Region"}}}},"ReverseSpatialResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"point":{"$ref":"#/components/schemas/Point"},"matches":{"type":"array","items":{"$ref":"#/components/schemas/Region"}}}}}},"ContainsSpatialResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"contains":{"type":"boolean"},"region":{"$ref":"#/components/schemas/Region"}}}}},"Point":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}}},"LevelCounts":{"type":"object","properties":{"province":{"type":"integer","example":38},"regency":{"type":"integer","example":514},"district":{"type":"integer","example":7285},"village":{"type":"integer","example":83762}}}}}}
