네이버 데이터랩 검색어 트렌드 API 사용법: 파이썬 코드, 실제 응답, 검색량 환산

네이버 데이터랩의 검색어 트렌드는 사이트에서 그래프로 확인할 수 있고, 같은 데이터를 API로 받아 엑셀이나 대시보드에 넣을 수도 있어요. 2026년 10월 7일에 챗GPT·제미나이·클로드 세 묶음으로 직접 호출하고, 응답과 오류 메시지를 그대로 옮겼어요.

핵심 요약

  • 네이버 개발자센터에서 애플리케이션을 등록하고 ‘데이터랩(검색어트렌드)’을 선택하면 키가 나와요. 무료이고 하루 1,000회까지 호출할 수 있어요.
  • 요청 한 번에 검색어 묶음 5개, 묶음마다 검색어 20개까지 넣을 수 있고, 2016년 1월 1일 이후 기간만 조회돼요.
  • 응답의 ratio는 검색량이 아니라 지수예요. 한 번의 요청에서 가장 큰 값을 100으로 놓은 상대값이라 다른 요청의 값과 비교하면 안 돼요.
  • 네이버 검색광고 키워드 도구의 월 검색량을 곱하면 지수를 대략적인 검색량으로 바꿀 수 있어요. 직접 맞췄을 때 차이가 3포인트 안이었어요.

1. 네이버 개발자센터에서 키 받기

  1. 네이버 개발자센터 애플리케이션 등록 페이지에 네이버 아이디로 로그인해요.
  2. 애플리케이션 이름을 입력하고, 사용 API에서 데이터랩 (검색어트렌드)를 골라요. 쇼핑 분야 클릭 추이가 필요하면 ‘데이터랩 (쇼핑인사이트)’도 함께 추가해요.
  3. 비로그인 오픈 API 서비스 환경에서 WEB 설정을 고르고 내 사이트 주소를 넣어요. PC에서 파이썬으로 호출했을 때는 여기 적은 주소와 상관없이 응답이 왔어요.
  4. 등록을 마치면 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개까지 추이를 받을 수 있어요. 키워드 수백 개를 매일 돌려야 한다면 그중 공통 키워드 하나를 모든 요청에 같이 넣어 두세요. 요청끼리 그 키워드 값으로 나눠 맞추면 서로 다른 요청의 지수도 한 척도로 비교할 수 있어요.

따라 할 순서

  1. 개발자센터에서 ‘데이터랩 (검색어트렌드)’로 애플리케이션을 등록하고 키를 환경변수에 넣어요.
  2. 비교하고 싶은 대상을 묶음 5개 안에 한 요청으로 넣어요. 같은 뜻의 한글·영문 검색어는 같은 묶음에 넣어요.
  3. 월간으로 1년치를 받아 흐름을 확인하고, 변화가 있는 구간만 주간이나 일간으로 다시 받아요.
  4. 검색량이 필요하면 키워드 도구의 최근 30일 검색량으로 지수를 환산해요.

출처

트렌드퀘스터

AI로 일하고 돈 버는 사람들의 이야기를 씁니다. 다른 사례도 읽어 주세요.

케이스 더 보기 →

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