🍜 맛집 순위 공개 API
지프리 맛집지도의 맛집 순위(찜 횟수)와 평점 순위를 JSON으로 제공합니다. 다른 사이트·앱·블로그에서 자유롭게 가져다 쓰세요. 무료·CORS 허용·로그인 불필요입니다.
출처만 표기해 주세요 →
데이터 제공: 지프리(gfreee.com). 상업적 이용 시
맛집지도로의 링크를 함께 걸어주시면 감사하겠습니다.
엔드포인트
| 설명 | 메서드 · 경로 |
| 🔥 맛집 순위 — 이용자가 많이 찜한 순 | GET https://gfreee.com/food/open/favranking |
| ⭐ 평점 순위 — 평점(10점) 높은 순 | GET https://gfreee.com/food/open/ranking |
요청 파라미터
| 이름 | 필수 | 설명 |
cat | 선택 | 음식 카테고리 코드(아래 표). 생략 시 전체. |
page | 선택 | 페이지 번호(1부터, 기본 1). page=1→1~1000위, page=2→1001~2000위 … |
size | 선택 | 한 페이지 개수(1~1000, 기본 100). limit으로 줘도 동일(별칭). |
minx,miny,maxx,maxy | 선택 | 지역 범위(WGS84 경위도 bbox: 최소경도,최소위도,최대경도,최대위도). 4개 모두 주면 그 지역만, 생략하면 전국. |
📄 전체를 나눠서 받기: 응답의 total(전체 개수)과 totalPages(총 페이지)를 보고 page를 1→2→3… 으로 올려가며 호출하면 전부 받을 수 있습니다. 예: 1만 개 → size=1000이면 totalPages=10, page 1~10 호출.
카테고리 코드 (cat)
| 코드 | 분류 | 코드 | 분류 |
I201 | 한식 | I206 | 기타 외국식 |
I202 | 중식 | I207 | 구내식당/뷔페 |
I203 | 일식 | I210 | 간이/분식 |
I204 | 서양식 | I211 | 주점 |
I205 | 동남아시아식 | I212 | 카페/비알코올 |
응답 (JSON)
UTF-8 JSON. data는 rank(순위) 오름차순 배열입니다.
// GET https://gfreee.com/food/open/favranking?cat=I201&page=1&size=1000
{
"result": "ok",
"source": "gfreee.com 맛집지도",
"attribution": "데이터 제공: gfreee.com (https://gfreee.com/food)",
"type": "fav", // fav=맛집(찜)순위, rating=평점순위
"category": "I201",
"total": 1250, // 조건에 맞는 전체 개수 ← 이걸로 몇 페이지인지 계산
"page": 1,
"size": 1000,
"totalPages": 2, // page=1,2 호출하면 전부
"count": 1000, // 이번 페이지에 담긴 개수
"data": [
{
"rank": 1,
"id": "MA01...", // 음식점 고유 ID(bizesId)
"name": "소담",
"categoryCode": "I201",
"category": "한식",
"rating": 9.2, // 평균 평점(10점), 없으면 null
"ratingCount": 15, // 평점 참여 수
"favCount": 8, // 찜(즐겨찾기) 수
"address": "서울 ...",
"lat": 37.5665, "lon": 126.9780,
"detailUrl": "https://gfreee.com/food"
}
]
}
사용 예시
JavaScript — 전체를 페이지로 나눠 모두 받기
// total/totalPages를 보고 1페이지씩 끝까지 수집
async function fetchAll(cat){
var size = 1000, page = 1, all = [];
while (true) {
var u = 'https://gfreee.com/food/open/favranking?size=' + size + '&page=' + page + (cat ? '&cat=' + cat : '');
var d = await fetch(u).then(r => r.json());
all = all.concat(d.data);
if (page >= d.totalPages) break; // 마지막 페이지면 종료
page++;
}
return all; // 전체 맛집 (예: 1만 개)
}
cURL — 특정 페이지
curl "https://gfreee.com/food/open/favranking?page=1&size=1000" # 1~1000위
curl "https://gfreee.com/food/open/favranking?page=2&size=1000" # 1001~2000위
직접 호출해보기
참고
- 순위 데이터는 지프리 이용자의 찜·평점이 쌓이면서 채워집니다. 초기에는 결과가 적거나 빌 수 있습니다.
- 음식점 상세·영업정보는
id·name으로 카카오/네이버 지도에서 보강하시면 됩니다.
- 캐시는 5분(
Cache-Control: max-age=300)입니다. 과도한 호출은 자제해 주세요.