Myntra Fashion Catalog Finder by Category & Brand
Search Myntra's fashion catalog by keyword, category, or brand, or fetch specific products, for MRP, price, discount, ratings, sizes, colors, and category detail.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | optional | What to fetch. Each mode has its own input list below. |
searchQueries | array | optional | One or more keyword searches (mode=search), e.g. `tshirts`, `printed kurtas`, `nike running shoes`. Each query is fetched separately and duplicates are removed. |
categories | array | optional | One or more category listings (mode=browseByCategory). |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | optional | What to fetch. Each mode has its own input list below. |
searchQueries | array | optional | One or more keyword searches (mode=search), e.g. `tshirts`, `printed kurtas`, `nike running shoes`. Each query is fetched separately and duplicates are removed. |
categories | array | optional | One or more category listings (mode=browseByCategory). |
brands | array | optional | One or more brands to browse (mode=browseByBrand), e.g. `nike`, `levis`, `tommy hilfiger`. Spaces and punctuation are normalized automatically. |
startUrls | array | optional | Myntra listing, search, category, brand, or product URLs (mode=byUrl). Product URLs are fetched as products; everything else is fetched as a listing. |
productIds | array | optional | Numeric Myntra product IDs or product URLs (mode=byProductIds), e.g. `36674095`. |
gender | string | optional | Restrict listing results to one gender segment. Applied on Myntra's side. |
sortBy | string | optional | How Myntra orders listing results. |
minPrice | integer | optional | Only products whose selling price is at least this amount. 0 means no minimum. |
maxPrice | integer | optional | Only products whose selling price is at most this amount. 0 means no maximum. |
minDiscount | integer | optional | Only products discounted by at least this percentage. 0 means no minimum. |
minRating | number | optional | Only products rated at least this value (0-5). Products without a rating are excluded when this is above 0. |
containsKeyword | string | optional | Only products whose name contains this keyword (case-insensitive). Leave empty for all products. |
includeDetails | boolean | optional | Open each product page to add sellers, addresses, per-size stock and measurements, specifications, rating breakdown, policies, videos, and tags. Slower but much richer. URL and product-ID modes always fetch details. |
includeReviews | boolean | optional | Emit one row per written review with recordType `review`, in addition to product rows. |
maxReviewsPerProduct | integer | optional | Review rows to fetch for each product when written reviews are enabled (1-2000). |
maxItems | integer | optional | Total product rows to save across all queries, categories, brands, and URLs (1-10000). Review rows are additional. |
splitLargeSearches | boolean | optional | Go past the per-filter result cap by fetching gender, price-band, and sort slices, then removing duplicates. Recommended for deep exports. |
proxyConfiguration | object | optional | Optional override. Leave untouched and the actor selects a working connection automatically. |
Download the published input schema
View complete JSON
{
"description": "Search Myntra by keyword, browse categories or brands, or fetch listings, product URLs, and product IDs.",
"properties": {
"brands": {
"default": [],
"description": "One or more brands to browse (mode=browseByBrand), e.g. `nike`, `levis`, `tommy hilfiger`. Spaces and punctuation are normalized automatically.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Brands",
"type": "array"
},
"categories": {
"default": [],
"description": "One or more category listings (mode=browseByCategory).",
"editor": "select",
"items": {
"enum": [
"tshirts",
"shirts",
"jeans",
"trousers",
"shorts",
"trackpants",
"sweatshirts",
"sweaters",
"jackets",
"blazers",
"coats",
"kurtas",
"kurtis",
"sarees",
"dresses",
"tops",
"skirts",
"leggings",
"innerwear",
"socks",
"swimwear",
"shoes",
"sneakers",
"sports-shoes",
"sandals",
"flats",
"heels",
"boots",
"slippers",
"bags",
"backpacks",
"clutches",
"wallets",
"watches",
"sunglasses",
"belts",
"caps",
"scarves",
"jewellery",
"earrings",
"rings",
"bracelets",
"chains",
"dupattas",
"stoles",
"lehengas",
"mens-grooming",
"beauty"
],
"enumTitles": [
"T-shirts",
"Shirts",
"Jeans",
"Trousers",
"Shorts",
"Track pants",
"Sweatshirts",
"Sweaters",
"Jackets",
"Blazers",
"Coats",
"Kurtas",
"Kurtis",
"Sarees",
"Dresses",
"Tops",
"Skirts",
"Leggings",
"Innerwear",
"Socks",
"Swimwear",
"Shoes",
"Sneakers",
"Sports shoes",
"Sandals",
"Flats",
"Heels",
"Boots",
"Slippers",
"Bags",
"Backpacks",
"Clutches",
"Wallets",
"Watches",
"Sunglasses",
"Belts",
"Caps",
"Scarves",
"Jewellery",
"Earrings",
"Rings",
"Bracelets",
"Chains",
"Dupattas",
"Stoles",
"Lehengas",
"Men's grooming",
"Beauty"
],
"type": "string"
},
"prefill": [],
"title": "Categories",
"type": "array"
},
"containsKeyword": {
"default": "",
"description": "Only products whose name contains this keyword (case-insensitive). Leave empty for all products.",
"editor": "textfield",
"prefill": "",
"title": "Keyword in product name",
"type": "string"
},
"gender": {
"default": "",
"description": "Restrict listing results to one gender segment. Applied on Myntra's side.",
"editor": "select",
"enum": [
"",
"men",
"women",
"boys",
"girls"
],
"enumTitles": [
"Any",
"Men",
"Women",
"Boys",
"Girls"
],
"prefill": "",
"title": "Gender",
"type": "string"
},
"includeDetails": {
"default": true,
"description": "Open each product page to add sellers, addresses, per-size stock and measurements, specifications, rating breakdown, policies, videos, and tags. Slower but much richer. URL and product-ID modes always fetch details.",
"prefill": true,
"title": "Fetch product details",
"type": "boolean"
},
"includeReviews": {
"default": false,
"description": "Emit one row per written review with recordType `review`, in addition to product rows.",
"prefill": false,
"title": "Include written reviews",
"type": "boolean"
},
"maxItems": {
"default": 100,
"description": "Total product rows to save across all queries, categories, brands, and URLs (1-10000). Review rows are additional.",
"maximum": 10000,
"minimum": 1,
"prefill": 2,
"title": "Max products",
"type": "integer"
},
"maxPrice": {
"default": 0,
"description": "Only products whose selling price is at most this amount. 0 means no maximum.",
"maximum": 10000000,
"minimum": 0,
"prefill": 0,
"title": "Max price (INR)",
"type": "integer"
},
"maxReviewsPerProduct": {
"default": 20,
"description": "Review rows to fetch for each product when written reviews are enabled (1-2000).",
"maximum": 2000,
"minimum": 1,
"prefill": 1,
"title": "Max reviews per product",
"type": "integer"
},
"minDiscount": {
"default": 0,
"description": "Only products discounted by at least this percentage. 0 means no minimum.",
"maximum": 90,
"minimum": 0,
"prefill": 0,
"title": "Min discount (%)",
"type": "integer"
},
"minPrice": {
"default": 0,
"description": "Only products whose selling price is at least this amount. 0 means no minimum.",
"maximum": 10000000,
"minimum": 0,
"prefill": 0,
"title": "Min price (INR)",
"type": "integer"
},
"minRating": {
"default": 0,
"description": "Only products rated at least this value (0-5). Products without a rating are excluded when this is above 0.",
"maximum": 5,
"minimum": 0,
"prefill": 0,
"title": "Min rating",
"type": "number"
},
"mode": {
"default": "search",
"description": "What to fetch. Each mode has its own input list below.",
"editor": "select",
"enum": [
"search",
"browseByCategory",
"browseByBrand",
"byUrl",
"byProductIds"
],
"enumTitles": [
"Search by keyword",
"Browse by category",
"Browse by brand",
"Fetch listing or product URLs",
"Fetch product IDs"
],
"prefill": "search",
"title": "Mode",
"type": "string"
},
"productIds": {
"default": [],
"description": "Numeric Myntra product IDs or product URLs (mode=byProductIds), e.g. `36674095`.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Product IDs",
"type": "array"
},
"proxyConfiguration": {
"default": {},
"description": "Optional override. Leave untouched and the actor selects a working connection automatically.",
"editor": "proxy",
"prefill": {},
"title": "Proxy configuration",
"type": "object"
},
"searchQueries": {
"default": [],
"description": "One or more keyword searches (mode=search), e.g. `tshirts`, `printed kurtas`, `nike running shoes`. Each query is fetched separately and duplicates are removed.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [
"tshirts"
],
"title": "Search queries",
"type": "array"
},
"sortBy": {
"default": "",
"description": "How Myntra orders listing results.",
"editor": "select",
"enum": [
"",
"new",
"popularity",
"price_asc",
"price_desc",
"discount",
"customer_rating"
],
"enumTitles": [
"Default relevance",
"What's new",
"Popularity",
"Price: low to high",
"Price: high to low",
"Better discount",
"Customer rating"
],
"prefill": "",
"title": "Sort order",
"type": "string"
},
"splitLargeSearches": {
"default": true,
"description": "Go past the per-filter result cap by fetching gender, price-band, and sort slices, then removing duplicates. Recommended for deep exports.",
"prefill": false,
"title": "Split large searches",
"type": "boolean"
},
"startUrls": {
"default": [],
"description": "Myntra listing, search, category, brand, or product URLs (mode=byUrl). Product URLs are fetched as products; everything else is fetched as a listing.",
"editor": "stringList",
"items": {
"type": "string"
},
"prefill": [],
"title": "Listing or product URLs",
"type": "array"
}
},
"required": [],
"schemaVersion": 1,
"title": "Myntra Scraper Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
products | string | optional | Dataset containing scraped Myntra products and written reviews, separated by recordType. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Myntra products with prices, discounts, coupons, ratings, sellers, per-size stock, specifications, policies, media, and optional written-review rows.",
"properties": {
"products": {
"description": "Dataset containing scraped Myntra products and written reviews, separated by recordType.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Myntra products and reviews",
"type": "string"
}
},
"title": "Myntra Fashion Catalog & Review Scraper Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"views": {
"overview": {
"display": {
"component": "table",
"properties": {}
},
"title": "Products and reviews",
"transformation": {
"fields": [
"recordType",
"productName",
"brand",
"price",
"mrp",
"discountPercent",
"couponCode",
"rating",
"sellerName",
"inStock",
"category",
"productUrl"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
Myntra Fashion Catalog & Review Scraper
Scrape Myntra fashion listings and product pages for pricing, discounts, coupons, sellers, size-level stock, specifications, and written reviews. Start from a keyword search, a category, a brand, a listing URL, or a list of product IDs, then export clean records that are ready for pricing research, catalog monitoring, or review analysis.
What this actor does
- Five input modes: keyword search, category browse, brand browse, listing/product URLs, and numeric product IDs
- Multiple inputs per run: several queries, categories, brands, URLs, or IDs are fetched in one job and deduplicated by product
- Real pagination: walks past the first listing page and splits large searches by gender, price band, and sort order
- Server-side filters: gender, sort order, and price range are applied by Myntra before records are collected; discount, rating, and name keywords are checked on each record
- Full product enrichment: sellers and addresses, per-size stock and garment measurements, specifications, rating breakdown, return/COD policies, videos, tags, and coupons
- Optional review rows: written reviews with rating, text, size bought, photos, votes, and dates
- Empty fields are omitted — records never contain
null,"",[], or{}
Output per product
Product rows have recordType: "product".
productId,productName,brand,additionalInfocurrency— alwaysINRmrp,price,discountAmount,discountPercent,discountDisplayLabelcouponCode,couponDiscount,priceWithCoupon,couponValidUntilrating,ratingCount,reviewsCount,reviewCount,ratingDistributionprimaryColour,baseColour,gender,season,yearsizes[],availableSizes[],sizeOptions[]— per-size SKU, availability, stock, price, sellers, and measurementshasMultipleSizes,inStock,totalStock,colourVariantImages[],colours[],relatedColoursCountsellerId,sellerName,sellerCity,sellerState,sellers[]— partner ID, name, display name, and full addressdescription,materialCare,sizeFit,manufacturer,countryOfOriginspecifications— garment attributes such as fabric, fit, pattern, sleeve, occasion, and wash caretags[],offers[],videoUrls[],brandLogoUrlimageUrl,imageUrls[]category,subCategory,masterCategory,categoryPath,listedAtisReturnable,isExchangeable,codAvailable,returnDays,tryAndBuyproductUrl,sourceUrl,query,sourceKind,detailsFetched,position,scrapedAt
Output per review
Review rows have recordType: "review" and are saved only when includeReviews is enabled.
reviewId,productId,reviewedProductIdrating,text,sizeBoughtimages[],videoUrlupvotes,downvotesreviewerName,reviewedAtproductName,brand,productUrl,sourceUrl,scrapedAt
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode |
string | search |
search / browseByCategory / browseByBrand / byUrl / byProductIds |
searchQueries |
array | [] |
Keyword searches (mode=search) |
categories |
array | [] |
Category listings (mode=browseByCategory) |
brands |
array | [] |
Brand listings (mode=browseByBrand) |
startUrls |
array | [] |
Myntra listing or product URLs (mode=byUrl) |
productIds |
array | [] |
Numeric IDs or product URLs (mode=byProductIds) |
gender |
string | "" |
"" / men / women / boys / girls |
sortBy |
string | "" |
Default relevance, newest, popularity, price, discount, or rating |
minPrice |
integer | 0 |
Minimum selling price in INR; 0 means any |
maxPrice |
integer | 0 |
Maximum selling price in INR; 0 means any |
minDiscount |
integer | 0 |
Minimum discount percentage; 0 means any |
minRating |
number | 0 |
Minimum product rating; products without a rating are excluded when set |
containsKeyword |
string | "" |
Keep only product names containing this text |
includeDetails |
boolean | true |
Add sellers, stock, specifications, policies, media, and tags |
includeReviews |
boolean | false |
Emit written-review rows |
maxReviewsPerProduct |
integer | 20 |
Review rows per product when reviews are enabled |
maxItems |
integer | 100 |
Total product rows across all inputs (1–10000) |
splitLargeSearches |
boolean | true |
Split large searches by gender, price, and sort for more depth |
proxyConfiguration |
object | {} |
Optional override; leave untouched for automatic connection selection |
Examples
Example: keyword search with filters
{
"mode": "search",
"searchQueries": ["running shoes", "polo tshirts"],
"gender": "men",
"minPrice": 500,
"maxPrice": 3000,
"minDiscount": 30,
"sortBy": "price_asc",
"maxItems": 200
}
Example: category and brand browse
{
"mode": "browseByCategory",
"categories": ["sneakers", "watches"],
"gender": "women",
"includeDetails": true,
"maxItems": 150
}
Example: product URLs and IDs with reviews
{
"mode": "byUrl",
"startUrls": [
"https://www.myntra.com/tshirts/puma/puma-unisex-train-all-day-essentials-slim-fit-drycell-polo-sports-t-shirt/36674095/buy",
"36674095"
],
"includeReviews": true,
"maxReviewsPerProduct": 40,
"maxItems": 20
}
Example: deep export from a listing URL
{
"mode": "byUrl",
"startUrls": [
"https://www.myntra.com/kurtas?f=Gender%3Amen%2Cwomen"
],
"splitLargeSearches": true,
"sortBy": "popularity",
"maxItems": 1000
}
Use cases
- Price and discount monitoring — track selling price, MRP, coupon price, and discount depth across a catalog
- Seller intelligence — see which seller owns the buy box, its location, and its stock position
- Catalog enrichment — add fabric, fit, pattern, occasion, and garment measurements to an internal product feed
- Review analysis — export ratings, review text, size feedback, photos, and helpfulness votes
- Assortment research — compare brands and categories by price band, rating, and available sizes
- Stock and variant tracking — monitor per-size availability and total inventory for key styles
FAQ
Is any login or API key required?
No. The actor reads publicly available Myntra catalog pages and does not need cookies, accounts, or API keys.
Do I need to set up a proxy?
No. The actor selects a working connection to Myntra automatically, starting with the cheapest path and escalating only when needed.
Why do I get fewer products than I requested?
Myntra limits how deep a single listing can be paged. Enable splitLargeSearches to partition a large request by gender, price band, and sort order; the actor then removes duplicates. Extremely broad categories can still have practical limits.
Why are some fields missing on some products?
Fields are omitted when Myntra does not publish them for that product. For example, some listings have no rating yet, some have no video, and some have no coupon.
What is the difference between price and priceWithCoupon?
price is the current selling price. priceWithCoupon is the best price after applying the displayed coupon, and couponCode contains that coupon's code.
What does detailsFetched mean?
It is true when the product page was opened successfully and the detail fields came from that page. Listing-only modes can still return a product row without it if a detail page is temporarily unavailable.
Why do review rows not count toward maxItems?
maxItems controls product rows. Review rows are additional records so that enabling reviews does not reduce the number of products you receive.
Are the images and videos permanent?
The actor returns the media URLs published by Myntra. They are public links, but Myntra may change or remove media over time.
Is this affiliated with Myntra?
No. This is an independent third-party actor that reads publicly available catalog pages.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build 1mGy2E6jqPmXqgRby. Documentation is regenerated from the default published build; private drafts are not included.