Press Monitor Keywords API
Version 1.0.0
SEO-optimized API for global and country-level keyword research: average monthly searches, CPC ranges, and monthly search volume trends. Built for B2B analytics, SEO platforms, and AI agents. Secured with Bearer tokens.
Base URL
 https://api.pressmonitor.com/keywords/v1 
 Authentication
BearerAuth
Type: http
Send Authorization: Bearer <token>
  GET  
 /global Global keyword metrics and trends
Return global keyword metrics and 12-month search volume trends: average monthly searches, CPC ranges, and per-month volumes aggregated across regions.
Parameters
| Name | Type | In | Required | Description | 
|---|---|---|---|---|
| keyword |   string   |  query | Required | Keyword or phrase to analyze. | 
Code Examples
curl --request GET \ --url 'https://api.pressmonitor.com/keywords/v1/global?keyword=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' import requests url = "https://api.pressmonitor.com/keywords/v1/global" querystring = {"keyword":"SOME_STRING_VALUE"} headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text) const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/keywords/v1/global?keyword=SOME_STRING_VALUE", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/keywords/v1/global?keyword=SOME_STRING_VALUE") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute(); <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/keywords/v1/global?keyword=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_BEARER_TOKEN" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } Responses
  200  Array of keyword metrics for the global index. 
 Content-Type: application/json
[ { "keyword": "example keyword", "avg_monthly_searches": 22000, "High CPC": "$0.20", "Low CPC": "$0.02", "competition_index": 0.34, "monthly_search_volumes": [ { "month": "DECEMBER", "year": 2024, "searches": 201000 }, { "month": "JANUARY", "year": 2025, "searches": 220000 } ] } ]   GET  
 /country Global keyword metrics and trends
Return global keyword metrics and 12-month search volume trends: average monthly searches, CPC ranges, and per-month volumes aggregated across regions.
Parameters
| Name | Type | In | Required | Description | 
|---|---|---|---|---|
| keyword |   string   |  query | Required | Keyword or phrase to analyze. | 
Code Examples
curl --request GET \ --url 'https://api.pressmonitor.com/keywords/v1/global?keyword=SOME_STRING_VALUE' \ --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' import requests url = "https://api.pressmonitor.com/keywords/v1/global" querystring = {"keyword":"SOME_STRING_VALUE"} headers = {"Authorization": "Bearer REPLACE_BEARER_TOKEN"} response = requests.request("GET", url, headers=headers, params=querystring) print(response.text) const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/keywords/v1/global?keyword=SOME_STRING_VALUE", "headers": { "Authorization": "Bearer REPLACE_BEARER_TOKEN" } }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/keywords/v1/global?keyword=SOME_STRING_VALUE") .get() .addHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN") .build(); Response response = client.newCall(request).execute(); <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/keywords/v1/global?keyword=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer REPLACE_BEARER_TOKEN" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } Responses
  200  Array of keyword metrics for the global index. 
 Content-Type: application/json
[ { "keyword": "example keyword", "avg_monthly_searches": 22000, "High CPC": "$0.20", "Low CPC": "$0.02", "competition_index": 0.34, "monthly_search_volumes": [ { "month": "DECEMBER", "year": 2024, "searches": 201000 }, { "month": "JANUARY", "year": 2025, "searches": 220000 } ] } ]