Geocoding Korean addresses from a server outside Korea: juso.go.kr, Kakao, VWorld and SGIS compared

12 min read

TL;DR

  • From a server in France on 2026-10-14, the juso.go.kr API, Kakao Local, SGIS and Photon answered; VWorld returned no API response in three tries (two 502s, one dropped connection).
  • The juso.go.kr coordinate API makes you agree that the data "may not be taken out of the country", and Kakao Local forbids storing coordinates or addresses (only place IDs and URLs), so it only fits live search.
  • SGIS geocoding allows 50,000 requests per key per day and has no storage clause, but its terms bar business activity without prior approval.
  • Open data barely helps: Photon (OpenStreetMap) matched the building number for 2 of 20 sampled road-name addresses, and Overture had 0 address points in three Korean city boxes.

If your server sits outside Korea and you need to keep the coordinates you geocode, none of the Korean address APIs we tested works without a catch. The government road-name address API asks you to promise the data never leaves the country, Kakao Local forbids storing results, SGIS needs prior approval for business use, and VWorld did not answer our server at all.

We run Viewcone, a map of Korea's public CCTV locations, on a server in France. Some local governments publish camera coordinates to only two decimal places (about 1 km), so on 2026-10-14 we checked whether the road-name addresses in the same records could be geocoded again. This is what we measured that day and what each provider's terms and staff answers say. We did not test Naver Cloud Maps or the Google Geocoding API this time.

Four Korean APIs and two open datasets

SourceAnswers a server in FranceTaking data abroadStoring resultsCommercial useDaily limit
juso.go.kr coordinate API (Ministry of the Interior and Safety)YesNotice: "may not be taken out of the country"No clause in the noticeNo clause in the noticeNot checked
Kakao Local APIYesNo clause foundNot allowed (place ID and URL only)Allowed (no reselling, no charging for the feature)100,000 each for address-to-coordinate and keyword search
VWorld geocoderNo API response in 3 triesTerms page unreachableTerms page unreachableTerms page unreachableTerms page unreachable
SGIS geocoding (national statistics office)Authentication API answeredNo clauseNo clauseNo business activity without prior approval50,000 per key
Photon (OpenStreetMap)YesNot applicableODbL (attribution, share-alike)Allowed with attributionPublic server throttles heavy use
Overture Maps addressesDownloaded directlyNot applicableNo Korean dataNo Korean dataNone (files)

"Answers" means the service returned its own error for a missing or fake key, such as 승인되지 않은 KEY 입니다 ("unapproved key"). Each endpoint was called three times.

What trips up developers outside Korea

Three things are easy to miss if you do not read Korean or have never built against Korean APIs.

  • The juso.go.kr coordinate API does not take an address string. Its required inputs are codes: admCd (administrative area), rnMgtSn (road), udrtYn (underground or not) and buldMnnm (main building number). You first look the address up with the portal's road-name address search API, which returns those codes, and then call the coordinate API with them. Each API has its own key; the error guide for E0001 adds "검색API 승인키 사용불가", meaning a search API key does not work here.
  • Support is in Korean, and Kakao wants the question from your own account. Kakao's FAQ says inquiries must come from the account that registered the app key, and that the service owner and the account owner must match or be shown to be related. The answers we quote below were all given in Korean on DevTalk.
  • English-form addresses work only some of the time. We sent five addresses from the same dataset to Photon both in Korean and in the English order (building number first, as in 30 Hwagok-ro 41-gil, Gangseo-gu, Seoul). The Korean forms found the building number twice, the English forms once, and results come back with Korean-script names either way. One English query, 74 Seoseongil-ro, Pyoseon-myeon, Seogwipo-si, Jeju-do, returned nothing, while its Korean form found the exact building.

juso.go.kr: reachable, but the approval notice rules it out

The coordinate API on the ministry's address portal (business.juso.go.kr) answers from abroad without trouble. Called without a key, it returns:

{"results":{"common":{"errorMessage":"승인되지 않은 KEY 입니다.","errorCode":"E0001","totalCount":"0"},"juso":null}}

