---
title: "Post Keyword Information Bulk"
method: POST
path: "/v2/related/getKeywordInformation"
tags: ["Keyword Research API"]
---

# Post Keyword Information Bulk

`POST /v2/related/getKeywordInformation`

Returns comprehensive keyword metrics and intelligence for a large list of exact keywords via POST request. This endpoint supports larger keyword lists and provides search volume, competition data, cost estimates, and performance insights for bulk keyword analysis.

[Visualize this API live on SpyFu](https://www.spyfu.com/keyword/overview?query=running+shoes)

## Request body

- object — Input for getting bulk keywords for the public API
  - `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' — Country to get results for.
  - `searchVolume` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `liveSearchVolume` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `keywordDifficulty` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `wordCount` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `clicks` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `costPerClickOption` 'Broad' | 'Exact' | 'Phrase', nullable — Cost per click keyword matching option to filter results by.
  - `costPerClick` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `mobileSearchesPercentage` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `desktopSearchesPercentage` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `notClickedSearchesPercentage` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `paidClickSearchPercentage` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `organicClicksSearchPercentage` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `monthlyCostOption` 'Broad' | 'Exact' | 'Phrase', nullable — Monthly Cost keyword matching option to filter results by.
  - `monthlyCost` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `adCount` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `rankingHomepages` object
    - `min` number, float, nullable
    - `max` number, float, nullable
  - `adultFilter` boolean, nullable — Exclude adult keywords considered unsafe for work.
  - `onlyAdultKeywords` boolean, nullable — Only include adult keywords considered unsafe for work.
  - `isQuestion` boolean — Filter on if the keyword is a question.
  - `isTransactionalIntent` boolean — Filter on if the keyword has transactional intent.
  - `keywords` string, required — CSV of keywords

## Response `200`

Successfully retrieved bulk keyword information. Returns comprehensive metrics including search volume, competition levels, cost estimates, and performance data for each requested keyword in the payload.

- object
  - `resultCount` integer — Number of results returned
  - `totalMatchingResults` integer — The total number of results available that matches the query including items that might not be included in the returned results/page.
  - `results` object[], nullable
    - `keyword` string, nullable — By looking at strong competitors in this niche and their most trusted keywords over time, we suggest similar keywords here that we found to be profitable for your competition.
    - `searchVolume` integer, nullable — This is the estimated number of times this past month that people have searched this keyword. The numbers reflect searches done in the US on Google.com (or in the UK on Google.co.uk if you are looking at UK data). We blend data from multiple sources to give a truer snapshot of activity on this keyword.
    - `liveSearchVolume` integer, nullable — This metric displays a more likely SV based on recent trends or out-of-date estimates. The original volume remains unchanged in any domain's rolled-up metrics.
    - `rankingDifficulty` integer, nullable — We've calculated how difficult it would be to rank on this keyword. The score is based on a scale of 0-100 (with 100 being the most difficult to rank for). Compare this number to other keywords you're targeting to get an idea of how to prioritize your SEO campaign.
    - `totalMonthlyClicks` integer, nullable — This is the total number of all clicks (organic and paid) made on the SERP over the past month.
    - `percentMobileSearches` number, double, nullable — When we have a breakdown of how many of the searches for this keyword come from mobile vs desktop, we will show it here.
    - `percentDesktopSearches` number, double, nullable — When we have a breakdown of how many of the searches for this keyword come from desktop vs mobile, we will show it here.
    - `percentSearchesNotClicked` number, double, nullable — Some SERPs return enough information that the user does not have to click any results. There might also be unexpected results that cause the user to abandon the SERP without any clicks. This is the rate that searchers leave the page without clicking any result.
    - `percentPaidClicks` number, double, nullable — Of all clicks made to this keyword's SERP, this percentage measures how many went to the paid ads.
    - `percentOrganicClicks` number, double, nullable — Of all clicks made to this keyword's SERP, this percentage measures how many went to organic results.
    - `broadCostPerClick` number, double, nullable — This is the average amount an advertiser pays Google anytime someone clicks their ad on this keyword. These costs fluctuate depending on many factors, so keep that in mind when you are estimating larger budgets. <p>These costs can vary depending on how specific (exact match vs. phrase match vs. broad match) the search is.</p>
    - `phraseCostPerClick` number, double, nullable — This is the average amount an advertiser pays Google anytime someone clicks their ad on this keyword. These costs fluctuate depending on many factors, so keep that in mind when you are estimating larger budgets. <p>These costs can vary depending on how specific (exact match vs. phrase match vs. broad match) the search is.</p>
    - `exactCostPerClick` number, double, nullable — This is the average amount an advertiser pays Google anytime someone clicks their ad on this keyword. These costs fluctuate depending on many factors, so keep that in mind when you are estimating larger budgets. <p>These costs can vary depending on how specific (exact match vs. phrase match vs. broad match) the search is.</p>
    - `broadMonthlyClicks` number, float, nullable — Estimated monthly clicks for broad match advertising on this keyword, calculated from search volume and expected click-through rates.
    - `phraseMonthlyClicks` number, float, nullable — Estimated monthly clicks for phrase match advertising on this keyword, calculated from search volume and expected click-through rates.
    - `exactMonthlyClicks` number, float, nullable — Estimated monthly clicks for exact match advertising on this keyword, calculated from search volume and expected click-through rates.
    - `broadMonthlyCost` number, double, nullable — Our estimate of what an advertiser would spend, on average, to advertise on this keyword each month. <p>These costs can vary depending on how specific (exact match vs. phrase match vs. broad match) the search is.</p>
    - `phraseMonthlyCost` number, double, nullable — Our estimate of what an advertiser would spend, on average, to advertise on this keyword each month. <p>These costs can vary depending on how specific (exact match vs. phrase match vs. broad match) the search is.</p>
    - `exactMonthlyCost` number, double, nullable — Our estimate of what an advertiser would spend, on average, to advertise on this keyword each month. <p>These costs can vary depending on how specific (exact match vs. phrase match vs. broad match) the search is.</p>
    - `paidCompetitors` integer, nullable — This is the total number of advertisers we've seen over the last 14 months for this keyword. It's helpful to know how competitive the field is and how many advertisers have tested this keyword over time.
    - `distinctCompetitors` string[], nullable — This is the list of distinct advertisers we've seen over the last 14 months for this keyword.
    - `rankingHomepages` integer, nullable — We roll up the number of home pages that rank within the first 50 results for this keyword. (It doesn't count ads, only organic results.) A homepage might be "https://webmd.com" vs a longer path like "https://www.webmd.com/fitness-exercise".
    - `serpFeaturesCsv` string, nullable — Comma-separated list of SERP features present for this keyword (e.g., Images, Videos, Maps, Shopping), indicating competition for organic real estate.
    - `serpFirstResult` string, nullable — Domain name of the top-ranking organic result for this keyword, useful for identifying category leaders.
    - `isQuestion` boolean — Indicates whether this keyword is phrased as a question (who, what, when, where, why, how).
    - `isNotSafeForWork` boolean — Indicates whether this keyword is flagged as containing adult or inappropriate content.

## Other responses

- `400` — Bad Request - Invalid request body or parameters provided (e.g., malformed keyword list or invalid country code)
- `401` — Unauthorized - Invalid API credentials or insufficient permissions to access keyword research data
- `500` — Internal Server Error - A server-side error occurred while processing the request

---

[API](https://skmtc.net/spyfu/apis/domain-stats-api.md) · [All operations](https://skmtc.net/spyfu/apis/domain-stats-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/spyfu/domain-stats-api/versions/44f0aff08ed0/schema)
