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 ASIN on page one with its rank position, sponsored flag, price (incl. list price, discount %, coupon, and per-item price when present), review count, rating, monthly-sales estimate, Prime/stock, delivery estimates, and badges. Also returns any banners — the Sponsored Brands ad(s) at the top of the page (brand, headline, promoted ASINs) — plus related_keywords, the sponsored/total counts, and the delivery location. Pass an optional asin to get a target block with that product's exact position and full detail (it flags the known "not ranked" long-tail blind spot rather than silently dropping it). Pass an optional zip to localize the SERP to a delivery location — Amazon's ranking and which products appear vary by zip, and pinning one makes results stable and comparable across calls (without it the data service picks a location itself). 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 US delivery zip to localize results (supported codes only, e.g. 30303; same set as buybox). Unsupported codes return an error. |
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,
"sponsored_count": 0,
"banners": [
{
"position": 0,
"brand": "Stanley 1913",
"headline": "Stay Hydrated All Summer",
"seller_id": "AO1K5E7PGBCWQ",
"asins": ["B0G96GNQSW", "B0GNCW7WG6", "B0G77D5SBY"],
"ad_id": "301321056000602",
"campaign_id": "200086555579371",
"creative_id": "0"
}
],
"products": [
{
"asin": "B0D8J2ZB8P",
"rank": 1,
"sponsored": false,
"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,
"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"]
}
],
"brands": [],
"related_keywords": ["water bottle", "insulated water bottle 32oz", "insulated water bottle 40oz"],
"has_more": true
}
}
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 US codes only, e.g. 30303). |
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/mobile_search
The mobile results can differ substantially from desktop — different ordering and a different number of sponsored placements. Same envelope as Keyword Rank (see that tool for the full field list); pass an optional asin to locate its mobile position. Amazon's mobile page exposes fewer fields per product, so some values come back null (e.g. price_num, reviews, discount details) and there are no top-ad banners or related_keywords. Pass an optional zip to localize results (same behavior as Keyword Rank).
| 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 US delivery zip to localize results (supported codes only, e.g. 30303). |
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/mobile_search?keyword=insulated%20water%20bottle&zip=30303" \ -H "Authorization: Bearer <your-api-key>"
{
"status": "ok",
"error": "",
"data": {
"query": "insulated water bottle",
"marketplace": "us",
"delivery_to": "Deliver to 11226",
"total_results": 34953,
"result_count": 21,
"asin_count": 21,
"sponsored_count": 7,
"banners": [],
"products": [
{
"asin": "B0CQZJPPKM",
"rank": 1,
"sponsored": true,
"title": "WATERSY Stainless Steel Water Bottles, 17oz/500ml Insulated ...",
"image_url": "https://m.media-amazon.com/images/I/61A0N+rp05L._AC_SX148_SY213_QL70_.jpg",
"price": "$11.99",
"price_num": null,
"list_price": null,
"price_per_item": null,
"discount_pct": null,
"discount_amount": null,
"coupon": null,
"rating": 4.5,
"reviews": null,
"monthly_sales": 800,
"is_prime": false,
"stock_level": null,
"free_delivery": null,
"fastest_delivery": null,
"html_index": null,
"badges": []
},
{
"asin": "B085DTZQNZ",
"rank": 3,
"sponsored": false,
"title": "Owala FreeSip Stainless Steel Water Bottle 24 oz ...",
"image_url": "https://m.media-amazon.com/images/I/718RbhzhVbL._AC_SX148_SY213_QL70_.jpg",
"price": "$29.97",
"price_num": null,
"list_price": null,
"price_per_item": null,
"discount_pct": null,
"discount_amount": null,
"coupon": null,
"rating": 4.7,
"reviews": null,
"monthly_sales": 30000,
"is_prime": false,
"stock_level": null,
"free_delivery": null,
"fastest_delivery": null,
"html_index": null,
"badges": ["overall_pick"]
}
],
"brands": [],
"related_keywords": [],
"has_more": false
}
}
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), and A+ image URLs. The parsed fields are returned by default; set html=true (REST) to also include the full page HTML. (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). |
html |
boolean | optional REST only. true also returns the full page HTML (large; default false). MCP always returns the parsed fields only. |
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. |
Parsed fields are returned by default; add html=true (REST) for the full page HTML. 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) — so fetching parsed over MCP and then the full HTML via REST within that window counts as one request.
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": "Atlanta 30303",
"html_bytes": 2585911,
"cached": false,
"product": {
"parsed": true,
"title": "Owala FreeSip Insulated Stainless Steel Water Bottle with Straw, 24 oz ...",
"brand": "Owala",
"rating": 4.7,
"ratings_count": 130660,
"availability": "In Stock",
"bullets": ["...", "..."],
"category": [
"Home & Kitchen",
"Kitchen & Dining",
"Storage & Organization",
"Thermoses",
"Insulated Beverage Containers"
],
"best_sellers_rank": [
{ "rank": 1, "category": "Kitchen & Dining" }
],
"images": [
"https://m.media-amazon.com/images/I/718RbhzhVbL._AC_SL1500_.jpg",
"https://m.media-amazon.com/images/I/51NEAowN4KL._AC_SL1080_.jpg"
],
"buybox": {
"fba": true,
"sold_by_amazon": true,
"ships_from": "Amazon",
"seller_name": "Amazon.com",
"seller_id": "ATVPDKIKX0DER"
},
"variations": {
"count": 93,
"dimensions": ["size_name"],
"values": { "size_name": ["24 oz", "32 oz", "40 oz"] },
"current": ["24 oz"],
"asins": [{ "asin": "B0BZYCJK89", "values": ["32 oz"] }]
},
"badges": [
"amazons_choice",
"climate_pledge_friendly"
],
"details": {
"Brand": "Owala",
"Material": "Stainless Steel",
"Capacity": "24 fluid ounces",
"Item Weight": "13.6 ounces",
"UPC": "847280062256"
},
"customer_say": "Customers love this bottle for its temperature retention, leak-proof design, and hidden straw; durability gets mixed feedback.",
"monthly_sales": 30000,
"has_aplus": true,
"aplus_images": [
"https://m.media-amazon.com/images/S/aplus-media-library-service-media/....png"
]
}
}
}
GET /api/v1/product_reviews
Returns a sample of a product's reviews (roughly a dozen top/recent reviews per marketplace, not the full set) with rating, author, verified-purchase flag, helpful count, variant, and date.
Parameters| 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. Default 1. |
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. |
Returns only a sample (about a dozen reviews) and does not page deeply. Content is limited: review title and body text are frequently empty (metadata only), and aggregate figures such as the total rating count are not provided — for a product's total review count use keyword_rank.
curl "https://rankgeniusapp.com/api/v1/product_reviews?asin=B085DTZQNZ&page=1" \ -H "Authorization: Bearer <your-api-key>"
{
"status": "ok",
"error": "",
"data": {
"asin": "B085DTZQNZ",
"marketplace": "us",
"page": 1,
"review_count": 13,
"total_ratings": null,
"with_reviews": null,
"has_more": false,
"reviews": [
{
"id": "R2JOXHNAD1YZ3R",
"rating": 5,
"author": "A. Shopper",
"verified": true,
"variant": "Size: 24 oz, Colour: Very, Very Dark",
"date": "Reviewed in the United States on 8 June 2026",
"helpful": 16
}
]
}
}
GET /api/v1/seller_details
Returns the seller name, star rating, rating count, description, and registered business details.
Parameters| Parameter | Type | |
|---|---|---|
seller |
string | required The Amazon seller id (e.g. A2NQT1E7XE9C8I). |
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. |
curl "https://rankgeniusapp.com/api/v1/seller_details?seller=A2NQT1E7XE9C8I" \ -H "Authorization: Bearer <your-api-key>"
{
"status": "ok",
"error": "",
"data": {
"seller_id": "A2NQT1E7XE9C8I",
"marketplace": "us",
"name": "RAYMYLO Direct",
"rating": "4.9",
"rating_count": "543",
"description": "RAYMYLO Direct is committed to providing each customer with the highest standard of customer service.",
"details": [
"Business Name:",
"ShenZhenShiJunXinLaiKeJiYouXianGongSi",
"Business Address:",
"Bantian Street",
"Kaisa Yunwangfu Building 3, Room 2904",
"Shenzhen",
"Longgang District",
"Guangdong",
"518000",
"CN"
],
"logo_url": "https://m.media-amazon.com/images/S/..."
}
}
GET /api/v1/supported_zips
Lists the delivery codes that keyword_rank, mobile_search, 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
}
}