API Reference¶
Auto-generated
This page will be automatically generated from Google-style docstrings via mkdocstrings.
For interactive API docs with a running backend:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc
Print & Export (REQ-032)¶
All print endpoints are located under the tenant-scoped path /api/v1/t/{slug}/print/ and require a valid JWT token. Access rights mirror the permissions of the underlying data (REQ-024 RBAC) — anyone who may read a nutrient plan may also print it.
Common query parameters (all endpoints):
| Parameter | Type | Default | Values |
|---|---|---|---|
locale | string | de | de, en |
format | string | pdf | pdf, csv (tabular templates only) |
Nutrient Plan PDF¶
Exports a complete nutrient plan as a PDF including the phase table, mixing instructions, water configuration, and CalMag / flushing notes.
Path parameters:
| Parameter | Description |
|---|---|
slug | Tenant slug |
plan_key | ArangoDB key of the NutrientPlan document |
Response: application/pdf with Content-Disposition: attachment; filename="nutrient-plan-{plan_key}.pdf"
Example:
curl -X GET \
"https://api.example.com/api/v1/t/my-garden/print/nutrient-plan/nutrient_plans/42?locale=en" \
-H "Authorization: Bearer <token>" \
--output nutrient-plan.pdf
Care Checklist PDF¶
Exports all due care tasks for a given date as a checklist with tick boxes, grouped by urgency (overdue, due today, coming up).
Query parameters (in addition to locale and format):
| Parameter | Type | Default | Description |
|---|---|---|---|
date | string (ISO 8601) | Today's date | Reference date for due tasks, e.g. 2026-04-01 |
Response: application/pdf with Content-Disposition: attachment; filename="care-checklist-{date}.pdf"
Example:
curl -X GET \
"https://api.example.com/api/v1/t/my-garden/print/care-checklist?date=2026-04-15&locale=en" \
-H "Authorization: Bearer <token>" \
--output care-checklist.pdf
Plant Info Cards / Label PDF¶
Prints compact info cards with a QR code for one or more plant instances. The QR code contains the deep-link URL to the respective plant in the app.
Query parameters (in addition to locale):
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
plant_keys | string | Yes | — | Comma-separated ArangoDB keys of the plant instances (at least 1) |
fields | string | No | name,scientific_name,planted_date | Comma-separated fields to show on the card |
layout | string | No | grid_2x4 | single (A6), grid_2x4 (8 per A4), grid_3x3 (9 per A4) |
qr_size_mm | integer | No | 25 | QR code side length in mm (min: 20, max: 60) |
Possible values for fields:
name, scientific_name, family, planted_date, current_phase, location, cultivar, note
The QR code is always included and cannot be deselected via fields.
Response: application/pdf with Content-Disposition: attachment; filename="plant-labels.pdf"
Example — 8 cards per A4 page with plant name, scientific name and planting date:
curl -X GET \
"https://api.example.com/api/v1/t/my-garden/print/plant-labels\
?plant_keys=plant_instances/101,plant_instances/102,plant_instances/103\
&fields=name,scientific_name,planted_date,location\
&layout=grid_2x4\
&qr_size_mm=25\
&locale=en" \
-H "Authorization: Bearer <token>" \
--output labels.pdf
Error codes:
| HTTP status | Meaning |
|---|---|
400 | Invalid parameters (e.g. unknown layout value, qr_size_mm out of range) |
401 | Not authenticated |
403 | No permission for this tenant or resource |
404 | Plan key or plant instance key not found |
422 | Required parameter missing (e.g. plant_keys for /plant-labels) |
List Available Templates¶
Returns a list of all registered print templates.
This endpoint is not tenant-scoped and only requires a valid authentication token.
Example response:
[
{
"type": "nutrient_plan",
"label_de": "Nährstoffplan",
"label_en": "Nutrient Plan",
"formats": ["pdf"],
"locales": ["de", "en"]
},
{
"type": "care_checklist",
"label_de": "Pflege-Checkliste",
"label_en": "Care Checklist",
"formats": ["pdf"],
"locales": ["de", "en"]
},
{
"type": "plant_label",
"label_de": "Pflanzen-Infokarte",
"label_en": "Plant Info Card",
"formats": ["pdf"],
"locales": ["de", "en"]
}
]