v1

latestOpenAPI 3.1.02026-07-24490622.0 KB
PPC Research API

Get Most Profitable PPC Keywords

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.

Visualize this API live on SpyFu

get/v2/ppc/getMostSuccessful

Query parameters

querystring required
Example:example.com

Domain or URL to analyze for successful PPC keywords.

includeTermsstring
Example:hosting,domain,website

Comma-separated list of terms that must be present in the keyword.

includeAnyTermboolean

Used with includeTerms. If true: match any term (OR). If false: require all terms (AND).

excludeTermsstring
Example:free,cheap,discount

Comma-separated list of terms to exclude from results (e.g., branded or irrelevant terms).

excludeDomainstring
Example:yourdomain.com

Domain to exclude from keyword results.

searchVolume.minnumber float

Filter by the number of searches done this past month on Google.

searchVolume.maxnumber float

Filter by the number of searches done this past month on Google.

liveSearchVolume.minnumber float

Filter by the number of searches done this past month on Google. This value is refreshed each month.

liveSearchVolume.maxnumber float

Filter by the number of searches done this past month on Google. This value is refreshed each month.

adCount.minnumber float

Filter by the number of total advertisers

adCount.maxnumber float

Filter by the number of total advertisers

keywordDifficulty.minnumber float

Filter by how difficult it is to rank on this keyword. This can also be called Ranking Difficulty.

keywordDifficulty.maxnumber float

Filter by how difficult it is to rank on this keyword. This can also be called Ranking Difficulty.

costPerClick.minnumber float

Filter by the average cost per click. This will use the keyword matching option selected in costPerClickOption

costPerClick.maxnumber float

Filter by the average cost per click. This will use the keyword matching option selected in costPerClickOption

costPerClickOption'Broad' | 'Exact' | 'Phrase'
Example:Broad

Cost per click keyword matching option to filter results by.

clicks.minnumber float

Filter by the number of total monthly clicks on the SERP for this keyword--organic and paid.

clicks.maxnumber float

Filter by the number of total monthly clicks on the SERP for this keyword--organic and paid.

isQuestionboolean

Filter on if the keyword is a question.

isTransactionalIntentboolean

Filter on if the keyword has transactional intent.

mobileSearchesPercentage.minnumber float

Filter by the percentage of searches that are done on mobile devices.

mobileSearchesPercentage.maxnumber float

Filter by the percentage of searches that are done on mobile devices.

desktopSearchesPercentage.minnumber float

Filter by the percentage of searches that are done on desktop devices.

desktopSearchesPercentage.maxnumber float

Filter by the percentage of searches that are done on desktop devices.

notClickedSearchesPercentage.minnumber float

Filter by the percentage of searches that are not clicked. Some 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.

notClickedSearchesPercentage.maxnumber float

Filter by the percentage of searches that are not clicked. Some 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.

paidClickSearchPercentage.minnumber float

Filter by the percentage of clicks that go to ads.

paidClickSearchPercentage.maxnumber float

Filter by the percentage of clicks that go to ads.

organicClicksSearchPercentage.minnumber float

Filter by the percentage of clicks that go to organic results, not ads.

organicClicksSearchPercentage.maxnumber float

Filter by the percentage of clicks that go to organic results, not ads.

monthlyCost.minnumber float

Filter by the monthly cost of the keyword. This will use the keyword matching option selected in monthlyCostOption

monthlyCost.maxnumber float

Filter by the monthly cost of the keyword. This will use the keyword matching option selected in monthlyCostOption

monthlyCostOption'Broad' | 'Exact' | 'Phrase'
Example:Broad

Monthly Cost keyword matching option to filter results by.

rankingHomepages.minnumber float

Homepages on the SERP range to filter results by.

rankingHomepages.maxnumber float

Homepages on the SERP range to filter results by.

wordCount.minnumber float

Filter by the number of words in the keyword.

wordCount.maxnumber float

Filter by the number of words in the keyword.

pageSizeinteger
Example:5

The maximum number of rows returned.

countryCode'AR' | 'AT' | 'AU' | 'BE' | 'BR' | 'CA' | 'CH' | 'DE' | 'DK' | 'ES' | 'FR' | 'IE' | 'IN' | 'IT' | 'JP' | 'MX' | 'NL' | 'NO' | 'NZ' | 'PL' | 'PT' | 'SE' | 'SG' | 'TR' | 'UA' | 'UK' | 'US' | 'ZA'
Example:US

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.). <a href='https://developer.spyfu.com/reference/adhistoryapi_getdomainadhistory_get#/'>All Countries</a>

sortBy'SearchVolume' | 'LiveSearchVolume' | 'RankingDifficulty' | 'TotalMonthlyClicks' | 'PercentMobileSearches' | 'PercentDesktopSearches' | 'PercentSearchesNotClicked' | 'PercentPaidClicks' | 'PercentOrganicClicks' | 'BroadCostPerClick' | 'PhraseCostPerClick' | 'ExactCostPerClick' | 'BroadMonthlyClicks' | 'PhraseMonthlyClicks' | 'ExactMonthlyClicks' | 'BroadMonthlyCost' | 'PhraseMonthlyCost' | 'ExactMonthlyCost' | 'PaidCompetitors' | 'RankingHomepages'
Example:SearchVolume

Column to sort by.

sortOrder'Ascending' | 'Descending'
Example:Descending

Order to sort the results.

startingRowinteger
Example:1

Row number to start the results with.

adultFilterboolean
Example:true

Exclude adult keywords considered unsafe for work.

onlyAdultKeywordsboolean

Only include adult keywords considered unsafe for work.

Response

Successfully retrieved most successful PPC keywords. Returns keyword data with search metrics, cost estimates, and competitive intelligence showing the domain's highest-performing paid keywords.

resultCountinteger

Number of results returned

totalMatchingResultsinteger

Total number of PPC keywords available that match the query criteria, including results not included in the current page.

Example response

{
  "resultCount": 100,
  "totalMatchingResults": 75000,
  "results": [
    {
      "keyword": "running shoes",
      "searchVolume": 266000,
      "liveSearchVolume": 82000,
      "rankingDifficulty": 98,
      "totalMonthlyClicks": 219000,
      "percentMobileSearches": 0.52,
      "percentDesktopSearches": 0.48,
      "percentSearchesNotClicked": 0.18,
      "percentPaidClicks": 0.52,
      "percentOrganicClicks": 0.48,
      "broadCostPerClick": 0.73,
      "phraseCostPerClick": 0.67,
      "exactCostPerClick": 0.65,
      "broadMonthlyClicks": 57019.8,
      "phraseMonthlyClicks": 38000,
      "exactMonthlyClicks": 29094.6,
      "broadMonthlyCost": 41604.9,
      "phraseMonthlyCost": 25542,
      "exactMonthlyCost": 19041.6,
      "paidCompetitors": 15,
      "distinctCompetitors": [
        "example.com",
        "competitor1.com",
        "competitor2.com"
      ],
      "rankingHomepages": 8,
      "serpFeaturesCsv": "Images,Maps",
      "serpFirstResult": "example.com"
    }
  ]
}