Myntra APImyntra.com ↗
Access Myntra product listings, prices, sizes, images, reviews, and category filters via a structured API. 14 endpoints covering search, browse, and product detail.
What is the Myntra API?
The Myntra API provides 14 endpoints for querying India's largest fashion e-commerce platform, returning structured product data including pricing, size availability, images, and customer reviews. The get_product_details endpoint alone surfaces over a dozen distinct fields — brand, MRP, discounted price, available sizes with seller data, rating distribution, and article attributes like fabric and fit — without requiring any session on Myntra.
curl -X GET 'https://api.parse.bot/scraper/c245ebbf-19c8-47dc-818e-c0488a0a6038/search_products?page=1&sort=price_asc&query=tshirts&filters=Color%3ABlack' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace myntra-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Myntra API — search, browse categories, filter, and inspect product details."""
from parse_apis.Myntra_API import Myntra, Sort, NotFoundError
client = Myntra()
# Search the catalog with a sort preference
results = client.products.search(query="tshirts", sort=Sort.POPULARITY)
print(f"Search: {results.total_count} products, next page: {results.has_next_page}")
# Construct a category and filter by color
category = client.category("men-tshirts")
black_results = category.filter_by_color(color="Black")
print(f"Black tshirts: {black_results.total_count} products")
# Paginate a category listing (capped)
for product in category.multi_page(start_page=1, end_page=1, limit=3):
print(f" {product.brand} - {product.name} Rs.{product.price}")
# Get product details with typed-error handling
try:
detail = client.product_details.get(product_url="tshirts/roadster/roadster-men-black-solid-round-neck-t-shirt/1327339/buy")
print(f"Detail: {detail.name}, Brand: {detail.brand_name}, MRP: {detail.mrp}")
except NotFoundError as exc:
print(f"Product not found: {exc}")
# Get specifications for a product
specs = client.product_details.specifications(product_url="tshirts/roadster/roadster-men-black-solid-round-neck-t-shirt/1327339/buy")
print(f"Specs for {specs.name}: {specs.brand}")
print("exercised: products.search / category.filter_by_color / category.multi_page / product_details.get / product_details.specifications")
Full-text search over Myntra's product catalog. Returns paginated product listings with available filters, sort options, and SEO metadata. Each page returns ~50 products. Supports combining filters and sort in one call.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order. Accepted values: popularity, price_asc, price_desc, new, discount, Customer Rating. |
| queryrequired | string | Search keyword (e.g. 'tshirts', 'shoes', 'dresses'). |
| filters | string | Filter string in format 'key:value' (e.g. 'Color:Black', 'brand:Nike', 'price:200 TO 500'). |
{
"type": "object",
"fields": {
"filters": "object with primaryFilters, rangeFilters, nestedFilters arrays",
"products": "array of product objects with id, brand, name, price, mrp, rating, sizes, images",
"totalCount": "integer total number of matching products",
"hasNextPage": "boolean indicating if more pages are available"
},
"sample": {
"data": {
"seo": {
"pageTitle": "Search"
},
"results": {
"products": [
{
"mrp": 799,
"brand": "Marks & Spencer",
"price": 591,
"rating": 4.39,
"product": "Marks & Spencer Pure Cotton Plain T-Shirt",
"category": "Tshirts",
"productId": 40651844,
"primaryColour": "Pink"
}
],
"totalCount": 554199,
"hasNextPage": true
}
},
"status": "success"
}
}About the Myntra API
Search and Category Browsing
The search_products endpoint accepts a query string and optional filters in key:value format (e.g. Color:Black, brand:Nike, price:200 TO 500) along with a sort parameter that accepts popularity, price_asc, price_desc, new, discount, or Customer Rating. Results include a products array, totalCount, hasNextPage, available filters, sortOptions, and SEO metadata. The get_category_listings endpoint works identically but takes a category_slug (e.g. men-tshirts, women-dresses) instead of a free-text query. Convenience endpoints filter_products_by_price, filter_products_by_brand, and filter_products_by_color each wrap category listings with a single focused parameter rather than requiring a manual filter string.
Product Detail and Specifications
get_product_details returns a full product object keyed by product_url or path. The response contains id, name, a brand object, a media object with image albums and videos, a price object with both MRP and discounted price, a sizes array with per-size measurements and seller data, a ratings object with averageRating, totalCount, ratingInfo, and reviewInfo, and an articleAttributes object covering fabric, fit, pattern, and similar attributes. For workflows that need only a subset, get_product_specifications returns a flat specifications key-value map, get_product_images returns an array of image objects with src, alt, and type at 720×540 resolution, and get_product_reviews returns the full ratings and top-reviews object in isolation.
Multi-Page and Filter Discovery
get_multi_page_listings accepts start_page and end_page parameters and returns a single products array with a total_scraped count, removing the need to manage pagination loops manually. get_category_filters returns the complete filter tree for any category slug: primaryFilters, secondaryFilters, rangeFilters, geoSpecificFilters, inlineFilters, and nestedFilters. This is useful for discovering valid filter values before calling search or listing endpoints.
Brand Pages and Homepage Layout
get_brand_page takes a brand name and returns the same structure as search_products, giving a quick way to enumerate a brand's catalog. get_homepage_banners requires no inputs and returns the full homepage layout tree including banners, containers, and carousels, along with pageName and countryCode fields. This endpoint is useful for tracking promotional campaigns and featured collections.
The Myntra API is a managed, monitored endpoint for myntra.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when myntra.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official myntra.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Monitor Myntra price changes on specific products by polling
get_product_detailsfor MRP and discounted price fields. - Build a size-availability tracker using the
sizesarray returned byget_product_details, which includes per-size seller data. - Aggregate customer sentiment by extracting
averageRating, rating distribution, and top reviews viaget_product_reviews. - Populate a fashion comparison tool with structured specs using
get_product_specificationsacross multiple product URLs. - Catalog a brand's full Myntra assortment by paginating
get_brand_pageresults for brands like Nike, Puma, or H&M. - Discover active promotional content and seasonal campaigns by polling
get_homepage_bannersfor the homepage layout tree. - Build a category price-range filter UI by first calling
get_category_filtersto retrieve validrangeFiltersbefore querying listings.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Myntra have an official public developer API?+
What does `get_category_filters` return, and how is it different from the filters in listing endpoints?+
get_category_listings include a filters field as part of the paginated result, but it reflects only the filters relevant to the current result set. get_category_filters is a dedicated call that returns the full filter taxonomy for a category slug — primaryFilters, secondaryFilters, rangeFilters, geoSpecificFilters, inlineFilters, and nestedFilters — without requiring a product query. Use it to discover all valid filter keys and values before constructing filter strings for other endpoints.Does the API return seller identity or third-party marketplace seller details?+
sizes array inside get_product_details includes seller data scoped to each size option, but there is no dedicated seller-profile endpoint covering seller ratings, seller names across products, or seller-level inventory. You can fork this API on Parse and revise it to add a seller-focused endpoint if your use case requires that data.How does pagination work for category and search listings?+
hasNextPage boolean and accept an integer page parameter. For automated multi-page collection, get_multi_page_listings accepts start_page and end_page and returns a single merged products array with a total_scraped count. Note that very large page ranges may time out depending on category size; it is safer to batch requests in smaller page windows.