HI API for NahaLabs products.
One keyed API lets CargoIQ, RailWatch, ClaimTrace, MineMySol, RevenueDesk and RevUp use HI's agent, memory, scheduled tasks, tender matching and browser actions. Next action: create a key under API keys in the app.
Authenticate
Every call sends the key as a bearer token. Keys are created in the app, shown once, and stored only as a hash on the server. They are never written to logs or pages.
Authorization: Bearer hi_...
Limits: 60 calls per minute per key. The same account budgets and approval gates as the app apply. The API can draft and propose; it never sends, buys, books or submits.
Endpoints
| Call | What it does |
|---|---|
POST /v1/chat {message, agent_id?, conversation_id?} | Talk to the AI employee. Returns answer, conversation_id, sources. |
GET /v1/agents | List the account's agents. |
POST /v1/memory {content, kind?} / GET /v1/memory?query= | Save and search durable memory. |
POST /v1/tasks {title, instruction, every_minutes?} / GET /v1/tasks | Schedule recurring or one-off work, list tasks. |
POST /v1/plans {goal} / GET /v1/plans/:id | Multi-step job: the planner breaks the goal into steps, specialist workers run them, HI returns one combined answer. |
GET /v1/tenders?query= / GET /v1/matches | Opportunity Desk: search open SA tenders, or read the account's profile matches. |
POST /v1/browser {start_url, goal, mode} / GET /v1/browser/:id | Propose a browser job. It runs only after the account owner approves it in the queue; irreversible steps need a second approval. |
Example
curl -s https://hi.nahalabs.co.za/v1/chat \
-H "Authorization: Bearer hi_..." \
-H "content-type: application/json" \
-d '{"message":"What open tenders fit a cleaning company in Gauteng?"}'