Finding SEO keywords is a tedious and time consuming problem that many marketers and product owners have to constantly engage with. Our AI Keyword Finder endpoint helps you fix that problem in an automated manner.
We use a variety of different AI models to provide you with a set of mode
options. Each one of these options will significantly change how the end result will look like.
1 token/credit per unique keyword
- Unique keywords are keywords that are not in our local cache.
Minimum cost per execution is capped at 1 token/credit per request
> POST https://api.jsonrepo.com/v1/seo/ai_keyword_finder
Field | Description |
---|---|
X-API-Key | Required Your API Key |
Field | Type | Description |
---|---|---|
mode | String | Required Accepts: start , end or lsi |
input | String | Required Format: English alphanumerical string.Maximum string length of 3 words . |
limit | Integer | Optional The number of maximum recommendations to be generated by our AIDefault: 10 Range: 1 <= limit <= 20 |
This endpoint has 3 different mode
options it can operate under:
start
: Look for keywords that starts with your input
.end
: Look for keywords that ends with your input
.lsi
: Look for keywords adjacent to your input
.start
and end
are basically wildcard search modes, meanwhile lsi
is adjacency search based on semantic relevance.
Due to the nature of how AI recommendations work, it is important to remember that there is a finite number of outputs such a system can provide per input
. Therefore, the start
and end
modes will never be as "creative" as the other options.
Say you want to get 10
recommendations for keywords that starts with some seed phrase. Simply fire a request to our servers with mode
set to start
and add the phrase into input
. The AI will then do its best to satisfy your requirements.
However, Because AI output is non-deterministic, the endpoint may return a couple of duplicate keywords if you run the same request twice. In order for you to not get charged for those duplicates, we deduct from the total cost any keywords that exist in our cache. That way your maximum cost is:
(1 * 10) - number of cached keywords
While this may seem complicated, in reality, it is far cheaper than most other alternatives out there as it maintains creative output without burdening you with high running costs.
A successful request will result in a populated payload
field with the expected output.
Response Time:
AI output is bound by the efficiency of the model and the prompt enabling it. The bigger your
limit
is, the longer the request will take to process. Please be patient as processing the information could sometimes take between 1 and 5 seconds.
// Generate `3` `LSI` keywords based on `seo tools`
curl -X POST https://api.jsonrepo.com/v1/seo/ai_keyword_finder \
-H "X-API-Key: {YOUR_API_KEY_HERE}" \
--data-urlencode "input=seo tools" \
--data-urlencode "mode=lsi" \
--data-urlencode "limit=3"
// Server Response
{
"http_code": 200,
"http_message": "Ok",
"timestamp": 1732453024,
"message": "Successful execution.",
"payload": {
"keywords": {
"input": {
"mode": "lsi",
"input": "seo tools",
"limit": 3
},
"output": [
{
"id": 3050,
"keyword": "search engine optimizer",
"volume": 823000,
"competition": 16,
"cpc": 0.46,
"trend": [
{
"year": 2023,
"month": "November",
"value": 823000
},
// 12 months data
...
{
"year": 2024,
"month": "October",
"value": 823000
}
],
"last_updated": "24 November 2024",
"region": "global",
"length": 23,
"difficulty": 3,
"volume_score": 5,
"ad_score": 5,
"origin": "cache"
},
{
"id": 3051,
"keyword": "digital marketing tools",
"volume": 18100,
"competition": 21,
"cpc": 0.45,
"trend": [...],
"last_updated": "24 November 2024",
"region": "global",
"length": 23,
"difficulty": 2,
"volume_score": 4,
"ad_score": 3,
"origin": "cache"
},
{
"id": 2348,
"keyword": "seo software",
"volume": 9900,
"competition": 13,
"cpc": 1.17,
"trend": [...],
"last_updated": "24 November 2024",
"region": "global",
"length": 12,
"difficulty": 2,
"volume_score": 3,
"ad_score": 3,
"origin": "remote"
}
]
}
}
}
A failed request will result in an error output as detailed in Error Rules. If the endpoint validation fails due to missing, badly formatted or invalid parameters, the endpoint will return HTTP code 400
along with a message
detailing the error.
// Request without `mode` field
{
"http_code": 400,
"http_message": "Bad Request",
"timestamp": 1729819581,
"message": "'mode' parameter must be provided with one of the following values: start, end, lsi.",
"payload": []
}