The problem is the notice you must accept when you apply for a coordinate API key. On 2026-10-14 the application screen said (our translation):

가. When using this data, you may not add non-public or restricted facilities, or display coordinates through the internet, navigation or mobile. 나. This data may not be taken out of the country (이 자료는 국외로 반출할 수 없음).

A security pledge follows, in which you promise to obey the Road Name Address Act, the spatial information acts and the ministry's spatial information security rules.

With the server abroad, every API response lands outside Korea the moment it arrives, so we found no way to use the API while keeping item 나. Item 가 can be read as covering only non-public facilities or as covering any coordinates shown on a web map; the sentence alone does not settle it.

Read on its own, the Road Name Address Act (도로명주소법) targets less. Article 25(10) forbids taking abroad, without the minister's permission, "address information base maps and guide maps that contain information whose disclosure is restricted" under the national spatial information act (국가공간정보기본법), and Article 34(2) punishes it with up to two years in prison or a fine of up to 20 million won (text in force since 2025-02-21). The key notice is a condition of approval, though, and can reach further than the article, and we did not review the other spatial information laws. This is a developer's reading, not legal advice. We received a key and never called the API with it. To ask about an overseas deployment, the portal's online inquiry board is easier to reach from abroad than its Korean phone line.

The ministry also hands out address location data as files, but Article 46 of the Act's Enforcement Decree (in force since 2026-01-02) requires a request stating the purpose, how the data will be protected and secured, and the delivery method; the agency reviews the purpose and decides within 10 days (30 when you ask the minister for a system link). Content touching national security or non-public matters can be removed or restricted, and the data is normally paid for. That is not a quick path for a side project.

Kakao Local works only as live calls

Kakao Local answers from abroad (without a key: 401, cannot find Authorization : KakaoAK header), and the free quota is generous. Kakao Developers' quota page lists 100,000 requests a day each for address-to-coordinate conversion and keyword place search. The free quota goes only to the first app on a developer account that activates the Kakao Map API; a second app, or traffic beyond the quota, needs a connected Biz Wallet and paid usage.

Storage is where it stops. Kakao's official FAQ on DevTalk says that "storing and using the result data received from the Local API is not allowed" (응답받은 결과 데이터를 별도로 저장하여 사용하는 것은 허용하지 않습니다), and the map team applies that strictly. Dates are Korean time.

Question on DevTalkKakao's answer (2026)
Show Local API results on a non-Kakao map SDKNo issue under the terms; live calls only (June 29)
Cache results for one session, up to 20 minutesNot allowed (Aug 24)
Save coordinates for a client the user savedNot allowed (Sep 4)
Save the address and coordinates of a listing the user pickedCoordinates no; place ID and URL yes (Sep 28)
Build a search link to another company's map from a result's name and addressViolates the operating policy (Sep 7)
Use the Map JavaScript SDK on a site with AdSense adsNot a terms violation; switch to a Biz App for commercial use (Feb 3)
Does a commercial app need a Biz App for the Local API?Not within the free daily quota (Aug 25)

The two Biz App answers concern different APIs (the map SDK and the Local API) and point in different directions, so for a commercial launch ask from your own account first.

Keeping only place IDs has a catch. In the same thread as the 20-minute question, Kakao said recording just the place ID is acceptable, but added that "the Local API does not offer a single-item lookup by ID" (ID 기반 단건 조회 API를 제공하지 않아), so getting the place back is up to your own design (Aug 26). Address-to-coordinate responses carry no place ID at all, so for geocoding there is effectively nothing you may keep. Kakao Local fits a search box that calls it on every query, not correcting and storing coordinates in a dataset you already have.

VWorld: the connection opens, then nothing comes back

The VWorld geocoder (api.vworld.kr) completed the TLS handshake and its certificate verified, then returned no API response. Our reachability script got 502 Bad Gateway twice and a closed connection once; a curl -v run later that day shows the HTTP/2 request refused and curl giving up after five retries:

*  SSL certificate verify ok.
> GET /req/address?service=address&request=getcoord&key=INVALID&address=test&type=road HTTP/2
* REFUSED_STREAM, retrying a fresh connect
* Connection died, tried 5 times before giving up

Not even an invalid-key error came back, so it is not a key problem. We could not confirm whether the cause is a block on foreign IP addresses or something else. www.vworld.kr behaved the same, so we could not open the terms from our server either, which is why those cells are empty.

SGIS allows 50,000 a day, with approval first for business use

The SGIS API from Korea's national statistics office (국가데이터처) answered from abroad (a fake-key authentication request returns {"errCd":-401,"errMsg":"인증정보가 존재하지 않습니다"}). Per its API reference, geocoding results come back in UTM-K, so you convert them to WGS84 before putting them on a web map.

Two clauses of the terms matter:

  • Article 4(2): one key is limited to 50,000 requests a day, and service may stop if you exceed it.
  • Article 7(4): members may not carry out "business activities using the service without the prior consent" of the agency (사전 승낙 없이 서비스를 이용하여 영업활동을 할 수 없으며). The rendered page names the agency 국가데이터처; the page source still has its pre-2025 name, 통계청 (Statistics Korea).

The terms do not define whether an ad-supported site counts as business activity. We found no clause against storing results. We decided against external geocoding before going through the approval step, so we did not get a key and did not test result quality.

OpenStreetMap and Overture rarely have building numbers

We also tested open data with clear licences. From the national CCTV standard dataset (전국CCTV표준데이터), we took the road-name addresses of rows whose coordinates have five or more decimals and whose address starts with a province or city name (45,929 distinct addresses), drew 20 with a fixed seed, and searched Photon for each full address. A result matching both the street and the building number appeared in the top 5 for 2 of the 20. Both hits were buildings with a name (a hair salon and a police box); the rest returned a road, a building with a different number, a neighbourhood name or nothing.

Unnamed buildings come back differently. In our separate test, 74 Seoseongil-ro (Seogwipo) and 30 Hwagok-ro 41-gil (Seoul) matched down to the building number with type set to house and an empty name. Code that filters results by name will silently drop them, so if you want building-number results, handle nameless house features separately.

For Overture Maps, the address data in release 2026-09-23.1 had 0 points in all three boxes we downloaded (Jongno in Seoul, Michuhol in Incheon, Haeundae in Busan). The same download for central Auckland, New Zealand returned 33,093, so the tool works and the data simply has no addresses there. Overture's documentation says the address theme currently covers 41 countries.

Viewcone keeps the published coordinates

Viewcone does not geocode the agencies' coordinates again. Coarse locations are drawn as faded points with no coverage area, so as of 2026-10-14 coverage is drawn for 238,982 sites; how many are coarse is in the coordinate precision section of our CCTV data analysis. Search still uses Photon to find places and road names, and a query that looks like a numbered address shows a note that building numbers are not found. We will look again if the server moves to Korea, if the ministry answers about overseas servers, or if storable Korean address coordinates become available.


Method

  • Reachability: on 2026-10-14 at 11:47 UTC, from a server in France, each endpoint was called three times without a key or with a fake one. The service's own error counted as an answer; a gateway error or a dropped connection did not. VWorld was checked once more with curl -v at 12:31 UTC.
  • Building numbers: from the national CCTV standard dataset downloaded on 2026-09-20, the distinct road-name addresses that meet the conditions above, 20 drawn with seed 20261014 and searched on Photon's public server. OSM changes constantly, so a re-run can differ.
  • English-form addresses: five addresses from the dataset, written in English order by us, sent to Photon next to their Korean forms.
  • Overture: counts from the official overturemaps command-line tool, one box at a time.
  • Terms and staff answers change. Every source below was checked on 2026-10-14.

Sources

FAQ

Would the juso.go.kr coordinate API be fine on a server in Korea?

The export item would most likely no longer apply, but the other notice items (restricted facilities, displaying coordinates) and the security pledge still do. If you plan to show the coordinates on a map service, describe the use to the portal and get confirmation before relying on it.

Share