Documentation Index

Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt

Use this file to discover all available pages before exploring further.

Search keyword trend examples

Prev Next

Available in Classic and VPC

These are implementation examples that use the Search Keyword Trends API to view integrated search trend data for specific topic keywords.

Note
  • In the sample code, enter the client ID issued by the NAVER Cloud Platform console into YOUR_CLIENT_ID, and the client secret mapped to that client ID into YOUR_CLIENT_SECRET.
  • See the instructions on how to obtain a client ID and client secret in NAVER API HUB overview.

Get integrated search keyword trends

This section describes how to use the Search Trend API to view search trend data for search keywords grouped by topic keywords in NAVER’s integrated search. By replacing the keywordGroups in the request body and the search criteria (such as device, ages, and gender) with different values, you can view trends for other search keywords in the same way.

Java

The following is a Java-based sample code for the API.

package com.naver.apihub.example;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;

public class ApiExampleSearchTrend {

    public static void main(String[] args) {
        String clientId = "YOUR_CLIENT_ID"; // Application's client ID
        String clientSecret = "YOUR_CLIENT_SECRET"; // Application's client secret

        String apiUrl = "https://naverapihub.apigw.ntruss.com/search-trend/v1/search";

        Map<String, String> requestHeaders = new HashMap<>();
        requestHeaders.put("X-NCP-APIGW-API-KEY-ID", clientId);
        requestHeaders.put("X-NCP-APIGW-API-KEY", clientSecret);
        requestHeaders.put("Content-Type", "application/json");

        String requestBody = "{\"startDate\":\"2026-01-01\"," +
                "\"endDate\":\"2026-05-31\"," +
                "\"timeUnit\":\"month\"," +
                "\"keywordGroups\":[{\"groupName\":\"Korean\",\"keywords\":[\"Korean\",\"korean\"]}," +
                                  "{\"groupName\":\"English\",\"keywords\":[\"English\",\"english\"]}]," +
                "\"device\":\"pc\"," +
                "\"ages\":[\"1\",\"2\"]," +
                "\"gender\":\"f\"}";

        String responseBody = post(apiUrl, requestHeaders, requestBody);
        System.out.println(responseBody);
    }

    private static String post(String apiUrl, Map<String, String> requestHeaders, String requestBody) {
        HttpURLConnection con = connect(apiUrl);
        try {
            con.setRequestMethod("POST");
            for (Map.Entry<String, String> header : requestHeaders.entrySet()) {
                con.setRequestProperty(header.getKey(), header.getValue());
            }

            con.setDoOutput(true);
            try (DataOutputStream wr = new DataOutputStream(con.getOutputStream())) {
                wr.write(requestBody.getBytes(StandardCharsets.UTF_8));
                wr.flush();
            }

            int responseCode = con.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) { // Normal response
                return readBody(con.getInputStream());
            } else { // Error response
                return readBody(con.getErrorStream());
            }
        } catch (IOException e) {
            throw new RuntimeException("API request and response failed", e);
        } finally {
            con.disconnect();
        }
    }

    private static HttpURLConnection connect(String apiUrl) {
        try {
            URL url = new URL(apiUrl);
            return (HttpURLConnection) url.openConnection();
        } catch (MalformedURLException e) {
            throw new RuntimeException("Invalid API URL. : " + apiUrl, e);
        } catch (IOException e) {
            throw new RuntimeException("Connection failed. : " + apiUrl, e);
        }
    }

    private static String readBody(InputStream body) {
        InputStreamReader streamReader = new InputStreamReader(body, StandardCharsets.UTF_8);
        try (BufferedReader lineReader = new BufferedReader(streamReader)) {
            StringBuilder responseBody = new StringBuilder();
            String line;
            while ((line = lineReader.readLine()) != null) {
                responseBody.append(line);
            }
            return responseBody.toString();
        } catch (IOException e) {
            throw new RuntimeException("Failed to read the API response.", e);
        }
    }
}

PHP

The following is a PHP-based sample code for the API.

<?php

$client_id = "YOUR_CLIENT_ID";
$client_secret = "YOUR_CLIENT_SECRET";

