Amazon KDP Niche Research: BSR & Competition
Pricing
from $0.66 / 1,000 book records
Amazon KDP Niche Research: BSR & Competition
Research Amazon KDP niches in bulk with real Kindle Store BSR, ratings, prices, book age, organic rank, and autocomplete suggestions. Compare transparent demand and competition scores, export CSV/JSON, and monitor changes through Apify API, schedules, webhooks, or MCP. From $0.66/1K books.
Pricing
from $0.66 / 1,000 book records
Rating
0.0
(0)
Developer
GetAScraper
Maintained by CommunityActor stats
1
Bookmarked
10
Total users
7
Monthly active users
11 hours ago
Last modified
Categories
Share
๐ Amazon KDP Niche Research: BSR & Competition
Compare Kindle niches before you spend time writing, designing, or publishing. Research several KDP ideas at once with public Kindle Store evidence: Best Sellers Rank, ratings, prices, book age, organic result position, autocomplete suggestions, and explainable competition signals.
Built for KDP self-publishers, low-content publishers, coaches, and book-market researchers who want a repeatable research file instead of dozens of browser tabs.
๐ก Why use it
Manual niche checks make it hard to compare ideas fairly. One search result page may look promising until you inspect the competing books, their BSR, price points, and age.
This actor puts comparable public evidence beside each keyword. It helps you shortlist niches, review direct competitors, and save a baseline for later checks. The scores explain what they used. They do not pretend to know exact sales or search volume.
๐งญ How it works
- Add one or more Kindle niche keywords, or provide direct Kindle book pages for known competitors.
- Choose how many books and autocomplete suggestions to inspect, then choose the result type you need first.
- Review the exported book rows and niche summaries. Schedule the same input when you want to monitor changes over time.
The actor researches the US Kindle Store. It does not require a Kindle or Amazon account.
๐ฅ Input
| Field | Type | Required | Description |
|---|---|---|---|
| Keywords | array of strings | No* | One or more Kindle niche phrases to compare, such as gratitude journal or meal planner for women. |
| Direct book URLs | array of URLs | No* | Kindle book pages to inspect when you already know the competing titles. |
| Include autocomplete suggestions | boolean | No | Collect public Kindle search suggestions for each keyword. |
| Analyze autocomplete suggestions | boolean | No | Run the same niche analysis for collected suggestions, subject to the suggestion limit. |
| Max suggestions per keyword | integer | No | Maximum autocomplete suggestions retained for each supplied keyword. |
| Monitor changes | boolean | No | Compare later scheduled runs with the saved baseline and return detected changes. |
| Primary output | enum | No | Choose Books for individual competitor rows or Niches for keyword summaries. |
| Max books per keyword | integer | No | Maximum Kindle books analyzed for each keyword or suggestion. |
| Proxy configuration | object | No | Connection settings. The default is configured for the US Kindle Store. |
*Provide at least one keyword or one direct book URL. Use direct URLs for a focused competitor review. Use keywords when you want an organic niche comparison. In the Console, clear the example keyword when you want a direct-URL-only run.
๐ค Output
Each run returns public Kindle Store evidence at the book and niche level. Niche summaries make comparisons easier. Book rows retain the underlying evidence so you can check the result yourself.
Autocomplete suggestions are discovery ideas, not reported search demand. Organic rank means a book's position in the collected Kindle search results. It is not an Amazon bestseller rank.
Choose the primary output that fits your task:
- Books for direct competitor review and a CSV of the evidence.
- Niches for batch comparison and a compact research shortlist.
With monitoring enabled, later scheduled runs compare visible public data with the stored baseline. Monitoring starts when you run it. It does not create historical data from before the first run.
๐ Data table
| Field | Type | Description |
|---|---|---|
| recordType | string | Identifies a book or niche summary record. |
| marketplace | string | Marketplace scope for the collected record. |
| sourceMode | string | Shows whether the record came from a keyword search or direct book page. |
| keyword | string | The supplied keyword tied to the record. |
| searchPage | integer | Kindle search results page used for discovery. |
| title | string | Public Kindle book title, when the record is a book. |
| author | string | Public author or contributor name, when shown. |
| asin | string | Amazon Standard Identification Number for a book, when shown. |
| detailUrl | URL | Public Kindle book page used for the evidence. |
| organicPosition | integer | Position in the collected Kindle search results for the analyzed keyword. |
| bsrOverall | integer | Visible Best Sellers Rank in the Kindle Store. A lower number indicates a stronger visible rank. |
| bsrOverallCategory | string | Kindle Store category paired with the overall BSR. |
| bsrCategoryRank | integer | Visible rank in the book's top listed category. |
| bsrCategoryName | string | Name of the book's top listed category. |
| categoryRanks | array of strings | Visible category ranks shown for the book. |
| categoryRankDetails | array of objects | Structured category rank details shown for the book. |
| format | string | Edition format shown on the Kindle book page. |
| price | number | Public listed price when available. |
| currency | string | Currency displayed with the listed price. |
| listPrice | number | Public list price when available. |
| discountPercent | number | Visible percentage discount when available. |
| rating | number | Public average customer rating when available. |
| ratingCount | integer | Public rating count when available. |
| ratingStatus | string | Availability status of the public rating signal. |
| reviewCount | integer | Public review count when available. |
| pageCount | integer | Page count when shown on the book page. |
| publisher | string | Public publisher name when shown. |
| publisherType | string | Publisher classification when available. |
| publishDate | string | Public publication date, when available. |
| publicationAgeDays | integer | Age in days calculated from the visible publication date. |
| language | string | Book language when shown. |
| coverImageUrl | URL | Public cover image link when available. |
| description | string | Public book description when available. |
| booksAnalyzed | integer | Number of books included in a niche summary. |
| medianBsrOverall | number | Median visible Kindle Store BSR in the niche sample. |
| medianPrice | number | Median observed price in the niche sample. |
| medianRatingCount | number | Median observed rating count in the niche sample. |
| lowReviewShare | number | Share of observed books with 20 or fewer ratings. |
| authorityBookShare | number | Share of observed books with at least 1,000 ratings. |
| recentBookShare | number | Share of observed books published within the previous 365 days. |
| independentPublisherShare | number | Share of classified books identified as independently published. |
| scoreComponents | object | Demand, review-ease, and competition-ease components behind the opportunity score. |
| opportunityScore | integer | Combined comparison signal when the sample has sufficient evidence. It is not a sales or search-volume estimate. |
| opportunityLabel | string | Plain-language interpretation of the opportunity score. |
| confidence | integer | Confidence based on sample size and BSR and rating-count coverage. |
| scoreFormula | string | Exact formula used for the niche score. |
| warnings | array of strings | Evidence, crawl-coverage, or collection warnings. |
| autocompleteSuggestions | array of strings | Collected public Kindle autocomplete suggestions for a seed keyword. |
| monitoring | object | Baseline status and detected summary changes from a scheduled run. |
| scrapedAt | string | Time the public evidence was collected. |
Fields appear only when the Kindle Store publicly shows the value. Missing data is not replaced with guesses.
๐งฎ How the scores stay explainable
Scores are comparison aids, not verdicts. Every niche summary includes its component signals and score method.
- Demand is calculated from the median public Kindle Store BSR in the collected sample.
- Ease starts with the median rating count, then accounts for the share of books with 1,000 or more ratings.
- Confidence reflects sample size plus BSR and rating-count coverage. It does not raise or lower the opportunity score.
demandScore = clamp(round(100 - 25 ร log10(max(medianBsr, 1000) / 1000)), 0, 100)
reviewEase = clamp(round(100 - 20 ร log10(max(medianRatingCount, 1))), 0, 100)
competitionEaseScore = round(0.7 ร reviewEase + 0.3 ร (100 - authorityBookShare ร 100))
opportunityScore = round(sqrt(demandScore ร competitionEaseScore))
confidence = round(100 ร min(1, booksAnalyzed / 16) ร min(bsrCoverage, ratingCoverage))
The actor omits the opportunity score when evidence is insufficient. It needs at least five books, three visible BSR values, three rating counts, and confidence of 50 or higher.
Treat the result as a transparent prioritization signal. Read the book rows before committing to a niche.
๐ฐ Pricing
Pricing uses Pay per Event. Book records are billed at the Store's published per-result rate, from $0.66 per 1,000 records at eligible tiers. An actor-start charge may still apply to an empty run. Check the Store pricing panel for your current tier and rate.
โญ Share honest feedback
Did the evidence help you choose what to research next? Leave an honest review on Apify. It helps other publishers judge whether this workflow fits their research process and helps improve future updates.
๐ ๏ธ Tips for stronger research
- Compare related, specific phrases instead of a single broad term.
teacher gratitude journalis usually more useful thanjournal. - Start with niche summaries. Then inspect the books behind the strongest and weakest signals.
- Use autocomplete to find phrasing shoppers may use, then analyze only the suggestions relevant to your publishing angle.
- Keep the same limits for each keyword when comparing niches. Uneven samples make scores less comparable.
- Schedule a monitoring run for a short list. It is useful for watching visible competition change before launch.
โ FAQ
Does this report Kindle sales or keyword search volume?
No. It reports public Kindle Store evidence. BSR is a visible rank, not a sales figure. Autocomplete suggestions are ideas, not measured search volume.
Can I research several KDP niches in one run?
Yes. Add multiple keywords to compare niche summaries in one dataset. Keep the same book limit for each keyword when you need a fair comparison.
Can I inspect a known competitor without searching for a keyword?
Yes. Add its direct Kindle book page. This is useful when a coach, client, or competitor list has already identified the titles to review.
What does organic position mean?
It is the book's visible position in the collected Kindle search results for a keyword. It is separate from Best Sellers Rank.
How does monitoring work?
Run the same input on a schedule with monitoring enabled. Later runs compare visible public fields with the baseline stored by earlier monitored runs.
Is this an official Amazon or KDP tool?
No. This independent tool uses publicly visible Kindle Store information. It is not affiliated with, endorsed by, or sponsored by Amazon, Kindle, or KDP. Amazon, Kindle, and KDP are trademarks of Amazon.com, Inc. or its affiliates.
๐ Other actors
- ThriftBooks Scraper โ - Research used-book prices, conditions, and availability.
- Wildberries Niche Analyzer: ะฐะฝะฐะปะธัะธะบะฐ ะฝะธั WB โ - Compare product niches with public marketplace evidence.
- Moz Domain Authority Scraper โ - Collect domain authority and competitive SEO metrics.
- Google Shopping Ads Scraper โ - Review visible merchant ads and product listings.