For developers
This site is a node in the Laukahi Network: everything it publishes can be read by machines as well as people. Start from the manifest — it describes the node, its collections and how to authenticate.
Start here
curl https://www.ecosystemsandlandcare.org/api/manifest
The manifest and schema are always open. Everything else follows the access rules below.
Authentication
Keys are issued by this node. Send one on every request:
Authorization: Bearer uhelp_… # or X-API-Key: uhelp_…
Each key has its own scopes, collection limits and a per-minute rate limit. Some records are marked restricted (for example sensitive management methods); they are only returned to keys that have been granted access to them, and are otherwise absent — not redacted.
Endpoints
| Endpoint | What it does | Access |
|---|---|---|
| GET /api/manifest | Node identity, collections, capabilities, auth. | open |
| GET /api/schema | Field definitions for every collection. | open |
GET /api/species GET /api/resources GET /api/{collection}/{id} | Read public records, collection by collection, with paging and updated_since. | open |
GET /api/search | Keyword and semantic search across every collection. | open |
GET /api/changes | What changed since a timestamp — how a hub keeps its index of this node in sync. | key required |
POST /api/mcp | Model Context Protocol: lets AI agents list and call this node’s tools directly. | key required |
POST /api/library/ask | Grounded answers from the document library, citing pages. | key required |
Collections
| /api/species | Species records relevant to Hawaiian ecosystem restoration. Includes invasives, natives, and polynesian introductions. |
| /api/resources | Everything UHELP publishes: pages, documents, links and datasets. Biocontrol and events are subcategories here, not separate archives. |
Paging: ?limit= (max 200) and ?offset=. Incremental sync: ?updated_since= ISO timestamp, or poll /api/changes?since= and fetch what changed.
curl -H "Authorization: Bearer $UHELP_KEY" \ "https://www.ecosystemsandlandcare.org/api/species?limit=50&updated_since=2026-01-01T00:00:00Z"
AI agents (MCP)
POST JSON-RPC style requests to /api/mcp: tools/list, then tools/call. A key sent to MCP is passed through to the tools it calls, so an agent reaches exactly what its key allows.
curl -X POST https://www.ecosystemsandlandcare.org/api/mcp \
-H "Authorization: Bearer $UHELP_KEY" -H "Content-Type: application/json" \
-d '{"method":"tools/call","params":{"name":"search","arguments":{"query":"fountain grass"}}}'Errors
| 401 | api_key_required or invalid_api_key — no key, or a revoked, expired or unknown one. |
| 403 | insufficient_scope — the key is valid but not allowed this endpoint or collection. |
| 429 | rate_limited — over the key’s per-minute limit. Wait for Retry-After. |
Every response carries X-Node-Access: open, or the key it was served under.