SEO Vendor APIDeveloper Referencev1
All systems operational
Keyword Research

Better Keywords AI

Discover high-intent keywords with volume, CPC, competition, and search-intent scoring — or filter an existing keyword set down to the terms that matter.

POSThttps://ai.seovendor.co/api/better-keywords/
Authenticate every request by passing your secret key as k in the JSON body. Requests are POST with Content-Type: application/json.

01Request parameters

FieldTypeRequiredDescription
actionstringoptional
research Research keywords.filter Filter keyword data.
kwstringrequiredKeyword text, 4 to 300 characters.
brandstringoptionalBrand text, max 60 characters.
webstringoptionalWebsite URL, max 300 characters.
urlstringoptionalFallback website URL used when web is not sent, max 300 characters.
locationstringoptionalLocation text, max 50 characters.
brandpersonastringoptionalBrand persona text, max 2000 characters.
langintegeroptional
0 US English1 UK English2 Australian English3 Spanish4 Italian5 French6 German7 Portuguese8 Dutch9 Bulgarian10 Czech11 Danish12 Estonian13 Finnish
+26 more options
14 Greek15 Hungarian16 Polish17 Norwegian18 Romanian19 Swedish20 Brazilian Portuguese21 Mexican Spanish22 Colombian Spanish23 Argentine Spanish24 Peruvian Spanish25 Canadian English26 Chilean Spanish27 Bolivian Spanish28 Catalan29 Austrian German30 Canadian French31 Belgian Dutch (Flemish)32 Belgian French33 Scottish English34 Slovak35 New Zealand English36 Irish English37 Swiss German38 Croatian39 Turkish
engineintegeroptional
0 Default Engine (Smart Writing)10 Kappa Engine (GPT-4om-10) Internal12 Mu Engine (GPT-4o-12) (BETA)14 DeepSeek 3.216 Llama 4 Maverick18 Claude Sonnet 419 Mu Engine: Smart Writing20 SearchGPT Preview21 Lambda Engine (GPT-o3-1) Deep Reasoning22 o4-mini23 Claude Opus 424 Gemini 2.525 Gemini 2.5 Pro26 GPT 4.1 Mini
+28 more options
27 Rho Engine GPT-528 GPT-5 Mini29 GPT-5-Nano30 Grok 431 GPT Image32 Perplexity Sonar33 Perplexity Sonar Pro34 Grok 4 Fast35 Rho Engine GPT-5.136 Gemini 3 Pro37 Claude Sonnet 4.538 GPT-5 Search API39 Rho Engine GPT-5.240 Grok 4.1 Fast41 ChatGPT 5.142 ChatGPT 5.243 Image 2.044 Image 1 Mini45 Gemini 3 Flash46 Gemini 3.1 Pro47 Claude Sonnet 4.648 Claude Haiku 4.549 GPT-4o Search50 Rho Engine GPT-5.451 GPT-5.5 (Beta)52 Grok 4.353 Deepseek v4 Pro54 Claude Opus 4.7
researchtypearrayoptional
0 Product Interest1 Nearby Services2 National Services3 Online Shopping4 Brand Visibility5 Content Development6 Market Expansion7 Customer Engagement8 Competitive Analysis9 Seasonal Campaigns10 Event Promotion11 Lead Generation12 Audience Targeting13 Reputation Management
+52 more options
14 Mobile Optimization15 Voice Search Trends16 Conversion Rate Improvement17 Local SEO Focus18 Global Outreach19 User Experience Enhancement20 Customer Retention21 New Product Launch22 Cost-Per-Click Optimization23 Long-Tail Keyword Targeting24 Social Media Integration25 Brand Differentiation26 Awareness Campaigns27 Behavioral Insights28 Traffic Generation29 SERP Feature Optimization30 Organic Traffic Growth31 Content Repurposing32 Engagement Metrics Improvement33 Personalization Strategy34 Cross-Channel Marketing35 Community Building36 Referral Traffic Boost37 Demographic Targeting38 Budget Optimization39 Holistic SEO Approach40 SERP Domination41 Algorithm Update Adaptation42 Sustainable Traffic Growth43 Data-Driven Strategy44 Crisis Management SEO45 Geo-Targeting46 E-commerce Enhancement47 Brand Partnership48 B2B Marketing49 Accessibility Optimization50 Compliance and Security51 Sponsored Content Strategy52 Interactive Content53 Landing Page Optimization54 Keyword Cannibalization Prevention55 Authority Building56 Image Search Optimization57 Predictive Search Trends58 Meta Data Optimization59 Click-Through Rate Optimization60 Customer Journey Mapping61 In-Depth Topic Coverage62 Google Profile Optimization63 Social Listening64 Multichannel Attribution65 Privacy-Focused Marketing
kwcompetitionarrayoptional
0 Opportunity Keywords1 All Keywords2 High-ROI Keywords3 Niche-Specific Keywords4 Broad Match Keywords5 Long Tail Keywords6 Low Competition Keywords7 High Competition Keywords8 Emerging Trend Keywords9 Seasonal Peak Keywords10 Authority Builder Keywords11 Brand-Specific Keywords12 Zero Competition Keywords13 Buyer Intent Keywords
+18 more options
14 High Volume Keywords15 Low Volume Keywords16 Geo-Specific Keywords17 User Intent Keywords18 High Difficulty Keywords19 Low Difficulty Keywords20 Mid-Range Competition Keywords21 Question-Based Keywords22 Content Gap Keywords23 Underutilized Keywords24 Conversion-Focused Keywords25 Strategic Growth Keywords26 Untapped Keywords27 High Cost-Per-Click Keywords28 Low Cost-Per-Click Keywords29 Quick Win Keywords30 High Impact Keywords31 Semantic Keywords
dataarrayrequiredNone
kstringrequiredAPI key sent as k in query string, POST body, JSON body; api_key is also accepted, 11 to 120 characters.

