Hasaki APIhasaki.vn ↗
Access Hasaki.vn product listings, reviews, brands, categories, flash deals, and autocomplete via 12 structured API endpoints for the Vietnamese beauty market.
What is the Hasaki API?
The Hasaki.vn API exposes 12 endpoints covering the full product catalog of Vietnam's major beauty and cosmetics platform, from search and category browsing to customer reviews and flash deals. The get_product_detail endpoint returns structured content blocks including pricing, image galleries, variants, promotions, and related products. Other endpoints cover brand directories, Q&A threads, best sellers, new arrivals, and real-time autocomplete suggestions.
curl -X GET 'https://api.parse.bot/scraper/bf606614-615b-4332-9217-888820291bae/search_products?page=1&size=5&query=kem+ch%E1%BB%91ng+n%E1%BA%AFng' \ -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 hasaki-vn-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: Hasaki.vn SDK — search products, browse categories, read reviews, flash deals."""
from parse_apis.hasaki_vn_api import Hasaki, ProductSort, ReviewSort, ReviewFilter, ProductNotFound
client = Hasaki()
# Search for sunscreen products, capped at 3 results.
for product in client.products.search(query="kem chống nắng", limit=3):
print(product.name, product.price, product.discount_percent)
# Navigate a category by slug and list best sellers.
category = client.category(slug="cham-soc-da-mat-c4")
top = category.best_sellers(limit=1).first()
if top:
print(top.name, top.brand.name, top.market_price)
# List products in category sorted by top sales.
for p in category.products(sort=ProductSort.TOPSALE, limit=3):
print(p.name, p.price)
# Drill into a product's reviews sorted by best rating with 5-star filter.
if top:
for review in top.reviews.list(sort=ReviewSort.BEST, filter=ReviewFilter.FIVE_STAR, limit=3):
print(review.user_fullname, review.rating.star, review.content[:60])
# List current flash deals.
for deal in client.flashdeals.list(limit=3):
print(deal.name, deal.price, deal.discount_percent)
# Get autocomplete suggestions for a partial query.
suggestions = client.autocompletes.suggest(query="kem")
for kw in suggestions.keywords[:3]:
print(kw.label, kw.url)
# Typed error handling: catch a missing product.
try:
detail = client.products.search(query="nonexistent_xyz_product_00000", limit=1).first()
if detail:
print(detail.name)
except ProductNotFound as exc:
print(f"Product not found: {exc.product_id}")
print("exercised: products.search / category.best_sellers / category.products / reviews.list / flashdeals.list / autocompletes.suggest")
Full-text search over Hasaki's product catalog by keyword. Returns paginated product results sorted by relevance/sales with metadata including total count and available sort/filter options. Each product includes pricing, brand, rating, and deal info.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| size | integer | Number of results per page. |
| queryrequired | string | Search keyword (e.g. 'kem chống nắng', 'serum vitamin c'). |
{
"type": "object",
"fields": {
"products": "array of product objects with id, name, price, brand, image, rating, deal info",
"meta_data": "object containing products_total, sort_params, and filter options"
}
}About the Hasaki API
Product Discovery and Search
The search_products endpoint accepts a query string (e.g. 'kem chống nắng' or 'serum vitamin c') and returns paginated results with products_total, sort parameters, and filter options in the meta_data object. Each product object includes id, name, price, brand, image, rating, and any active deal info. The get_search_autocomplete endpoint takes a partial query and returns keywords, suggestions, product previews with prices, and brand matches — useful for building search-as-you-type interfaces.
Category, Brand, and Curated Listings
get_category_products and get_brand_products both accept a slug parameter derived from the Hasaki URL path (e.g. 'cham-soc-da-mat-c4' or 'cerave') and support sort and page/size pagination. Both return filter arrays with grouped filter keys and values alongside meta_data containing the total count, sort options, and either current_cate or brand_info. The get_categories endpoint returns the full hierarchical category tree — including nested subcategories and banners — which can be used to discover valid slugs. get_brands_list returns all brands alphabetically grouped by first letter, each with id, name, URL, logo, and cover image.
Product Detail and Social Proof
get_product_detail takes a numeric product_id and returns an array of structured blocks covering product info sections (CommonInfo, PromotionInfo, and others), the full image gallery, variant options, and related products. get_product_reviews returns paginated reviews with a rating object showing the star distribution and per-star counts, plus individual review objects that include user_fullname, content, rating, created_at, and attached images. The filter parameter allows filtering reviews by star count or by image presence. get_product_qa returns customer questions and staff replies as nested comments with sub_comments, paginated via comments_total in meta_data.
Deals, Best Sellers, and New Arrivals
get_flash_deals returns current promotional products with discount_percent and countdown timer data, filterable by a key representing the deal time period (e.g. 'deal08'). get_best_sellers and get_new_arrivals both accept an optional slug to scope results to a category; omitting it returns site-wide results. All three support page and size pagination and return the standard product array with filter groups and meta_data.
The Hasaki API is a managed, monitored endpoint for hasaki.vn — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hasaki.vn 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 hasaki.vn 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 Vietnamese skincare price comparison tool using
search_productsandget_product_detailpricing fields. - Monitor flash deal discount percentages and countdown timers via
get_flash_dealsto track promotional patterns. - Aggregate customer review sentiment and star distributions with
get_product_reviewsacross competing products. - Populate a brand directory page using
get_brands_listwith logo, cover image, and URL for each brand. - Generate category-scoped best-seller rankings by passing a category
slugtoget_best_sellers. - Implement Vietnamese beauty product autocomplete by feeding partial queries to
get_search_autocomplete. - Track new product launches in a specific category by polling
get_new_arrivalswith a categoryslug.
| 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 Hasaki.vn have an official developer API?+
What does `get_product_reviews` return beyond the review text?+
user_fullname, rating, created_at, attached images, and any staff response. The top-level rating object provides a stars array showing the count for each star level (1–5), plus filter options to isolate reviews by rating tier or by image presence.How do I find valid category or brand slugs to use with `get_category_products` and `get_brand_products`?+
get_categories returns the full nested category tree with URL paths — the slug is the path segment (e.g. 'chong-nang-da-mat-c11'). For brands, get_brands_list returns every brand's URL, from which the slug can be extracted (e.g. 'la-roche-posay').Does the API expose a user's order history, wishlist, or account data?+
Is there a way to filter `get_flash_deals` results by product category?+
filters array of category filter options alongside the deal products, but category filtering is applied via the key parameter which selects the deal time period. Direct category-scoped filtering within flash deals is not currently parameterized. You can fork the API on Parse and revise it to add a category filter parameter for deal results.