Ajio APIajio.com ↗
Search and browse Ajio.com products via API. Get pricing, ratings, size variants, brand listings, new arrivals, and sale products across all categories.
What is the Ajio API?
The Ajio.com API provides 6 endpoints covering product search, category browsing, brand listings, new arrivals, sale products, and full product detail. The get_product_detail endpoint returns over a dozen fields per product including size-level variant stock, aggregated ratings breakdowns, color options, and promotional pricing — all keyed by the product option code returned from search and listing endpoints.
curl -X GET 'https://api.parse.bot/scraper/403a6af9-bd94-47a3-a922-1ea3484b2be8/search_products?page=0&size=5&sort=relevance&query=shoes&page_size=3' \ -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 ajio-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.
"""Walkthrough: Ajio SDK — search products, browse brands, drill into details."""
from parse_apis.ajio_scraper_api import Ajio, Sort, ProductNotFound
client = Ajio()
# Search for running shoes sorted by price, capped at 5 items total.
for item in client.productsummaries.search(query="running shoes", sort=Sort.PRICE_ASC, limit=5):
print(item.name, item.brand_name, item.price.value, item.discount_percent)
# Drill into the first search hit for full product details.
hit = client.productsummaries.search(query="puma sneakers", limit=1).first()
if hit:
detail = hit.details()
print(detail.name, detail.brand_name, detail.price.value)
if detail.variant_options:
for v in detail.variant_options[:3]:
print(v.code, v.display_size)
# Browse a brand's catalog using the Sort enum.
for product in client.brand("nike").products(sort=Sort.DISCOUNT_DESC, limit=3):
print(product.name, product.price.value, product.discount_percent)
# Typed error handling when a product code doesn't exist.
try:
bad = client.productsummaries.search(query="nonexistent_xyz_12345", limit=1).first()
if bad:
bad.details()
except ProductNotFound as exc:
print(f"Product not found: {exc.product_id}")
print("exercised: search / details / brand.products / ProductNotFound")
Full-text search over all Ajio.com products. Returns paginated product listings with facets and sorting options. Each product includes pricing, images, brand, and discount information. Paginates via zero-based page number.
| Param | Type | Description |
|---|---|---|
| page | integer | Zero-based page number for pagination. |
| size | integer | Number of results per page (e.g. 5, 10, 45). |
| sort | string | Sort order for results. |
| queryrequired | string | Search keyword (e.g. 'shoes', 'puma', 'running shoes'). |
{
"type": "object",
"fields": {
"products": "array of product listing objects with code, name, price, images, url, brandTypeName, discountPercent",
"pagination": "object containing pageSize, sort, currentPage, totalResults, totalPages"
},
"sample": {
"data": {
"products": [
{
"url": "/skechers-go-run-consistant-lace-up-shoes/p/469544798_black",
"code": "469544798001",
"name": "Go Run Consistant Lace-Up Shoes",
"price": {
"value": 2200,
"currencyIso": "INR",
"displayformattedValue": "Rs.2,200"
},
"images": [
{
"url": "https://assets.ajio.com/medias/sys_master/root/20240404/qBTG/660ecc3516fd2c6e6a9db704/skechers_black_go_run_consistant_lace-up_shoes.jpg",
"format": "product"
}
],
"wasPriceData": {
"value": 5499,
"displayformattedValue": "Rs.5,499"
},
"brandTypeName": "skechers",
"discountPercent": "60% off"
}
],
"pagination": {
"sort": "relevance",
"pageSize": 5,
"totalPages": 8527,
"currentPage": 0,
"totalResults": 42633
}
},
"status": "success"
}
}About the Ajio API
Search and Browse
The search_products endpoint accepts a query string (e.g. 'puma running shoes') and returns an array of product listing objects alongside a pagination object. Each listing includes code, name, price, images, brandTypeName, and discountPercent. The sort parameter accepts 'relevance', 'discount-desc', 'prce-asc', 'prce-desc', and 'newn'. Pagination is zero-based via the page parameter, with totalResults and totalPages in the response. get_category_products and get_brand_products follow the same pagination and sort interface but scope results to a specific Ajio category brick code or brand name respectively.
Product Detail
get_product_detail takes a product_id in the format '469696402_white' — the code field from any listing endpoint — and returns the full product record. The price object includes value, currencyIso, displayformattedValue, and discountPercent. The variantOptions array enumerates available sizes with individual stock status, priceData, and scDisplaySize. The baseOptions array covers color variants. The ratingsResponse object includes averageRating, numUserRatings, and percentage breakdowns by star tier.
New Arrivals and Sale Products
get_new_arrivals returns products sorted newest-first and accepts an optional query to filter by keyword within new arrivals; pass 'all' to retrieve across all categories. get_sale_products returns listings ordered by highest discountPercent descending, also filterable by keyword. The sale listing response additionally includes a wasPriceData field not present on standard listing endpoints, which exposes the original pre-discount price for each product.
The Ajio API is a managed, monitored endpoint for ajio.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ajio.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 ajio.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?+
- Track discount percentages across brand or category pages to monitor sale depth on Ajio
- Build a size availability checker using
variantOptions[*].stockfromget_product_detail - Aggregate
averageRatingandnumUserRatingsfrom ratings responses for product comparison tools - Compile new-arrival feeds filtered by keyword using
get_new_arrivalswith aqueryparam - Power a brand catalog page by paginating through
get_brand_productsfor a given brand name - Compare current price against
wasPriceDatafromget_sale_productsto calculate actual savings - Monitor category-level inventory by iterating
get_category_productswith a known brick code
| 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 Ajio have an official public developer API?+
How do I get a product option code to use with `get_product_detail`?+
search_products, get_category_products, get_brand_products, get_new_arrivals, or get_sale_products — returns a code field on each product object (e.g. '469696402_white'). Pass that value as the product_id parameter to get_product_detail to retrieve full details including variants and ratings.Does the API return customer review text or only aggregate ratings?+
ratingsResponse object from get_product_detail covers aggregate data: averageRating, numUserRatings, and percentage breakdowns by star tier. Individual written review text is not included in the current endpoints. You can fork the API on Parse and revise it to add an endpoint that retrieves per-review content.Are wishlist, order history, or account-level features accessible?+
Is there a limit to how many results pagination can return per request?+
size parameter controlling results per page and a zero-based page parameter. The pagination response object returns totalResults and totalPages so you can iterate through the full result set. Very large size values may return fewer results than requested if the source caps the page size.