02Response

Every response uses the standard envelope (success, application, action, data, meta, error). The data field for this endpoint is documented below.

successaction: research · HTTP 200

200 response example
{
  "success": true,
  "application": "better-keywords",
  "action": "research",
  "data": [
    {
      "keyword": "white label seo",
      "category": "Agency Services",
      "cpc": 4.25,
      "competition": 6,
      "volume": 2400,
      "intent": "commercial",
      "score": 0.92,
      "date": "2026-06-24",
      "rank": 3,
      "type": "ai",
      "relativeurl": "/services/white-label-seo"
    }
  ],
  "meta": {
    "request_id": "req_3f9a7c2e8b41",
    "duration_ms": 1284,
    "upstream_http_code": 200
  },
  "error": null
}
Response schema
successboolean= true
applicationstring= "better-keywords"
actionstring= "research"
dataarrayKeyword research results.
└─keywordstringDiscovered keyword.
└─categorystringKeyword topic category.
└─cpcnumberEstimated cost-per-click.
└─competitionintegerCompetition score 0 to 10.
└─volumeintegerMonthly search volume estimate.
└─intentstringSearch intent classification, e.g. informational, commercial.
└─scorenumberKeyword relevance score.
└─datestringDate the data point was captured.
└─rankintegerCurrent ranking position for this keyword.
└─typestringResult source type: ai or data.
└─relativeurlstringRelative URL path associated with this keyword.
metaobject
└─request_idstring
└─duration_msinteger
└─upstream_http_codeinteger
errornull

successaction: filter · HTTP 200

200 response example
{
  "success": true,
  "application": "better-keywords",
  "action": "filter",
  "data": [
    {
      "keyword": "white label seo",
      "category": "Agency Services",
      "cpc": 4.25,
      "competition": 6,
      "volume": 2400,
      "intent": "commercial",
      "score": 0.92,
      "date": "2026-06-24",
      "rank": 3,
      "type": "ai",
      "relativeurl": "/services/white-label-seo"
    }
  ],
  "meta": {
    "request_id": "req_3f9a7c2e8b41",
    "duration_ms": 1284,
    "upstream_http_code": 200
  },
  "error": null
}
Response schema
successboolean= true
applicationstring= "better-keywords"
actionstring= "filter"
dataarrayFiltered subset of the submitted keyword data that passed relevance criteria. Same object structure as research results.
└─keywordstringDiscovered keyword.
└─categorystringKeyword topic category.
└─cpcnumberEstimated cost-per-click.
└─competitionintegerCompetition score 0 to 10.
└─volumeintegerMonthly search volume estimate.
└─intentstringSearch intent classification, e.g. informational, commercial.
└─scorenumberKeyword relevance score.
└─datestringDate the data point was captured.
└─rankintegerCurrent ranking position for this keyword.
└─typestringResult source type: ai or data.
└─relativeurlstringRelative URL path associated with this keyword.
metaobject
└─request_idstring
└─duration_msinteger
└─upstream_http_codeinteger
errornull

errorHTTP 400, 401, 502, 503, or 504

error response example
{
  "success": false,
  "application": "better-keywords",
  "action": "string",
  "data": null,
  "meta": {
    "request_id": "req_3f9a7c2e8b41"
  },
  "error": {
    "code": "invalid_request",
    "message": "The kw field is required.",
    "field": "kw",
    "details": [],
    "apidefinitions": "https://ai.seovendor.co/api/better-keywords/definitions"
  }
}
Response schema
successboolean= false
applicationstring= "better-keywords"
actionstring
datanull
metaobject
└─request_idstring
errorobject
└─codestringError code returned by the API.
└─messagestringHuman-readable error message.
└─fieldstringInput field associated with the error.
└─detailsarrayAdditional error details.
└─apidefinitionsstringPublic API definitions URL.
POST /api/better-keywords/
curl -X POST "https://ai.seovendor.co/api/better-keywords/" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
  "k": "[API KEY]",
  "action": "research",
  "kw": "white label seo",
  "web": "https://seovendor.co",
  "brand": "SEO Vendor"
}'
<?php
$ch = curl_init("https://ai.seovendor.co/api/better-keywords/");

$payload = [
    "k" => "[API KEY]",
    "action" => "research",
    "kw" => "white label seo",
    "web" => "https://seovendor.co",
    "brand" => "SEO Vendor",
];

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
        "Accept: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode($payload),
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data);
const response = await fetch("https://ai.seovendor.co/api/better-keywords/", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Accept": "application/json"
  },
  body: JSON.stringify({
    k: "[API KEY]",
    action: "research",
    kw: "white label seo",
    web: "https://seovendor.co",
    brand: "SEO Vendor",
  })
});

const data = await response.json();
console.log(data);
import requests

url = "https://ai.seovendor.co/api/better-keywords/"

payload = {
    "k": "[API KEY]",
    "action": "research",
    "kw": "white label seo",
    "web": "https://seovendor.co",
    "brand": "SEO Vendor",
}

headers = {
    "Content-Type": "application/json",
    "Accept": "application/json"
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()
print(data)
SEO Vendor API
Base URL https://ai.seovendor.co/api  ·  All requests are POST · JSON in, JSON out · © 2026 SEO Vendor. Built for agencies since 2004.