{
"success": false,
"statusCode": 403,
"error": {
"code": "FEATURE_NOT_IN_PLAN",
"message": "Your plan does not include this feature"
},
"meta": {
"timestamp": "2026-06-19T08:34:08.100Z"
}
}
Boundary geometry for every ward in provinceId, carrying residential land
prices. meta.bands holds percentile colour thresholds (non-Vietnam markets
only) — when absent, the client falls back to its own fixed bands. meta.unit
says how to format prices, and meta.usdRate is the USD value of one unit of
local currency.
Payloads are large — a single province can run to several megabytes. Use the
province-prices endpoint when a dot per province is enough.
GET
/
openapi
/
v1
/
real-estate
/
{country}
/
provinces
/
{provinceId}
/
geojson
Ward choropleth GeoJSON for one province
curl --request GET \ --url https://api-v2.hayinsights.com/openapi/v1/real-estate/{country}/provinces/{provinceId}/geojson \ --header 'X-API-Key: <api-key>'
{
"success": false,
"statusCode": 403,
"error": {
"code": "FEATURE_NOT_IN_PLAN",
"message": "Your plan does not include this feature"
},
"meta": {
"timestamp": "2026-06-19T08:34:08.100Z"
}
}
Your HayInsights API key (prefixed apk_). Create and manage keys in the
HayInsights dashboard (Account → API keys).
Send it in the X-API-Key header on every request to /openapi/v1/*.
Which data domains you may access and your request quota are both governed by
the subscription plan attached to the key — see the Plans & features and
Rate limits guides.
Ward features plus the colour thresholds for this province. Note the
nesting: the features are at data.data, and data.meta is the route's own
metadata, distinct from the envelope's meta.
Response metadata. Always present; timestamp is the server time the response was generated.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"HayInsights Open API","description":"The official API for the HayInsights financial-data hub — commodities, crypto, ETF, FX, macro, real-estate, news, calendar and market-index datasets.","colors":{"primary":"#2563EB","light":"#3B82F6","dark":"#1D4ED8"},"logo":{"light":"https://mintcdn.com/hayinsights/w7ouUmWFSMYI1Ars/logo.svg?fit=max\u0026auto=format\u0026n=w7ouUmWFSMYI1Ars\u0026q=85\u0026s=c48347f2c9a762ef8ee28dfce9259983","dark":"https://mintcdn.com/hayinsights/w7ouUmWFSMYI1Ars/logo-dark.svg?fit=max\u0026auto=format\u0026n=w7ouUmWFSMYI1Ars\u0026q=85\u0026s=323c27a9805bae61409dfcefcb47f5ff"},"favicon":"https://mintcdn.com/hayinsights/w7ouUmWFSMYI1Ars/favicon.svg?fit=max\u0026auto=format\u0026n=w7ouUmWFSMYI1Ars\u0026q=85\u0026s=d307dee7c605bf90e7b21fdd1a05c839","navbar":{"links":[{"href":"https://app.hayinsights.com","label":"Dashboard"}],"primary":{"type":"button","label":"Get API key","href":"https://app.hayinsights.com/en/api-keys"}},"footer":{"socials":{"website":"https://hayinsights.com"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hayinsights","hasAudioNarration":false,"actualSubdomain":"hayinsights","customDomains":["developer.hayinsights.com"],"gitSource":{"type":"github","owner":"quantran55","repo":"open-api-docs","deployBranch":"main","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"43f58f2e-8af8-4ae7-b06c-ae96bfb1a715","liveDeploymentHistoryId":"6ae94d39d35f8c891866eabf","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae94d39d35f8c891866eabf"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae94d39d35f8c891866eabf","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":87},{"language":"default","tag":"Macro","count":40},{"language":"default","tag":"ETF","count":14},{"language":"default","tag":"Equities","count":8},{"language":"default","tag":"Guides","count":7},{"language":"default","tag":"Real Estate","count":6},{"language":"default","tag":"Commodities","count":5},{"language":"default","tag":"Crypto","count":5},{"language":"default","tag":"FX","count":4},{"language":"default","tag":"Getting started","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/real-estate/ward-choropleth-geojson-for-one-province","slug":"/api-reference/real-estate/ward-choropleth-geojson-for-one-province","pageMetadata":{"title":"Ward choropleth GeoJSON for one province","description":"Boundary geometry for every ward in `provinceId`, carrying residential land\nprices. `meta.bands` holds percentile colour thresholds (non-Vietnam markets\nonly) — when absent, the client falls back to its own fixed bands. `meta.unit`\nsays how to format prices, and `meta.usdRate` is the USD value of one unit of\nlocal currency.\n\nPayloads are large — a single province can run to several megabytes. Use the\nprovince-prices endpoint when a dot per province is enough.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/real-estate/{country}/provinces/{provinceId}/geojson","href":"/api-reference/real-estate/ward-choropleth-geojson-for-one-province","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Boundary geometry for every ward in \", _jsx(_components.code, {\n children: \"provinceId\"\n }), \", carrying residential land\\nprices. \", _jsx(_components.code, {\n children: \"meta.bands\"\n }), \" holds percentile colour thresholds (non-Vietnam markets\\nonly) — when absent, the client falls back to its own fixed bands. \", _jsx(_components.code, {\n children: \"meta.unit\"\n }), \"\\nsays how to format prices, and \", _jsx(_components.code, {\n children: \"meta.usdRate\"\n }), \" is the USD value of one unit of\\nlocal currency.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Payloads are large — a single province can run to several megabytes. Use the\\nprovince-prices endpoint when a dot per province is enough.\"\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Ward choropleth GeoJSON for one province","description":"Boundary geometry for every ward in `provinceId`, carrying residential land\nprices. `meta.bands` holds percentile colour thresholds (non-Vietnam markets\nonly) — when absent, the client falls back to its own fixed bands. `meta.unit`\nsays how to format prices, and `meta.usdRate` is the USD value of one unit of\nlocal currency.\n\nPayloads are large — a single province can run to several megabytes. Use the\nprovince-prices endpoint when a dot per province is enough.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/real-estate/{country}/provinces/{provinceId}/geojson","href":"/api-reference/real-estate/ward-choropleth-geojson-for-one-province","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"realEstateProvinceGeoJson","tags":["Real Estate"],"summary":"Ward choropleth GeoJSON for one province","description":"Boundary geometry for every ward in `provinceId`, carrying residential land\nprices. `meta.bands` holds percentile colour thresholds (non-Vietnam markets\nonly) — when absent, the client falls back to its own fixed bands. `meta.unit`\nsays how to format prices, and `meta.usdRate` is the USD value of one unit of\nlocal currency.\n\nPayloads are large — a single province can run to several megabytes. Use the\nprovince-prices endpoint when a dot per province is enough.\n","x-feature-code":"realestate_data","x-api-weight":2,"parameters":["c4b1a640-7f79-4a8f-935a-e7ed14e56b69","73c967e5-ac82-446e-bd7b-3d9a84e7fa04","9d989ccf-3ce6-4d88-bde7-c47ebb6bdc20"],"responses":{"200":"927884e3-ebde-4b4e-a16b-8f4a4ab138d0","400":"cc3eac19-331e-4895-925d-8bafdb31fbb1","401":"bae30b94-50e4-4ecd-b4cf-adc85adac59e","403":"7ac1d811-5c50-4ea4-aaf9-9d2c7f32b947","404":"cd9d1f57-570e-4fa3-9904-adbe0468325a","429":"e9a036e4-104a-43eb-a0d2-ff46fc2537e9","500":"c77e0bfb-52d4-4ceb-ac3c-95b8d615b828"},"method":"get","type":"path","servers":["c0b940ae-1940-4085-8100-f995a88559a0"],"security":["aecb18a7-bfa7-4d84-ac57-2a56fd7ad94e"],"path":"/openapi/v1/real-estate/{country}/provinces/{provinceId}/geojson","baseUrlOptions":["https://api-v2.hayinsights.com"],"title":"Ward choropleth GeoJSON for one province","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"c4b1a640-7f79-4a8f-935a-e7ed14e56b69":{"name":"country","in":"path","required":true,"description":"Country code.","schema":{"type":"string","enum":["vn","jp"],"example":"vn","isRequired":true,"description":"Country code.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"73c967e5-ac82-446e-bd7b-3d9a84e7fa04":{"name":"provinceId","in":"path","required":true,"description":"Province ID, from the provinces endpoint.","schema":{"type":"integer","example":1,"isRequired":true,"description":"Province ID, from the provinces endpoint.","uniqueKey":"","typeLabel":"integer"}},"9d989ccf-3ce6-4d88-bde7-c47ebb6bdc20":{"name":"lang","in":"query","required":false,"description":"Language for name fields.","schema":{"type":"string","enum":["vi","en"],"default":"vi","isRequired":false,"description":"Language for name fields.","uniqueKey":"","typeLabel":"enum\u003cstring>"}}},"responses":{"927884e3-ebde-4b4e-a16b-8f4a4ab138d0":{"description":"Ward boundaries and prices for the province.","content":{"application/json":{"schema":{"type":"object","description":"Standard success envelope shared by every endpoint. Each operation's response\nwrapper extends this (via `allOf`) and adds a typed `data` property.\n","required":["data","success","statusCode"],"properties":{"success":{"type":"boolean","const":true,"description":"Always `true` for a successful response.","example":true,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"statusCode":{"type":"integer","description":"Mirrors the HTTP status code.","example":200,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"data":{"type":"object","description":"Ward features plus the colour thresholds for this province. Note the\nnesting: the features are at `data.data`, and `data.meta` is the route's own\nmetadata, distinct from the envelope's `meta`.\n","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"One ward feature: price attributes plus boundary geometry. `coordinates` is modelled\npermissively — it is a nested array of `[longitude, latitude]` rings, can be large,\nand is normally passed straight to a mapping library.\n","required":["wardId","wardName"],"properties":{"wardId":{"type":"integer","example":34,"isRequired":true,"uniqueKey":"data.data.items.[INDEX].wardId","typeLabel":"integer"},"wardName":{"type":"string","example":"Phú Thuận","isRequired":true,"uniqueKey":"data.data.items.[INDEX].wardName","typeLabel":"string"},"areaName":{"type":"string","description":"Area / zone display name (localized).","example":"Khu vực II","uniqueKey":"data.data.items.[INDEX].areaName","typeLabel":"string"},"area":{"type":"string","description":"Area / land-value zone label (localized).","example":"Khu vực II","uniqueKey":"data.data.items.[INDEX].area","typeLabel":"string"},"avgPriceResidentialVt1":{"oneOf":[{"type":"number","description":"Average residential price, value-position tier 1.","example":52639.39,"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt1.oneOf.0","typeLabel":"number"},{"type":"null","description":"Average residential price, value-position tier 1.","example":52639.39,"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt1.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt1","typeLabel":"number | null"},"avgPriceResidentialVt2":{"oneOf":[{"type":"number","example":null,"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt2.oneOf.0","typeLabel":"number"},{"type":"null","example":null,"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt2.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt2","typeLabel":"number | null"},"avgPriceResidentialVt3":{"oneOf":[{"type":"number","example":null,"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt3.oneOf.0","typeLabel":"number"},{"type":"null","example":null,"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt3.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt3","typeLabel":"number | null"},"avgPriceResidentialVt4":{"oneOf":[{"type":"number","example":null,"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt4.oneOf.0","typeLabel":"number"},{"type":"null","example":null,"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt4.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.data.items.[INDEX].avgPriceResidentialVt4","typeLabel":"number | null"},"minPriceResidential":{"oneOf":[{"type":"number","example":36500,"uniqueKey":"data.data.items.[INDEX].minPriceResidential.oneOf.0","typeLabel":"number"},{"type":"null","example":36500,"uniqueKey":"data.data.items.[INDEX].minPriceResidential.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.data.items.[INDEX].minPriceResidential","typeLabel":"number | null"},"maxPriceResidential":{"oneOf":[{"type":"number","example":83400,"uniqueKey":"data.data.items.[INDEX].maxPriceResidential.oneOf.0","typeLabel":"number"},{"type":"null","example":83400,"uniqueKey":"data.data.items.[INDEX].maxPriceResidential.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.data.items.[INDEX].maxPriceResidential","typeLabel":"number | null"},"roadCount":{"oneOf":[{"type":"integer","example":38,"uniqueKey":"data.data.items.[INDEX].roadCount.oneOf.0","typeLabel":"integer"},{"type":"null","example":38,"uniqueKey":"data.data.items.[INDEX].roadCount.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.data.items.[INDEX].roadCount","typeLabel":"integer | null"},"unit":{"type":"string","enum":["k_vnd","jpy_m2"],"example":"k_vnd","uniqueKey":"data.data.items.[INDEX].unit","typeLabel":"enum\u003cstring>"},"coordinates":{"type":"array","description":"Boundary geometry as nested coordinate rings. Pass through to a map.","items":{"oneOf":[{}],"uniqueKey":"data.data.items.[INDEX].coordinates.items.[INDEX]","typeLabel":"any"},"uniqueKey":"data.data.items.[INDEX].coordinates","typeLabel":"any[]"}},"additionalProperties":true,"uniqueKey":"data.data.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.data","typeLabel":"object[]"},"meta":{"type":"object","required":["unit"],"properties":{"unit":{"type":"string","enum":["k_vnd","jpy_m2"],"description":"How to format prices.","example":"k_vnd","isRequired":true,"uniqueKey":"data.meta.unit","typeLabel":"enum\u003cstring>"},"availableYears":{"type":"array","description":"Years for which land-price data exists.","items":{"type":"integer","uniqueKey":"data.meta.availableYears.items.[INDEX]","typeLabel":"integer"},"example":[2025],"uniqueKey":"data.meta.availableYears","typeLabel":"integer[]"},"latestYear":{"oneOf":[{"type":"integer","example":2025,"uniqueKey":"data.meta.latestYear.oneOf.0","typeLabel":"integer"},{"type":"null","example":2025,"uniqueKey":"data.meta.latestYear.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.meta.latestYear","typeLabel":"integer | null"},"bands":{"type":"array","description":"Percentile colour thresholds. Absent when the market has no banding,\nin which case the client falls back to its own fixed bands.\n","items":{"type":"number","uniqueKey":"data.meta.bands.items.[INDEX]","typeLabel":"number"},"uniqueKey":"data.meta.bands","typeLabel":"number[]"},"bandMethod":{"type":"string","enum":["percentile"],"description":"Present only alongside `bands`.","uniqueKey":"data.meta.bandMethod","typeLabel":"enum\u003cstring>"},"usdRate":{"type":"number","description":"USD value of one unit of local currency. Absent when no FX is available.","example":0.00003966381630640323,"uniqueKey":"data.meta.usdRate","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.meta","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"meta":{"type":"object","description":"Response metadata. Always present; `timestamp` is the server time the response was generated.","required":["timestamp"],"properties":{"timestamp":{"type":"string","format":"date-time","description":"Server time when the response was generated (ISO 8601).","example":"2026-06-19T08:31:59.478Z","isRequired":true,"uniqueKey":"meta.timestamp","typeLabel":"string\u003cdate-time>"}},"additionalProperties":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"success":true,"statusCode":200,"data":{"data":[{"wardId":34,"wardName":"Phú Thuận","areaName":"Khu vực II","area":"Khu vực II","avgPriceResidentialVt1":52639.39,"avgPriceResidentialVt2":null,"avgPriceResidentialVt3":null,"avgPriceResidentialVt4":null,"minPriceResidential":36500,"maxPriceResidential":83400,"roadCount":33,"unit":"k_vnd","coordinates":[[[106.751906,10.7051207],[106.751422,10.7074537]]]}],"meta":{"availableYears":[2025],"latestYear":2025,"unit":"k_vnd","usdRate":0.00003966381630640323}},"meta":{"timestamp":"2026-09-16T07:25:17.448Z"}},"examples":{"Example":{"title":"Example","value":{"success":true,"statusCode":200,"data":{"data":[{"wardId":34,"wardName":"Phú Thuận","areaName":"Khu vực II","area":"Khu vực II","avgPriceResidentialVt1":52639.39,"avgPriceResidentialVt2":null,"avgPriceResidentialVt3":null,"avgPriceResidentialVt4":null,"minPriceResidential":36500,"maxPriceResidential":83400,"roadCount":33,"unit":"k_vnd","coordinates":[[[106.751906,10.7051207],[106.751422,10.7074537]]]}],"meta":{"availableYears":[2025],"latestYear":2025,"unit":"k_vnd","usdRate":0.00003966381630640323}},"meta":{"timestamp":"2026-09-16T07:25:17.448Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"cc3eac19-331e-4895-925d-8bafdb31fbb1":{"description":"Invalid or missing parameter — bad enum, range, format, or a missing required query parameter.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned for every 4xx / 5xx response.","required":["success","statusCode","error"],"properties":{"success":{"type":"boolean","const":false,"description":"Always `false` for an error response.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"statusCode":{"type":"integer","description":"Mirrors the HTTP status code.","example":401,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"error":{"type":"object","description":"Error detail object carried under `error` in the error envelope.","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code. Specific for authentication / quota errors\n(e.g. `API_KEY_REQUIRED`, `API_KEY_INVALID`, `FEATURE_NOT_IN_PLAN`,\n`RATE_LIMIT_EXCEEDED`). For validation (400) and not-found (404) the code\nis currently `INTERNAL_ERROR` and the HTTP status carries the semantics.\n","example":"API_KEY_INVALID","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"error.message.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.1","typeLabel":"string[]"}],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string | string[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","description":"Response metadata. Always present; `timestamp` is the server time the response was generated.","required":["timestamp"],"properties":{"timestamp":{"type":"string","format":"date-time","description":"Server time when the response was generated (ISO 8601).","example":"2026-06-19T08:31:59.478Z","isRequired":true,"uniqueKey":"meta.timestamp","typeLabel":"string\u003cdate-time>"}},"additionalProperties":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"success":false,"statusCode":400,"error":{"code":"INTERNAL_ERROR","message":["Invalid type parameter. Must be \"gdp\", \"cpi\", \"pce\", or \"import-export\"","Type parameter is required"]},"meta":{"error":"Bad Request","statusCode":400,"timestamp":"2026-06-19T08:34:08.081Z"}},"examples":{"Example":{"title":"Example","value":{"success":false,"statusCode":400,"error":{"code":"INTERNAL_ERROR","message":["Invalid type parameter. Must be \"gdp\", \"cpi\", \"pce\", or \"import-export\"","Type parameter is required"]},"meta":{"error":"Bad Request","statusCode":400,"timestamp":"2026-06-19T08:34:08.081Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"bae30b94-50e4-4ecd-b4cf-adc85adac59e":{"description":"Missing, invalid, disabled or expired API key. Send a valid key in the `X-API-Key` header.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned for every 4xx / 5xx response.","required":["success","statusCode","error"],"properties":{"success":{"type":"boolean","const":false,"description":"Always `false` for an error response.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"statusCode":{"type":"integer","description":"Mirrors the HTTP status code.","example":401,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"error":{"type":"object","description":"Error detail object carried under `error` in the error envelope.","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code. Specific for authentication / quota errors\n(e.g. `API_KEY_REQUIRED`, `API_KEY_INVALID`, `FEATURE_NOT_IN_PLAN`,\n`RATE_LIMIT_EXCEEDED`). For validation (400) and not-found (404) the code\nis currently `INTERNAL_ERROR` and the HTTP status carries the semantics.\n","example":"API_KEY_INVALID","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"error.message.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.1","typeLabel":"string[]"}],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string | string[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","description":"Response metadata. Always present; `timestamp` is the server time the response was generated.","required":["timestamp"],"properties":{"timestamp":{"type":"string","format":"date-time","description":"Server time when the response was generated (ISO 8601).","example":"2026-06-19T08:31:59.478Z","isRequired":true,"uniqueKey":"meta.timestamp","typeLabel":"string\u003cdate-time>"}},"additionalProperties":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"success":false,"statusCode":401,"error":{"code":"API_KEY_INVALID","message":"Invalid API key"},"meta":{"timestamp":"2026-06-19T08:34:08.023Z"}},"examples":{"Example":{"title":"Example","value":{"success":false,"statusCode":401,"error":{"code":"API_KEY_INVALID","message":"Invalid API key"},"meta":{"timestamp":"2026-06-19T08:34:08.023Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"7ac1d811-5c50-4ea4-aaf9-9d2c7f32b947":{"description":"Your subscription plan does not include this data feature, or your key's scope denies it.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned for every 4xx / 5xx response.","required":["success","statusCode","error"],"properties":{"success":{"type":"boolean","const":false,"description":"Always `false` for an error response.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"statusCode":{"type":"integer","description":"Mirrors the HTTP status code.","example":401,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"error":{"type":"object","description":"Error detail object carried under `error` in the error envelope.","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code. Specific for authentication / quota errors\n(e.g. `API_KEY_REQUIRED`, `API_KEY_INVALID`, `FEATURE_NOT_IN_PLAN`,\n`RATE_LIMIT_EXCEEDED`). For validation (400) and not-found (404) the code\nis currently `INTERNAL_ERROR` and the HTTP status carries the semantics.\n","example":"API_KEY_INVALID","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"error.message.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.1","typeLabel":"string[]"}],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string | string[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","description":"Response metadata. Always present; `timestamp` is the server time the response was generated.","required":["timestamp"],"properties":{"timestamp":{"type":"string","format":"date-time","description":"Server time when the response was generated (ISO 8601).","example":"2026-06-19T08:31:59.478Z","isRequired":true,"uniqueKey":"meta.timestamp","typeLabel":"string\u003cdate-time>"}},"additionalProperties":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"success":false,"statusCode":403,"error":{"code":"FEATURE_NOT_IN_PLAN","message":"Your plan does not include this feature"},"meta":{"timestamp":"2026-06-19T08:34:08.100Z"}},"examples":{"Example":{"title":"Example","value":{"success":false,"statusCode":403,"error":{"code":"FEATURE_NOT_IN_PLAN","message":"Your plan does not include this feature"},"meta":{"timestamp":"2026-06-19T08:34:08.100Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"cd9d1f57-570e-4fa3-9904-adbe0468325a":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned for every 4xx / 5xx response.","required":["success","statusCode","error"],"properties":{"success":{"type":"boolean","const":false,"description":"Always `false` for an error response.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"statusCode":{"type":"integer","description":"Mirrors the HTTP status code.","example":401,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"error":{"type":"object","description":"Error detail object carried under `error` in the error envelope.","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code. Specific for authentication / quota errors\n(e.g. `API_KEY_REQUIRED`, `API_KEY_INVALID`, `FEATURE_NOT_IN_PLAN`,\n`RATE_LIMIT_EXCEEDED`). For validation (400) and not-found (404) the code\nis currently `INTERNAL_ERROR` and the HTTP status carries the semantics.\n","example":"API_KEY_INVALID","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"error.message.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.1","typeLabel":"string[]"}],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string | string[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","description":"Response metadata. Always present; `timestamp` is the server time the response was generated.","required":["timestamp"],"properties":{"timestamp":{"type":"string","format":"date-time","description":"Server time when the response was generated (ISO 8601).","example":"2026-06-19T08:31:59.478Z","isRequired":true,"uniqueKey":"meta.timestamp","typeLabel":"string\u003cdate-time>"}},"additionalProperties":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"success":false,"statusCode":404,"error":{"code":"INTERNAL_ERROR","message":"Commodity 'zzz-nope' not found"},"meta":{"error":"Not Found","statusCode":404,"timestamp":"2026-06-19T08:34:08.205Z"}},"examples":{"Example":{"title":"Example","value":{"success":false,"statusCode":404,"error":{"code":"INTERNAL_ERROR","message":"Commodity 'zzz-nope' not found"},"meta":{"error":"Not Found","statusCode":404,"timestamp":"2026-06-19T08:34:08.205Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"e9a036e4-104a-43eb-a0d2-ff46fc2537e9":{"description":"Rate limit exceeded — you have consumed your plan's per-minute weight budget.\nWait until `X-RateLimit-Reset` (or `Retry-After` seconds) then retry.\n","headers":{"X-RateLimit-Limit":{"description":"Your plan's request-weight budget per 1-minute window.","schema":{"type":"integer","example":1000}},"X-RateLimit-Remaining":{"description":"Remaining request weight in the current 1-minute window.","schema":{"type":"integer","example":997}},"X-RateLimit-Reset":{"description":"Unix timestamp (seconds) when the current rate-limit window resets.","schema":{"type":"integer","format":"int64","example":1781857979}},"X-RateLimit-Weight-Used":{"description":"Request weight consumed by this call (see each endpoint's weight).","schema":{"type":"integer","example":3}},"Retry-After":{"description":"Seconds to wait before retrying. Present on 429 responses.","schema":{"type":"integer","example":30}}},"content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned for every 4xx / 5xx response.","required":["success","statusCode","error"],"properties":{"success":{"type":"boolean","const":false,"description":"Always `false` for an error response.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"statusCode":{"type":"integer","description":"Mirrors the HTTP status code.","example":401,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"error":{"type":"object","description":"Error detail object carried under `error` in the error envelope.","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code. Specific for authentication / quota errors\n(e.g. `API_KEY_REQUIRED`, `API_KEY_INVALID`, `FEATURE_NOT_IN_PLAN`,\n`RATE_LIMIT_EXCEEDED`). For validation (400) and not-found (404) the code\nis currently `INTERNAL_ERROR` and the HTTP status carries the semantics.\n","example":"API_KEY_INVALID","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"error.message.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.1","typeLabel":"string[]"}],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string | string[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","description":"Response metadata. Always present; `timestamp` is the server time the response was generated.","required":["timestamp"],"properties":{"timestamp":{"type":"string","format":"date-time","description":"Server time when the response was generated (ISO 8601).","example":"2026-06-19T08:31:59.478Z","isRequired":true,"uniqueKey":"meta.timestamp","typeLabel":"string\u003cdate-time>"}},"additionalProperties":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"success":false,"statusCode":429,"error":{"code":"RATE_LIMIT_EXCEEDED","message":"Rate limit exceeded"},"meta":{"timestamp":"2026-06-19T08:34:09.000Z"}},"examples":{"Example":{"title":"Example","value":{"success":false,"statusCode":429,"error":{"code":"RATE_LIMIT_EXCEEDED","message":"Rate limit exceeded"},"meta":{"timestamp":"2026-06-19T08:34:09.000Z"}}}},"exampleType":"examples"}},"exampleType":"examples"},"c77e0bfb-52d4-4ceb-ac3c-95b8d615b828":{"description":"Unexpected server error. Retry after a short exponential backoff.","content":{"application/json":{"schema":{"type":"object","description":"Standard error envelope returned for every 4xx / 5xx response.","required":["success","statusCode","error"],"properties":{"success":{"type":"boolean","const":false,"description":"Always `false` for an error response.","example":false,"isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"statusCode":{"type":"integer","description":"Mirrors the HTTP status code.","example":401,"isRequired":true,"uniqueKey":"statusCode","typeLabel":"integer"},"error":{"type":"object","description":"Error detail object carried under `error` in the error envelope.","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code. Specific for authentication / quota errors\n(e.g. `API_KEY_REQUIRED`, `API_KEY_INVALID`, `FEATURE_NOT_IN_PLAN`,\n`RATE_LIMIT_EXCEEDED`). For validation (400) and not-found (404) the code\nis currently `INTERNAL_ERROR` and the HTTP status carries the semantics.\n","example":"API_KEY_INVALID","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"oneOf":[{"type":"string","description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"error.message.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Human-readable message, or a list of validation messages (400).","example":"Invalid API key","isRequired":true,"uniqueKey":"error.message.oneOf.1","typeLabel":"string[]"}],"isRequired":true,"uniqueKey":"error.message","typeLabel":"string | string[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","description":"Response metadata. Always present; `timestamp` is the server time the response was generated.","required":["timestamp"],"properties":{"timestamp":{"type":"string","format":"date-time","description":"Server time when the response was generated (ISO 8601).","example":"2026-06-19T08:31:59.478Z","isRequired":true,"uniqueKey":"meta.timestamp","typeLabel":"string\u003cdate-time>"}},"additionalProperties":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"success":false,"statusCode":500,"error":{"code":"INTERNAL_ERROR","message":"Internal server error"},"meta":{"timestamp":"2026-06-19T08:34:10.000Z"}},"examples":{"Example":{"title":"Example","value":{"success":false,"statusCode":500,"error":{"code":"INTERNAL_ERROR","message":"Internal server error"},"meta":{"timestamp":"2026-06-19T08:34:10.000Z"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"aecb18a7-bfa7-4d84-ac57-2a56fd7ad94e":{"HayInsightsApiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your HayInsights API key (prefixed `apk_`). Create and manage keys in the\nHayInsights dashboard (Account → API keys).\n\nSend it in the `X-API-Key` header on **every** request to `/openapi/v1/*`.\nWhich data domains you may access and your request quota are both governed by\nthe subscription plan attached to the key — see the **Plans \u0026 features** and\n**Rate limits** guides.\n","scopes":[],"schemeName":"HayInsightsApiKey"}}},"servers":{"c0b940ae-1940-4085-8100-f995a88559a0":{"url":"https://api-v2.hayinsights.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your HayInsights API key (prefixed `apk_`). Create and manage keys in the\nHayInsights dashboard (Account → API keys).\n\nSend it in the `X-API-Key` header on **every** request to `/openapi/v1/*`.\nWhich data domains you may access and your request quota are both governed by\nthe subscription plan attached to the key — see the **Plans \u0026 features** and\n**Rate limits** guides.\n","scopes":[],"schemeName":"HayInsightsApiKey"},"schema":{"title":"X-API-Key","type":"string","description":"Your HayInsights API key (prefixed `apk_`). Create and manage keys in the\nHayInsights dashboard (Account → API keys).\n\nSend it in the `X-API-Key` header on **every** request to `/openapi/v1/*`.\nWhich data domains you may access and your request quota are both governed by\nthe subscription plan attached to the key — see the **Plans \u0026 features** and\n**Rate limits** guides.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"HayInsightsApiKey","name":"X-API-Key"}],"title":"HayInsightsApiKey"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"hayinsights","siteName":"HayInsights Open API","title":"Ward choropleth GeoJSON for one province - HayInsights Open API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T02:56:00.006Z","originalFileLocation":"api-reference/real-estate/ward-choropleth-geojson-for-one-province.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Boundary geometry for every ward in provinceId, carrying residential land prices. meta.bands holds percentile colour thresholds (non-Vietnam markets only) — when absent, the client falls back to its own fixed bands. meta.unit says how to format prices, and meta.usdRate is the USD value of one unit of local currency. Payloads are large — a single province can run to several megabytes. Use the province-prices endpoint when a dot per province is enough.\">\u003cmeta data-mint-head name=\"application-name\" content=\"HayInsights Open API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hayinsights/IGPjHz76REOz-qRi/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/hayinsights/IGPjHz76REOz-qRi/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hayinsights/IGPjHz76REOz-qRi/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hayinsights/IGPjHz76REOz-qRi/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hayinsights/IGPjHz76REOz-qRi/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hayinsights/IGPjHz76REOz-qRi/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hayinsights/IGPjHz76REOz-qRi/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hayinsights/IGPjHz76REOz-qRi/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hayinsights/IGPjHz76REOz-qRi/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Ward choropleth GeoJSON for one province - HayInsights Open API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Boundary geometry for every ward in provinceId, carrying residential land prices. meta.bands holds percentile colour thresholds (non-Vietnam markets only) — when absent, the client falls back to its own fixed bands. meta.unit says how to format prices, and meta.usdRate is the USD value of one unit of local currency. Payloads are large — a single province can run to several megabytes. Use the province-prices endpoint when a dot per province is enough.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"HayInsights Open API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.hayinsights.com/api-reference/real-estate/ward-choropleth-geojson-for-one-province\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hayinsights.mintlify.app/_mintlify/api/og/v2?division=Real+Estate\u0026amp;title=Ward+choropleth+GeoJSON+for+one+province\u0026amp;description=Boundary+geometry+for+every+ward+in+%60provinceId%60%2C+carrying+residential+land%0Aprices.+%60meta.bands%60+holds+percentile+colour+thresholds+%28non-Vietnam+markets%0Aonly%29+%E2%80%94\u0026amp;theme=68eb97002a7de70f38610424\u0026amp;signature=9c46a8b625c4daa1541f722afac49c10bfc8d08c7b43e70b9b608c61fdb1f3e3\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Ward choropleth GeoJSON for one province - HayInsights Open API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Boundary geometry for every ward in provinceId, carrying residential land prices. meta.bands holds percentile colour thresholds (non-Vietnam markets only) — when absent, the client falls back to its own fixed bands. meta.unit says how to format prices, and meta.usdRate is the USD value of one unit of local currency. Payloads are large — a single province can run to several megabytes. Use the province-prices endpoint when a dot per province is enough.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hayinsights.mintlify.app/_mintlify/api/og/v2?division=Real+Estate\u0026amp;title=Ward+choropleth+GeoJSON+for+one+province\u0026amp;description=Boundary+geometry+for+every+ward+in+%60provinceId%60%2C+carrying+residential+land%0Aprices.+%60meta.bands%60+holds+percentile+colour+thresholds+%28non-Vietnam+markets%0Aonly%29+%E2%80%94\u0026amp;theme=68eb97002a7de70f38610424\u0026amp;signature=9c46a8b625c4daa1541f722afac49c10bfc8d08c7b43e70b9b608c61fdb1f3e3\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/hayinsights/IGPjHz76REOz-qRi/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"HayInsights Open API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563EB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.hayinsights.com/api-reference/real-estate/ward-choropleth-geojson-for-one-province\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/real-estate/ward-choropleth-geojson-for-one-province.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.hayinsights.com/#organization\",\"name\":\"HayInsights Open API\",\"url\":\"https://developer.hayinsights.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hayinsights/w7ouUmWFSMYI1Ars/logo.svg?fit=max\u0026auto=format\u0026n=w7ouUmWFSMYI1Ars\u0026q=85\u0026s=c48347f2c9a762ef8ee28dfce9259983\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.hayinsights.com#website\",\"name\":\"HayInsights Open API\",\"url\":\"https://developer.hayinsights.com\",\"publisher\":{\"@id\":\"https://developer.hayinsights.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.hayinsights.com/api-reference/real-estate/ward-choropleth-geojson-for-one-province#webpage\",\"url\":\"https://developer.hayinsights.com/api-reference/real-estate/ward-choropleth-geojson-for-one-province\",\"name\":\"Ward choropleth GeoJSON for one province\",\"description\":\"Boundary geometry for every ward in provinceId, carrying residential land prices. meta.bands holds percentile colour thresholds (non-Vietnam markets only) — when absent, the client falls back to its own fixed bands. meta.unit says how to format prices, and meta.usdRate is the USD value of one unit of local currency. Payloads are large — a single province can run to several megabytes. Use the province-prices endpoint when a dot per province is enough.\",\"dateModified\":\"2026-11-03T02:56:00.006Z\",\"isPartOf\":{\"@id\":\"https://developer.hayinsights.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer.hayinsights.com/api-reference/real-estate/ward-choropleth-geojson-for-one-province#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.hayinsights.com/api-reference/real-estate/ward-choropleth-geojson-for-one-province#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Real Estate\",\"item\":\"https://developer.hayinsights.com/api-reference/real-estate/list-provinces\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ward choropleth GeoJSON for one province\",\"item\":\"https://developer.hayinsights.com/api-reference/real-estate/ward-choropleth-geojson-for-one-province\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer.hayinsights.com/api-reference/real-estate/ward-choropleth-geojson-for-one-province#apireference\",\"headline\":\"Ward choropleth GeoJSON for one province\",\"name\":\"Ward choropleth GeoJSON for one province\",\"description\":\"Boundary geometry for every ward in provinceId, carrying residential land prices. meta.bands holds percentile colour thresholds (non-Vietnam markets only) — when absent, the client falls back to its own fixed bands. meta.unit says how to format prices, and meta.usdRate is the USD value of one unit of local currency. Payloads are large — a single province can run to several megabytes. Use the province-prices endpoint when a dot per province is enough.\",\"url\":\"https://developer.hayinsights.com/api-reference/real-estate/ward-choropleth-geojson-for-one-province\",\"mainEntityOfPage\":{\"@id\":\"https://developer.hayinsights.com/api-reference/real-estate/ward-choropleth-geojson-for-one-province#webpage\"},\"dateModified\":\"2026-11-03T02:56:00.006Z\",\"publisher\":{\"@id\":\"https://developer.hayinsights.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.hayinsights.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"HayInsights Open API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"HayInsights Open API","nav":{"global":null,"tabs":[{"tab":"API Reference","groups":[{"group":"Commodities","pages":[{"title":"List commodity prices","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/commodities","href":"/api-reference/commodities/list-commodity-prices"},{"title":"Featured commodities","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/commodities/featured","href":"/api-reference/commodities/featured-commodities"},{"title":"Top movers","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/commodities/movers","href":"/api-reference/commodities/top-movers"},{"title":"Gold vs DXY correlation","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/commodities/gold-dxy","href":"/api-reference/commodities/gold-vs-dxy-correlation"},{"title":"Commodity price history","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/commodities/{id}/history","href":"/api-reference/commodities/commodity-price-history"}]},{"group":"Crypto","pages":[{"title":"Crypto market overview","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/crypto","href":"/api-reference/crypto/crypto-market-overview"},{"title":"Crypto bubble map","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/crypto/bubble-map","href":"/api-reference/crypto/crypto-bubble-map"},{"title":"Crypto on-chain metrics","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/crypto/onchain","href":"/api-reference/crypto/crypto-on-chain-metrics"},{"title":"Crypto derivatives metrics","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/crypto/derivatives","href":"/api-reference/crypto/crypto-derivatives-metrics"},{"title":"Crypto market dominance","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/crypto/dominance","href":"/api-reference/crypto/crypto-market-dominance"}]},{"group":"ETF","pages":[{"title":"List ETFs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf","href":"/api-reference/etf/list-etfs"},{"title":"Top-performing ETFs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/top-performance","href":"/api-reference/etf/top-performing-etfs"},{"title":"Top ETFs by net flow","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/top-netflow","href":"/api-reference/etf/top-etfs-by-net-flow"},{"title":"ETF market heatmap","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/heatmap","href":"/api-reference/etf/etf-market-heatmap"},{"title":"BOJ ETF holdings history","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/boj-holdings","href":"/api-reference/etf/boj-etf-holdings-history"},{"title":"BOJ ETF holdings latest","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/boj-holdings/latest","href":"/api-reference/etf/boj-etf-holdings-latest"},{"title":"Compare fund composition","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/compare/fund-composition","href":"/api-reference/etf/compare-fund-composition"},{"title":"Compare NAV growth","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/compare/nav-growth","href":"/api-reference/etf/compare-nav-growth"},{"title":"ETF NAV growth","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/nav-growth/{code}","href":"/api-reference/etf/etf-nav-growth"},{"title":"ETF info","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/{code}/info","href":"/api-reference/etf/etf-info"},{"title":"ETF holdings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/{code}/holdings","href":"/api-reference/etf/etf-holdings"},{"title":"ETF price history","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/{code}/prices-history","href":"/api-reference/etf/etf-price-history"},{"title":"ETF detail","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/{code}/detail","href":"/api-reference/etf/etf-detail"},{"title":"ETF / fund composition","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/etf/{code}/composition","href":"/api-reference/etf/etf-fund-composition"}]},{"group":"FX","pages":[{"title":"FX summary","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/fx/summary","href":"/api-reference/fx/fx-summary"},{"title":"FX table","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/fx/table","href":"/api-reference/fx/fx-table"},{"title":"FX correlation matrix","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/fx/correlation","href":"/api-reference/fx/fx-correlation-matrix"},{"title":"Emerging-market FX stress","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/fx/em-stress","href":"/api-reference/fx/emerging-market-fx-stress"}]},{"group":"Macro","pages":[{"title":"GDP growth rate","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/gdp-growth-rate","href":"/api-reference/macro/gdp-growth-rate"},{"title":"Latest macroeconomic market recap","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/market-recap","href":"/api-reference/macro/latest-macroeconomic-market-recap"},{"title":"Economic data series","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/economic-data","href":"/api-reference/macro/economic-data-series"},{"title":"Exchange rate series","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/exchange-rate","href":"/api-reference/macro/exchange-rate-series"},{"title":"Population \u0026 unemployment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/population","href":"/api-reference/macro/population-\u0026-unemployment"},{"title":"Central government debt (% of GDP)","deprecated":null,"version":null,"sidebarTitle":"Central government debt","openapi":"/openapi.yaml get /openapi/v1/macro/monetary-policy/central-government-debt","href":"/api-reference/macro/central-government-debt"},{"title":"Policy rates \u0026 bond yields","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/monetary-policy/rates-yields","href":"/api-reference/macro/policy-rates-\u0026-bond-yields"},{"title":"Japan FDI flows","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/fdi/flows","href":"/api-reference/macro/japan-fdi-flows"},{"title":"Japan FDI by region","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/fdi/by-region","href":"/api-reference/macro/japan-fdi-by-region"},{"title":"Japan FDI by industry","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/fdi/by-industry","href":"/api-reference/macro/japan-fdi-by-industry"},{"title":"Vietnam FDI flows","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/fdi/vn/flows","href":"/api-reference/macro/vietnam-fdi-flows"},{"title":"Vietnam FDI breakdown","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/fdi/vn/breakdown","href":"/api-reference/macro/vietnam-fdi-breakdown"},{"title":"Interbank rate history (US/JP)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/interbank-rates","href":"/api-reference/macro/interbank-rate-history-usjp"},{"title":"Japan TIBOR rates","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/interbank-rates/jp/tibor","href":"/api-reference/macro/japan-tibor-rates"},{"title":"Japan overnight call rate","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/interbank-rates/jp/overnight","href":"/api-reference/macro/japan-overnight-call-rate"},{"title":"Vietnam interbank rates","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/interbank-rates/vn","href":"/api-reference/macro/vietnam-interbank-rates"},{"title":"Export/import turnover","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/trade/turnover","href":"/api-reference/macro/exportimport-turnover"},{"title":"Export/import by region","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/trade/by-region","href":"/api-reference/macro/exportimport-by-region"},{"title":"Japan GDP expenditure breakdown","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/japan/gdp-breakdown","href":"/api-reference/macro/japan-gdp-expenditure-breakdown"},{"title":"Japan central government debt breakdown","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/japan/central-gov-debt","href":"/api-reference/macro/japan-central-government-debt-breakdown"},{"title":"Manufacturing PMI by country (S\u0026P Global)","deprecated":null,"version":null,"sidebarTitle":"Pmi vn manufacturing","openapi":"/openapi.yaml get /openapi/v1/macro/pmi/{country}/manufacturing","href":"/api-reference/macro/pmi-vn-manufacturing"},{"title":"Vietnam GDP by sector (NSO)","deprecated":null,"version":null,"sidebarTitle":"Vietnam gdp by sector","openapi":"/openapi.yaml get /openapi/v1/macro/vietnam/gdp-by-sector","href":"/api-reference/macro/vietnam-gdp-by-sector"},{"title":"Vietnam GDP by sector — available periods","deprecated":null,"version":null,"sidebarTitle":"Vietnam gdp by sector periods","openapi":"/openapi.yaml get /openapi/v1/macro/vietnam/gdp-by-sector/periods","href":"/api-reference/macro/vietnam-gdp-by-sector-periods"},{"title":"Vietnam GDP by sector — time series","deprecated":null,"version":null,"sidebarTitle":"Vietnam gdp by sector series","openapi":"/openapi.yaml get /openapi/v1/macro/vietnam/gdp-by-sector/series","href":"/api-reference/macro/vietnam-gdp-by-sector-series"},{"title":"Indicator — GDP growth rate table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/gdp-growth-rate","href":"/api-reference/macro/indicator-—-gdp-growth-rate-table-usjpvn"},{"title":"Indicator — GDP per capita table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/gdp-per-capita","href":"/api-reference/macro/indicator-—-gdp-per-capita-table-usjpvn"},{"title":"Indicator — Central government debt table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/central-government-debt","href":"/api-reference/macro/indicator-—-central-government-debt-table-usjpvn"},{"title":"Indicator — Core CPI inflation table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/core-cpi","href":"/api-reference/macro/indicator-—-core-cpi-inflation-table-usjpvn"},{"title":"Indicator — Producer Price Index table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/ppi","href":"/api-reference/macro/indicator-—-producer-price-index-table-usjpvn"},{"title":"Indicator — PCE table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/core-pce","href":"/api-reference/macro/indicator-—-pce-table-usjpvn"},{"title":"Indicator — Export/Import price index table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/epi-ipi","href":"/api-reference/macro/indicator-—-exportimport-price-index-table-usjpvn"},{"title":"Indicator — Export/Import value \u0026 balance table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/export-import","href":"/api-reference/macro/indicator-—-exportimport-value-\u0026-balance-table-usjpvn"},{"title":"Indicator — Population table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/population","href":"/api-reference/macro/indicator-—-population-table-usjpvn"},{"title":"Indicator — Unemployment rate table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/unemployment-rate","href":"/api-reference/macro/indicator-—-unemployment-rate-table-usjpvn"},{"title":"Indicator — Exchange rates table","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/exchange-rates","href":"/api-reference/macro/indicator-—-exchange-rates-table"},{"title":"Indicator — Deposit rates table (US/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/deposit-rates","href":"/api-reference/macro/indicator-—-deposit-rates-table-usvn"},{"title":"Indicator — Government bond rates table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/government-bond-rates","href":"/api-reference/macro/indicator-—-government-bond-rates-table-usjpvn"},{"title":"Indicator — Interbank rates table (US/JP/VN)","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/macro/indicators/interbank-rates","href":"/api-reference/macro/indicator-—-interbank-rates-table-usjpvn"},{"title":"Indicator — FDI table (US/JP/VN)","deprecated":null,"version":null,"sidebarTitle":"Indicator — FDI table (US/JP/VN)","openapi":"/openapi.yaml get /openapi/v1/macro/indicators/fdi","href":"/api-reference/macro/indicators-fdi"},{"title":"Indicator — Manufacturing PMI table (US/JP/VN)","deprecated":null,"version":null,"sidebarTitle":"Indicators pmi","openapi":"/openapi.yaml get /openapi/v1/macro/indicators/pmi","href":"/api-reference/macro/indicators-pmi"}]},{"group":"Real Estate","pages":[{"title":"List provinces","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/real-estate/{country}/provinces","href":"/api-reference/real-estate/list-provinces"},{"title":"Representative land price per province","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/real-estate/{country}/provinces/prices","href":"/api-reference/real-estate/representative-land-price-per-province"},{"title":"Wards of one province","description":"Lightweight `{ wardId, wardName, wardType }` list for rendering a ward picker\nwithin a province. `wardType` disambiguates Japanese wards that share a name — it\nis currently set on one unit only (利島村, the island village colliding with\nToshima ward) and `null` everywhere else, including all of Vietnam.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/real-estate/{country}/provinces/{provinceId}/wards","href":"/api-reference/real-estate/wards-of-one-province"},{"title":"Ward choropleth GeoJSON for one province","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/real-estate/{country}/provinces/{provinceId}/geojson","href":"/api-reference/real-estate/ward-choropleth-geojson-for-one-province"},{"title":"Transaction-level records for one ward (Japan only)","description":"Each row is a single real transaction published by MLIT — distinct from the\nland-prices endpoint, which aggregates a neighbourhood into median / p25 / p75.\nCovers every quarter held, and drops transactions whose source records area only\nas a bound (e.g. \"2000㎡以上\"). Residential land only (住宅地).\n\nJapan only: any other `country` returns `400`.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/real-estate/{country}/wards/{wardId}/transactions","href":"/api-reference/real-estate/transaction-level-records-for-one-ward-japan-only"},{"title":"List priced road segments","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/real-estate/{country}/land-prices","href":"/api-reference/real-estate/list-priced-road-segments"}]},{"group":"News","pages":[{"title":"Latest market news","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/news/feed","href":"/api-reference/news/latest-market-news"},{"title":"Aggregate news sentiment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/news/sentiment","href":"/api-reference/news/aggregate-news-sentiment"}]},{"group":"Calendar","pages":[{"title":"Economic calendar events","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/calendar/events","href":"/api-reference/calendar/economic-calendar-events"}]},{"group":"Market","pages":[{"title":"Index snapshots","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/market/indices/snapshot","href":"/api-reference/market/index-snapshots"},{"title":"Global indices","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/market/global-indices","href":"/api-reference/market/global-indices"}]},{"group":"Equities","pages":[{"title":"Japan equity snapshot","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/market/{market}/equities/{code}","href":"/api-reference/equities/japan-equity-snapshot"},{"title":"Japan equity events","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/market/{market}/equities/{code}/events","href":"/api-reference/equities/japan-equity-events"},{"title":"Japan equity daily prices","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/market/{market}/equities/{code}/prices","href":"/api-reference/equities/japan-equity-daily-prices"},{"title":"Japan equity financial statements","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/market/{market}/equities/{code}/financial-statements","href":"/api-reference/equities/japan-equity-financial-statements"},{"title":"Japan related equities","deprecated":null,"version":null,"openapi":"/openapi.yaml get /openapi/v1/market/{market}/equities/{code}/related-stocks","href":"/api-reference/equities/japan-related-equities"},{"title":"Vietnam equity daily prices","deprecated":null,"version":null,"sidebarTitle":"Vietnam equity daily prices","openapi":"/openapi.yaml get /openapi/v1/market/vn/equities/{code}/prices","href":"/api-reference/equities/vietnam-equity-daily-prices"},{"title":"Vietnam equity financial statements","deprecated":null,"version":null,"sidebarTitle":"Vietnam equity financial statements","openapi":"/openapi.yaml get /openapi/v1/market/vn/equities/{code}/financial-statements","href":"/api-reference/equities/vietnam-equity-financial-statements"},{"title":"Vietnam equity investor net flows","deprecated":null,"version":null,"sidebarTitle":"Vietnam equity investor net flows","openapi":"/openapi.yaml get /openapi/v1/market/vn/equities/{code}/netflows","href":"/api-reference/equities/vietnam-equity-investor-net-flows"}]}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]}]},"basePath":"","title":"Ward choropleth GeoJSON for one province - HayInsights Open API","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}