AJIO Scraper: Fashion Search, Prices, Reviews
Pricing
from $1.14 / 1,000 products
AJIO Scraper: Fashion Search, Prices, Reviews
Scrape AJIO searches with AJIO's own filters, search links or product links, no login. Get price, MRP, offer price, discount, rating, colour group, category and seller id, plus written reviews and price monitors. Sizes with stock per size are a best effort add-on AJIO can refuse for hours.
Pricing
from $1.14 / 1,000 products
Rating
0.0
(0)
Developer
Automation Craft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
AJIO Scraper: Fashion Search, Prices, Reviews
AJIO scraper for Reliance's fashion store ajio.com: get the products of AJIO searches, narrowed with AJIO's own filters (category, brand, gender, colour, size, price, discount, rating, on sale and every other filter of AJIO's panel), as clean rows with price, MRP, offer price, discount, rating, colour group, category codes, badges, wishlist count and seller id, plus the written reviews, the image gallery and monitors that keep only new products, report price and stock changes or keep a price history. Product links and codes are read too, and on request each product's record with every size and its own stock status, stock count and price (best effort, see below). No login, no cookies, no API key. You pay per product delivered; misses, repeats and filtered products are free.
Use it to watch your brand's and other brands' prices and discounts on AJIO, to collect the products of fashion searches, to study reviews, to run a price and stock watch that reports what changed since the last run, or to keep a price history of every product with its lowest and highest price and a chart of each one.
Good to know: search results and their reviews came from AJIO at every hour we tested. AJIO's product records (product links and codes, sizes and stock) sit behind a bot manager that lets proxy addresses in and out over the day, and at some hours it refuses every address a run can use: product details are a best effort extra. Such a run names what it could not read in free rows, charges only the start fee and the rows it delivered, and can be run again later. This Actor does not read whole category, brand or curated list pages: AJIO refuses them for hours, and a search with the Category filter is not a whole category.
Quick start
- Open the Actor's Input tab.
- Type Search words (linen shirt, kurta set, running shoes), or paste AJIO links of search pages or product pages. Product codes (443107169_purple) work too.
- Optionally set AJIO's own filters: category (Men - Jeans), brands (NETPLAY, DNMX), price range, minimum discount, minimum rating, gender, colours, sizes, highlights, and any other filter of AJIO's panel such as "Occasion: Casual".
- Set Max products per search (the form starts at 10; 100 when the field is left out) and turn on Reviews or, best effort, Product details (sizes and stock) if you want them.
- Click Start. Download the results as JSON, CSV or Excel, or read them through the Apify API.
What you get
Product rows (the Product event)
One row per AJIO product in one colour (AJIO lists each colour as its own product card). Example values are from a real run on 2026-10-16. The fill column is measured on 1,582 distinct search rows of the platform runs of 2026-10-21 ("record" where a field is filled only by the product record).
| Field | Example | Fill | Notes |
|---|---|---|---|
optionCode | 443398554_black | 100% | the code after /p/ in the product link: product number and colour |
productId, sizeCode | 443398554, 443398554014 | 100% | the product number and one size code of it |
name, brand, brandCode | Shein Men Vintage Fly ... Jeans, Shein, shein | 100% | |
url | https://www.ajio.com/shein-...-jeans/p/443398554_black | 100% | luxe products link to luxe.ajio.com |
price, mrp, discount, discountPercent, currency | 799, 999, 200, 20, INR | 100% | price is the selling price; discountPercent is AJIO's discount text as a number, empty when there is no discount or when AJIO serves the row without the text (94% filled; price and mrp give the discount then, and the discount filter uses them) |
onSale | true | 100% | the price is below the MRP |
offerPrice | 559 | 100% | the price with AJIO's best coupon, where the listing shows one |
couponStatus | Coupon Applicable | 100% | |
rating, ratingCount, ratingCountText, ratingCountExact | 3, 23, "23", true | 75% | empty on products nobody rated yet; AJIO rounds big counts on listings ("1.8K"); a product record gives the exact count |
colorGroup, color | black, Black | 100%, record | colorGroup is the colour word of AJIO's colour group of the option (the part after _ of the option code, a word); color is AJIO's colour name, which its product record carries (details on, product links and codes) |
category | Men > Western Wear > Jeans with codes 8302, 830216, 830216001 | 100% | segment, vertical and brick, each with code and name |
catalog, isLuxe, planningCategory | rilfnlProductCatalog, false, Clothing | 100% (planningCategory 99%) | |
badges, isBestseller, isNew, isSellingFast, vibes | SELLINGFAST | 8% | AJIO's selling points and "vibe" words (more often on the products of a brand word search AJIO answers with its brand page) |
wishlistCount, wishlistText | 22000, "22K shoppers wishlisted in last 30 days" | 7% | |
sellerId, sellerSku | ba964665-58e9-... | 60% | on more than half of search rows; the brand and curated pages AJIO answers some searches with do not carry it |
image, images, outfitImage | image links | 100% | the gallery and the outfit picture (Image gallery off: the main image only) |
position, page, totalResults | 1, 1, 36739 | 100% | where the product stood in AJIO's results |
returnWindowDays | 10 | 100% | the return window AJIO lists for the product |
inStock, stockStatus, maxQuantity | true, inStock, 10 | record | from the product record (Product details on, product links and codes) |
source | { kind: search, input: searchTerms 1, searchWords: linen shirt } | 100% | which input found the row |
Product details (the Product detail event, optional)
With Product details on, each product row carries a details object read from AJIO's product record:
| Field | Example | Notes |
|---|---|---|
sizes[] | size 30: inStock, stockQuantity 46, price 799, MRP 999 | every size with its own stock status (inStock, lowStock, outOfStock), stock count and price |
sizeCount, sizesInStock | 6, 4 | |
colors[] | BLACK, INDIGO BLUE with their option codes, prices and stock status | the other colours of the product |
ratingHistogram, ratingPercentages | { 1: 7, 2: 4, 3: 1, 4: 5, 5: 6 } | the star breakdown |
fitRatings, qualityRatings | Perfect 40%, Loose 40% ... | AJIO's fit and quality ratings |
attributes, fabric, washCare, fit, pattern | 100% Cotton, Machine wash warm | every attribute AJIO lists |
manufacturer, marketedBy, importer, packer, countryOfOrigin, netQuantity, commodity, customerCare | INDIA, 1 N, Men's Jeans | AJIO's mandatory information |
hsnCode | 61032200 | |
returnable, returnWindowDays, returnPolicy, cashOnDelivery | true, 10 | |
coupons[], bankOffers[] | NEW30: Flat 30% off upto 500 (new users) | codes, texts, the price with each coupon (priceWithCoupon), offer amounts with their unit (amountType: percent or rupees), end dates in UTC |
customerOpinionCount, writtenReviewCount, deliveryText, season, styleType, images |
Two facts about sizes. AJIO answers some sold out sizes with "Stock info not available" and a count of 0: the row says
outOfStock with stockQuantity: null and stockCountAvailable: false, because the count is unknown, not zero (AJIO's own product
page lists those sizes as out of stock: 47 of 47 sizes checked). A lowStock size has 1 or 2 left and can be bought; AJIO's page
shows it to search engines as unavailable.
AJIO protects these pages with a bot manager. Search results were readable in every test run, and so were the reviews of the
products a search found. Product links and codes, product details, the reviews of product codes, and the brand, category or
curated page AJIO answers some search words with (netplay goes to the NETPLAY page) go through the proxy doors AJIO lets in at the time, and which doors those
are changes over the day: in the test runs of 2026-10-16 they were read in most runs. On 2026-10-21 they passed at 02:15 UTC, and
between 08:30 and 15:35 UTC more than half of our page and product code test runs got nothing (India's evening
included), and from 16:20 UTC the pages passed again while most product code runs were still refused; at 10:43, 12:30 and
14:02 UTC AJIO refused every proxy address we tried. A record that could not be read is free: the
product row is still delivered (and charged as a Product) without details, and its detailsStatus says why (door_refused,
not_read, not_found). A page that could not be read gives a free source_unavailable row.
Review rows (the Review event, optional)
With Reviews on, each product's written reviews come as rows of their own, right before the product's own row: reviewId, optionCode,
productUrl, productName, rating, text, reviewerName, isVerifiedBuyer, helpfulCount, images, reviewedAt. Order:
newest or most helpful; optional star filter and photos only. Written reviews are fewer than ratings on AJIO (a T-shirt with 1.8K
ratings had 70 written reviews). One run delivers at most 100,000 reviews: the products after that come without reviews and
say so in reviewsStatus (left_out_run_limit, or partial_run_limit for the product the bound cut short), with a free note row.
Product check rows (the Product check event, monitor in changes mode)
With a Monitor name and Monitor mode "changes", every product link or code is read on each run and delivered as one row
with its current price, mrp, stockStatus, the previous values, changeType (baseline, unchanged or changed) and changes
(which fields moved; a change of any size's price, stock status or stock count shows as sizes). With Product details on,
the row also carries every size in details.
Price history (the Price history event, monitor in history mode)
With a Monitor name and Monitor mode "history", every product your searches, search links and product codes find is
delivered on every run (charged as a Product, like any run) with its price history under that name: trackedSince,
priceHistory (every price, MRP and stock change the monitor recorded, with its date, the newest 50), previousPrice,
previousMrp, priceChange, priceChangePercent, lowestPrice and lowestPriceAt, highestPrice and highestPriceAt,
isLowestPrice and historyChangeType (baseline on the first run, then changed or unchanged). Each such row is one Price history
event. The run also stores one HTML price report with a chart of every product's price over time (the PRICE-REPORT record of
the run's key-value store; its address is in the summary row). A history the charge limit cannot pay is left off its row
(historyStatus says so) and is not recorded, so the next run still sees that price as new.
Free rows
coverage: one per search or page: what was read, delivered and skipped, AJIO's total, the filters sent, and why it stopped (end_of_results,max_items_per_search,source_page_cap, ...).completesays whether it was read to the end or to your cap.status: input problems, product codes AJIO does not have, filters AJIO does not list for a page (with the closest values it lists), doors AJIO refused, inputs not started.summary: the last row of every run, with counts, the doors used and what was charged.
How much does it cost to scrape AJIO?
Pay per event. Prices per 1,000 events by Apify plan:
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| Product (one product row) | $1.60 | $1.46 | $1.32 | $1.14 |
| Product detail (sizes, stock and the record, optional) | $2.40 | $2.20 | $2.00 | $1.70 |
| Review (optional) | $1.10 | $1.00 | $0.90 | $0.80 |
| Product check (monitor in changes mode) | $0.70 | $0.65 | $0.60 | $0.50 |
| Price history (monitor in history mode) | $0.40 | $0.36 | $0.32 | $0.28 |
Platinum and Diamond plans pay the Gold price. Each run also pays one Actor start of $0.01 (the default 256 MB run pays one; the start event has no plan discount). The Store pricing card shows these same prices per 1,000 events: "$1.14 / 1,000" on the Product row means one product costs a little over a tenth of a cent on the Gold plan.
Examples on the Free plan: 100 products of a search cost $0.01 + 100 x $0.0016 = $0.17; the same 100 with sizes and stock add $0.24; 1,000 products on the Gold plan cost $1.15. Products AJIO does not have, filtered or repeated products, and records that could not be read are not charged.
Input
| Setting | What it does |
|---|---|
searchTerms | words to search, one search each |
startUrls | AJIO links: search pages (their filters and order are kept) or product pages; category, brand and curated list pages are not read |
productCodes | AJIO product codes (443107169_purple, or a size code) |
brands | brand filter on every search; with no search words, each brand's name is searched with the brand filter |
gender, categoryNames, colors, sizes, highlights, filters | AJIO's own filter values (see below) |
minPrice, maxPrice, minDiscount, minRating | price range in rupees, discount and rating steps |
onlyOnSale | only products priced below their MRP (the others are free); like every filter, for searches and search links |
sort | relevance, discount, price low to high, price high to low, newest, rating |
maxItemsPerSearch, maxItems, maxPagesPerSearch, startPage, pageSize | caps and paging |
includeDetails, includeReviews, maxReviewsPerProduct, reviewsSort, reviewsRating, reviewsWithPhotosOnly, includeImages | add-ons |
monitorName, monitorMode, resetMonitor | the monitor (below) |
maxRequestRetries, requestTimeoutSecs, maxConcurrency, requestDelaySecs, proxyConfiguration | how the run asks AJIO |
Filters: AJIO's own names
Filters apply to searches and search links; product links and product codes are read as given. The Category filter
(categoryNames, "Men - Jeans") narrows a search, it does not turn it into a whole category: AJIO's search finds the products its
words match. Filters are matched against the filter panel AJIO lists for each search (the value as written first, case aside when none is). A value the page does
not list is noted on its coverage row with the closest values it does list; when none of a filter's values is listed, that page
delivers nothing and is free. One AJIO page takes at most 30 filter values: settings that add up to more are refused before the
run reads anything; only the run's start fee is charged. Price, discount, rating and brand (yours and a pasted link's own) are checked again on every row before
it is charged; with includeDetails they are checked on the product record, and a value the record lacks fails the check. Generic
filters are written "
The monitor
A Monitor name keeps a memory between runs (one per name, per Actor). In mode new_only (default) a scheduled run delivers and
charges only products and reviews it has not delivered before. In mode changes the product links and codes you give are read on
every run and delivered as Product check rows saying what changed. In mode history every product found is delivered on every run
with its price history and a price report (above). Use one name per mode. Reset the monitor starts the memory again.
Integrations
Run it from the Apify API, a schedule, a webhook, Make, Zapier or n8n (the Apify node or module), or from an AI agent through the Apify MCP server, where the input above is the tool's input and the dataset rows are its answer.
curl -X POST "https://api.apify.com/v2/acts/automation_craft~ajio-scraper/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{"searchTerms": ["linen shirt"], "maxItemsPerSearch": 20, "includeDetails": true}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation_craft/ajio-scraper').call({ searchTerms: ['jeans'], categoryNames: ['Men - Jeans'], maxItemsPerSearch: 50 });const { items } = await client.dataset(run.defaultDatasetId).listItems();
from apify_client import ApifyClientclient = ApifyClient("<YOUR_TOKEN>")run = client.actor("automation_craft/ajio-scraper").call(run_input={"productCodes": ["443107169_purple"], "includeDetails": True, "includeReviews": True})items = client.dataset(run["defaultDatasetId"]).list_items().items
What this Actor does NOT do
- It does not log in, add to a cart or touch any account.
- It does not read whole category, brand or curated list pages, and their links are refused at input (AJIO refuses those pages for hours); a search with the Category or Brands filter is the way to narrow a search.
- It does not read product links and codes, or sizes and stock, at an hour when AJIO's bot manager refuses every door the run can
use: the run delivers what it read before, free
source_unavailablerows name what was not read, rows without their record say so indetailsStatus, and only the start fee and the delivered rows are charged. - It does not sort by popularity: AJIO offers six orders (relevance, discount, price both ways, newest, rating) and no popularity order.
- It does not mark sponsored products: AJIO's search answers carry no sponsored marker.
- It does not give seller names: AJIO's product record carries none; the seller id and seller SKU of search rows are delivered.
- It does not correct a filter value or category label AJIO does not list; it names the closest values AJIO lists instead.
- It does not read a whole category through a search: AJIO's search finds the products its words match (for some categories close to the whole category, for others a part of it) and stops near 75,000 products a search; split a large search with filters.
- It does not check delivery to a pincode.
- It does not give a written product description: AJIO's product record carries none; the product's details as AJIO lists them
(fabric, fit, pattern, care and the other attribute lines) come in
details.attributes. - It does not read Luxe search, category, brand or curated pages on luxe.ajio.com; Luxe product pages are read, and Luxe products also come in www.ajio.com searches.
FAQ
Does AJIO have an API?
AJIO publishes no product API for the public; its seller API is for sellers. This Actor reads the same answers AJIO's website uses and gives them to you as rows through the Apify API, with no login or key.
How do I track AJIO prices?
Run a search or a list of product links on a schedule with a Monitor name: in mode new_only you get the new
products, in mode changes every watched product comes back with its price, MRP and stock and what changed since the last run,
and in mode history every product of your searches or links comes back with its price history, its lowest and highest price
and a chart in the run's price report.
Why does AJIO show different prices for different sizes?
On AJIO each size has its own price; a discount often applies to some sizes only. With Product details on, every size comes with
its own price and stock in details.sizes.
How do I scrape AJIO reviews?
Turn on Reviews: each product's written reviews come as rows with rating, text, reviewer name, verified buyer flag, photos, helpful count and date, newest or most helpful first, optionally only one star rating or only reviews with photos.
Why does this Actor run with limited permissions?
It needs no access beyond its own storages: it writes its results to its own dataset, its run state to its own key-value store, and a monitor's memory to a named store it creates itself. Limited permissions keep your account safe.
Changelog
See the Changelog tab. First release: 0.1 (October 2026).
More data tools by Automation Craft
- Myntra Scraper: Fashion Products, Prices, Sizes
- Amazon Product Scraper - Search, Best Sellers
- Zalando Ads Library Scraper - Sponsored Products
- Amazon Sponsored Products Scraper - Ads by Keyword
- ShopBack Scraper: Cashback, Gift Cards, Affiliates
- Mercari US Scraper: Listings, Sold Prices
- Instagram Ads Library Scraper - Creatives, Video
- Google Trends API & Scraper: Trending Searches