
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape Myntra products from keyword searches, category and brand pages, product URLs or product IDs: price, MRP, discount, brand, rating, sizes, stock, seller, specs and images. No login needed.
Pull product data from Myntra.com, the Indian fashion and lifestyle store: prices, MRP, discounts, brands, ratings, sizes, stock, sellers, specifications and images. Search by keyword, paste any category, brand or search page, or give product URLs and IDs. No login, no browser: 1,000 products take about 15 seconds.
/men-tshirts), brand pages (/nike), filtered or sorted listing URLs, product URLs and bare product IDs.nike running shoes), or paste Myntra URLs (category, brand, search or product pages), or add product IDs.| Field | What it does |
|---|---|
searchQueries | Keywords to search, each with its own product limit. |
startUrls | Myntra category, brand, search or product URLs. Filters and sort inside a listing URL are kept. |
productIds | Numeric Myntra product IDs; each returns a full-detail record. |
maxItems | Products per keyword or listing (default 20, 0 = no limit). |
includeDetails | Open each product for sizes, stock, seller, specs, description and more. |
sortBy | popularity, new, price_asc, price_desc, discount or rating. |
gender, brands | Only these genders or brands (brand names in any case). |
minPrice, maxPrice | Price range in INR. |
minDiscount, minRating | At least this discount (%) or star rating. |
proxyConfiguration | Datacenter by default; the run switches to Indian residential exits by itself if Myntra refuses them. |
{
"searchQueries": ["nike running shoes"],
"startUrls": ["https://www.myntra.com/men-tshirts?sort=new"],
"productIds": ["33477860"],
"maxItems": 50,
"includeDetails": false,
"gender": "men",
"minDiscount": 30,
"sortBy": "popularity"
}
One record per product. Search and listing records (source: "search") carry the card fields. Product URLs, product IDs and runs with Include full product details return source: "detail" records with everything below.
| Field | Meaning |
|---|---|
productId, productName, brand | Myntra product ID, title and brand |
price, mrp, discountAmount, discountPercent, discountLabel | Selling price and MRP in INR, discount in INR and percent, label as shown |
rating, ratingCount | Average stars and number of ratings |
gender, articleType, primaryColour | Who it is for, product type and colour |
sizes, inStock | Sizes (with per-size price, stock and seller on detail records) and availability |
image, images, videoUrl | Main image, all images and the product video |
url | Product page |
query, sourceUrl, position | Which input found the product and where it was in the listing |
seller, stockCount, availableSizes | Buy-box seller, units in stock, sizes in stock (detail) |
specifications, description, productDetails | Attributes such as Fabric or Fit, description, Material & Care and Size & Fit (detail) |
reviewsCount, ratingBreakdown | Written reviews and ratings per star (detail) |
masterCategory, subCategory, baseColour | Category tree and base colour (detail) |
countryOfOrigin, manufacturer | Origin and manufacturer or packer (detail) |
colourVariants, colourVariantsCount | Other colours of the same product |
returnPeriodDays, isReturnable, isExchangeable, codEnabled | Return window and policy, cash on delivery (detail) |
season, year, catalogDate | When the product entered the catalogue |
Listing record from a test run (lists shortened):
{
"source": "search",
"productId": "33477860",
"productName": "Nike Run Defy Men's Road-Running Shoes",
"brand": "Nike",
"gender": "Men",
"primaryColour": "Black",
"articleType": "Sports Shoes",
"mrp": 3995,
"price": 2597,
"discountAmount": 1398,
"discountPercent": 35,
"discountLabel": "(35% OFF)",
"rating": 4.43,
"ratingCount": 2983,
"sizes": ["5", "5.5", "6", "6.5", "7", "7.5"],
"inStock": true,
"colourVariantsCount": 4,
"image": "https://assets.myntassets.com/assets/images/2025/APRIL/4/35tsxYXy_39ef113ec33f4c39a2d89953bc5be3f8.jpg",
"catalogDate": "2025-04-03",
"url": "https://www.myntra.com/sports-shoes/nike/nike-run-defy-mens-road-running-shoes/33477860/buy",
"query": "nike running shoes",
"position": 1
}
Full-detail record from a test run (lists shortened):
{
"source": "detail",
"productId": "22057794",
"productName": "Sangria Floral Yoke Printed Mirror Work Kurta",
"brand": "Sangria",
"gender": "Women",
"articleType": "Kurtas",
"masterCategory": "Apparel",
"subCategory": "Topwear",
"mrp": 2499,
"price": 617,
"discountPercent": 75,
"rating": 4.31,
"ratingCount": 12574,
"reviewsCount": 1789,
"sizes": [
{"label": "S", "available": true, "skuId": "69762380", "price": 617, "mrp": 2499, "stock": 84, "seller": "DIVYANK FASHION PRIVATE LIMITED"}
],
"availableSizes": ["S", "M", "L", "XL", "XXL", "3XL"],
"stockCount": 577,
"seller": "DIVYANK FASHION PRIVATE LIMITED",
"countryOfOrigin": "India",
"specifications": {"Colour Family": "Monochrome", "Design Styling": "Regular", "Fabric Purity": "Pure"},
"description": "Colour: black\nFloral printed\nTie-Ups neck\nThree-quarter, regular sleeves",
"returnPeriodDays": 7,
"codEnabled": true,
"url": "https://www.myntra.com/kurtas/sangria/sangria-floral-yoke-printed-mirror-work-kurta/22057794/buy"
}
A run summary (products per input, notes, skipped inputs) is saved as OUTPUT in the run's key-value store.
You pay per product saved:
Platform usage (compute and proxy traffic) is billed on top and is small: our 1,000-product test run used about $0.005. So 1,000 listing products cost about $2.51, and 1,000 detailed products about $4.02. Products that fail are never charged, and a run stops cleanly when it reaches your maximum charge.
Is it legal to scrape Myntra? The scraper only reads public product pages that anyone can open without an account. Check Myntra's terms and your local laws for how you use the data, especially if you republish it.
Do I need a Myntra account or a proxy? No account. The default datacenter proxy works; if Myntra starts refusing it, the run moves to Indian residential exits on its own.
How many products can I get? As many as Myntra lists. Myntra stops any one listing at 599 products, so for bigger limits the scraper splits the listing into price bands. Those extra products no longer follow the chosen sort order.
Why is a field empty?
Some fields only exist on detail records (seller, specifications, stock and so on): turn on "Include full product details". rating is empty for products nobody has rated yet.
Do prices depend on my location? The prices are Myntra's prices for India in INR, as shown to a guest without coupons or bank offers.
Can I schedule runs or use the API? Yes. Schedule the scraper to track prices daily, and start runs or read results through the API, webhooks and integrations.
/shop/men are not product listings; use a category or brand page instead.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch keywords
Words you would type into Myntra's search box, e.g. 'nike running shoes' or 'women kurta'. Each keyword is its own search and gets its own product limit.
startUrlsarrayOptionalMyntra URLs
Myntra category, brand or search pages (e.g. https://www.myntra.com/men-tshirts or https://www.myntra.com/nike) and product pages (e.g. https://www.myntra.com/sports-shoes/nike/nike-run-defy-mens-road-running-shoes/33477860/buy). Filters and sort already in a listing URL are kept unless you set the same option below. Product pages always return full details.
productIdsarrayOptionalProduct IDs
Numeric Myntra product IDs (the number before /buy in a product URL), e.g. 33477860. Each ID returns one record with full details.
maxItemsintegerOptionaldefault 20Max products per keyword or listing
Stop after this many products for each keyword and each listing URL. Set 0 for no limit. Myntra shows at most 599 products per listing page; beyond that the scraper splits the listing into price bands to reach the rest.
includeDetailsbooleanOptionaldefault falseInclude full product details
Open each product found by a keyword or listing for sizes with per-size price and stock, seller, specifications, description, all images, rating breakdown, country of origin and return policy. Billed at the product-detail rate. Product URLs and IDs always include details.
Applied by Myntra itself, so filtered runs need fewer requests.
sortByenumOptionalSort by
Result order. Leave empty to keep Myntra's recommended order (or the sort already in a URL).
genderenumOptionalGender
Only products for this gender.
brandsarrayOptionalBrands
Only products of these brands, e.g. Nike or Puma. Upper or lower case both work.
minPriceintegerOptionalMinimum price (INR)
Only products selling at or above this price in Indian rupees.
maxPriceintegerOptionalMaximum price (INR)
Only products selling at or below this price in Indian rupees.
minDiscountintegerOptionalMinimum discount (%)
Only products discounted by at least this percentage, e.g. 40.
minRatingintegerOptionalMinimum rating
Only products rated at least this many stars (1 to 4). Products without ratings are left out when this is set.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter exits work for Myntra. If Myntra starts refusing them, the run switches to residential exits in India by itself.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| source | string | null | 'search' for a listing card, 'detail' for a full product record. |
| productId | string | null | Myntra product (style) ID. |
| productName | string | null | Product title. |
| name | string | null | Product title (same as productName). |
| brand | string | null | Brand name. |
| gender | string | null | Target gender: Men, Women, Unisex, Boys or Girls. |
| primaryColour | string | null | Main colour. |
| baseColour | string | null | Base colour (detail records). |
| articleType | string | null | Article type, e.g. Tshirts or Sports Shoes. |
| masterCategory | string | null | Top-level category, e.g. Apparel or Footwear (detail records). |
| subCategory | string | null | Sub category, e.g. Topwear (detail records). |
| additionalInfo | string | null | Short product subtitle shown on the card. |
| mrp | number | null | Maximum retail price in INR. |
| price | number | null | Selling price in INR after discount. |
| discountAmount | number | null | Discount in INR (mrp minus price). |
| discountPercent | number | null | Discount in percent. |
| discountLabel | string | null | Discount label as shown, e.g. '(35% OFF)'. |
| rating | number | null | Average star rating (1 to 5); null when not rated yet. |
| ratingCount | number | null | Number of ratings. |
| reviewsCount | number | null | Number of written reviews (detail records). |
| ratingBreakdown | object | null | Ratings per star, e.g. {"5": 2139, "4": 456} (detail records). |
| sizes | array | null | Sizes: labels on listing cards; on detail records objects with label, available, skuId, price, mrp, stock and seller. |
| availableSizes | array | null | Sizes in stock (detail records). |
| inStock | boolean | null | Whether any size can be bought. |
| stockCount | number | null | Units in stock across sizes (detail records). |
| colourVariantsCount | number | null | Number of colour variants. |
| colourVariants | array | null | Other colours of the same product with ID, colour and URL (detail records). |
| seller | string | null | Seller of the buy-box offer (detail records). |
| countryOfOrigin | string | null | Country of origin (detail records). |
| manufacturer | string | null | Manufacturer or packer (detail records). |
| specifications | object | null | Product attributes such as Fabric, Fit or Sole Material (detail records). |
| description | string | null | Plain-text product description (detail records). |
| productDetails | object | null | Description sections, e.g. Product Details, Material & Care, Size & Fit (detail records). |
| image | string | null | Main product image URL. |
| images | array | null | All product image URLs. |
| videoUrl | string | null | Product video URL, when there is one. |
| returnPeriodDays | number | null | Return window in days (detail records). |
| isReturnable | boolean | null | Whether the product can be returned (detail records). |
| isExchangeable | boolean | null | Whether the product can be exchanged (detail records). |
| codEnabled | boolean | null | Whether cash on delivery is offered (detail records). |
| season | string | null | Catalogue season. |
| year | string | null | Catalogue year. |
| catalogDate | string | null | Date the product was added to the catalogue (YYYY-MM-DD). |
| query | string | null | Search keyword that found the product. |
| sourceUrl | string | null | Listing or product URL from the input. |
| position | number | null | Position in the listing (1 = first); null for products found by price band or ID. |
| url | string | null | Myntra product URL. |
| scrapedAt | string | null | When the record was scraped (ISO 8601, UTC). |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Product | One Myntra product from a search or listing saved to the dataset (name, brand, price, MRP, discount, rating, sizes, stock, images and link). | $0.0025 |
| Product with full details | One Myntra product saved with full details (per-size price and stock, seller, specifications, description, all images, rating breakdown, origin and return policy). Charged instead of Product, never on top of it. | $0.004 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/myntra-scraper').call({
"searchQueries": [
"nike running shoes"
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/myntra-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/myntra-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
No examples yet
The developer hasn't published example inputs for this actor.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.