Features Pricing FAQ API Docs Blog
Signup / Login
Select Page

AI Keyword Finder API

Description

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.

Endpoint Cost

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

Endpoint

> POST https://api.jsonrepo.com/v1/seo/ai_keyword_finder

Headers

Field Description
X-API-Key Required Your API Key

Parameters

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 AI
Default: 10
Range: 1 <= limit <= 20

How This Endpoint Works

This endpoint has 3 different mode options it can operate under:

  1. start: Look for keywords that starts with your input.
  2. end: Look for keywords that ends with your input.
  3. 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.

Mode Limitations:

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.

Understanding Endpoint Cost:

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.

Response

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.

Example

// 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"
                }
            ]
        }
    }
}

Errors

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": []
}