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 } ] } ]