eFarmz APIefarmz.be ↗
Access eFarmz.be weekly organic meal boxes, product search, and product details via 3 structured endpoints. Get prices, tags, allergens, and category data.
What is the eFarmz API?
The eFarmz.be API provides 3 endpoints covering weekly meal box listings, keyword product search, and full product detail for Belgium's organic delivery platform. The get_weekly_mealboxes endpoint returns up to 18 meal boxes per week with names, tags (Classique, Famille, Express, Healthy, Veggie), and a computed primary tag. Product data includes price, brand, origin, allergens, and category hierarchy in both French and Dutch.
curl -X GET 'https://api.parse.bot/scraper/915f9bce-6e61-4654-9f7f-7e32bc0e82a9/get_weekly_mealboxes?week=24&year=2026&language=fr' \ -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 efarmz-be-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.efarmz_meal_box_api import Efarmz, Language, MealboxTag
efarmz = Efarmz()
# Get meal boxes for a specific week
week_data = efarmz.mealboxweeks.get(week="24", year="2026", language=Language.FR)
print(f"Week {week_data.week}/{week_data.year} (period {week_data.period}): {week_data.total} boxes")
for box in week_data.mealboxes:
print(f" {box.position}. {box.name} [{box.primary_tag}] tags={box.tags}")
# Search for products
for product in efarmz.productsummaries.search(query="tomate", language=Language.FR):
print(f"{product.id}: {product.name} - {product.price}€ ({product.conditioning})")
# Drill into full product detail
detail = product.details()
print(f" Description: {detail.description}")
print(f" Ingredients: {detail.ingredients_and_allergens}")
for cat in detail.categories:
print(f" Category: {cat.name} (level {cat.level})")
if detail.brand:
print(f" Brand: {detail.brand.name}")
Get the first 18 cooking meal box names and their tags available for a given week. Each meal box has one or more tags from: Classique, Famille, Express, Healthy, Veggie. A primary_tag is determined by priority order (Healthy > Express > Veggie > Famille > Classique). Returns cooking boxes only (excludes reheat boxes), in the chosen language (French or Dutch).
| Param | Type | Description |
|---|---|---|
| weekrequired | string | ISO week number (1-53). For example: '23' corresponds to 01/06-07/06 in 2026, '24' to 08/06-14/06, etc. |
| year | string | 4-digit year for the period lookup. |
| language | string | Language for meal box names. |
{
"type": "object",
"fields": {
"week": "integer - ISO week number",
"year": "integer - year",
"total": "integer - number of meal boxes returned (max 18)",
"period": "string - the YYYYWW period code sent to the site",
"language": "string - language code used ('fr' or 'nl')",
"mealboxes": "array of meal box objects, each containing position (integer, 1-based order on the website), name (string), primary_tag (string, highest priority tag), and tags (array of strings, all applicable tags sorted by priority)"
},
"sample": {
"data": {
"week": 24,
"year": 2026,
"total": 18,
"period": "202624",
"language": "fr",
"mealboxes": [
{
"name": "Tagliata de boeuf, sauce au persil et aubergines grillées au citron",
"tags": [
"Classique"
],
"position": 1,
"primary_tag": "Classique"
},
{
"name": "Riz au chorizo et poivrons",
"tags": [
"Express"
],
"position": 2,
"primary_tag": "Express"
}
]
},
"status": "success"
}
}About the eFarmz API
Weekly Meal Box Data
The get_weekly_mealboxes endpoint accepts an ISO week number (1–53) and an optional year to identify the delivery period. It returns a period code in YYYYWW format, the total number of boxes found (up to 18), and an array of mealboxes. Each meal box object includes a 1-based position reflecting its order on the site, a name, all applicable tags, and a primary_tag derived by priority (Healthy > Express > Veggie > Famille > Classique). The language parameter controls whether names are returned in French (fr) or Dutch (nl).
Product Search
The search_products endpoint accepts a free-text query — for example 'tomate', 'fromage', or 'bio' — and returns up to 10 matching products. Each result includes id, name, slug, price (EUR), image, brand, origin (country code), conditioning, tags, categories, and an is_available flag. When no query is supplied the endpoint returns a default product set, which is useful for browsing without a specific search intent.
Product Detail
The get_product_detail endpoint takes a product_id (such as 'A6789') obtained from search_products results and returns the full record. This includes a description, ingredients and allergen data, a brand object with id, name, description, and image, a deposit amount in EUR, type, and the full tags array. The language parameter applies here as well, switching all text fields between French and Dutch.
The eFarmz API is a managed, monitored endpoint for efarmz.be — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when efarmz.be 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 efarmz.be 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 weekly meal planner app that surfaces eFarmz boxes filtered by Healthy or Veggie primary_tag
- Track week-over-week meal box availability and name changes using the week and year parameters
- Aggregate product prices in EUR across categories for organic grocery price comparison
- Display origin country codes and brand details for transparency-focused food apps
- Search for allergen and ingredient data by product_id to build dietary filter tools
- Map eFarmz category hierarchies into a custom Belgian organic grocery catalog
- Monitor which meal box positions appear each week to analyze rotation patterns
| 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.