본문으로 건너뛰기

WPS (Wi-Fi Positioning System) API

loplat WPS API 는 기기가 스캔한 주변 Wi-Fi AP 정보를 받아 위치(위도·경도)와 정확도를 반환하는 와이파이 측위 API 입니다. GPS 가 잡히지 않는 실내에서도 휴대폰, 키즈폰, IoT 기기의 위치를 확인할 수 있습니다.

시작하기​

  1. loplat API 콘솔에 로그인합니다.
  2. WPS 를 시작하고 API 키를 발급받습니다. 무료 체험 조건은 WPS 소개 페이지를 참고하세요.
  3. 발급받은 키를 X-API-Key 헤더에 넣어 아래 엔드포인트를 호출합니다.
주의

API 키는 발급 시 한 번만 표시됩니다. 서버 측에 안전하게 보관하고, 앱 소스나 공개 저장소에 넣지 마세요.

요청​

POST https://api.loplat.com/v1/wps
Content-Type: application/json
X-API-Key: {발급받은 API 키}

헤더​

헤더필수설명
X-API-Key필수콘솔에서 발급받은 API 키
Content-Type필수application/json
X-Request-Id선택요청 식별자. 같은 값으로 재요청하면 처음 결과를 다시 돌려주며 사용량을 다시 차감하지 않습니다. 응답 헤더로 그대로 돌려줍니다.

본문​

  • wifiAPs: 스캔한 Wi-Fi AP 정보 배열 (1~50개) 필수
필드타입필수설명
bssidstring필수AP 의 BSSID(MAC) 주소. 구분 기호는 :(콜론)
rssint필수AP 로부터 수신된 신호 세기(dBm)
ssidstring선택AP 의 SSID
frequencyint선택AP 의 주파수(MHz)
{
"wifiAPs": [
{ "bssid": "00:11:22:33:44:55", "ssid": "starbucks", "rss": -65, "frequency": 2452 },
{ "bssid": "22:33:44:55:66:77", "ssid": "olleh", "rss": -75, "frequency": 5765 }
]
}
팁

측위 정확도를 높이려면 한 번의 스캔에서 수집된 AP 를 가능한 한 많이(최대 50개) 함께 보내세요.

응답​

정상 (HTTP 200)​

위치(위도·경도·층)와 정확도(오차 반경, m)를 반환합니다.

필드설명
location.lat예상 위도
location.lng예상 경도
location.floor예상 층
accuracy예상 위치의 정확도(오차 반경, m)
addr행정구역 주소(l1 시도, l2 시군구, l3 읍면동). 주소를 확인할 수 있을 때만 포함되므로 없을 수 있습니다.
{
"location": {
"lat": 37.502341,
"lng": 127.055941,
"floor": 1
},
"accuracy": 80.0,
"addr": {
"l1": "서울특별시",
"l2": "강남구",
"l3": "대치동"
}
}

정상 응답에는 X-Quota-Remaining 헤더로 남은 요청량이 함께 전달됩니다.

오류​

오류가 나면 HTTP 상태 코드와 함께 아래 형태의 JSON 을 반환합니다.

{
"error": {
"reason": "notFound",
"message": "location acquisition fails",
"code": 404
}
}
HTTPreason의미
401unauthorizedX-API-Key 가 없거나 유효하지 않음
403keyRevoked폐기된 API 키
404notFound보낸 Wi-Fi 정보로 위치를 확인하지 못함
422—요청 본문 형식 오류(필수 필드 누락, wifiAPs 가 비어 있거나 50개 초과 등). 본문은 detail 배열로 오류 위치를 알려줍니다.
429rateLimited초당 요청 한도 초과. 잠시 후 다시 요청하세요.
429quotaExhausted체험·요금제의 월 요청량 소진. 콘솔에서 요금제를 변경하세요.
503unavailable일시적인 서버 장애

사용량 차감​

  • 정상 위치 반환(HTTP 200)만 사용량에서 차감합니다. 404·422·429 등 오류 응답은 차감하지 않습니다.
  • 사용량·남은 요청량은 콘솔에서 확인할 수 있습니다.
  • 요금제와 무료 체험 조건은 WPS 소개 페이지를 참고하세요.

예제​

cURL​

curl -X POST https://api.loplat.com/v1/wps \
-H "Content-Type: application/json" \
-H "X-API-Key: $LOPLAT_API_KEY" \
-d '{"wifiAPs": [{"bssid": "88:36:6c:13:21:10", "ssid": "loplat_5G", "rss": -61, "frequency": 5765}, {"bssid": "64:e5:99:42:b8:f8", "ssid": "loplat", "rss": -36, "frequency": 2452}]}'

Python​

import os
import requests

response = requests.post(
"https://api.loplat.com/v1/wps",
headers={"X-API-Key": os.environ["LOPLAT_API_KEY"]},
json={
"wifiAPs": [
{"bssid": "88:36:6c:13:21:10", "ssid": "loplat_5G", "rss": -61, "frequency": 5765},
{"bssid": "64:e5:99:42:b8:f8", "ssid": "loplat", "rss": -36, "frequency": 2452},
]
},
timeout=10,
)

if response.status_code == 200:
print(response.json())
else:
print(response.status_code, response.text)

문의​

기술 문의나 대량 사용(Enterprise) 계약은 dev@loplat.com 으로 연락해 주세요.