Keyword Gap Analysis
Find keywords that your competitors rank for but your domain doesn't — the classic SEO content-gap analysis. Compare your domain against up to 5 competitors.
Request body:
domain— your domain to analyzecompetitors— array of 1–5 competitor domainslocation_id— location for the analysispage— optional page number (Premium, Agency, Custom and API Pro plans; other plans always get page 1)
The response holds one result per competitor: the keywords that competitor ranks for and your domain does not, ordered by the competitor's position, best first. Each keyword includes search volume, keyword difficulty, CPC and the competitor's position.
Limits
Each competitor counts as one lookup towards your Keyword lookups limit, unless the same domain, competitor, location and page were requested in the last 24 hours.
Authorization
ApiKeyAuth API token issued for your Mangools account, sent as an API key in the x-access-token HTTP header. This is NOT a standard RFC 6750 Authorization: Bearer <token> header. Auto-generated clients should be configured to send the token in x-access-token accordingly.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
curl -X POST "https://api.mangools.com/v3/kwfinder/gap-analysis" \ -H "Content-Type: application/json" \ -d '{ "domain": "mangools.com", "competitors": [ "example.org", "example.net" ], "location_id": 2840 }'{
"isAllowedPagination": true,
"page": 1,
"resultsSize": 1000,
"mode": "domains",
"results": [
{
"domain": "example.org",
"totalCount": 5432,
"originalItemsCount": 5432,
"keywords": [
{
"_id": "005de7e7771450763339653e918778ef",
"cpc": 0.813559,
"kw": "seo solutions",
"lid": 0,
"msv": [
[
2015,
8,
590
]
],
"ppc": 15,
"seo": 13,
"seo_ts": 1590868935,
"sv": 930,
"svn": 930,
"svs": 0,
"ts": 1592997076,
"position": 3
}
]
}
]
}{
"error": {
"type": "AuthError",
"message": "Invalid API Key"
}
}{
"error": {
"type": "RateLimit",
"message": "Too many requests in short period. Wait retry_after seconds (also sent as the Retry-After header), then send this same request again. Send requests one at a time, not in parallel.",
"retry_after": 30
}
}