Endpoint
Authentication
All requests require authentication headers. See Authentication for details.| Header | Type | Description |
|---|---|---|
SEMUST-API-USER | string | Your API username |
SEMUST-API-PASSWORD | string | Your API password |
Request Parameters
Send parameters as JSON in the request body withContent-Type: application/json.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
keyword | string | Yes | — | The keyword to analyze |
country | string | No | "US" | Country code (e.g., “US”, “GB”, “DE”) |
language | string | No | "en" | Language code (e.g., “en”, “es”, “fr”) |
limit | integer | No | 100 | Maximum number of results to return |
Code Examples
Example Response
Results are sorted by search volume (highest to lowest). Related keywords may be
null if not available for a particular keyword.Response Fields
Top-Level Response
| Field | Type | Description |
|---|---|---|
success | boolean | Always true on successful requests |
result_count | integer | Number of keywords returned |
cost | float | Cost in USD for this request |
data | array | Array of keyword data objects |
Keyword Data Object
| Field | Type | Description |
|---|---|---|
keyword | string | The keyword term |
search_volume | integer | Monthly search volume |
cpc | float | Cost per click (advertising) |
competition | float | Competition level (0-100 scale) |
competition_level | string | Text representation: “low”, “medium”, “high” |
country | string | Country code |
language | string | Language code |
intent | string | Search intent: “commercial”, “informational”, “navigational”, “transactional” |
related_keywords | array | null | Related keywords or null if not available |
Pricing
The Keyword Data API is priced based on the number of results returned.Formula
Pricing Examples
| Results | Calculation | Cost |
|---|---|---|
| 0-33 | Minimum 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
Credits are charged upfront before processing the request based on the expected result count.
Full Refund on Failures
If the API returns an error, you will receive a full refund of the charged credits.
Error Codes
Error Response
| Status | Code | Description |
|---|---|---|
| 400 | INVALID_REQUEST | Invalid request format or malformed JSON |
| 400 | KEYWORD_REQUIRED | Missing required keyword parameter |
| 401 | INVALID_API_KEY | Authentication failed - invalid credentials |
| 401 | INVALID_CREDENTIALS | Invalid username or password |
| 401 | CREDENTIALS_EXPIRED | API credentials have expired |
| 402 | INSUFFICIENT_CREDITS | Your account does not have enough credits |
| 403 | IP_NOT_WHITELISTED | Request IP is not in your whitelist |
| 429 | RATE_LIMIT_EXCEEDED | Too many requests, please slow down |
| 500 | INTERNAL_ERROR | Server-side error occurred |
| 502 | WORKER_FAILED | Backend worker failed to process request |
| 504 | TIMEOUT | Request timed out |
Credits & Rate Limits
Credits
Each Keyword Data request consumes credits from your account balance based on the pricing formula above.
Rate Limits
API requests are rate-limited to ensure fair usage. Contact support if you need higher limits.
