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

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

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

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

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

Mobile Searchmobile_search

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

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

Example request

curl "https://rankgeniusapp.com/api/v1/mobile_search?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": "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
    }
}

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

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

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

Product Reviewsproduct_reviews

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

Example request

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

Example response

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

Seller Detailsseller_details

GET /api/v1/seller_details

Returns the seller name, star rating, rating count, description, and registered business details.

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

Example request

curl "https://rankgeniusapp.com/api/v1/seller_details?seller=A2NQT1E7XE9C8I" \
  -H "Authorization: Bearer <your-api-key>"

Example response

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

Supported Zipssupported_zips

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.

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