Shopsy APIshopsy.in ↗
Access Shopsy.in product search, category browsing, product details, and homepage deals via a structured JSON API. Includes pricing, ratings, and seller data.
What is the Shopsy API?
The Shopsy.in API provides 4 endpoints covering product search, detailed product pages, category browsing, and homepage deal banners. The search_products endpoint returns paginated product summaries — including price, MRP, discount percentage, ratings, and review counts — for any search keyword. Together, the endpoints expose over 15 distinct response fields, making it practical to build price trackers, deal aggregators, or catalog tools on top of Shopsy inventory.
curl -X GET 'https://api.parse.bot/scraper/a2c8ce6d-fa32-4cf0-8e68-b4a832b95815/search_products?page=1&sort=relevance&query=shoes' \ -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 shopsy-in-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.
"""Shopsy SDK walkthrough: search products, drill into details, browse categories, and list deals."""
from parse_apis.shopsy_api import Shopsy, Sort, ProductNotFound
client = Shopsy()
# Search for products sorted by popularity, capped at 5 results.
for product in client.products.search(query="running shoes", sort=Sort.POPULARITY, limit=5):
print(product.title, product.price, product.brand)
# Drill into the first result to get full specifications and seller info.
top = client.products.search(query="sneakers", limit=1).first()
if top:
detail = top.details()
print(detail.title, detail.price, detail.rating)
print(detail.seller.name, detail.seller.rating)
# Browse a category by constructing it from its slug.
category = client.category("casual-footwear-men-online")
for product in category.browse(limit=3):
print(product.title, product.price, product.discount)
# List homepage deals.
for deal in client.deals.list(limit=3):
print(deal.renderable_components)
# Typed error handling: catch ProductNotFound on a bad product URL.
if top:
try:
detail = top.details()
print(detail.title, detail.subtitle)
except ProductNotFound as exc:
print(f"Product not found: {exc.product_url}")
print("Exercised: products.search, product.details, category.browse, deals.list")Full-text search over Shopsy.in product catalog. Returns paginated product summaries with pricing, ratings, and availability.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| sort | string | Sort option |
| queryrequired | string | Search keyword |
{
"type": "object",
"fields": {
"has_more": "boolean indicating if more pages are available",
"products": "array of product summary objects with product_id, title, subtitle, brand, price, mrp, discount, rating, review_count, image_url, product_url, availability",
"total_results": "integer total number of matching products or null if unavailable"
},
"sample": {
"data": {
"has_more": true,
"products": [
{
"mrp": 999,
"brand": "RODDICK SHOES",
"price": 355,
"title": "RODDICK SHOES GEN Z STYLISH GRACEFUL CASUAL SNEAKERS WALKING SHOES FOR BOYS & MENS Sneakers For Men",
"rating": 3.5,
"discount": 64,
"subtitle": "White",
"image_url": "http://rukmini1.flixcart.com/image/{@width}/{@height}/xif0q/shoe/k/f/r/6-fire-6-roddick-shoes-white3-original-imahjw7vczfwpg5a.jpeg?q={@quality}",
"product_id": "EOEHJWCQKSZW5KMZ",
"product_url": "https://www.shopsy.in/roddick-shoes-gen-z-stylish-graceful-casual-sneakers-walking-boys-mens-men/p/itm1fe5367faaa23?pid=EOEHJWCQKSZW5KMZ",
"availability": "IN_STOCK",
"review_count": 442
}
],
"total_results": null
},
"status": "success"
}
}About the Shopsy API
Search and Browse
The search_products endpoint accepts a required query string plus optional page and sort parameters. Supported sort values are relevance, popularity, price_low_to_high, price_high_to_low, and newest_first. Each result in the products array includes product_id, title, subtitle, brand, price, mrp, discount, rating, review_count, and image_url. The has_more boolean and total_results integer let you paginate through full result sets.
The browse_category endpoint works similarly but scopes results to a category. You pass a category_slug matching the URL path segment on Shopsy (for example, casual-footwear-men-online or graphic-tshirts). An optional sid parameter filters to a specific sub-category store ID, overriding slug-based selection. The response shape is identical to search: paginated products array, has_more, and total_results.
Product Details
The get_product_details endpoint takes a full Shopsy product page URL and returns a richer data set: title, subtitle, price and mrp in INR, discount, rating, review_count, a seller object containing seller name, seller rating, and seller review count, a category_path breadcrumb array, and a top_reviews array. The top_reviews and category_path fields may be empty depending on the product.
Homepage Deals
The get_homepage_deals endpoint requires no inputs and returns the current promotional banner widgets from the Shopsy homepage. Each item in the deals array contains renderableComponents with image URLs, navigation actions pointing to category pages, and tracking metadata. This is useful for monitoring active promotions or syncing a deal feed with Shopsy's current marketing campaigns.
The Shopsy API is a managed, monitored endpoint for shopsy.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when shopsy.in 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 shopsy.in 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?+
- Build a price-drop tracker that monitors
priceandmrpchanges for specific Shopsy products over time. - Aggregate daily deal banners from
get_homepage_dealsinto a deals newsletter or Telegram bot. - Compare seller ratings across products using the
sellerobject returned byget_product_details. - Populate a product catalog filtered by category slug with
browse_categoryand itssidsub-category parameter. - Run keyword-based product searches sorted by
price_low_to_highto surface the cheapest options programmatically. - Extract
category_pathbreadcrumbs from product detail pages to classify and tag inventory in a custom database. - Calculate effective discount rates by comparing
priceandmrpfields across paginated search results.
| 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 Shopsy have an official developer API?+
What does the `get_product_details` endpoint return that `search_products` does not?+
get_product_details endpoint returns fields not present in search results: a seller object (seller name, rating, and review count), a category_path breadcrumb array, and a top_reviews array. It takes a full product page URL as input rather than a keyword.Does the API return product specifications or feature lists?+
get_product_details response covers pricing, seller info, ratings, reviews, and category breadcrumbs, but does not include a structured specifications table or feature bullet list. You can fork this API on Parse and revise it to add a specifications field if the underlying product page exposes that data.How does pagination work across the search and category endpoints?+
search_products and browse_category return a has_more boolean and a total_results integer. Pass an incrementing page integer to step through result sets. When has_more is false, you have reached the last page.Can I filter search results by price range or brand?+
search_products endpoint only supports filtering by query, page, and sort order. Price-range or brand filters are not exposed as parameters. You can fork this API on Parse and revise it to add those filter parameters if Shopsy surfaces them through its category or search navigation.