네이버 데이터랩의 검색어 트렌드는 사이트에서 그래프로 확인할 수 있고, 같은 데이터를 API로 받아 엑셀이나 대시보드에 넣을 수도 있어요. 2026년 10월 7일에 챗GPT·제미나이·클로드 세 묶음으로 직접 호출하고, 응답과 오류 메시지를 그대로 옮겼어요.
핵심 요약
- 네이버 개발자센터에서 애플리케이션을 등록하고 ‘데이터랩(검색어트렌드)’을 선택하면 키가 나와요. 무료이고 하루 1,000회까지 호출할 수 있어요.
- 요청 한 번에 검색어 묶음 5개, 묶음마다 검색어 20개까지 넣을 수 있고, 2016년 1월 1일 이후 기간만 조회돼요.
- 응답의
ratio는 검색량이 아니라 지수예요. 한 번의 요청에서 가장 큰 값을 100으로 놓은 상대값이라 다른 요청의 값과 비교하면 안 돼요. - 네이버 검색광고 키워드 도구의 월 검색량을 곱하면 지수를 대략적인 검색량으로 바꿀 수 있어요. 직접 맞췄을 때 차이가 3포인트 안이었어요.
1. 네이버 개발자센터에서 키 받기
- 네이버 개발자센터 애플리케이션 등록 페이지에 네이버 아이디로 로그인해요.
- 애플리케이션 이름을 입력하고, 사용 API에서 데이터랩 (검색어트렌드)를 골라요. 쇼핑 분야 클릭 추이가 필요하면 ‘데이터랩 (쇼핑인사이트)’도 함께 추가해요.
- 비로그인 오픈 API 서비스 환경에서 WEB 설정을 고르고 내 사이트 주소를 넣어요. PC에서 파이썬으로 호출했을 때는 여기 적은 주소와 상관없이 응답이 왔어요.
- 등록을 마치면 Client ID와 Client Secret이 나와요. 이 두 값을 요청 헤더에 넣어요.
사용 API에서 데이터랩을 고르지 않은 채 등록했다면 ‘내 애플리케이션’의 API 설정 탭에서 추가할 수 있어요.
2. 요청 본문에 들어가는 값
주소는 https://openapi.naver.com/v1/datalab/search이고 POST로 JSON을 보내요. 공식 문서에 나온 값을 표로 정리했어요.
| 이름 | 필수 | 넣는 값 |
|---|---|---|
startDate |
필수 | 시작일 yyyy-mm-dd, 2016-01-01부터 |
endDate |
필수 | 종료일 yyyy-mm-dd |
timeUnit |
필수 | date 일간, week 주간, month 월간 |
keywordGroups |
필수 | 묶음 최대 5개. 묶음마다 groupName과 검색어 최대 20개 |
device |
선택 | pc 또는 mo(모바일). 비우면 전체 |
gender |
선택 | m 또는 f. 비우면 전체 |
ages |
선택 | 연령 코드 배열. 3은 19~24세, 4는 25~29세, 5는 30~34세 (1~11) |
묶음은 같은 뜻의 검색어를 합쳐 세는 단위예요. ‘챗gpt’, ‘chatgpt’, ‘챗지피티’를 한 묶음에 넣으면 세 검색어의 검색량이 더해진 값으로 추이가 나와요.
3. 파이썬으로 호출하는 코드
requests 라이브러리 하나만 있으면 돼요(pip install requests). 키는 코드에 적지 말고 환경변수 NAVER_CLIENT_ID, NAVER_CLIENT_SECRET로 넣어요.
import json
import os
import requests
CLIENT_ID = os.environ["NAVER_CLIENT_ID"]
CLIENT_SECRET = os.environ["NAVER_CLIENT_SECRET"]
body = {
"startDate": "2025-10-01",
"endDate": "2026-09-30",
"timeUnit": "month",
"keywordGroups": [
{"groupName": "챗GPT", "keywords": ["챗gpt", "chatgpt", "챗지피티"]},
{"groupName": "제미나이", "keywords": ["제미나이", "gemini"]},
{"groupName": "클로드", "keywords": ["클로드", "claude"]},
],
}
res = requests.post(
"https://openapi.naver.com/v1/datalab/search",
headers={
"X-Naver-Client-Id": CLIENT_ID,
"X-Naver-Client-Secret": CLIENT_SECRET,
"Content-Type": "application/json",
},
data=json.dumps(body, ensure_ascii=False).encode("utf-8"),
)
res.raise_for_status()
for group in res.json()["results"]:
print(group["title"])
for row in group["data"]:
print(" ", row["period"], round(row["ratio"], 1))
본문은 json.dumps(..., ensure_ascii=False)로 만든 뒤 UTF-8로 바꿔서 보냈어요. 한글 검색어가 깨지지 않고 그대로 전달돼요.
4. 실제로 받은 응답
응답은 묶음마다 period(구간 시작일)와 ratio(지수)가 짝을 이룬 목록으로 와요. 월간으로 받은 값을 소수점 한 자리로 정리했어요.
| 월 | 챗GPT | 제미나이 | 클로드 |
|---|---|---|---|
| 2025-10 | 68.3 | 6.6 | 0.5 |
| 2025-11 | 71.3 | 8.2 | 0.6 |
| 2025-12 | 72.2 | 14.0 | 0.6 |
| 2026-01 | 78.1 | 22.5 | 0.5 |
| 2026-02 | 74.2 | 23.4 | 1.2 |
| 2026-03 | 91.9 | 35.9 | 3.2 |
| 2026-04 | 91.1 | 42.1 | 4.8 |
| 2026-05 | 89.0 | 40.9 | 4.3 |
| 2026-06 | 91.2 | 36.9 | 4.2 |
| 2026-07 | 88.9 | 34.7 | 4.3 |
| 2026-08 | 91.1 | 33.1 | 4.3 |
| 2026-09 | 100 | 32.9 | 4.8 |
세 묶음 가운데 가장 큰 값인 2026년 9월 챗GPT가 100이고, 나머지 칸은 모두 그 달 챗GPT 검색량에 대한 비율이에요. 9월 클로드 4.8은 같은 달 챗GPT 검색량의 약 5% 수준이라는 뜻이에요. 제미나이는 1년 사이 6.6에서 4월 42.1까지 올랐다가 30대 초반으로 내려왔고, 클로드는 2월부터 3월 사이에 세 배 가까이 늘었어요.
값을 읽을 때 틀리기 쉬운 두 가지
요청마다 100의 기준이 달라요. 같은 묶음에 "device": "mo"와 "ages": ["3", "4"](19~29세 모바일)를 더해 다시 호출했더니 챗GPT의 100이 9월이 아니라 3월로 옮겨 갔어요. 조건을 바꾼 결과를 한 그래프에 겹치면 100의 위치가 다른 값끼리 섞여요. 비교할 대상은 한 요청 안에 함께 넣어야 해요.
주간 구간은 월요일에 시작해요. 시작일을 2026-08-01(토요일)로 넣고 "timeUnit": "week"로 받았더니 첫 구간이 2026-07-27(월요일)로 왔어요. 시작일이 들어 있는 주의 월요일부터 집계돼요. 같은 응답에서 9월 21일 주는 세 묶음 모두 앞 주보다 20~30% 낮았는데, 추석 연휴가 낀 주예요.
5. 지수를 실제 검색량으로 바꾸기
데이터랩은 지수만 주고, 네이버 검색광고의 키워드 도구는 최근 한 달 검색량을 실제 횟수로 줘요. 두 값을 맞추면 지난달들의 검색량도 추정할 수 있어요. 검색광고 계정은 광고비를 쓰지 않아도 만들 수 있고, 키워드 도구도 API로 호출할 수 있어요.
같은 날 키워드 도구에서 조회한 최근 30일 검색량(PC와 모바일 합계)은 아래와 같았어요.
| 묶음 | 검색어별 검색량 | 합계 | 챗GPT 대비 | 데이터랩 9월 |
|---|---|---|---|---|
| 챗GPT | 챗지피티 15,889,900 · 챗gpt 4,742,300 · chatgpt 2,234,400 | 22,866,600 | 100% | 100 |
| 제미나이 | 제미나이 6,735,600 · gemini 208,300 | 6,943,900 | 30.4% | 32.9 |
| 클로드 | 클로드 951,500 · claude 89,600 | 1,041,100 | 4.6% | 4.8 |
키워드 도구로 구한 비율과 데이터랩 지수의 차이가 제미나이 2.5포인트, 클로드 0.2포인트였어요. 키워드 도구의 30일은 조회 전날까지라 9월과 정확히 겹치지 않는데도 두 출처가 거의 같은 비율을 가리켜요. 그래서 이렇게 환산했어요.
추정 검색량 = 그 달 지수 ÷ 최근 달 지수 × 키워드 도구 30일 검색량
예를 들어 클로드의 2025년 10월 검색량은 0.5 ÷ 4.8 × 1,041,100으로 약 11만 회, 제미나이의 2026년 4월은 42.1 ÷ 32.9 × 6,943,900으로 약 888만 회가 나와요. 환산에 쓰는 최근 달 지수가 1 아래로 작으면 소수점 반올림 오차가 커지니, 그런 검색어는 검색량이 큰 검색어와 같은 요청에 넣지 말고 따로 호출해요.
6. 받은 오류 메시지와 해결 방법
일부러 틀린 값을 넣어 오류 세 가지를 받았어요. 응답 본문을 그대로 옮겼어요.
| 상황 | 상태 코드와 메시지 | 해결 |
|---|---|---|
| Client Secret이 틀림 | 401 · NID AUTH Result Invalid (28) : Authentication failed. (errorCode 024) |
키 앞뒤 공백, ID와 Secret이 바뀌었는지 확인 |
| 묶음 6개 | 400 · .keywordGroups -> should NOT have more than 5 items |
5개씩 나눠 호출. 나눈 요청끼리는 100의 위치가 달라요 |
| 시작일 2015-01-01 | 400 · TypeError: Invalid Date Range |
2016-01-01 이후로 설정 |
하루 호출 한도는 1,000회예요. 묶음 5개를 한 요청에 넣으면 하루에 검색어 묶음 5,000개까지 추이를 받을 수 있어요. 키워드 수백 개를 매일 돌려야 한다면 그중 공통 키워드 하나를 모든 요청에 같이 넣어 두세요. 요청끼리 그 키워드 값으로 나눠 맞추면 서로 다른 요청의 지수도 한 척도로 비교할 수 있어요.
따라 할 순서
- 개발자센터에서 ‘데이터랩 (검색어트렌드)’로 애플리케이션을 등록하고 키를 환경변수에 넣어요.
- 비교하고 싶은 대상을 묶음 5개 안에 한 요청으로 넣어요. 같은 뜻의 한글·영문 검색어는 같은 묶음에 넣어요.
- 월간으로 1년치를 받아 흐름을 확인하고, 변화가 있는 구간만 주간이나 일간으로 다시 받아요.
- 검색량이 필요하면 키워드 도구의 최근 30일 검색량으로 지수를 환산해요.
출처
- 네이버 개발자센터 — 통합 검색어 트렌드 API 문서 (호출 한도, 파라미터, 연령 코드)
- 응답, 오류 메시지, 키워드 도구 검색량은 트렌드퀘스터가 2026년 10월 7일에 직접 호출한 결과예요. 지수와 검색량은 조회 날짜에 따라 달라져요.
