Interact with the Dzaleka Online Services API to fetch community data (services, events, news, photos, jobs) or search across collections...
This skill allows agents to interact with the Dzaleka Online Services REST API to retrieve data about the Dzaleka community. It supports fetching lists of services, events, resources, news, photos, jobs, and documentation, as well as searching across these collections.
Use this skill when:
See references/endpoints.md for the complete list of endpoints and parameters.
Base URL: https://services.dzaleka.com/api
GET /api/search?q=...GET /api/servicesGET /api/eventsBase URL:
https://services.dzaleka.com/api
GET /api/search?q=<term>&collections=<list>&limit=<n>
q: required search term (min 2 characters).collections: optional comma-separated collections (services, events, resources, news, photos, jobs, docs).limit: optional max results per collection.
Example:GET /api/search?q=education&collections=resources,events&limit=5
Fetch all items from each collection:
| Resource | Path |
|---|---|
| Services | /api/services |
| Events | /api/events |
| Resources | /api/resources |
| News | /api/news |
| Photos | /api/photos |
| Jobs | /api/jobs |
| Docs | /api/docs |
Example:
curl https://services.dzaleka.com/api/services
Most endpoints return a JSON object wrapping the results or data.
Returns a status and results (or collection-keyed results for search).
{
"status": "success",
"results": [
{
"id": "community-health-service",
"title": "Community Health Service",
...
}
]
}
The /api/docs endpoint returns a slightly different structure:
{
"status": "success",
"data": {
"docs": [
{
"id": "about",
"title": "About Dzaleka Online Services",
...
}
]
}
}
Errors follow standard HTTP status codes but also return a JSON body:
{
"status": "error",
"message": "Search query must be at least 2 characters long"
}
Agents should check for status === 'success' and handle gracefully.
async function fetchServices() {
const res = await fetch("https://services.dzaleka.com/api/services");
const data = await res.json();
if (data.status === 'success') {
console.log(data.results);
} else {
console.error('API Error:', data.message);
}
}
import requests
url = "https://services.dzaleka.com/api/events"
resp = requests.get(url)
data = resp.json()
if data.get('status') == 'success':
events = data.get('results', [])
print(events)
else:
print("Error:", data.get('message'))
collections and limit to reduce response size.status field in the response.status property before accessing results./api/docs correctly (data.data.docs).https://services.dzaleka.com/api