Select Page

Keyword Merge API

Description

Keyword merging can be an extremely powerful tool in the hands of any SEO veteran. The idea is to take multiple lists of words and combining them together to produce matches that are highly focused on the search niche.

Example

Assume that you have the following lists:

  • List A containing the words: "best", "biggest", and "fastest".
  • List B containing the words: "seo", "keywords", and "research".
  • List C containing the words: "software", "platform" and "api".

By combining these 3 lists you can generate the following keywords: "best seo software", "best seo platform", "best seo api", ... , "fastest keywords platform", etc.

Endpoint Cost

1 token/credit per request

If the analyze flag is set to true, the pricing changes to 1 token/credit per keyword.

Endpoint

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

Headers

Field Description
X-API-Key Required Your API Key

Parameters

Field Type Description
list_a[] String[] Optional An array of word strings
Maximum of 20 keywords in the array
list_b[] String[] Optional An array of word strings
Maximum of 20 keywords in the array
list_c[] String[] Optional An array of word strings
Maximum of 20 keywords in the array
analyze Boolean Optional Include Google search data
Default: false

WARNING - Restrictions:

At least one list has to be provided. Maximum of 20 keywords per list.

If the number of combined rows generated exceeds 1000, the endpoint will fail.

If analyze is set to true the maximum total rows cannot exceed 400.

If you fill all 3 lists with 20 items each, the end result will be 20x20x20 = 8000 which we are not able to process at this time. Please adhere to the limit restrictions.

Response

A successful request will result in a populated payload field with the expected output. If analyze is set to true the endpoint will also return Google search data for the keywords with cpc denominated in USD and the region is always set to global.

Example

Request Example
// Combine the list of keywords from the previous example

curl -X POST https://api.jsonrepo.com/v1/seo/keyword_merge \
-H "X-API-Key: {YOUR_API_KEY_HERE}" \
--data-urlencode "list_a[]=best" \
--data-urlencode "list_b[]=seo" \
--data-urlencode "list_b[]=keywords" \ 
--data-urlencode "list_c[]=software" \
--data-urlencode "list_c[]=api" \
--data-urlencode "analyze=true" 
// Server Response

{
    "http_code": 200,
    "http_message": "Ok",
    "timestamp": 1731741193,
    "message": "Successful execution.",
    "payload": {
        "keywords": {
            "input": {
                "list_a": [
                    "best"
                ],
                "list_b": [
                    "seo",
                    "keywords"
                ],
                "list_c": [
                    "software",
                    "api"
                ]
            },
            "output": [
                {
                    "origin": "cache",
                    "keyword": "best seo software",
                    "region": "global",
                    "length": 17,
                    "difficulty": 2,
                    "volume": 2400,
                    "competition": 13,
                    "cpc": 1.85
                },
                {
                    "origin": "cache",
                    "keyword": "best seo api",
                    "region": "global",
                    "length": 12,
                    "difficulty": 2,
                    "volume": 90,
                    "competition": 9,
                    "cpc": 2.92
                },
                {
                    "origin": "cache",
                    "keyword": "best keywords software",
                    "region": "global",
                    "length": 22,
                    "difficulty": 1,
                    "volume": 260,
                    "competition": 3,
                    "cpc": 1.42
                },
                {
                    "origin": "cache",
                    "keyword": "best keywords api",
                    "region": "global",
                    "length": 17,
                    "difficulty": 1,
                    "volume": 0,
                    "competition": 0,
                    "cpc": 0
                }
            ]
        }
    }
}

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.

Error Response
// Request with all 3 lists empty

{
    "http_code": 400,
    "http_message": "Bad Request",
    "timestamp": 1731217238,
    "message": "No words provided in any of the lists.",
    "payload": []
}