API v1

Keyword Research API

Keyword ideas, search volume, CPC, keyword difficulty, autocomplete suggestions and clustering for your own tools, dashboards and AI agents. All endpoints return JSON and use the monthly requests of your plan, shared with the website.

Quick start

Search volume for two keywords in Vietnam, in three languages:

cURL
curl -X POST https://keywordplanner.vn/api/v1/keywords/volume \
  -H "Authorization: Bearer kwp_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "keywords": ["seo tools", "keyword research"], "country": "vn" }'
JavaScript
const res = await fetch("https://keywordplanner.vn/api/v1/keywords/volume", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.KWP_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ keywords: ["seo tools", "keyword research"], country: "vn" }),
});
const { ok, data, usage } = await res.json();
Python
import os, requests

r = requests.post(
    "https://keywordplanner.vn/api/v1/keywords/volume",
    headers={"Authorization": f"Bearer {os.environ['KWP_API_KEY']}"},
    json={"keywords": ["seo tools", "keyword research"], "country": "vn"},
    timeout=60,
)
print(r.json()["data"]["keywords"])

Authentication

Create a key in Dashboard API and send it in the Authorization header.

curl https://keywordplanner.vn/api/v1/usage \
  -H "Authorization: Bearer kwp_live_YOUR_KEY"

Limits

Endpoints

POST/api/v1/keywords/ideasCredits: 2

Keyword ideas for seed keywords and/or a website, with volume, 12-month trend, CPC, competition and difficulty (max 1000 rows).

{ "keywords": ["keyword planner"], "country": "vn", "lang": "vi", "targetSite": "example.com", "sortBy": "resultDESC", "limit": 200 }
POST/api/v1/keywords/volumeCredits: 1 per 10 keywords

Monthly search volume and metrics for up to 100 keywords.

{ "keywords": ["seo tools", "keyword research"], "country": "us" }
GET/api/v1/keywords/suggest?keyword=seo&lang=en&country=us&sources=google,youtube&modes=az,questionsCredits: 1

Autocomplete suggestions from Google, YouTube, Bing, Amazon, Yahoo, Yandex and Wikipedia. modes: az, questions, comparisons, prepositions, numbers.

POST/api/v1/keywords/groupCredits: 1

Cluster up to 500 keywords into groups.

{ "keywords": "seo tools\nfree seo tools\nkeyword planner" }
POST/api/v1/keywords/semanticCredits: 2

AI-generated semantic keywords for a topic.

{ "keyword": "coffee machine", "lang": "en" }
GET/api/v1/usageCredits: 0

Current plan and remaining credits (not counted).

Response

{
  "ok": true,
  "data": {
    "keywords": [
      { "keyword": "keyword planner", "results": 12100, "trend": [9900, 12100, …], "competition_level": 34,
        "minCPC": 4200, "maxCPC": 15800, "difficulty": 48.2, "length": 2, "isQuestion": false, "keywordType": "exact" }
    ],
    "traffic": [{ "time": "2026-09", "month": 9, "year": 2026, "totalImpression": 154000 }]
  },
  "usage": { "plan": "Starter", "units": 2, "used": 121, "limit": 10000, "remaining": 9879 }
}

CPC values are in VND. trend holds 12 months, oldest first.

Errors

HTTPerrorMeaning
401UNAUTHORIZEDMissing, invalid or revoked API key
400INVALID_INPUTRequest body or query is not valid
429QUOTA_EXCEEDEDMonthly credit limit reached
403PLAN_NO_APIYour plan does not include the API (Lite)
429DAILY_LIMITDaily API limit reached
429RATE_LIMITEDToo many calls this minute (or free plan spacing): wait `Retry-After` seconds
429TOO_MANY_CONCURRENTMore than 5 requests at the same time
503SOURCE_UNAVAILABLEKeyword data source temporarily unavailable

Frequently Asked Questions

Which plans include the API?

Starter and Pro. The API uses the same monthly credits as the website, so there is no separate API subscription. Free and Lite do not include the API.

How many credits does a call use?

Keyword ideas and semantic keywords count 2 credits, search volume 1 per 10 keywords, suggestions and grouping 1. /api/v1/usage and failed calls are not counted.

Which countries and languages are supported?

Every country and language of the keyword data source: pass ISO codes in country (vn, us, jp…) and lang (vi, en, ja…). CPC values are returned in VND.

Is there a rate limit?

Yes: 15 calls a minute, 5 requests at the same time and at most 10% of the monthly credits a day. The Retry-After header tells you how long to wait.

Can I have several API keys?

Yes, up to 5 keys per account (for example one per app), created in Dashboard › API. Revoke a key at any time; the others keep working.