Mango APImango.com ↗
Access Mango's product catalog, category tree, search suggestions, and new arrivals via 6 structured API endpoints returning prices, stock, colors, and sizes.
What is the Mango API?
The Mango API provides 6 endpoints covering the full shop.mango.com product catalog — from the navigation category tree to per-product stock and pricing. Use get_product_details to retrieve a product's name, model, per-color images, size availability, and pricing fields including starPrice. Use list_products with a catalog ID from get_categories to page through any department or subcategory.
curl -X GET 'https://api.parse.bot/scraper/22863229-eec5-4608-b9c0-7b001356f57b/get_categories?gender=women' \ -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 mango-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.
"""Mango SDK walkthrough: browse categories, list products, get details, search."""
from parse_apis.mango_api import Mango, Gender, ProductNotFound
client = Mango()
# Browse women's categories to find catalog IDs for product listings.
for category in client.categories.list(gender=Gender.WOMEN, limit=5):
print(category.id, category.label_id, category.url)
# List products in the new arrivals catalog.
catalog = client.productcatalogs.new_arrivals(gender=Gender.WOMEN)
print(catalog.grid_size, catalog.images_order)
# Pick one product item from the catalog and fetch full details.
first_key = next(iter(catalog.items))
item = catalog.items[first_key]
print(item.product_id, item.price, item.sizes)
product = client.products.get(product_id=item.product_id)
print(product.name, product.model, product.collection)
# Explore the product's colors and pricing.
for color in product.colors:
print(color.id, color.label)
# Search for products by keyword.
for group in client.suggestiongroups.search(query="jeans", limit=3):
for suggestion in group.suggestions:
print(suggestion.searchterm, suggestion.nr_results)
# Handle a missing product gracefully.
try:
client.products.get(product_id="99999999")
except ProductNotFound as exc:
print(f"Product not found: {exc.product_id}")
print("exercised: categories.list / productcatalogs.new_arrivals / products.get / suggestiongroups.search")Returns the navigation category tree from Mango. Each menu item may contain nested sub-menus with catalog IDs that can be passed to list_products. Optionally filter by gender/department.
| Param | Type | Description |
|---|---|---|
| gender | string | Gender/department to filter by. |
{
"type": "object",
"fields": {
"menus": "array of category menu objects, each containing id, catalogId, type, labelId, url, and nested menus"
},
"sample": {
"data": {
"menus": [
{
"id": "she",
"url": "/hu/en/h/women",
"type": "BRAND",
"appId": "she",
"menus": [
{
"id": "nuevo",
"url": "/hu/en/c/women/new-now/56b5c5ed",
"type": "CATALOG",
"appId": "she.sections_she.nuevo",
"labelId": "header.secciones.nuevo",
"catalogId": "nuevo"
}
],
"labelId": "tiendas.mujer"
}
]
},
"status": "success"
}
}About the Mango API
Category and Product Discovery
Start with get_categories, which returns the full navigation menu tree. Each menu entry includes id, catalogId, labelId, url, and nested sub-menus. The catalogId values (e.g. 'nuevo', 'prendas_she.vaqueros_she') feed directly into list_products, which returns an object keyed by productId:colorId strings. Each item carries productId, colorId, colorGroup, sizes, price, and families. An optional gender parameter on get_categories narrows results to a specific department.
Product Details and Stock
get_product_details accepts a numeric product_id and returns the product name, model, reference, and a colors array where each entry includes color id, label, sizes, and an images array. The prices object is keyed by color ID and exposes price, starPrice, and type. A stock object maps color and size combinations to availability, making it usable for inventory monitoring.
Search and New Arrivals
search_products takes a query string and returns suggestions grouped by index, each suggestion exposing a searchterm and nrResults count — useful for autocomplete or surfacing trending terms. get_new_arrivals resolves the current new-arrivals catalog automatically for a given department and returns the same items, filters, and gridSize shape as list_products. Filters across both endpoints include colorGroups, sizes, and price range objects.
Similar Products
get_similar_products accepts a product_id and returns a related_products array where each entry includes a product_id and color label. The endpoint returns an empty array when no cross-references exist for that product, so callers should handle that case gracefully.
The Mango API is a managed, monitored endpoint for mango.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mango.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 mango.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?+
- Monitor price and stock changes for specific Mango products by polling
get_product_detailsand comparingpricesandstockfields. - Build a Mango category browser by traversing the nested
menusfromget_categoriesand displaying products vialist_products. - Implement autocomplete for a Mango product search bar using
search_productssuggestion groups withsearchtermandnrResults. - Track new arrivals across departments by calling
get_new_arrivalswith agenderparameter and diffing returnedproductId:colorIdkeys. - Aggregate size availability data across a category by combining
list_productsitemsizeswithget_product_detailsstock objects. - Generate product recommendation widgets by resolving
related_productsfromget_similar_productsfor items in a user's wishlist. - Analyze color and category distribution across Mango's catalog using the
colorGroupandfamiliesfields returned bylist_products.
| 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 Mango have an official public developer API?+
What does `list_products` return for filters, and can I apply them to narrow results?+
filters array in list_products and get_new_arrivals responses contains filter objects covering colorGroups, sizes, and price ranges. The endpoint currently returns all products for a catalog ID without server-side filtering by those values — the filter data is metadata describing what facets exist. The catalog_id parameter is the primary way to scope results to a department or subcategory.Does the API return customer reviews or ratings for products?+
Does `get_product_details` return full pagination across all colors and sizes?+
colors in a single response array alongside a stock object covering every color-size combination for that product. There is no pagination within a single product response, but very large catalogs browsed via list_products should be navigated using specific catalog_id values to scope the result set.