$url = "https://naverapihub.apigw.ntruss.com/search-trend/v1/search";
$body = "{\"startDate\":\"2026-01-01\",\"endDate\":\"2026-05-31\",\"timeUnit\":\"month\",\"keywordGroups\":[{\"groupName\":\"Korean\",\"keywords\":[\"Korean\",\"korean\"]},{\"groupName\":\"English\",\"keywords\":[\"English\",\"english\"]}],\"device\":\"pc\",\"ages\":[\"1\",\"2\"],\"gender\":\"f\"}";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = array();
$headers[] = "X-NCP-APIGW-API-KEY-ID: " . $client_id;
$headers[] = "X-NCP-APIGW-API-KEY: " . $client_secret;
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body);

$response = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status_code == 200) {
    echo $response;
} else {
    echo "Error content:". $response;
}
?>

Node.js

The following is a Node.js-based sample code for the API.

const client_id = 'YOUR_CLIENT_ID';
const client_secret = 'YOUR_CLIENT_SECRET';

const api_url = 'https://naverapihub.apigw.ntruss.com/search-trend/v1/search';
const request_body = {
  startDate: '2026-01-01',
  endDate: '2026-05-31',
  timeUnit: 'month',
  keywordGroups: [
    { groupName: 'Korean', keywords: ['Korean', 'korean'] },
    { groupName: 'English', keywords: ['English', 'english'] },
  ],
  device: 'pc',
  ages: ['1', '2'],
  gender: 'f',
};

(async () => {
  const response = await fetch(api_url, {
    method: 'POST',
    headers: {
      'X-NCP-APIGW-API-KEY-ID': client_id,
      'X-NCP-APIGW-API-KEY': client_secret,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(request_body),
  });
  console.log(response.status);
  console.log(await response.text());
})();

Python

The following is a Python-based sample code for the API.

import urllib.request

client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"

url = "https://naverapihub.apigw.ntruss.com/search-trend/v1/search"
body = "{\"startDate\":\"2026-01-01\",\"endDate\":\"2026-05-31\",\"timeUnit\":\"month\",\"keywordGroups\":[{\"groupName\":\"Korean\",\"keywords\":[\"Korean\",\"korean\"]},{\"groupName\":\"English\",\"keywords\":[\"English\",\"english\"]}],\"device\":\"pc\",\"ages\":[\"1\",\"2\"],\"gender\":\"f\"}"

request = urllib.request.Request(url)
request.add_header("X-NCP-APIGW-API-KEY-ID", client_id)
request.add_header("X-NCP-APIGW-API-KEY", client_secret)
request.add_header("Content-Type", "application/json")

response = urllib.request.urlopen(request, data=body.encode("utf-8"))
rescode = response.getcode()
if rescode == 200:
    response_body = response.read()
    print(response_body.decode("utf-8"))
else:
    print("Error Code:" + str(rescode))

C#

The following is a C#-based sample code for the API.

using System;
using System.IO;
using System.Net;
using System.Text;

namespace NaverApiHubExample
{
    public class ApiExampleSearchTrend
    {
        static void Main(string[] args)
        {
            string clientId = "YOUR_CLIENT_ID";
            string clientSecret = "YOUR_CLIENT_SECRET";

            string url = "https://naverapihub.apigw.ntruss.com/search-trend/v1/search";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Headers.Add("X-NCP-APIGW-API-KEY-ID", clientId);
            request.Headers.Add("X-NCP-APIGW-API-KEY", clientSecret);
            request.ContentType = "application/json";
            request.Method = "POST";

            string body = "{\"startDate\":\"2026-01-01\",\"endDate\":\"2026-05-31\",\"timeUnit\":\"month\",\"keywordGroups\":[{\"groupName\":\"Korean\",\"keywords\":[\"Korean\",\"korean\"]},{\"groupName\":\"English\",\"keywords\":[\"English\",\"english\"]}],\"device\":\"pc\",\"ages\":[\"1\",\"2\"],\"gender\":\"f\"}";
            byte[] byteData = Encoding.UTF8.GetBytes(body);
            request.ContentLength = byteData.Length;
            using (Stream st = request.GetRequestStream())
            {
                st.Write(byteData, 0, byteData.Length);
            }

            try
            {
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                {
                    Console.WriteLine(reader.ReadToEnd());
                }
            }
            catch (WebException e) // Error response
            {
                using (StreamReader reader = new StreamReader(e.Response.GetResponseStream(), Encoding.UTF8))
                {
                    Console.WriteLine(reader.ReadToEnd());
                }
            }
        }
    }
}