India's value marketplace as JSON: price, MRP, the shop behind the listing and per-size stock
The Meesho API returns meesho.com, India's largest value marketplace, as clean JSON in seven actions.
7 active endpoints, on 0, 1 and 2 credit tiers.
- POST/meesho/v1/search
- POST/meesho/v1/product/detail
- POST/meesho/v1/product/reviews
- POST/meesho/v1/category/browse
- POST/meesho/v1/categories
- POST/meesho/v1/search/filters
- POST/meesho/v1/search/suggest
What Meesho endpoints does ReefAPI ship?
7 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Meesho API
7 of 7 endpoints, ready to run
Keyword search across meesho.com, up to 100 products in one call: product code, title, INR price with the struck price and discount where Meesho publishes them, the offer line, rating and rating count, images, attributes, free-delivery and express flags, the supplier state, Meesho Mall status and the listing date.
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the Meesho API works
Meesho is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 294 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Ask Meesho which filters exist before you spend a credit
Meesho answers a filter value it does not know by returning the unfiltered set, so a guessed filter looks like it worked and quietly is not one. The filter catalogue is free, so there is no reason to guess.
{"query": "kurti"}Zero credits. The groups Meesho offers for that exact query, colour, price band, rating, discount, fabric, size, category and gender among them, every value each accepts, and the sort orders it publishes. These are the only values search will send.
{"query": "kurti", "limit": 100, "filters": ["Rating=4.0 And Above"], "sort": "newest"}1 credit for up to 100 rows in one call, the same price as twenty. A filter Meesho does not know is refused here with the real values named rather than passed on and answered with everything. There is no total to read, because Meesho publishes none.
{"query": "kurti", "cursor": "<pagination.cursor from above>"}1 credit. The cursor is the real paging mechanism: page two fetched this way shared 0 of 20 rows with page one, while a bare page number re-serves page one.
{"product_id": "<a row product_id>"}2 credits. The MRP and the discount where Meesho publishes them, the offer breakdown, every size variant with its own price and stock, the reseller shop with its rating and products sold, the attribute table, the breadcrumb, the delivery estimate and the return options. The code matches the search row exactly, 14 of 14 on the live run.
{"product_id": "<the same code>"}1 credit for the star breakdown and the review rows with text, date, helpful count and photos. Stop on an empty page, because the cursor can still be set on the last one.
A filter set you can prove Meesho accepts, pages that do not repeat, and a product record with the shop, the size-level stock and the MRP where there is one.
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}'{
"ok": true,
"data": { … },
"meta": {
"api": "meesho",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}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.
One marketplace, one currency, and the number Meesho never publishes
meesho.com only, logged out, prices in INR. Measured on 2026-09-25 across 84 live calls: 14 keyword searches plus filtered, sorted and paged variants, 14 products, 12 review sets, 12 category pages, 11 suggest prefixes and the full taxonomy. 72 were positive and all 12 failures were deliberate negative cases that returned the intended code. Field coverage is from a separate 600-row study across twelve categories on 2026-09-24. Four of these lines go against us.
This engine reads meesho.com, India's largest value marketplace, which runs on small resellers at very low price points. Every price is INR. There is no country parameter because there is no other storefront behind it, and nothing logged-in is read: no cart, no orders, no buyer data.
price is what a shopper pays and original_price is the struck price Meesho prints beside it. Meesho prints one on a minority of search rows: 16 percent of 600 rows, from 4 percent on kids toys and bluetooth earbuds to 48 percent on face wash, and 34 percent on running shoes and laptop bags. Where there is none, original_price and discount_percent come back null rather than as a figure worked out from something else, and a category listing prints the struck price somewhat more often than search does.
Meesho's own brand field on a reseller listing is the supplier name, so no brand field is published at all. The seller comes back as shop: name, handle, shop URL, its own rating, rating count, products listed and products sold, with the manufacturer and Meesho Mall verification flags. Those are business facts Meesho publishes; no personal contact detail is read or constructed, and review authors are Meesho's own display names, overwhelmingly the literal string Meesho User.
variants carries each size with its own id, name, price and in_stock flag. in_stock is false only where Meesho states out of stock and null where Meesho lists the size but publishes no stock behind it. The product-level stock flag is never copied down onto a size, because that would publish a sold-out size as available. A parse failure is never dressed up as a null either: a product page with no product, title or price fails the call rather than returning half a record.
Each group was run at fifty rows against a same-run unfiltered control and measured on the ids and values that came back: Under 199 rupees shared 22 percent of its ids with the control and returned a mean price of 183 against the control's 248, Kurta Sets 0 percent, Fabric Acrylic 0 percent, Gender Boys 0 percent, Discount 30 percent and above 0 percent, Colour Beige 2 percent, and Rating 4.0 and above 42 percent with two of fifty rows below four stars against sixteen of forty-seven in the control. Values are resolved against Meesho's live catalogue for the same query, so an unknown one is refused with the real values named.
Meesho publishes no count for a search, so total_results is always null and count is the size of the page you asked for. Page with the cursor the response returns: 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 and is therefore walked internally, one upstream call per page and no deeper than page ten. limit up to 100 in one request is the cheap way to get depth.
Meesho fills an empty search with unrelated products rather than saying zero: a nonsense query returned twenty, 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. A query in a non-latin script is not judged this way, because Meesho transliterates it before it searches.
Across 600 rows, attributes arrived on 58 percent, 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. Tags arrived on 58 percent. Product code, title, price, category, images, the details text, the supplier state and the listing date were on 100 percent of all 600. On filters, Meesho's 2.0, 3.0 and 3.5 and above rating bands return the same set as each other, so they are its own bands rather than three thresholds, and a price band is a label rather than a range: Under 199 rupees returned rows priced up to 221 and Under 299 rupees up to 322.
Meesho answers both with an empty summary, so the error says exactly that and names product/detail, which can tell them apart: a product code that no longer exists is returned as NOT_FOUND there rather than as a retryable fault. The reviews cursor can also still be set on the last page, so stop on an empty one.
The product record carries the delivery estimate Meesho prints on the page, its free-delivery and express flags, the shipping charge, the cash-on-delivery flag and the return options with their prices. There is no pincode parameter, so the estimated date is the page's own estimate rather than a promise for a given address.
categories, search/filters and search/suggest are free, because they exist so a call can be built without guessing. search and product/reviews are 1 credit each, product/detail and category/browse are 2. A 100-row search page costs the same 1 credit as a 20-row one, so ask for the page.
What people build with Meesho
The jobs this data is most often used for.
endpoints
credits per call
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.
What Meesho data costs
The cheapest call here is 0 credits, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 294 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
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"])Have a question? We got answers.
The questions people actually ask before wiring up Meesho.
Get a free key →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.
122 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Meesho, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 293 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-25.