semust logo

API Platform

Keyword Data API

Get comprehensive keyword metrics including search volume, CPC, competition, and search intent for any keyword across multiple languages and countries.

Get comprehensive keyword metrics including search volume, CPC, competition, and search intent for any keyword across multiple languages and countries.

Product page: Keyword Data API.

Authentication

All requests require header-based authentication. Include your API credentials in every request.

HeaderTypeDescription
SEMUST-API-USERstringYour API user's username
SEMUST-API-PASSWORDstringYour API user's password

Create API credentials from the API Access page.

SEMUST-API-USER: your_username
SEMUST-API-PASSWORD: your_password

Request Parameters

Send a application/json body with the following parameters:

Body

keywordstringrequired

The keyword to analyze (e.g., 'seo tools', 'best coffee shops')

countrystringdefault: US

ISO 3166-1 alpha-2 country code for geo-targeted data. Examples: "US", "GB", "DE", "TR".

languagestringdefault: en

Language code (ISO 639-1). Controls the language of search results. Examples: "en", "tr", "de", "fr", "es".

limitintegerdefault: 100

Maximum number of keyword results to return. Minimum: 1, Maximum: 1000. Higher limits may increase cost.

match_typestringdefault: broad

Keyword match strategy. Options: "broad" (default — semantically related keywords), "phrase_match" (only keywords containing the seed phrase), "exact_match" (only the exact keyword, forces limit=1), "related" (pure semantic results without substring matches).

match_type

ValueWhat it returns
broadSemantically related keywords (default)
phrase_matchOnly keywords containing the seed phrase
exact_matchOnly the exact keyword — forces limit to 1
relatedPure semantic results without substring matches
{
  "keyword": "seo tools",
  "country": "US",
  "language": "en",
  "limit": 100,
  "match_type": "broad"
}

Code Examples

Examples of calling the Keyword Data API from different languages.

curl -X POST https://data.semust.com/v1/keyword-data \
  -H "Content-Type: application/json" \
  -H "SEMUST-API-USER: your_username" \
  -H "SEMUST-API-PASSWORD: your_password" \
  -d '{
    "keyword": "seo tools",
    "country": "US",
    "language": "en",
    "limit": 100,
    "match_type": "broad"
  }'

Response

Returns a JSON object with keyword metrics and cost information.

Note

Results are sorted by search volume from highest to lowest.

Response Fields Reference

FieldTypeDescription
successbooleanAlways true on successful response
result_countintegerNumber of keywords returned
costfloatActual cost charged in USD
dataarrayArray of keyword data objects

Keyword Data Object

FieldTypeDescription
keywordstringThe keyword term
search_volumeintegerMonthly search volume
cpcfloatCost-per-click in USD
competitionfloatCompetition level (0-100)
countrystringCode
languagestringCode
intentstringSearch intent classification
competition_levelstringCompetition level: "low" (0-33), "medium" (34-66), or "high" (67-100)
related_keywordsarray | nullRelated keyword suggestions (array of strings or null)
{
  "success": true,
  "result_count": 3,
  "cost": 0.01,
  "data": [
    {
      "keyword": "seo tools",
      "search_volume": 12100,
      "cpc": 15.75,
      "competition": 85,
      "competition_level": "high",
      "country": "us",
      "language": "en",
      "intent": "commercial",
      "related_keywords": ["best seo tools", "free seo tools"]
    },
    {
      "keyword": "best seo tools",
      "search_volume": 8100,
      "cpc": 12.50,
      "competition": 72,
      "competition_level": "high",
      "country": "us",
      "language": "en",
      "intent": "commercial",
      "related_keywords": null
    },
    {
      "keyword": "free seo tools",
      "search_volume": 5400,
      "cpc": 8.25,
      "competition": 45,
      "competition_level": "medium",
      "country": "us",
      "language": "en",
      "intent": "informational",
      "related_keywords": null
    }
  ]
}

Pricing

Result-based pricing with upfront charge and automatic refund.

Formula

Cost = max($0.01, (result_count / 100) × $0.03)

Pricing Examples

ResultsCalculationFinal Cost
0-33Minimum charge$0.01
50(50/100) × $0.03$0.015
100(100/100) × $0.03$0.03
150(150/100) × $0.03$0.045
200(200/100) × $0.03$0.06

Upfront Charge

You are charged $0.03 upfront (maximum price) and refunded the excess after processing completes. This ensures your balance is sufficient while only charging for actual results received.

Full Refund on Failures

If your request fails due to timeout, worker errors, or any server issues, you will receive a full refund automatically. You are only charged when the API successfully returns keyword data.

Supported Languages

Loading languages…

If a language code is not found, the system defaults to Turkish (tr).

Error Codes

All errors return a JSON object with a human-readable message and an error code.

HTTPCodeMeaning
400INVALID_REQUESTRequest body is malformed or missing required fields
400KEYWORD_REQUIREDThe keyword field is empty or missing
400INVALID_MATCH_TYPEThe match_type value is not valid. Allowed values: broad, phrase_match, exact_match, related.
401INVALID_API_KEYAuthentication failed — invalid username or password
401INVALID_CREDENTIALSInvalid username or password
401CREDENTIALS_EXPIREDAPI user credentials have expired
402INSUFFICIENT_CREDITSYour account does not have enough credits
403IP_NOT_WHITELISTEDYour IP address is not whitelisted
429RATE_LIMIT_EXCEEDEDToo many requests — rate limit exceeded
500INTERNAL_ERRORAn internal server error occurred
502WORKER_FAILEDFailed to fetch keyword data
504TIMEOUTThe request timed out (max 10 minutes)
{
  "error": "Your account does not have enough credits",
  "code": "INSUFFICIENT_CREDITS"
}

Credits & Rate Limits

Credits

Each request consumes credits from your balance. Cost may vary based on the mobile parameter. If your balance is insufficient, the API returns HTTP 402.

Rate Limits

Requests are subject to per-minute and per-day limits based on your plan. Exceeding limits returns HTTP 429.

Last updated: 2026-08-22