Ajio Products Search Scraper avatar

Ajio Products Search Scraper

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Ajio Products Search Scraper

Ajio Products Search Scraper

An advanced, high-speed e-commerce scraper designed for real-time price monitoring and competitor intelligence. Extracts product titles, current pricing, discounts, stock availability, specifications, images, and seller ratings from Ajio Products Search. Perfect for inventory tracking, drop-shipp...

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

Coding Frontned

Coding Frontned

Maintained by Community

Actor stats

0

Bookmarked

40

Total users

6

Monthly active users

a day ago

Last modified

Share

What does Ajio Products Search Scraper do?

This Actor extracts public product listing data from AJIO through the site's observed JSON search response. It supports keyword searches, an Ajio /search/ URL, and exact public product URLs; it does not log in, solve CAPTCHAs, or scrape private account data.

Why use Ajio Products Search Scraper?

  • Collect normalized Ajio product IDs, names, brands, categories, prices, discounts, seller references, and product media.
  • Continue through bounded API pages, filter by price and rating when the source exposes those values, deduplicate products, and sort the collected candidate set.
  • Preserve the producing search/product URL and one-based source page on every normal row.
  • Use Apify scheduling, the API, run history, monitoring, and dataset exports around the Actor.

Ajio may return an access challenge or a changed response shape. The Actor fails closed, records a bounded run summary, and optionally emits a minimal diagnostic row rather than fabricating products.

What data can it extract?

GroupFields
IdentityproductId, name, productUrl, relativeUrl, brandName, brandTypeName
Pricingcurrency, price, priceFormatted, mrp, mrpFormatted, offerPrice, discount, discountPercent
Classificationsegment, category, subCategory, their source IDs, planningCategory, catalogName, colorGroup
CommercialcouponStatus, volumePricesFlag, sizeFlag, maxQuantity, sellerId, sellerSku
MediamainImage, images, allImages, imageDetails, and outfitPictureURL when the source supplies product media
ProvenancesourceMode, searchTerm, sourceUrl, pageNumber, position, scrapedAt

Optional values are omitted when AJIO does not return them. Product-listing responses do not reliably expose every detail-page field such as fit, sizes, or reviews, so those fields are not invented.

How to scrape AJIO

  1. Open the Actor's Input tab.
  2. Select search and enter a query, or select searchUrl and provide an HTTPS AJIO /search/ URL containing text or q.
  3. For individual items, select productUrl and provide one to twenty HTTPS AJIO /p/<product-code> URLs.
  4. Set filters, limits, and developer options, then start the run.
  5. Download the dataset or inspect OUTPUT in the default Key-Value Store.

Input

See the Input tab for the complete configuration. The runtime accepts these fields:

  • Search Sources: mode (default search), search, searchUrl, and productUrls. searchQuery is a compatibility alias for search.
  • Filters and Sorting: priceMin and priceMax (INR, default 0 means no bound), ratings ("", "1 star & above", "2 star & above", "3 star & above", or "4 star & above"), and sortBy (relevance, discount-desc, price-asc, price-desc, newest, or rating). The legacy values prce-asc, prce-desc, and newn remain accepted.
  • Pagination and Limits: maxProductsPerSearch (default 100, 1–500), maxPages (default 10, 1–20), and aliases maxProducts/maxItems. The product URL mode has a limit of one matched row per requested URL.
  • Dataset Fields: includeMedia (default true) and includeDiagnostics (default false). Diagnostic rows contain only url, error, errorCode, and scrapedAt and do not count toward normal item limits.
  • Developer Options: requestTimeoutSecs (10–90, default 45), maxRequestRetries (0–3, default 2), requestDelayMs (0–5,000, default 500), and proxyConfiguration. proxy is the legacy alias for proxyConfiguration; when both are supplied, proxyConfiguration wins.
  • Local QA / Fixtures: fixtureFile for one JSON file or fixtureFiles for ordered per-page JSON files. Paths must be relative and remain inside the Actor directory; these are explicit local test inputs, never a silent fallback for live failures.

