Meesho API & Scraper
The Meesho API returns meesho.com, India's largest value marketplace, as clean JSON in seven actions.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
search takes a keyword and returns up to 100 products in one call, each row carrying the product code, title, INR price, the struck price and discount where Meesho publishes them, the offer line, rating and rating count, images, the attribute list and size or fabric text, free-delivery and express flags, the supplier state, Meesho Mall status and the listing date. product/detail opens one product by its short code or its URL and adds the MRP and the discount against it, the special-offer breakdown, stock, every size variant with its own price and availability, the reseller shop behind the listing with its name, handle, URL, rating, rating count and products sold, the rating breakdown, the image gallery, the structured attribute table, the description, the category breadcrumb, the delivery estimate with the cash-on-delivery flag, and the return options with their prices. product/reviews returns the one to five star breakdown and the review rows with text, date, helpful count, the display name Meesho shows and any photos. category/browse reads a Meesho category page with the same product rows plus the category title, description, breadcrumb and lowest price. categories, search/filters and search/suggest are free discovery calls: the whole browsable taxonomy three levels deep, the filters and sort orders Meesho itself offers for one query, and Meesho's own search-box completions. Filters are resolved against Meesho's live catalogue for the same query and a value it does not know is refused with the real values named, because Meesho answers an unknown filter by returning the unfiltered set. Each filter group was checked at fifty rows against a same-run unfiltered control: Under 199 rupees shared 22 percent of its ids with the control, Kurta Sets and Fabric Acrylic 0 percent, Discount 30 percent and above 0 percent, Colour Beige 2 percent, Rating 4.0 and above 42 percent with two rows of fifty below four stars against sixteen in the control. On the live run of 84 calls, search returned 14 of 14 keyword queries, product/detail 14 of 14 products, product/reviews 12 of 12 and category/browse 12 of 12, and every product code handed out by search came back identical and as a string from the detail record, 14 of 14. No Meesho account, one ReefAPI key and the standard { ok, data, meta, error } envelope.
Five Meesho values that are not what they look like
Meesho's card is compact, its reseller model puts two very different prices next to each other, and one field that reads like a brand is not one. These were read from live searches and product pages on 2026-09-24 and 2026-09-25.
| Field | Looks like | Actually is | What comes back |
|---|---|---|---|
| original_price / discount_percent | an MRP and a discount on every row | printed by Meesho on a minority of search rows: 16 percent of 600 rows across twelve categories, from 4 percent on kids toys and bluetooth earbuds to 48 percent on face wash | the numbers when Meesho prints them and null when it does not, never a figure worked out from something else |
| total_results | a result count | Meesho publishes no result total on search at all | always null, and count is the size of the page you asked for |
| variants[].in_stock | a stock flag on every size | false only where Meesho states out of stock, and unpublished where Meesho lists the size with no stock behind it | false and null kept apart, and the product-level stock flag is never copied down onto a size |
| brand | the manufacturer | Meesho's own brand field on a reseller listing is the supplier name | no brand field at all, and the seller comes back in shop with its name, handle, URL, rating, rating count and products sold |
| product_id | one of the three ids on the page | the short code in the URL, such as hs4ysq; the long numeric product id and the catalog id are different keys | product_id is always the short code and always a string, with catalog_id and product_numeric_id beside it, also strings |
A Meesho price band is a label, not a range. Under 199 rupees returned rows priced up to 221 and Under 299 rupees up to 322, consistently 8 to 10 percent over the label, because Meesho filters on a different price field than the one it prints on the card. The label is returned verbatim and no numeric range is promised, which is why there is no min_price or max_price parameter.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/meesho/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "kurti",
"limit": 20
}
}{
"ok": true,
"meta": {
"api": "meesho",
"endpoint": "search",
"mode": "live",
"latency_ms": 2303.7,
"record_count": 20,
"bytes": 95397,
"cache_hit": false,
"pagination": {
"page": 1,
"cursor": "eyJwYWdlQ3Vyc29ycyI6eyJjYXRhbG9nIjp7Im9yZ2FuaWMiOnsiY3Vyc29yIjoiZXlKemRDSTZNakFzSW1SaFoxOXVZVzFsSWpvaWIzSm5ZVzVwWTE5b1pXRmtYM0J5WlhCaGFXUmZjbUZ1YTJWeVgzTmpZV3hsZFhCZmRqTWlMQ0p1YjJSbFgyTjFjbk52Y25NaU9uc2liREZmWTJGamFHVmZaMlYwT2pFaU9pSmxlVXAyV20xYWVscFlVV2xQYWswMFQxTjNhV0ZIUm5wWU1qVnNaVWhSYVU5dVVubGtWMVk1SW4xOSIsImhhc05leHRDYXRhbG9nIjp0cnVlLCJsYXN0U2xvdCI6MjAsImZlZWRfaW9wX2lkIjoiUVM6MTo2OGNlMTA0MC02M2VhLTQ1ZjktYWVhZS1lOGNjMDM2NThiZDEifX19LCJyZV9tZXRhIjp7InRleHRfc2VhcmNoIjp7ImlucHV0Q29udGV4dCI6InRleHRfc2VhcmNoX2hlYWQiLCJpc0ZpbHRlck11dGF0aW9uRW5hYmxlZCI6ZmFsc2UsInF1bFJlc3BvbnNlIjoiMl9fS0xVdi9XUmhD",
"has_more": true
},
"charged_credits": 1,
"version": "0.1.0"
},
"data": {
"query": "kurti",
"results": [
{
"product_id": "f1fvi9",
"catalog_id": "465200580",
"slug": "printed-kurti",
"url": "https://www.meesho.com/printed-kurti/p/f1fvi9",
"title": "Chitrarekha Fabulous Kurtis",
"hero_product_name": "printed kurti",
"price": 179,
"currency": "INR",
"original_price": 187,
"discount_percent": 4,
"discount_amount": 8,
"discount_text": "₹8 off",
"offer_text": "₹155 with 1 Special Offer",
"category_id": 1001,
"category_name": "Kurtis & Kurtas",
"rating": 4.1,
"rating_count": 3035,
"review_count": 0,
"designs_count": 1,
"supplier_count": 0,
"image": "https://images.meesho.com/images/catalogs/465200580/cover/1/2/5096c2047fd70e6aea5ee8177d34bbcd8225372bd17c26a066e0d5659da2ed6e97c39403e34e06b134b491bdb62397a0bbcab631c8231367b3ad6beb0d0427fa_512.jpg",
"images": [
"https://images.meesho.com/images/products/909412929/5lqia_512.jpg",
"https://images.meesho.com/images/catalogs/465200580/cover/1/2/5096c2047fd70e6aea5ee8177d34bbcd8225372bd17c26a066e0d5659da2ed6e97c39403e34e06b134b491bdb62397a0bbcab631c8231367b3ad6beb0d0427fa_512.jpg",
"https://images.meesho.com/images/catalogs/465200580/collages/1/1/5096c2047fd70e6aea5ee8177d34bbcd8225372bd17c26a066e0d5659da2ed6e97c39403e34e06b134b491bdb62397a0bbcab631c8231367b3ad6beb0d0427fa.jpg"
],
"attributes": [
"Fabric: Cotton"
],
"details_text": "Fabric: Cotton\nSleeve Length: Three-Quarter Sleeves\nPattern: Printed\nCombo of: Single\nSizes:\nS (Bust Size: 36 in, Size Length: 44 in) \nXL (Bust Size: 42 in, Size Length: 44 in) \nL (Bust Size: 40 in, Size Length: 44 in) \nXXL (Bust Size: 44 in, Size Length: 44 in) \nXXXL (Bust Size: 46 in, Size Length: 44 in) \nM (Bust Size: 38 in, Size Length: 44 in)",
"free_delivery": false,
"shipping_charges": null,
"express_delivery": false,
"supplier_state": "UP",
"meesho_mall": false,
"tags": [
"NEXT DAY DISPATCH"
],
"is_ad": false,
"listed_at": "2026-04-20T21:48:32+0530"
},
{
"product_id": "guwe0a",
"catalog_id": "531816345",
"slug": "women-teal-green-printed-short-kurti-square-neck-bell-sleeve-rayon-tunic-top-casual-office-wear-stylish-kurti-for-women-girls",
"url": "https://www.meesho.com/women-teal-green-printed-short-kurti-square-neck-bell-sleeve-rayon-tunic-top-casual-office-wear-stylish-kurti-for-women-girls/p/guwe0a",
"title": "Myra Drishya Kurtis",
"hero_product_name": "Women Teal Green Printed Short Kurti | Square Neck Bell Sleeve Rayon Tunic Top | Casual Office Wear Stylish Kurti for Women & Girls",
"price": 204,
"currency": "INR",
"original_price": null,
"discount_percent": null,
"discount_amount": null,
"discount_text": null,
"offer_text": "₹168 with 2 Special Offers",
"category_id": 1001,
"category_name": "Kurtis & Kurtas",
"rating": 4,
"rating_count": 757,
"review_count": 0,
"designs_count": 1,
"supplier_count": 0,
"image": "https://images.meesho.com/images/catalogs/531816345/cover/1/2/6c2097795c0ba57aeecbf2012e617cb6faf269fb6a53d8a9375ec640edd201d7ec902ef7c1ea8956f92e99bdcbd78607d3e7f377ede0918e78d099dd6ca60f95_512.jpg",
"images": [
"https://images.meesho.com/images/products/1019358442/r4cpi_512.jpg",
"https://images.meesho.com/images/catalogs/531816345/cover/1/2/6c2097795c0ba57aeecbf2012e617cb6faf269fb6a53d8a9375ec640edd201d7ec902ef7c1ea8956f92e99bdcbd78607d3e7f377ede0918e78d099dd6ca60f95_512.jpg",
"https://images.meesho.com/images/catalogs/531816345/collages/1/1/6c2097795c0ba57aeecbf2012e617cb6faf269fb6a53d8a9375ec640edd201d7ec902ef7c1ea8956f92e99bdcbd78607d3e7f377ede0918e78d099dd6ca60f95.jpg"
],
"attributes": [
"Fabric: Cotton"
],
"details_text": "Fabric: Cotton\nSleeve Length: Long Sleeves\nPattern: Printed\nCombo of: Single\nSizes:\nS (Bust Size: 30 in, Size Length: 29 in) \nXL (Bust Size: 39 in, Size Length: 29 in) \nL (Bust Size: 36 in, Size Length: 29 in) \nM (Bust Size: 33 in, Size Length: 29 in) \nXXXL (Bust Size: 45 in, Size Length: 29 in) \nXXL (Bust Size: 42 in, Size Length: 29 in)",
"free_delivery": false,
"shipping_charges": null,
"express_delivery": false,
"supplier_state": "UP",
"meesho_mall": false,
"tags": [],
"is_ad": false,
"listed_at": "2026-07-20T23:58:20+0530"
},
{
"product_id": "5puaej",
"catalog_id": "100307841",
"slug": "new-embroidery-gaithering-anarkali-kurta",
"url": "https://www.meesho.com/new-embroidery-gaithering-anarkali-kurta/p/5puaej",
"title": "Aishani Sensational Kurtis",
"hero_product_name": "New Embroidery Gaithering Anarkali kurta",
"price": 246,
"currency": "INR",
"original_price": null,
"discount_percent": null,
"discount_amount": null,
"discount_text": null,
"offer_text": "₹221 with 1 Special Offer",
"category_id": 1001,
"category_name": "Kurtis & Kurtas",
"rating": 4.1,
"rating_count": 6006,
"review_count": 0,
"designs_count": 5,
"supplier_count": 0,
"image": "https://images.meesho.com/images/catalogs/100307841/cover/1/2/f17616ec93ae925df17aeff407e23766a3f9eec47750125300a875d2a830fddc44d44da58e6480183753524e5d5231c5264091d876a2cf51f9d9ad38875b5d2d_512.jpg",
"images": [
"https://images.meesho.com/images/products/345734443/qol8t_512.jpg",
"https://images.meesho.com/images/products/345734442/9e57k_512.jpg",
"https://images.meesho.com/images/products/345734441/t8hza_512.jpg"
],
"attributes": [
"Fabric: Rayon"
],
"details_text": "Fabric: Rayon\nSleeve Length: Three-Quarter Sleeves\nPattern: Embroidered\nCombo of: Single\nSizes:\nS (Bust Size: 36 in, Size Length: 45 in) \nXL (Bust Size: 42 in, Size Length: 45 in) \nL (Bust Size: 40 in, Size Length: 45 in) \nXXL (Bust Size: 44 in, Size Length: 45 in) \nM (Bust Size: 38 in, Size Length: 45 in)",
"free_delivery": false,
"shipping_charges": null,
"express_delivery": false,
"supplier_state": "GJ",
"meesho_mall": false,
"tags": [
"NEXT DAY DISPATCH"
],
"is_ad": false,
"listed_at": "2023-10-05T10:31:07+0530"
}
],
"count": 20,
"total_results": null,
"applied_filters": [],
"sort": "relevance",
"pagination": {
"page": 1,
"cursor": "eyJwYWdlQ3Vyc29ycyI6eyJjYXRhbG9nIjp7Im9yZ2FuaWMiOnsiY3Vyc29yIjoiZXlKemRDSTZNakFzSW1SaFoxOXVZVzFsSWpvaWIzSm5ZVzVwWTE5b1pXRmtYM0J5WlhCaGFXUmZjbUZ1YTJWeVgzTmpZV3hsZFhCZmRqTWlMQ0p1YjJSbFgyTjFjbk52Y25NaU9uc2liREZmWTJGamFHVmZaMlYwT2pFaU9pSmxlVXAyV20xYWVscFlVV2xQYWswMFQxTjNhV0ZIUm5wWU1qVnNaVWhSYVU5dVVubGtWMVk1SW4xOSIsImhhc05leHRDYXRhbG9nIjp0cnVlLCJsYXN0U2xvdCI6MjAsImZlZWRfaW9wX2lkIjoiUVM6MTo2OGNlMTA0MC02M2VhLTQ1ZjktYWVhZS1lOGNjMDM2NThiZDEifX19LCJyZV9tZXRhIjp7InRleHRfc2VhcmNoIjp7ImlucHV0Q29udGV4dCI6InRleHRfc2VhcmNoX2hlYWQiLCJpc0ZpbHRlck11dGF0aW9uRW5hYmxlZCI6ZmFsc2UsInF1bFJlc3BvbnNlIjoiMl9fS0xVdi9XUmhD",
"has_more": true
},
"fallback_results": false,
"judged": true
}
}What the Meesho API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search meesho.com by keyword, up to 100 products per call: product code, title, INR price with Meesho's own struck price and discount where it publishes them, the offer line, rating and rating count, images, the product attributes and size/fabric text, free-delivery and express flags, the supplier's state, Meesho Mall status and listing date. Narrow with meesho.com's own filters (colour, price band, rating, discount, fabric, size, category, gender) and sort the way the site does. A no-result query is reported as one instead of returning the unrelated products meesho.com pads it with. | Pricing teams call search to search meesho.com by keyword, up to 100 products per call. | query, limit, page, cursor, sort, ... |
| product/detail | The full Meesho product record by product code or URL: title, INR price with the MRP meesho.com publishes and the discount against it, the special-offer breakdown, stock, every size variant with its own price and availability, the reseller shop (name, handle, shop URL, its own rating, rating count and products sold), rating breakdown, image gallery, the structured attribute table, description, category breadcrumb, delivery estimate and cash-on-delivery flag, and the return options with their prices. | Marketplace operators call product/detail to get the full Meesho product record by product code or URL. | product_id, max_rotations |
| product/reviews | A product's ratings and reviews as meesho.com serves them: the 1-5 star breakdown, the average, the rating and review counts, and the review rows with star rating, text, date, helpful count, the reviewer display name meesho.com shows and any photos attached. Pages with the cursor the response returns. | Catalog enrichment teams call product/reviews to get a product's ratings and reviews as meesho.com serves them. | product_id, cursor, max_rotations |
| category/browse | Browse a meesho.com category page: the same product rows as search plus the struck price, which this listing publishes somewhat more often, together with the category's own title, description, breadcrumb and lowest price. Take the category from `categories`. | Retail analysts call category/browse to get browse a meesho.com category page. | category, limit, max_rotations |
| categories | Meesho's whole browsable taxonomy, three levels deep, each node carrying the slug and page id that `category/browse` takes, plus the shortcut links the site puts in its own navigation. | Pricing teams call categories to get meesho's whole browsable taxonomy, three levels deep, each node carrying the slug and page id…. | max_rotations |
| search/filters | The filters and sort orders meesho.com itself offers for a query — colour, price band, rating, discount, fabric, size, category, gender and whatever else that query exposes, with every value it accepts. These are the only values `search` will send: meesho.com answers an unknown filter by returning the unfiltered set. | Marketplace operators call search/filters to get the filters and sort orders meesho.com itself offers for a query. | query, max_rotations |
| search/suggest | Meesho's own search-box completions for a partial keyword, plus the searches it is currently promoting as popular. | Catalog enrichment teams call search/suggest to get meesho's own search-box completions for a partial keyword, plus the searches it is currently…. | query, max_rotations |
Call search from your stack
curl -X POST https://api.reefapi.com/meesho/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"kurti","limit":20}'import requests
r = requests.post(
"https://api.reefapi.com/meesho/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "kurti",
"limit": 20
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/meesho/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "kurti",
"limit": 20
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.meesho.search with {"query":"kurti","limit":20}.Who uses this API and why
- Track Indian value price points by category week over week, and the gap between the selling price and the MRP where Meesho prints one.
- Profile the reseller behind a listing: its rating, rating count, products listed and products sold, straight from the product record.
- Feed an India price-comparison or affiliate catalogue with the INR price, images, attributes, category path and the product URL.
- Watch per-size stock on the variants of a listing you resell or compete with, without treating an unpublished size as available.
- Mine a category's ratings and review text to see where buyers complain about fit, fabric or delivery.
Questions developers ask before integrating
What does the Meesho API return?
Seven actions. search runs a keyword search and returns up to 100 products in one call. product/detail opens one product by its short code or its URL for the full record: price, the MRP Meesho publishes, the offer breakdown, size variants with their own price and stock, the reseller shop, the rating breakdown, images, the attribute table, the breadcrumb, the delivery estimate and the return options. product/reviews returns the star breakdown and the review rows. category/browse reads a Meesho category page. categories, search/filters and search/suggest are free: the browsable taxonomy three levels deep, the filters and sorts Meesho offers for one query, and its own search-box completions. Prices are INR and no Meesho account is used.
Does the Meesho API give me the MRP and the discount?
Where Meesho publishes them, and it often does not. Across 600 search rows in twelve categories a struck price was present on 16 percent, from 4 percent on kids toys and bluetooth earbuds to 48 percent on face wash. Where there is none, original_price and discount_percent come back null rather than as a number worked out from something else. The product record publishes the MRP and the discount against it when Meesho prints them there, and a category listing prints the struck price somewhat more often than search does.
How many Meesho products can one call return, and how do I page?
search returns up to 100 rows in a single request, and that is the cheap way to get depth because a 100-row page costs the same as a 20-row one. Page with the cursor the response hands back: page two fetched that way shared 0 of 20 rows with page one, while a bare page number on its own re-serves page one, so a page number is walked internally instead, one upstream call per page and no deeper than page ten. A category page is different: Meesho renders about twenty products on it, so limit there trims that page rather than fetching more.
Which Meesho filters and sorts can I use?
Only the ones Meesho publishes for that exact query, which search/filters returns free: colour, price band, rating, discount, fabric, size, category and gender among them, with every value each accepts. A value Meesho does not know is refused here with the real values named, because Meesho answers an unknown filter by returning the unfiltered set, which looks like a filter that worked. Two things to know: the 2.0, 3.0 and 3.5 and above rating bands return the same set as each other, so they are Meesho's own bands rather than three thresholds, and a price band is a label rather than an exact range. Sorting is relevance or newest. There is no price sort on Meesho web search, so price_asc is refused rather than accepted and answered with nothing.
What happens when a Meesho search has no matches?
Meesho pads an empty search with unrelated products rather than saying zero, and publishes no total to contradict it: a nonsense query returned twenty products led by a kids jigsaw puzzle. Every keyword search is judged against its own query tokens, and a page where fewer than a quarter of the rows answer the query comes back as NOT_FOUND with fallback_results set. Pass include_fallback_results to get those rows anyway, still flagged.
Do I get the seller behind a Meesho listing?
Yes, as a shop rather than a brand. Meesho runs on resellers, so its own brand field on a listing is the supplier name. Rather than present a shop as a manufacturer, this API returns no brand field at all and gives you shop instead: name, handle, shop URL, its own rating, rating count, products listed and products sold, plus the manufacturer and Meesho Mall verification flags. These are business facts that Meesho publishes; no personal contact detail is read or constructed.
Does the Meesho API tell me stock per size?
Per variant, yes, and the two kinds of blank are kept apart. variants carries each size with its own id, name, price and in_stock flag. in_stock is false only where Meesho states the size is out of stock, and null where Meesho lists the size but publishes no stock behind it. The product-level stock flag is deliberately not copied down onto sizes, because that would publish a sold-out size as available.
What does the Meesho API leave null, and what can it not answer?
Whatever Meesho does not publish, and it says so. total_results is always null because Meesho publishes no total. Attributes arrived on 58 percent of 600 rows, everything on sarees and wall clocks and nothing at all on men's t-shirts and wrist watches, and a rating on 87 percent, dropping to 46 percent on bluetooth earbuds. Reviewer names are Meesho's own display names and are overwhelmingly the literal string Meesho User. product/reviews cannot tell a dead product code from a product with no reviews, because Meesho answers both with an empty summary, so the error says exactly that and points at product/detail, which can. The reviews cursor can still be set on the last page, so stop on an empty one. Delivery is the estimate Meesho prints on the page with its cash-on-delivery flag, not a promise for a given pincode, and there is no pincode parameter.
What is the Meesho API?
Meesho API is a ReefAPI endpoint group for india's value marketplace: mrp and selling price kept apart, the reseller shop behind each listing, per-size stock. It returns live JSON through POST requests under /meesho/v1.
Is the Meesho API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Meesho calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Meesho login or account?
No login to Meesho is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Meesho data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Meesho API use?
Meesho actions currently cost 1-2 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Meesho from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call meesho actions with the same key, credit pool and JSON envelope used by normal REST requests.