itsybitsy APIitsybitsy.in ↗
Retrieve product variants, pricing, customer reviews, and category listings from itsybitsy.in via a structured JSON API with 3 endpoints.
What is the itsybitsy API?
The itsybitsy.in API exposes 3 endpoints covering product details, category listings, and category-level product browsing from India's arts and crafts retailer. The get_product endpoint returns a single product's full variant set — including SKU, price, compare-at price, and availability — alongside Judge.me customer reviews, product images, and plain-text description. It also surfaces frequently bought-together recommendations not visible in standard catalog feeds.
curl -X GET 'https://api.parse.bot/scraper/f737342d-dc55-4338-a4cc-26d35bc5177d/get_product?product_id=home-decor-chak-paint-20-ml' \ -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 itsybitsy-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.
"""Walkthrough: itsybitsy SDK — bounded, re-runnable; every call capped."""
from parse_apis.Itsy_Bitsy_Product_API import ItsyBitsy, ProductNotFound
client = ItsyBitsy()
# List categories and pick the first one
for cat in client.categories.list(limit=3):
print(cat.title, cat.handle, cat.products_count)
# Construct a category by handle and list its products
category = client.category(handle="art-supplies")
for product in category.products.list(limit=3):
print(product.title, product.handle, product.product_type)
for variant in product.variants[:2]:
print(f" {variant.title} — {variant.price}")
# Fetch full product details by handle
try:
full = client.products.get(handle="home-decor-chak-paint-20-ml")
print(full.title, full.vendor, full.product_type)
for review in full.reviews[:2]:
print(review.author, review.rating, review.title)
except ProductNotFound as e:
print(f"Product not found: {e.product_id}")
print("exercised: categories.list, category.products.list, products.get")
Retrieve complete product data by handle. Returns all variant details with pricing, product specifications and description, customer reviews from Judge.me, and frequently bought-together product recommendations. Each variant includes SKU, price, compare-at price, and option values. Reviews include rating, author, title, body, date, and verification status.
| Param | Type | Description |
|---|---|---|
| product_idrequired | string | Product handle (URL slug) as it appears in the product page URL, e.g. 'home-decor-chak-paint-20-ml'. |
{
"type": "object",
"fields": {
"tags": "Comma-separated product tags",
"title": "Product title",
"handle": "URL slug / handle",
"images": "Array of product images with id, src URL, alt text, and associated variant IDs",
"vendor": "Product vendor/brand",
"options": "Array of product option groups (e.g. Color, Size) with their available values",
"reviews": "Array of customer reviews with rating, author, title, body, date, and verified_buyer flag",
"variants": "Array of all product variants with id, title, sku, price, compare_at_price, options, weight, availability",
"product_id": "Shopify numeric product ID",
"description": "Plain-text product description extracted from HTML",
"product_type": "Product category/type",
"bought_together": "Array of frequently bought-together products with their variants and pricing"
},
"sample": {
"data": {
"tags": "Art attack july, Art Mania 2025, Artisan Chalk Paint, chalk paint...",
"title": "Home Decor Chalk Paint 20 ml",
"handle": "home-decor-chak-paint-20-ml",
"images": [
{
"id": 33888372850755,
"alt": null,
"src": "https://cdn.shopify.com/s/files/1/0075/9270/6115/files/WhatsAppImage2025-04-27at3.39.31PM.jpg?v=1749788072",
"variant_ids": []
}
],
"vendor": "Itsy Bitsy",
"options": [
{
"name": "Color",
"values": [
"Sangria",
"Salsa Red",
"Aqua Marina"
]
},
{
"name": "Size",
"values": [
"20ml"
]
}
],
"reviews": [
{
"body": "I loved the mattee effect it gives, so in love with the opacity and how it is so beautifully created.",
"date": "2026-06-14T17:33:49Z",
"title": "It is just top class",
"author": "Rittika Thakur",
"rating": 5,
"verified_buyer": true
}
],
"variants": [
{
"id": 42252730957891,
"sku": "LBMM57377",
"price": "69.00",
"title": "Sangria / 20ml",
"weight": 0,
"option1": "Sangria",
"option2": "20ml",
"option3": null,
"taxable": true,
"available": null,
"weight_unit": "g",
"compare_at_price": "69.00",
"requires_shipping": true,
"inventory_quantity": null
}
],
"product_id": 7402050420803,
"description": "Transform Anything with Itsy Bitsy Chalk Paints! Now in 66 Stunning Shades!...",
"product_type": "Combo Paint",
"bought_together": [
{
"id": 7403579277379,
"url": "home-decor-chak-paint-50-ml",
"name": "Home Decor Chalk Paint 50 ml",
"vendor": "Itsy Bitsy",
"variants": [
{
"id": 42225837604931,
"sku": "LBAR71975",
"label": "Salsa Red / 50ml",
"price": "150.0",
"buyable": true,
"image_url": "https://cdn.shopify.com/s/files/1/0075/9270/6115/files/LBAR71975_1.jpg?v=1769081487",
"compare_at_price": "150.0"
}
],
"description": "Transform Anything with Itsy Bitsy Chalk Paints!..."
}
]
},
"status": "success"
}
}About the itsybitsy API
Product Data
The get_product endpoint accepts a product_id parameter that maps directly to the URL slug of any product page on itsybitsy.in (e.g. home-decor-chak-paint-20-ml). The response includes the full variants array — each entry carries id, title, sku, price, compare_at_price, option values, weight, and availability. Product-level fields include title, handle, vendor, tags, description (plain text), and images with src, alt, and linked variant IDs. The reviews array comes from Judge.me integration and provides rating, author, title, body, date, and a verified_buyer flag per review.
Category Browsing
The list_categories endpoint returns every collection on the site in a single call — no pagination is required on your end. Each category object includes id, title, handle, description, products_count, image, published_at, and updated_at. The products_count field tells you how many SKUs belong to each collection before you query it.
Category Products
The list_category_products endpoint accepts a category_handle (as returned by list_categories), an optional page integer, and an optional limit between 1 and 250. The response includes page, count, limit, and a products array of product summaries — each with id, title, handle, vendor, product_type, tags, published_at, variants, images, and options. An unrecognized handle returns an empty product list rather than an error, so validating handles against list_categories first is advisable.
The itsybitsy API is a managed, monitored endpoint for itsybitsy.in — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when itsybitsy.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 itsybitsy.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?+
- Track price and compare-at-price changes across art supply variants to monitor discounts over time
- Aggregate Judge.me review ratings and verified-buyer counts across craft product categories
- Build a product catalog mirror indexed by vendor, tags, and product type using list_category_products
- Extract frequently bought-together data to seed recommendation logic in your own storefront
- Compare SKU availability across all variants of a product before placing bulk wholesale orders
- Enumerate all categories with products_count to identify the deepest or most active collections
- Sync itsybitsy.in inventory and pricing into a multi-supplier comparison tool for craft retailers
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does itsybitsy.in have an official developer or public API?+
What does the get_product endpoint return for reviews, and are all reviews included?+
reviews array returns all available customer reviews for a product, each with rating, author, title, body, date, and a verified_buyer flag sourced from the Judge.me integration on the product page. Aggregate statistics such as average rating or total review count are not returned as separate top-level fields — those would need to be computed from the reviews array.Does the API cover search or keyword-based product lookup?+
get_product), full category listing (list_categories), and category-level product browsing (list_category_products). There is no free-text search endpoint. You can fork this API on Parse and revise it to add a search endpoint.How does pagination work for list_category_products?+
page integers with an optional limit of 1–250 products per page. An unrecognized category_handle returns an empty products array rather than an error, so it is worth confirming the handle exists via list_categories before iterating pages.