Long-tail keywords are one of the most potent strategies for all marketers to go after. But what kind of keywords should you focus on? One answer to that question is: questions!
This endpoint generates a set of the most commonly searched Google questions related to your topic of choice. Our AI will search its massive database of entries to look for phrases that people continuously inquire about. This can be a great source of inspiration for you to build your content around.
1 token/credit per request
If the analyze
flag is set to true
, the pricing change to 1 token/credit per keyword
found if it is not cached in our database (see details below).
> POST https://api.jsonrepo.com/v1/seo/ai_search_questions
Field | Description |
---|---|
X-API-Key | Required Your API Key |
Field | Type | Description |
---|---|---|
input | String | Required Format: English alphanumerical string.Size: 3 <= input <= 30 |
analyze | Boolean | Optional Get Google search dataDefault: false |
limit | Integer | Optional The number of maximum recommendations to be generated by our AIDefault: 15 Range: 1 <= limit <= 30 |
When results are returned to you, they are by default provided without Google's search volume, cpc or competition data. The cost for the recommendations without the search data is 1 token/credit per request
.
In order to get Google search information, you need to set analyze
to true
. This will change the pricing to 1 token/credit per keyword
IF we don't have the keyword in our cache.
Say you want to get 15
questions based on some input
term. Simply issue a request with the default parameters in place and we'll return a JSON array with 15 entries in it and you'll be charged 1 token/credit
in total.
If you want to also get the Google search data by setting analyze
to true
, the result from this endpoint will be piped into our Keyword Checker endpoint and you will be charged 1 token/credit per keyword
.
However, Because AI output is non-deterministic, the endpoint may return a couple duplicate entries between requests. 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 with analyze = true
is:
(1 * 15) - number of cached keywords
While this may seem complicated, in reality, it is far cheaper than most other alternatives out there and it enables you to do research before requesting data for entries you might not like.
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` questions that are related to the topic `seo`
curl -X POST https://api.jsonrepo.com/v1/seo/ai_search_questions \
-H "X-API-Key: {YOUR_API_KEY_HERE}" \
--data-urlencode "input=seo" \
--data-urlencode "limit=3"
// Server Response
{
"http_code": 200,
"http_message": "Ok",
"timestamp": 1731791541,
"message": "Successful execution.",
"payload": {
"keywords": {
"input": {
"input": "seo"
},
"output": [
{
"origin": "generator",
"keyword": "what is seo",
"region": "global",
"length": 11,
"difficulty": "",
"volume": "",
"competition": "",
"cpc": ""
},
{
"origin": "generator",
"keyword": "how to improve seo",
"region": "global",
"length": 18,
"difficulty": "",
"volume": "",
"competition": "",
"cpc": ""
},
{
"origin": "generator",
"keyword": "seo best practices",
"region": "global",
"length": 18,
"difficulty": "",
"volume": "",
"competition": "",
"cpc": ""
}
]
}
}
}
// Generate `3` questions that are related to the topic `swimming`
// Also grab Google search data
curl -X POST https://api.jsonrepo.com/v1/seo/ai_search_questions \
-H "X-API-Key: {YOUR_API_KEY_HERE}" \
--data-urlencode "input=swimming" \
--data-urlencode "limit=3"
--data-urlencode "analyze=true"
// Server Response
{
"http_code": 200,
"http_message": "Ok",
"timestamp": 1731791636,
"message": "Successful execution.",
"payload": {
"keywords": {
"input": {
"input": "swimming"
},
"output": [
{
"origin": "remote",
"keyword": "how to learn swimming",
"region": "global",
"length": 21,
"difficulty": 2,
"volume": 5400,
"competition": 9,
"cpc": "0.41"
},
{
"origin": "remote",
"keyword": "benefits of swimming",
"region": "global",
"length": 20,
"difficulty": 2,
"volume": 22200,
"competition": 3,
"cpc": "0.01"
},
{
"origin": "remote",
"keyword": "swimming for beginners",
"region": "global",
"length": 22,
"difficulty": 2,
"volume": 2900,
"competition": 9,
"cpc": "0.34"
}
]
}
}
}
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 `input` field
{
"http_code": 400,
"http_message": "Bad Request",
"timestamp": 1731791691,
"message": "'input' must be provided as an alphanumeric string of size 3 to 30 characters.",
"payload": []
}