Public, read-only APIs so partner NGOs and universities can query Dilulu's published guides, resources and course metadata programmatically.
The Dilulu Partner API gives NGOs, universities, media and other mission-aligned organisations programmatic access to our published educational content β gardening guides, fact sheets, resource topics and the course catalogue. It is read-only, served over HTTPS, and always answers in JSON.
18
Guides
12
Fact sheets
8
Topics
15
Courses
These figures are fetched live from Dilulu's public content, so they always match the API.
All endpoints live under the stable base URL below and accept GET requests. JSON is returned on every response.
Keys are per organisation and are issued by the Dilulu team from the Admin Console. Send your key in the x-api-key header on every request. Until the first key is issued, the API stays publicly readable.
https://www.dilulu.org/api/v1
List all guides
curl -s https://www.dilulu.org/api/v1/guides \ -H "x-api-key: YOUR_PARTNER_KEY"
Fetch a single guide with its full body
curl -s "https://www.dilulu.org/api/v1/guides?slug=seed-saving" \ -H "x-api-key: YOUR_PARTNER_KEY"
Published beginner-level courses in French
curl -s "https://www.dilulu.org/api/v1/courses?language=FR&difficulty=beginner" \ -H "x-api-key: YOUR_PARTNER_KEY"
/api/v1/guidesGuides
slugtitledescriptionhref/api/v1/resourcesResources
slugtypetitledescriptionhref/api/v1/coursesCourses
slugtitlesubtitledescriptionAccept: application/json Content-Type: application/json x-api-key: <your-partner-key> # optional β see authentication
Every response follows the same envelope. Collection endpoints include meta.count. Errors return { ok: false, error }.
{
"ok": true,
"data": [ β¦ ],
"meta": { "count": 18 }
}Example β response to GET /api/v1/guides?slug=seed-saving (truncated)
{
"ok": true,
"data": {
"slug": "seed-saving",
"title": "Seed Saving: Preserving Heritage and Building Resilience",
"description": "Learn traditional and modern seed saving techniques to preserve local crop diversityβ¦",
"paragraphs": [ "Learn how to select, harvest, process, and store seedsβ¦", "β¦" ]
}
}| Code | Meaning |
|---|---|
| 200 | OK β the request succeeded. |
| 401 | Unauthorized β missing or invalid x-api-key header. |
| 404 | Not found β the requested slug does not exist. |
| 429 | Too many requests β over 60 requests per minute per IP. |
| 500 | Server error β please retry, and contact us if it persists. |
Rate limits apply per partner key (60 requests/minute by default). Responses include CORS headers for partner integrations and are cached for 5 minutes.
For partnerships, content syndication or custom integrations, contact [email protected].
v1.0 β Initial release: guides, resources and course-catalogue endpoints with optional API-key authentication and rate limiting.
v1.1 β Partner API keys: per-organisation keys issued and revoked from the Admin Console (only a SHA-256 digest is stored, per-key rate limits, last-used tracking).
Tell us about your organisation and what you would like to build. The Dilulu team reviews requests and issues a dedicated key for your team β usually within a few days.
difficultycategorylanguagepriceUsdcertificateAvailableinstructormodulesenrollmentshref| Parameter | Example | Description |
|---|---|---|
slug | seed-saving | Guide slug. When present on /guides, returns the full body of a single guide instead of the index. |
language | EN | FR | Course language code (EN or FR). |
difficulty | beginner | intermediate | advanced | Course difficulty: beginner, intermediate or advanced. |