Call any of the tools directly over HTTPS. Every response is a JSON envelope with
status, error, and data.
| Base URL | https://rankgeniusapp.com/api/v1 |
| Method | GET (params may also be sent as a JSON body) |
| Auth | Authorization: Bearer <your-api-key> |
| Content-Type | application/json |
Authenticate every request with your API key as a Bearer token. It's the same key used by the MCP server, and all data is scoped to your account.
Rotate it with Regenerate Key on your Dashboard if it's ever exposed — the previous key stops working immediately.
That's a placeholder — find your real key on your Dashboard after you sign up free.
curl "https://rankgeniusapp.com/api/v1/whoami" \ -H "Authorization: Bearer <your-api-key>"
Every endpoint returns the same envelope:
status — ok or errorerror — a message when status is error, else emptydata — the tool payload on success, null on errorInside data, a cached flag marks a free cache hit (see
Caching); when true, cached_age_seconds
tells you how old the cached result is.
{
"status": "ok",
"error": "",
"data": { ..., "cached": false }
}
Each successful tool call spends credits (errors and cache hits are free).
Check your balance on your Dashboard or via whoami.
| HTTP status | Meaning |
|---|---|
200 | Success — data holds the payload. |
400 | Bad request — a required parameter is missing or the lookup failed. See error. |
401 | Invalid or missing API key. |
402 | Insufficient credits — add credits to continue. |
since parameterTo keep repeated lookups from burning credits, every data tool accepts an optional
since (seconds). If your account already ran the same request
— same tool and parameters — within that window, the stored result is returned
for free: cached: true in the payload and no credits charged.
It's logged on your Dashboard as cached so you can see
it working.
3600 (1 hour). So a repeat within the hour is
free by default — fine for rank/Buy Box data, which barely moves sub-hourly.since=0 forces a live, freshly-charged lookup (real-time).86400 (24 hours); larger values are clamped.The cache is per-account (shared across your API keys and the MCP server) and keyed on the
exact parameters, so changing the zip, marketplace, asin,
etc. is a distinct request. Only successful lookups are cached; errors never are.
# Real-time, always charged GET /api/v1/keyword_rank?keyword=insulated+water+bottle&since=0 # Reuse a result up to 6 hours old, for free if you've asked recently GET /api/v1/keyword_rank?keyword=insulated+water+bottle&since=21600
All endpoints are GET https://rankgeniusapp.com/api/v1/<tool> and accept an
optional marketplace code (default us).
GET /api/v1/keyword_rank
Returns each organic result with its rank (on-page position), price (incl. list price, discount %, coupon, and per-item price when present), review count, rating, monthly-sales estimate, Prime/stock, delivery estimates, and badges, plus related_keywords. Results are organic only — sponsored/ad placements are excluded. One call returns a single page (~48 results); pass page = 2, 3, … to go deeper. has_more and last_page tell you whether more pages exist, and page echoes the page returned. Pass an optional asin to get a target block with that product's exact position on the requested page (if it flags "not ranked", the ASIN simply isn't on that page — request a higher page to find its true position). Pass an optional zip to localize the SERP — Amazon's ranking and which products appear vary by zip, and pinning one makes results stable and comparable across calls. delivery_to reflects the zip used.
| Parameter | Type | |
|---|---|---|
keyword |
string | required The search keyword/phrase. |
marketplace |
string | optional Amazon marketplace/country code. Default us. 21 supported (us, uk, ca, de, fr, es, it, nl, se, pl, be, tr, sa, ae, eg, in, jp, au, sg, mx, br). |
asin |
string | optional Optional ASIN to locate within the results. |
zip |
string | optional Optional delivery postal code to localize results (supported in the US, UK, Germany, France & Canada; same set as buybox). Call supported_zips for the list per marketplace, e.g. 30303 (US) or B1 1BB (UK). Unsupported codes return an error. |
page |
integer | optional Results page number (default 1, ~48 results/page). Use has_more/last_page to page deeper — each page is one metered request. |
since |
integer | optional Freshness window in seconds (default 3600, max 86400). If your account already ran this exact request within since seconds, the cached result is returned for free — cached: true, no credits charged. Pass 0 to force a live, freshly-charged lookup. |
curl "https://rankgeniusapp.com/api/v1/keyword_rank?keyword=insulated%20water%20bottle&zip=30303" \ -H "Authorization: Bearer <your-api-key>"
{
"status": "ok",
"error": "",
"data": {
"query": "insulated water bottle",
"marketplace": "us",
"delivery_to": "Atlanta 30303",
"total_results": 35618,
"result_count": 48,
"asin_count": 48,
"page": 1,
"last_page": 7,
"has_more": true,
"products": [
{
"asin": "B0D8J2ZB8P",
"rank": 1,
"sponsored": false,
"organic_rank": 1,
"title": "POWCAN 26 oz Insulated Water Bottle with 2-in-1 Straw and Spout Lid ...",
"image_url": "https://m.media-amazon.com/images/I/515ELeeh4OL._AC_UL320_.jpg",
"price": "$14.98",
"price_num": 14.98,
"list_price": 18.99,
"price_per_item": null,
"discount_pct": 21.12,
"discount_amount": 4.01,
"coupon": null,
"rating": 4.6,
"reviews": 11208,
"monthly_sales": 9000,
"is_prime": true,
"stock_level": null,
"free_delivery": "FREE delivery Tue, Jul 28",
"fastest_delivery": "Tue, Jul 28",
"html_index": 3,
"badges": []
},
{
"asin": "B085DTZQNZ",
"rank": 2,
"sponsored": false,
"organic_rank": 2,
"title": "Owala FreeSip Insulated Stainless Steel Water Bottle with Straw, 24 oz ...",
"image_url": "https://m.media-amazon.com/images/I/718RbhzhVbL._AC_UL320_.jpg",
"price": "$29.97",
"price_num": 29.97,
"list_price": null,
"price_per_item": null,
"discount_pct": null,
"discount_amount": null,
"coupon": null,
"rating": 4.7,
"reviews": 130660,
"monthly_sales": 20000,
"is_prime": true,
"stock_level": null,
"free_delivery": "FREE delivery Tue, Jul 28",
"fastest_delivery": "Tue, Jul 28",
"html_index": 5,
"badges": ["best_seller"]
}
],
"related_keywords": ["water bottle", "insulated water bottle 32oz", "insulated water bottle 40oz"]
}
}
GET /api/v1/buybox
Returns the owning seller id and name, winning price/currency, in-stock flag and stock "only N left" counter, FBA vs. merchant + ships_from, Prime status, and any used/used_price offer. seller_id, ships_from, fba, stock, and the used-offer fields are null when Amazon itself holds the Buy Box and populate for third-party listings. Pass an optional zip to add a location-specific delivery estimate — the response then also includes delivery_to, fastest_delivery, free_delivery, and free_shipping (only a fixed set of US postal codes is supported; others return an error).
| Parameter | Type | |
|---|---|---|
asin |
string | required The product ASIN. |
marketplace |
string | optional Amazon marketplace/country code. Default us. 21 supported (us, uk, ca, de, fr, es, it, nl, se, pl, be, tr, sa, ae, eg, in, jp, au, sg, mx, br). |
zip |
string | optional Optional destination postal code for a delivery estimate (supported in the US, UK, Germany, France & Canada; call supported_zips for the list per marketplace, e.g. 30303 (US) or B1 1BB (UK)). |
since |
integer | optional Freshness window in seconds (default 3600, max 86400). If your account already ran this exact request within since seconds, the cached result is returned for free — cached: true, no credits charged. Pass 0 to force a live, freshly-charged lookup. |
curl "https://rankgeniusapp.com/api/v1/buybox?asin=B085DTZQNZ&zip=30303" \ -H "Authorization: Bearer <your-api-key>"
{
"status": "ok",
"error": "",
"data": {
"asin": "B085DTZQNZ",
"marketplace": "us",
"seller_id": null,
"sold_by": "Amazon.com",
"price": 29.97,
"currency": "$",
"in_stock": true,
"stock": null,
"prime": true,
"ships_from": null,
"fba": null,
"used": null,
"used_price": null,
"competing_offers": null,
"zip": "30303",
"delivery_to": "Atlanta 30303",
"fastest_delivery": "Friday, July 24",
"free_delivery": "Tuesday, July 28",
"free_shipping": true
}
}
GET /api/v1/product_page
Parses the major elements out of the live product page into a product object — title, brand, star rating and ratings count, "about this item" bullets, category breadcrumbs, Best Sellers Rank, image URLs, availability, variations (colour/size/style and the sibling ASINs), badges (e.g. frequently_returned, amazons_choice, climate_pledge_friendly), whether it has A+ content, and the buy-box seller/fulfillment. Also returns a full details attribute table (material, dimensions, weight, UPC/GTIN, model, care instructions, …), the AI-generated customer_say review summary, monthly_sales (recent purchase volume), A+ image/video URLs, and review_insights (per-aspect sentiment). (For a reliable price/currency, use buybox.)
| Parameter | Type | |
|---|---|---|
asin |
string | required The product ASIN. |
marketplace |
string | optional Amazon marketplace/country code. Default us. 21 supported (us, uk, ca, de, fr, es, it, nl, se, pl, be, tr, sa, ae, eg, in, jp, au, sg, mx, br). |
since |
integer | optional Freshness window in seconds (default 3600, max 86400). If your account already ran this exact request within since seconds, the cached result is returned for free — cached: true, no credits charged. Pass 0 to force a live, freshly-charged lookup. |
Free repeats: re-requesting the same ASIN + marketplace within the freshness window (default 1 hour; see the since parameter) is served from cache and is not metered (cached: true).
curl "https://rankgeniusapp.com/api/v1/product_page?asin=B085DTZQNZ" \ -H "Authorization: Bearer <your-api-key>"
{
"status": "ok",
"error": "",
"data": {
"asin": "B085DTZQNZ",
"marketplace": "us",
"delivery_to": null,
"html_bytes": 0,
"cached": false,
"product": {
"asin": "B085DTZQNZ",
"parsed": true,
"title": "Owala FreeSip Stainless Steel Water Bottle 24 oz ...",
"brand": "Owala",
"rating": 4.6,
"ratings_count": 135827,
"bullets": ["24-ounce insulated stainless-steel water bottle with a FreeSip spout ...", "..."],
"best_sellers_rank": [
{ "rank": 1, "category": "Home & Kitchen" },
{ "rank": 1, "category": "Insulated Bottles" }
],
"category": ["Home & Kitchen", "Kitchen & Dining", "Thermoses", "Insulated Beverage Containers"],
"images": [
"https://m.media-amazon.com/images/I/718RbhzhVbL._AC_SL1500_.jpg",
"https://m.media-amazon.com/images/I/51NEAowN4KL._AC_SL1080_.jpg"
],
"availability": "In Stock",
"sold_by": "Amazon.com",
"seller_id": null,
"ships_from": "Amazon.com",
"sold_by_amazon": true,
"fba": true,
"prime": true,
"price": 29.97,
"buybox": { "seller_name": "Amazon.com", "seller_id": null, "ships_from": "Amazon.com", "sold_by_amazon": true, "fba": true },
"monthly_sales": 40000,
"monthly_sales_text": "40K+ bought in past month",
"variations": [
{ "value": "32 oz", "asin": "B0BZYCJK89", "price": 29.99, "available": true, "image_url": "..." }
],
"has_aplus": true,
"aplus_images": ["https://m.media-amazon.com/images/S/aplus-media-library-service-media/....png"],
"aplus_videos": [],
"details": {
"Brand Name": "Owala",
"Material": "Stainless Steel",
"Item Weight": "13.6 ounces",
"UPC": "847280062256"
},
"customer_say": "Customers love the temperature retention, leak-proof design, and hidden straw.",
"review_insights": { "summary": "...", "featureAspects": [] }
}
}
}
GET /api/v1/product_reviews
Returns customer reviews for a product, one page at a time (~10 per page). Each review carries rating, title, author, verified/vine flags, helpful_votes, body text, and any review images/videos. Aggregates: product_rating (e.g. 4.6); rating_count = all star ratings (with or without written text); review_count = written reviews only, so it is normally much smaller than rating_count (they are not meant to match). star_breakdown is the percentage at each 1–5 stars (Amazon publishes no per-star counts; multiply by rating_count for an estimate). Walk pages with page (has_more/last_page); sort with sort: recent (chronological, newest first) or helpful (Amazon's "Top reviews" order — Amazon's own relevance ranking, which factors in recency and verified purchases, so it is not a strict most-helpful-votes sort and low-vote reviews can appear first). Amazon exposes only ~100 reviews per sort: last_page reflects those accessible pages and can be far below review_count — you cannot page to every review.
| Parameter | Type | |
|---|---|---|
asin |
string | required The product ASIN. |
marketplace |
string | optional Amazon marketplace/country code. Default us. 21 supported (us, uk, ca, de, fr, es, it, nl, se, pl, be, tr, sa, ae, eg, in, jp, au, sg, mx, br). |
page |
integer | optional Review page number (~10/page). Default 1. |
sort |
string | optional Sort order: recent (default, newest first) or helpful (Amazon's "Top reviews" relevance order, not a strict helpful-vote sort). |
since |
integer | optional Freshness window in seconds (default 3600, max 86400). If your account already ran this exact request within since seconds, the cached result is returned for free — cached: true, no credits charged. Pass 0 to force a live, freshly-charged lookup. |
One page (~10 reviews) per request; page through with page up to last_page (Amazon caps public reviews at ~100 per sort). rating_count and review_count are the true product totals and differ by design (all ratings vs written reviews). star_breakdown is percentages only — Amazon exposes no exact per-star counts, so track product_rating + rating_count for precise trends.
curl "https://rankgeniusapp.com/api/v1/product_reviews?asin=B085DTZQNZ&page=1&sort=recent" \ -H "Authorization: Bearer <your-api-key>"
{
"status": "ok",
"error": "",
"data": {
"asin": "B085DTZQNZ",
"marketplace": "us",
"page": 1,
"last_page": 10,
"has_more": true,
"sort": "recent",
"product_title": "Owala FreeSip Stainless Steel Water Bottle 24 oz ...",
"product_rating": 4.6,
"rating_count": 133146,
"review_count": 10000,
"star_breakdown": { "5": 85, "4": 7, "3": 3, "2": 1, "1": 4 },
"reviews": [
{
"review_id": "R20F2R35NH8QSK",
"title": "The straw won't stay in place",
"rating": 3.0,
"author": "Ldterry",
"date": "Reviewed in the United States on August 9, 2026",
"date_iso": "2026-08-09",
"verified": true,
"vine": false,
"helpful_votes": 0,
"variation": "B0F359FRH8",
"text": "Love the bottle overall but the straw ...",
"images": [],
"videos": []
}
]
}
}
GET /api/v1/supported_zips
Lists the delivery codes that keyword_rank and buybox accept as an optional zip (unsupported codes are rejected). Returns { zip, delivery } rows for the marketplace. Not metered — it doesn't spend credits. The full list is also browsable at /docs/zip-codes.
| Parameter | Type | |
|---|---|---|
marketplace |
string | optional Amazon marketplace/country code. Default us. 21 supported (us, uk, ca, de, fr, es, it, nl, se, pl, be, tr, sa, ae, eg, in, jp, au, sg, mx, br). |
Un-metered. Use it to pick a valid zip before calling a tool that takes one.
curl "https://rankgeniusapp.com/api/v1/supported_zips" \ -H "Authorization: Bearer <your-api-key>"
{
"status": "ok",
"error": "",
"data": {
"marketplace": "us",
"count": 308,
"zips": [
{ "zip": "10001", "delivery": "NEW YORK - 10001" },
{ "zip": "30303", "delivery": "ATLANTA - 30303" },
{ "zip": "90001", "delivery": "LOS ANGELES - 90001" }
]
}
}
GET /api/v1/whoami
Returns your account identity and current usage. This call is not metered — use it to verify your key and check where you stand against your plan.
curl "https://rankgeniusapp.com/api/v1/whoami" \ -H "Authorization: Bearer <your-api-key>"
{
"status": "ok",
"error": "",
"data": {
"account_id": "A1B2C3D4",
"name": "Acme Co.",
"plan": "free",
"credit_balance": 8740,
"usage_rate": 10,
"usage_this_month": 142
}
}