Custom searchUrl query parameters are retained in sourceUrl; the Actor uses the observed AJIO API query for the normalized search term. Pages are followed using AJIO's pagination.totalPages metadata, up to maxPages per source. For non-relevance sorts, the bounded candidate set is collected before selecting the global limit. Missing numeric values sort after products with values. Identical product IDs are removed globally.

Simple run

{
"mode": "search",
"search": "men sports shoes",
"maxProductsPerSearch": 25,
"maxPages": 1
}

Filters and global sort

{
"mode": "search",
"search": "running shoes",
"priceMin": 500,
"priceMax": 5000,
"ratings": "4 star & above",
"sortBy": "price-asc",
"maxProductsPerSearch": 10,
"maxPages": 2
}

Multiple product URLs

{
"mode": "productUrl",
"productUrls": [
"https://www.ajio.com/example-running-shoe/p/100000001_black",
"https://www.ajio.com/example-trail-shoe/p/100000003_green"
],
"includeMedia": false
}

Developer and proxy options

{
"mode": "searchUrl",
"searchUrl": "https://www.ajio.com/search/?text=shirts&queryId=example",
"maxPages": 2,
"requestDelayMs": 1000,
"maxRequestRetries": 1,
"requestTimeoutSecs": 30,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "IN"
}
}

Fixture-backed local QA

{
"mode": "search",
"search": "example shoes",
"sortBy": "price-asc",
"maxProductsPerSearch": 3,
"maxPages": 2,
"requestDelayMs": 0,
"proxyConfiguration": {"useApifyProxy": false},
"fixtureFile": "test/fixtures/api-pages.json",
"includeDiagnostics": true
}

Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

A normal row is source-backed and contains the required identity, price, canonical URL, position, source mode, and timestamp fields:

{
"productId": "000000000001",
"name": "Example Running Shoe",
"brandName": "Example Brand",
"currency": "INR",
"price": 1000,
"priceFormatted": "Rs.1,000",
"mrp": 2000,
"discount": "50% off",
"discountPercent": 50,
"mainImage": "https://assets.ajio.com/example/running-shoe.jpg",
"images": ["https://assets.ajio.com/example/running-shoe.jpg"],
"productUrl": "https://www.ajio.com/example-running-shoe/p/000000000001_black",
"relativeUrl": "/example-running-shoe/p/000000000001_black",
"sourceMode": "search",
"searchTerm": "example shoes",
"sourceUrl": "https://www.ajio.com/search/?text=example%20shoes",
"pageNumber": 1,
"position": 1,
"scrapedAt": "2026-01-01T00:00:00.000Z"
}

When includeDiagnostics is enabled and a bounded request fails, the diagnostic shape is intentionally minimal:

{
"url": "https://www.ajio.com/search/?text=example",
"error": "Ajio access challenge: HTTP 403.",
"errorCode": "ACCESS_BLOCKED",
"scrapedAt": "2026-01-01T00:00:00.000Z"
}

OUTPUT is a Key-Value Store summary containing normal and diagnostic counts, page/request outcomes, filters, duplicate and incomplete-row counts, target statuses, and elapsed time. It is operational metadata and is not mixed into the dataset.

Tips and advanced options

Keep maxPages, maxProductsPerSearch, and detail-free media settings small for quick runs. Pagination and non-relevance sorting cost more requests because the Actor must collect the bounded candidate set before sorting. Retries, delays, and proxy routing can increase compute time. A residential proxy is used only when the configured Apify account can create it; the Actor does not bypass CAPTCHAs or access controls.

FAQ, support, and responsible use

If a run fails, inspect OUTPUT for ACCESS_BLOCKED, INVALID_RESPONSE, TIMEOUT, or REQUEST_FAILED, and include the run ID when opening an Issues-tab report. Local fixture mode is explicit and is never selected automatically after a live failure.

Use the Actor only for public data and at a respectful rate. Follow AJIO's terms, robots guidance, rate limits, applicable privacy law, and any restrictions on commercial use. This Actor is not affiliated with AJIO. It does not intentionally collect private user data; users remain responsible for lawful use of any public personal data that appears in source content.

Local validation

npm install
npm test
npm run lint
npm run validate
npm run check
apify validate-schema
apify run --purge --input-file ./qa-inputs/fixture-pagination.json