REST API v1

Call any of the tools directly over HTTPS. Every response is a JSON envelope with status, error, and data.

Overview

Base URLhttps://rankgeniusapp.com/api/v1
MethodGET (params may also be sent as a JSON body)
AuthAuthorization: Bearer <your-api-key>
Content-Typeapplication/json

Authentication

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.

<your-api-key>

That's a placeholder — find your real key on your Dashboard after you sign up free.

Verify your key

curl "https://rankgeniusapp.com/api/v1/whoami" \
  -H "Authorization: Bearer <your-api-key>"

Response Format

Every endpoint returns the same envelope:

  • statusok or error
  • error — a message when status is error, else empty
  • data — the tool payload on success, null on error

Inside 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 }
}

Limits & Errors

Each successful tool call spends credits (errors and cache hits are free). Check your balance on your Dashboard or via whoami.

HTTP statusMeaning
200Success — data holds the payload.
400Bad request — a required parameter is missing or the lookup failed. See error.
401Invalid or missing API key.
402Insufficient credits — add credits to continue.

Caching & the since parameter

To 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.

  • Default 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).
  • Max 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

Endpoints

All endpoints are GET https://rankgeniusapp.com/api/v1/<tool> and accept an optional marketplace code (default us).

Keyword Rankkeyword_rank

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.

Parameters
ParameterType
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.

Example request

curl "https://rankgeniusapp.com/api/v1/keyword_rank?keyword=insulated%20water%20bottle&zip=30303" \
  -H "Authorization: Bearer <your-api-key>"

Example response

{
    "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"]
    }
}

Buy Boxbuybox

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).

Parameters
ParameterType
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.

Example request

curl "https://rankgeniusapp.com/api/v1/buybox?asin=B085DTZQNZ&zip=30303" \
  -H "Authorization: Bearer <your-api-key>"

Example response

{
    "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
    }
}

Product Pageproduct_page

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.)

Parameters
ParameterType
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).

Example request

curl "https://rankgeniusapp.com/api/v1/product_page?asin=B085DTZQNZ" \
  -H "Authorization: Bearer <your-api-key>"

Example response

{
    "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": [] }
        }
    }
}

Product Reviewsproduct_reviews

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.

Parameters
ParameterType
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.

Example request

curl "https://rankgeniusapp.com/api/v1/product_reviews?asin=B085DTZQNZ&page=1&sort=recent" \
  -H "Authorization: Bearer <your-api-key>"

Example response

{
    "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": []
            }
        ]
    }
}

Supported Zipssupported_zips

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.

Parameters
ParameterType
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.

Example request

curl "https://rankgeniusapp.com/api/v1/supported_zips" \
  -H "Authorization: Bearer <your-api-key>"

Example response

{
    "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" }
        ]
    }
}

Identitywhoami

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.

Example request

curl "https://rankgeniusapp.com/api/v1/whoami" \
  -H "Authorization: Bearer <your-api-key>"

Example response

{
    "status": "ok",
    "error": "",
    "data": {
        "account_id": "A1B2C3D4",
        "name": "Acme Co.",
        "plan": "free",
        "credit_balance": 8740,
        "usage_rate": 10,
        "usage_this_month": 142
    }
}