{ "opencollection": "1.0.0", "info": { "name": "Account Account API PPC Research API API", "version": "v2" }, "request": { "auth": { "type": "basic", "username": "{{username}}", "password": "{{password}}" } }, "items": [ { "info": { "name": "PPC Research API", "type": "folder" }, "items": [ { "info": { "name": "Get Most Profitable PPC Keywords", "type": "http" }, "http": { "method": "GET", "url": "https://api.spyfu.com/apis/accounts_api/v2/ppc/getMostSuccessful", "params": [ { "name": "query", "value": "example.com", "type": "query", "description": "Domain or URL to analyze for successful PPC keywords." }, { "name": "includeTerms", "value": "", "type": "query", "description": "Comma-separated list of terms that must be present in the keyword." }, { "name": "includeAnyTerm", "value": "", "type": "query", "description": "Used with includeTerms. If true: match any term (OR). If false: require all terms (AND)." }, { "name": "excludeTerms", "value": "", "type": "query", "description": "Comma-separated list of terms to exclude from results (e.g., branded or irrelevant terms)." }, { "name": "excludeDomain", "value": "yourdomain.com", "type": "query", "description": "Domain to exclude from keyword results." }, { "name": "searchVolume.min", "value": "", "type": "query", "description": "Filter by the number of searches done this past month on Google." }, { "name": "searchVolume.max", "value": "", "type": "query", "description": "Filter by the number of searches done this past month on Google." }, { "name": "liveSearchVolume.min", "value": "", "type": "query", "description": "Filter by the number of searches done this past month on Google. This value is refreshed each month." }, { "name": "liveSearchVolume.max", "value": "", "type": "query", "description": "Filter by the number of searches done this past month on Google. This value is refreshed each month." }, { "name": "adCount.min", "value": "", "type": "query", "description": "Filter by the number of total advertisers" }, { "name": "adCount.max", "value": "", "type": "query", "description": "Filter by the number of total advertisers" }, { "name": "keywordDifficulty.min", "value": "", "type": "query", "description": "Filter by how difficult it is to rank on this keyword. This can also be called Ranking Difficulty." }, { "name": "keywordDifficulty.max", "value": "", "type": "query", "description": "Filter by how difficult it is to rank on this keyword. This can also be called Ranking Difficulty." }, { "name": "costPerClick.min", "value": "", "type": "query", "description": "Filter by the average cost per click. This will use the keyword matching option selected in `costPerClickOption`" }, { "name": "costPerClick.max", "value": "", "type": "query", "description": "Filter by the average cost per click. This will use the keyword matching option selected in `costPerClickOption`" }, { "name": "costPerClickOption", "value": "Broad", "type": "query", "description": "Cost per click keyword matching option to filter results by." }, { "name": "clicks.min", "value": "", "type": "query", "description": "Filter by the number of total monthly clicks on the SERP for this keyword--organic and paid." }, { "name": "clicks.max", "value": "", "type": "query", "description": "Filter by the number of total monthly clicks on the SERP for this keyword--organic and paid." }, { "name": "isQuestion", "value": "false", "type": "query", "description": "Filter on if the keyword is a question." }, { "name": "isTransactionalIntent", "value": "false", "type": "query", "description": "Filter on if the keyword has transactional intent." }, { "name": "mobileSearchesPercentage.min", "value": "", "type": "query", "description": "Filter by the percentage of searches that are done on mobile devices." }, { "name": "mobileSearchesPercentage.max", "value": "", "type": "query", "description": "Filter by the percentage of searches that are done on mobile devices." }, { "name": "desktopSearchesPercentage.min", "value": "", "type": "query", "description": "Filter by the percentage of searches that are done on desktop devices." }, { "name": "desktopSearchesPercentage.max", "value": "", "type": "query", "description": "Filter by the percentage of searches that are done on desktop devices." }, { "name": "notClickedSearchesPercentage.min", "value": "", "type": "query", "description": "Filter by the percentage of searches that are not clicked.\nSome keyword searches supply clear information in a featured snippet or similar displays. They don't require a click to get the information. Those will have higher percentages in this metric." }, { "name": "notClickedSearchesPercentage.max", "value": "", "type": "query", "description": "Filter by the percentage of searches that are not clicked.\nSome keyword searches supply clear information in a featured snippet or similar displays. They don't require a click to get the information. Those will have higher percentages in this metric." }, { "name": "paidClickSearchPercentage.min", "value": "", "type": "query", "description": "Filter by the percentage of clicks that go to ads." }, { "name": "paidClickSearchPercentage.max", "value": "", "type": "query", "description": "Filter by the percentage of clicks that go to ads." }, { "name": "organicClicksSearchPercentage.min", "value": "", "type": "query", "description": "Filter by the percentage of clicks that go to organic results, not ads." }, { "name": "organicClicksSearchPercentage.max", "value": "", "type": "query", "description": "Filter by the percentage of clicks that go to organic results, not ads." }, { "name": "monthlyCost.min", "value": "", "type": "query", "description": "Filter by the monthly cost of the keyword. This will use the keyword matching option selected in `monthlyCostOption`" }, { "name": "monthlyCost.max", "value": "", "type": "query", "description": "Filter by the monthly cost of the keyword. This will use the keyword matching option selected in `monthlyCostOption`" }, { "name": "monthlyCostOption", "value": "Broad", "type": "query", "description": "Monthly Cost keyword matching option to filter results by." }, { "name": "rankingHomepages.min", "value": "", "type": "query", "description": "Homepages on the SERP range to filter results by." }, { "name": "rankingHomepages.max", "value": "", "type": "query", "description": "Homepages on the SERP range to filter results by." }, { "name": "wordCount.min", "value": "", "type": "query", "description": "Filter by the number of words in the keyword." }, { "name": "wordCount.max", "value": "", "type": "query", "description": "Filter by the number of words in the keyword." }, { "name": "pageSize", "value": "5", "type": "query", "description": "The maximum number of rows returned." }, { "name": "countryCode", "value": "US", "type": "query", "description": "Country market to search. Specifically, this maps to the Google domain version to query against (e.g., google.com for US, google.de for Germany, etc.). All Countries" }, { "name": "sortBy", "value": "SearchVolume", "type": "query", "description": "Column to sort by." }, { "name": "sortOrder", "value": "Descending", "type": "query", "description": "Order to sort the results." }, { "name": "startingRow", "value": "1", "type": "query", "description": "Row number to start the results with." }, { "name": "adultFilter", "value": "true", "type": "query", "description": "Exclude adult keywords considered unsafe for work." }, { "name": "onlyAdultKeywords", "value": "false", "type": "query", "description": "Only include adult keywords considered unsafe for work." } ] }, "docs": "Returns the most successful paid search keywords for a domain based on search volume and competitive strength. This endpoint provides the highest-performing PPC keywords from the past year to identify proven advertising opportunities and optimize keyword strategy.\n\n[Visualize this API live on SpyFu](https://www.spyfu.com/ppc/keywords?query=example.com)" }, { "info": { "name": "Get New PPC Keywords", "type": "http" }, "http": { "method": "GET", "url": "https://api.spyfu.com/apis/accounts_api/v2/ppc/getNewKeywords", "params": [ { "name": "query", "value": "example.com", "type": "query", "description": "Domain or URL to analyze for new PPC keywords." }, { "name": "includeTerms", "value": "", "type": "query", "description": "Comma-separated list of terms that must be present in the keyword." }, { "name": "includeAnyTerm", "value": "", "type": "query", "description": "Used with includeTerms. If true: match any term (OR). If false: require all terms (AND)." }, { "name": "excludeTerms", "value": "", "type": "query", "description": "Comma-separated list of terms to exclude from results (e.g., branded or irrelevant terms)." }, { "name": "excludeDomain", "value": "yourdomain.com", "type": "query", "description": "Domain to exclude from keyword results." }, { "name": "searchVolume.min", "value": "", "type": "query", "description": "Filter by the number of searches done this past month on Google." }, { "name": "searchVolume.max", "value": "", "type": "query", "description": "Filter by the number of searches done this past month on Google." }, { "name": "liveSearchVolume.min", "value": "", "type": "query", "description": "Filter by the number of searches done this past month on Google. This value is refreshed each month." }, { "name": "liveSearchVolume.max", "value": "", "type": "query", "description": "Filter by the number of searches done this past month on Google. This value is refreshed each month." }, { "name": "adCount.min", "value": "", "type": "query", "description": "Filter by the number of total advertisers" }, { "name": "adCount.max", "value": "", "type": "query", "description": "Filter by the number of total advertisers" }, { "name": "keywordDifficulty.min", "value": "", "type": "query", "description": "Filter by how difficult it is to rank on this keyword. This can also be called Ranking Difficulty." }, { "name": "keywordDifficulty.max", "value": "", "type": "query", "description": "Filter by how difficult it is to rank on this keyword. This can also be called Ranking Difficulty." }, { "name": "costPerClick.min", "value": "", "type": "query", "description": "Filter by the average cost per click. This will use the keyword matching option selected in `costPerClickOption`" }, { "name": "costPerClick.max", "value": "", "type": "query", "description": "Filter by the average cost per click. This will use the keyword matching option selected in `costPerClickOption`" }, { "name": "costPerClickOption", "value": "Broad", "type": "query", "description": "Cost per click keyword matching option to filter results by." }, { "name": "clicks.min", "value": "", "type": "query", "description": "Filter by the number of total monthly clicks on the SERP for this keyword--organic and paid." }, { "name": "clicks.max", "value": "", "type": "query", "description": "Filter by the number of total monthly clicks on the SERP for this keyword--organic and paid." }, { "name": "isQuestion", "value": "false", "type": "query", "description": "Filter on if the keyword is a question." }, { "name": "isTransactionalIntent", "value": "false", "type": "query", "description": "Filter on if the keyword has transactional intent." }, { "name": "mobileSearchesPercentage.min", "value": "", "type": "query", "description": "Filter by the percentage of searches that are done on mobile devices." }, { "name": "mobileSearchesPercentage.max", "value": "", "type": "query", "description": "Filter by the percentage of searches that are done on mobile devices." }, { "name": "desktopSearchesPercentage.min", "value": "", "type": "query", "description": "Filter by the percentage of searches that are done on desktop devices." }, { "name": "desktopSearchesPercentage.max", "value": "", "type": "query", "description": "Filter by the percentage of searches that are done on desktop devices." }, { "name": "notClickedSearchesPercentage.min", "value": "", "type": "query", "description": "Filter by the percentage of searches that are not clicked.\nSome keyword searches supply clear information in a featured snippet or similar displays. They don't require a click to get the information. Those will have higher percentages in this metric." }, { "name": "notClickedSearchesPercentage.max", "value": "", "type": "query", "description": "Filter by the percentage of searches that are not clicked.\nSome keyword searches supply clear information in a featured snippet or similar displays. They don't require a click to get the information. Those will have higher percentages in this metric." }, { "name": "paidClickSearchPercentage.min", "value": "", "type": "query", "description": "Filter by the percentage of clicks that go to ads." }, { "name": "paidClickSearchPercentage.max", "value": "", "type": "query", "description": "Filter by the percentage of clicks that go to ads." }, { "name": "organicClicksSearchPercentage.min", "value": "", "type": "query", "description": "Filter by the percentage of clicks that go to organic results, not ads." }, { "name": "organicClicksSearchPercentage.max", "value": "", "type": "query", "description": "Filter by the percentage of clicks that go to organic results, not ads." }, { "name": "monthlyCost.min", "value": "", "type": "query", "description": "Filter by the monthly cost of the keyword. This will use the keyword matching option selected in `monthlyCostOption`" }, { "name": "monthlyCost.max", "value": "", "type": "query", "description": "Filter by the monthly cost of the keyword. This will use the keyword matching option selected in `monthlyCostOption`" }, { "name": "monthlyCostOption", "value": "Broad", "type": "query", "description": "Monthly Cost keyword matching option to filter results by." }, { "name": "rankingHomepages.min", "value": "", "type": "query", "description": "Homepages on the SERP range to filter results by." }, { "name": "rankingHomepages.max", "value": "", "type": "query", "description": "Homepages on the SERP range to filter results by." }, { "name": "wordCount.min", "value": "", "type": "query", "description": "Filter by the number of words in the keyword." }, { "name": "wordCount.max", "value": "", "type": "query", "description": "Filter by the number of words in the keyword." }, { "name": "pageSize", "value": "5", "type": "query", "description": "The maximum number of rows returned." }, { "name": "countryCode", "value": "US", "type": "query", "description": "Country to get results for." }, { "name": "sortBy", "value": "SearchVolume", "type": "query", "description": "Column to sort by." }, { "name": "sortOrder", "value": "Descending", "type": "query", "description": "Sort direction for results." }, { "name": "startingRow", "value": "1", "type": "query", "description": "Row number to start the results with." }, { "name": "adultFilter", "value": "true", "type": "query", "description": "Exclude adult keywords considered unsafe for work." }, { "name": "onlyAdultKeywords", "value": "false", "type": "query", "description": "Only include adult keywords considered unsafe for work." } ] }, "docs": "Returns newly acquired paid search keywords that a domain has started advertising on for the first time. This endpoint identifies recent keyword expansions and emerging advertising strategies to reveal new market opportunities and competitive moves.\n\n[Visualize this API live on SpyFu](https://www.spyfu.com/ppc/keywords?query=example.com)" }, { "info": { "name": "Get Ads for Domain", "type": "http" }, "http": { "method": "GET", "url": "https://api.spyfu.com/apis/accounts_api/v2/ppc/getPaidSerps", "params": [ { "name": "query", "value": "example.com", "type": "query", "description": "Domain to analyze for paid search presence." }, { "name": "includeTerms", "value": "", "type": "query", "description": "Comma-separated list of terms that must be present in the keyword." }, { "name": "includeAnyTerm", "value": "", "type": "query", "description": "Used with includeTerms. If true: match any term (OR). If false: require all terms (AND)." }, { "name": "excludeTerms", "value": "", "type": "query", "description": "Comma-separated list of terms to exclude from results (e.g., branded or irrelevant terms)." }, { "name": "searchVolume.min", "value": "1000", "type": "query", "description": "Filter to keywords where monthly search volume (Google) is ≥ this value." }, { "name": "searchVolume.max", "value": "50000", "type": "query", "description": "Filter to keywords where monthly search volume (Google) is ≤ this value." }, { "name": "adCount.min", "value": "3", "type": "query", "description": "Filter to keywords where the number of distinct advertisers observed over the last 14 months is ≥ this value." }, { "name": "adCount.max", "value": "25", "type": "query", "description": "Filter to keywords where the number of distinct advertisers observed over the last 14 months is ≤ this value." }, { "name": "keywordDifficulty.min", "value": "30", "type": "query", "description": "Filter to keywords where the keyword difficulty score is ≥ this value (0-100; higher = harder to rank)." }, { "name": "keywordDifficulty.max", "value": "70", "type": "query", "description": "Filter to keywords where the keyword difficulty score is ≤ this value (0-100; higher = harder to rank)." }, { "name": "pageSize", "value": "5", "type": "query", "description": "The maximum number of rows returned." }, { "name": "excludeHomepageKeywords", "value": "false", "type": "query", "description": "If true, exclude keywords where the domain/URL's homepage (root domain, e.g., example.com) ranks; if false, include all." }, { "name": "countryCode", "value": "US", "type": "query", "description": "Country market to search. Specifically, this maps to the Google domain version to query against (e.g., google.com for US, google.de for Germany, etc.). All Countries" }, { "name": "sortBy", "value": "SearchVolume", "type": "query", "description": "Column to sort results by." }, { "name": "sortOrder", "value": "Descending", "type": "query", "description": "Order to sort the results." }, { "name": "startingRow", "value": "1", "type": "query", "description": "Row number to start the results with." }, { "name": "adultFilter", "value": "true", "type": "query", "description": "Exclude adult keywords considered unsafe for work." }, { "name": "onlyAdultKeywords", "value": "false", "type": "query", "description": "Only include adult keywords considered unsafe for work." } ] }, "docs": "Returns paid search results (ads) that a domain appears in across Google search. This endpoint reveals the competitive paid landscape to identify advertising opportunities and understand competitor PPC strategies.\n\n[Visualize this API live on SpyFu](https://www.spyfu.com/ppc/keywords/domain?query=example.com)" } ] } ], "bundled": true }