Ecco Verde APIecco-verde.it ↗
Access Ecco Verde's natural beauty catalogue via API. Retrieve product details, INCI ingredients, variants, category listings, brand data, and recommendations.
What is the Ecco Verde API?
The Ecco Verde API provides 6 endpoints covering the full product catalogue of ecco-verde.it, Italy's natural and organic beauty retailer. Use get_product_detail to fetch complete product metadata including INCI ingredient lists, price variants, EAN codes, and internal IDs required for recommendations. Additional endpoints cover keyword search, category browsing, brand listing, and a hierarchical site navigation tree.
curl -X GET 'https://api.parse.bot/scraper/4a3c5120-023b-4432-bfe6-bde945ba005e/get_product_detail?slug=la-saponaria%2Fbio-shampoo-girasole-arancio-dolce' \ -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 ecco-verde-it-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.
from parse_apis.ecco_verde_api import EccoVerde, Product, ProductSummary, Category, Brand
client = EccoVerde()
# Search for shampoo products
for product in client.products.search(query="shampoo", limit=3):
print(product.name, product.brand, product.price_display, product.rating)
# Get full product details
detail = client.products.get(slug="lavera/basis-sensitiv-moisture-care-shampoo-1")
print(detail.name, detail.brand, detail.shop_article_id)
for bullet in detail.summary_bullets:
print(bullet)
# Navigate from search result to full detail and get recommendations
for item in client.products.search(query="crema viso", limit=1):
full = item.details()
print(full.name, full.category)
for rec in full.recommendations(limit=3):
print(rec.name, rec.brand, rec.price_display)
# Browse a category using constructible Category
mascara = client.category(path="make-up/mascara")
for item in mascara.products(limit=5):
print(item.name, item.brand, item.review_count)
# List all categories
for cat in client.categories.list(limit=5):
print(cat.name, cat.path)
# List all brands
for brand in client.brands.list(limit=5):
print(brand.title, brand.path)
Get full product detail by slug. Returns product metadata, description, ingredients (INCI), attributes, variants, and internal IDs usable with get_product_recommendations. The slug follows brand/product-name format as seen in product URLs.
| Param | Type | Description |
|---|---|---|
| slugrequired | string | Product slug in brand/product-name format (e.g. 'lavera/basis-sensitiv-moisture-care-shampoo-1'). |
{
"type": "object",
"fields": {
"id": "string - internal product ID",
"name": "string - product name",
"slug": "string - product slug used to fetch",
"brand": "string - brand slug",
"category": "string - internal category code",
"variants": "array of variant objects with name, price, active",
"attributes": "object - product attribute key-value pairs",
"shop_article_id": "string - internal article ID for recommendations",
"summary_bullets": "array of strings - key product benefits",
"shop_article_item_id": "string - internal article item ID for recommendations"
},
"sample": {
"data": {
"id": "LA-116340",
"name": "basis sensitiv - Shampoo Hydrate & Care",
"slug": "lavera/basis-sensitiv-moisture-care-shampoo-1",
"brand": "lavera",
"category": "Category-",
"variants": [],
"attributes": {
"EAN": "4021457666768",
"Marca": "lavera",
"Art.-Nr.": "LA-116340",
"Contenuto": "250 ml"
},
"shop_article_id": "32785",
"summary_bullets": [
"Per tutti i tipi di capelli, anche secchi",
"Con aloe vera bio e acido ialuronico",
"Senza siliconi"
],
"shop_article_item_id": "85053"
},
"status": "success"
}
}About the Ecco Verde API
Product Data
get_product_detail accepts a slug in brand/product-name format and returns a detailed product record: name, brand, category, attributes (including EAN, content, and product type), an array of variants with per-variant pricing and active status, summary_bullets listing key benefits, and the shop_article_id / shop_article_item_id pair needed to call get_product_recommendations. Ingredients are returned as INCI data, making this endpoint useful for compliance and formulation analysis.
Search and Category Browsing
search_products accepts a query string — such as 'shampoo' or 'crema viso' — and returns up to 30 products per page with total_count for pagination planning. Each product record in search and category results includes id, name, brand, price_display, url, image, rating, review_count, and benefits. get_category_products works the same way but scoped to a category; it requires a slug parameter such as 'make-up/mascara' or 'viso/creme-viso', which you can obtain from list_categories.
Site Structure and Brands
list_categories returns the full navigation tree: mainItems with recursive submenu entries, helpItems for informational pages, and customerAreaPaths. The path values on mainItems feed directly into get_category_products as the slug parameter. list_brands returns every brand on the site as an array of objects with ArticleEntry_Menu_Title (display name) and ArticleEntry_Path (URL path), providing a complete brand inventory without needing to crawl category pages.
Recommendations
get_product_recommendations accepts shop_article_id and shop_article_item_id sourced from a prior get_product_detail call and returns a list of related products, each with name, brand, image, price_display, and url. This enables cross-sell and related-product features using the same data the site itself exposes.
The Ecco Verde API is a managed, monitored endpoint for ecco-verde.it — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ecco-verde.it 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 ecco-verde.it 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 an INCI ingredient checker by extracting ingredient data from
get_product_detailacross multiple products. - Aggregate natural beauty product prices from Ecco Verde for comparison tools using
price_displayandvariants. - Populate a category-browse UI using
list_categoriesto drive navigation andget_category_productsfor listings. - Generate a full brand directory by iterating
list_brandsand cross-referencing withsearch_products. - Power a related-products widget by chaining
get_product_detailandget_product_recommendations. - Monitor product availability by tracking the
activefield withinvariantsreturned byget_product_detail. - Build a keyword-driven product discovery tool for organic and natural beauty using
search_productswith Italian-language queries.
| 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 Ecco Verde have an official public developer API?+
What does `get_product_detail` return beyond basic product info?+
get_product_detail returns the full attributes object (covering fields like EAN code, content volume, and product type), an array of variants each with name, price, and active status, INCI ingredient data, summary_bullets for key benefits, and the shop_article_id / shop_article_item_id values required for the get_product_recommendations endpoint.How does pagination work for category and search results?+
get_category_products accepts a page parameter (optional, defaults to page 1) and returns up to 30 products per page alongside total_count, so you can calculate the number of pages needed. search_products also returns up to 30 results with a total_count field, but does not currently expose a page parameter for deep pagination. You can fork this API on Parse and revise it to add paginated search support.Does the API expose customer reviews or review text?+
rating and review_count fields, but individual review text and reviewer details are not currently exposed. The API covers product metadata, variants, ingredients, and recommendations. You can fork it on Parse and revise to add a review-detail endpoint.Can I filter products by attributes such as vegan certification or ingredient exclusions?+
get_product_detail returns the full attributes object per product, so filtering can be done client-side after retrieval. get_category_products and search_products do not accept attribute filter parameters. You can fork this API on Parse and revise it to add server-side attribute filtering.