METZ Tea APImetztea.hk ↗
Access METZ Tea's full catalog via API. Retrieve tea names, ingredients, origin, caffeine content, antioxidant level, weight, and product descriptions.
What is the METZ Tea API?
The METZ Tea API provides access to the complete METZ Tea product catalog through 2 endpoints, returning up to 9 structured fields per product including origin, caffeine content, and antioxidant level. Use list_teas to retrieve the full catalog in a single call, then pass any tea's handle to get_tea_details for per-product specifications. Both endpoints require no authentication parameters beyond your Parse API key.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/8ac5d335-37b2-499b-9696-ebef66f8c8f9/list_teas' \ -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 metztea-hk-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: METZ Tea SDK — bounded, re-runnable; every call capped."""
from parse_apis.metztea_hk_api import MetzTea, TeaNotFound
client = MetzTea()
# List all teas and print name + ingredients
for tea in client.tea_summaries.list(limit=3):
print(tea.name, tea.ingredients)
# Drill into a specific tea's full details via the summary's navigation op
item = client.tea_summaries.list(limit=1).first()
full = item.details()
print(full.name, full.ingredients, full.origin, full.caffeine_content)
# Direct lookup by handle with typed error handling
try:
detail = client.teas.get(handle="jasmine-dragon-tears")
print(detail.name, detail.ingredients, detail.weight)
except TeaNotFound as e:
print("not found:", e.handle)
print("exercised: tea_summaries.list / TeaSummary.details / teas.get")
Retrieve all teas in the METZ Tea catalog with their names and ingredients. Returns the complete collection in a single response. Some teas may have null ingredients when the product listing does not include that information.
No input parameters required.
{
"type": "object",
"fields": {
"teas": "array of tea objects with name, ingredients, and handle",
"total": "integer total count of teas"
},
"sample": {
"data": {
"teas": [
{
"name": "Jasmine Dragon Tears",
"handle": "jasmine-dragon-tears",
"ingredients": "Green tea, Jasmine petals"
},
{
"name": "Scottish Caramel Pu’er",
"handle": "scottish-caramel-pu-er",
"ingredients": "Black tea (Pu'er style), Almond pieces, Natural flavors (Organic Compliant). **Allergen Alert - Contains Almonds"
},
{
"name": "Hangover Helper Herbal Mocktail Tea //Improves Circulation//",
"handle": "hangover-helper",
"ingredients": "Tomato, Ginger, Beet pieces, Hibiscus, Cinnamon, Cardamom, Black and White Pepper, Clove, Nutmeg"
}
],
"total": 81
},
"status": "success"
}
}About the METZ Tea API
Catalog Listing
The list_teas endpoint returns the full METZ Tea collection in one response. Each object in the teas array includes a name, a handle (the URL slug used to query individual products), and an ingredients field. The total field gives the integer count of products in the catalog. Note that ingredients may be null for listings where that information is not present on the product page.
Per-Product Details
The get_tea_details endpoint accepts a single required parameter — handle — which is the URL slug obtained from list_teas results (for example, jasmine-dragon-tears). The response includes name, product_type (tea category classification), vendor, tags (comma-separated), origin (country or region, or null), caffeine_content (Low, Medium, or High, or null), weight, description (a brief flavor or product description), and ingredients. Fields that are not populated on the source product page return as null.
Data Coverage and Nulls
Several fields — origin, caffeine_content, weight, description, and ingredients — are conditionally populated based on what appears in the product listing. Callers should handle null values for all of these. The product_type and vendor fields are consistently returned when a valid handle is supplied.
The METZ Tea API is a managed, monitored endpoint for metztea.hk — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when metztea.hk 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 metztea.hk 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 filterable tea finder by caffeine level using the
caffeine_contentfield fromget_tea_details - Populate a product catalog page with tea names, descriptions, and ingredient lists from
list_teasandget_tea_details - Cross-reference tea origins with geographic data using the
originfield - Generate ingredient-based allergen or dietary compatibility checks using the
ingredientsfield - Classify teas by category for a recommendation engine using the
product_typeandtagsfields - Track total catalog size over time using the
totalfield fromlist_teas
| 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 METZ Tea have an official developer API?+
What does `get_tea_details` return beyond what `list_teas` provides?+
list_teas returns only name, handle, and ingredients per tea. get_tea_details adds origin, caffeine_content, antioxidant_level, weight, description, product_type, vendor, and tags — giving you the full specification for a single product when you supply its handle.Are product prices or stock availability included in the responses?+
How should I handle null fields in `get_tea_details`?+
origin, caffeine_content, weight, description, and ingredients return null when the information is absent from the product listing. Your integration should treat all five as optional and not assume a non-null value will be present for every tea.Can I search or filter teas by caffeine level or ingredient directly through the API?+
list_teas returns the full catalog and get_tea_details accepts only a handle. Filtering by caffeine level or ingredient requires fetching individual tea details and applying logic client-side. You can fork this API on Parse and revise it to add a filtered endpoint.