Skip to main content
Glama

DataForSEO MCP Server

Apache 2.0
627

dataforseo_labs_google_page_intersection

Identify intersecting keywords for specified webpages in Google SERPs, analyze search volume, CPC, and traffic data. Discover shared or exclusive keywords across competitor pages to refine SEO and paid search strategies.

Instructions

This endpoint will provide you with the keywords for which specified pages rank within the same SERP. You will get search volume, competition, cost-per-click and impressions data on each intersecting keyword. Along with that, you will get data on SERP elements that specified pages rank for in search results, as well as the estimated traffic volume and cost of ad traffic. Page Intersection endpoint supports organic, paid, local pack and featured snippet results.

Find keywords several webpages rank for: If you would like to get the keywords several pages rank for, you need to specify webpages only in the pages object. This way, you will receive intersected ranked keywords for the specified URLs.

Find keywords your competitors rank for but you do not: If you would like to receive all keywords several pages rank for, but particular pages do not, you need to use the exclude_pages array as well. This way you will receive the keywords for which the URLs from the pages object rank for, but the URLs from the exclude_pages array do not

Input Schema

NameRequiredDescriptionDefault
exclude_pagesNoURLs of pages you want to exclude optional field you can set up to 10 pages in this array if you use this array, results will contain the keywords for which URLs from the pages object rank, but URLs from exclude_pages array do not; note that if you specify this field, the results will be based on the keywords any URL from pages ranks for regardless of intersections between them. However, you can set intersection_mode to intersect and results will contain the keywords all URLs from pages rank for in the same SERP and URLs from exclude_pages do not. use a wildcard (‘*’) character to specify the search pattern example: "exclude_pages": [ "https://www.apple.com/iphone/*", "https://dataforseo.com/apis/*", "https://www.microsoft.com/en-us/industry/services/" ]
filtersNoyou can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters merge operator must be a string and connect two other arrays, availible values: or, and. example: ["keyword_data.keyword_info.search_volume","in",[100,1000]] [["intersection_result.1.etv",">",0],"and",["intersection_result.2.description","like","%goat%"]] [["keyword_data.keyword_info.search_volume",">",100],"and",[["intersection_result.1.description","like","%goat%"],"or",["intersection_result.2.type","=","organic"]]]
ignore_synonymsNoignore highly similar keywords, if set to true, results will be more accurate
include_clickstream_dataNoInclude or exclude data from clickstream-based metrics in the result
intersection_modeNoindicates whether to intersect keywords optional field use this field to intersect or merge results for the specified URLs possible values: union, intersect union – results are based on all keywords any URL from pages rank for; intersect – results are based on the keywords all URLs from pages rank for in the same SERP: by default, results are based on the intersect mode if you specify only pages array. If you specify exclude_pages as well, results are based on the union mode
language_codeNolanguage code required field example: enen
limitNoMaximum number of keywords to return
location_nameNofull name of the location required field in format "Country" example: United KingdomUnited States
offsetNooffset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords
order_byNoresults sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order you should use a comma to set up a sorting parameter example: ["keyword_data.keyword_info.competition,desc"] default rule: ["keyword_data.keyword_info.search_volume,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["intersection_result.1.rank_group,asc","intersection_result.2.rank_absolute,asc"]
pagesYespages array required field you can set up to 20 pages in this object the pages should be specified with absolute URLs (including http:// or https://) if you specify a single page here, we will return results only for this page; you can also use a wildcard ('*') character to specify the search pattern example: "example.com" search for the exact URL "example.com/eng/*" search for the example.com page and all its related URLs which start with '/eng/', such as "example.com/eng/index.html" and "example.com/eng/help/", etc. note: a wilcard should be placed after the slash ('/') character in the end of the URL, it is not possible to place it after the domain in the following way: https://dataforseo.com* use https://dataforseo.com/* instead

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "exclude_pages": { "description": "URLs of pages you want to exclude\noptional field\nyou can set up to 10 pages in this array\nif you use this array, results will contain the keywords for which URLs from the pages object rank, but URLs from exclude_pages array do not;\nnote that if you specify this field, the results will be based on the keywords any URL from pages ranks for regardless of intersections between them. However, you can set intersection_mode to intersect and results will contain the keywords all URLs from pages rank for in the same SERP and URLs from exclude_pages do not.\nuse a wildcard (‘*’) character to specify the search pattern\nexample:\n\"exclude_pages\": [\n\"https://www.apple.com/iphone/*\",\n\"https://dataforseo.com/apis/*\",\n\"https://www.microsoft.com/en-us/industry/services/\"\n]", "items": { "type": "string" }, "type": "array" }, "filters": { "anyOf": [ { "items": [ { "type": "string" }, { "enum": [ "regex", "not_regex", "<", "<=", ">", ">=", "=", "<>", "in", "not_in", "ilike", "not_ilike", "like", "not_like" ], "type": "string" }, { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "boolean" }, { "type": "array" } ] } ], "maxItems": 3, "minItems": 3, "type": "array" }, { "items": { "anyOf": [ { "$ref": "#/properties/filters" }, { "enum": [ "and", "or" ], "type": "string" } ] }, "maxItems": 7, "type": "array" } ], "description": "you can add several filters at once (8 filters maximum)\n you should set a logical operator and, or between the conditions\n the following operators are supported:\n regex, not_regex, <, <=, >, >=, =, <>, in, not_in, match, not_match, ilike, not_ilike, like, not_like\n you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters\n merge operator must be a string and connect two other arrays, availible values: or, and.\n example:\n [\"keyword_data.keyword_info.search_volume\",\"in\",[100,1000]]\n [[\"intersection_result.1.etv\",\">\",0],\"and\",[\"intersection_result.2.description\",\"like\",\"%goat%\"]]\n [[\"keyword_data.keyword_info.search_volume\",\">\",100],\"and\",[[\"intersection_result.1.description\",\"like\",\"%goat%\"],\"or\",[\"intersection_result.2.type\",\"=\",\"organic\"]]]" }, "ignore_synonyms": { "default": true, "description": "ignore highly similar keywords, if set to true, results will be more accurate", "type": "boolean" }, "include_clickstream_data": { "default": false, "description": "Include or exclude data from clickstream-based metrics in the result", "type": "boolean" }, "intersection_mode": { "description": "indicates whether to intersect keywords\noptional field\nuse this field to intersect or merge results for the specified URLs\npossible values: union, intersect\n\nunion – results are based on all keywords any URL from pages rank for;\n\nintersect – results are based on the keywords all URLs from pages rank for in the same SERP:\n\nby default, results are based on the intersect mode if you specify only pages array. If you specify exclude_pages as well, results are based on the union mode", "enum": [ "union", "intersect" ], "type": "string" }, "language_code": { "default": "en", "description": "language code\n required field\n example:\n en", "type": "string" }, "limit": { "default": 10, "description": "Maximum number of keywords to return", "maximum": 1000, "minimum": 1, "type": "number" }, "location_name": { "default": "United States", "description": "full name of the location\nrequired field\nin format \"Country\"\nexample:\nUnited Kingdom", "type": "string" }, "offset": { "description": "offset in the results array of returned keywords\n optional field\n default value: 0\n if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords", "minimum": 0, "type": "number" }, "order_by": { "description": "results sorting rules\noptional field\nyou can use the same values as in the filters array to sort the results\npossible sorting types:\nasc – results will be sorted in the ascending order\ndesc – results will be sorted in the descending order\nyou should use a comma to set up a sorting parameter\nexample:\n[\"keyword_data.keyword_info.competition,desc\"]\ndefault rule:\n[\"keyword_data.keyword_info.search_volume,desc\"]\nnote that you can set no more than three sorting rules in a single request\nyou should use a comma to separate several sorting rules\nexample:\n[\"intersection_result.1.rank_group,asc\",\"intersection_result.2.rank_absolute,asc\"]", "items": { "type": "string" }, "type": "array" }, "pages": { "description": "pages array\nrequired field\nyou can set up to 20 pages in this object\nthe pages should be specified with absolute URLs (including http:// or https://)\nif you specify a single page here, we will return results only for this page;\nyou can also use a wildcard ('*') character to specify the search pattern\nexample:\n\"example.com\"\nsearch for the exact URL\n\"example.com/eng/*\"\nsearch for the example.com page and all its related URLs which start with '/eng/', such as \"example.com/eng/index.html\" and \"example.com/eng/help/\", etc.\nnote: a wilcard should be placed after the slash ('/') character in the end of the URL, it is not possible to place it after the domain in the following way:\nhttps://dataforseo.com*\nuse https://dataforseo.com/* instead", "items": { "type": "string" }, "type": "array" } }, "required": [ "pages" ], "type": "object" }
Install Server

Other Tools from DataForSEO MCP Server

Related Tools

    MCP directory API

    We provide all the information about MCP servers via our MCP API.

    curl -X GET 'https://glama.ai/api/mcp/v1/servers/ravinwebsurgeon/seo-mcp'

    If you have feedback or need assistance with the MCP directory API, please join our Discord server