Hannu developer docs
Build the trusted human layer into your agent. Connect over MCP or REST, lock escrow before work starts, and collect a signed Verified report on every task.
Hannu is the trusted layer between AI agents and the real world. Your agent hires KYC-verified Nigerian Operators for real-world tasks — a field check, a photo, a survey, a call — and gets back a signed Verified report, not a screenshot. Money locks in escrow before any work starts, and Hannu never holds it: licensed partners custody funds, and our append-only ledger records every movement.
You connect the same way you'd add any other tool to your agent — over MCP or REST — and the platform handles identity, matching, verification, and payout.
Start here
Estimate the work, create the task under escrow, then read the signed report. That's the whole loop — over MCP or plain HTTPS.
- Quickstart (MCP) — add the Hannu MCP server to your agent and run your first task.
- Quickstart (REST) — from an API key to a verified outcome with
curl. - Authentication — how API keys work and how they're issued.
The whole surface, at a glance
One governed layer sits behind both MCP and REST — discover, create, verify, settle, and govern. Every mutating call is idempotent; every error names the exact control that failed.
Discovery
Unauthenticated, machine-readable descriptions of the platform.
- GET
/v1/openapi.jsonThe OpenAPI 3.1 document. - GET
/llms.txtA machine-first map of the API for agents. - GET
/v1/contentThe governed task-type catalogue and display states. - GET
/v1/pricingMachine-readable pricing — every value tagged with its config key. - GET
/v1/statusSystem status with 90-day history and uptime. - POST
/v1/pass/verifyVerify a hannu Pass credential (public, Tier-A).
Agent & wallet
Who you are to the platform, and the money behind your tasks.
- GET
/v1/meThe calling agent’s identity, delegation flags and kill-switch state. - GET
/v1/walletOrg wallet balance. - POST
/v1/wallet/fundThe funding-rails matrix and minimum top-up (read-only — no state change).
Workers
Search and read the public projection of eligible Operators — never PII.
- GET
/v1/workersSearch eligible Operators by zone and skill. - GET
/v1/workers/:idOne Operator’s public projection.
Tasks
The core loop — estimate, create under escrow, then verify and settle.
- POST
/v1/estimate_taskDry-run pricing with zero state change. - POST
/v1/tasksCreate and escrow-lock a task. - GET
/v1/tasksList the org’s tasks. - GET
/v1/tasks/:idFull task state, including escrow and proof. - GET
/v1/tasks/:id/proofThe AI verification report summary. - POST
/v1/tasks/:id/approveRelease escrow to the Operator. - POST
/v1/tasks/:id/rejectReject with a structured reason — opens a dispute, freezes escrow. - POST
/v1/tasks/:id/cancelCancel before acceptance and refund escrow.
Workflows
Composite outcome products — one order, one escrow lock, a signed report.
- GET
/v1/workflow_productsThe flag-gated workflow catalogue for a zone. - POST
/v1/workflowsOrder a workflow under a single escrow lock. - GET
/v1/workflows/:idPer-step progress (no worker identities). - GET
/v1/workflows/:id/reportThe Verified report — json, markdown, html or attestation.
Campaigns
Active campaigns — empty while the campaigns engine flag is off.
- GET
/v1/campaignsList active campaigns.
What makes Hannu different
- Escrow-native. Funds lock before the task exists. No work, no risk.
- Proof, not promises. Every outcome is verified by AI and, where needed, a human — then signed.
- Governed by construction. Per-agent spend caps, delegation flags, and an instant kill switch are checked before any task is created.
- Safe by design. Credential-class work — account creation, CAPTCHA, OTP handling — is refused in the write path. See absent by design.
Machine-readable by default
These docs are built for agents as much as people. Every page is available as clean Markdown — append .md to any URL — and the whole corpus is published at /llms.txt and /llms-full.txt. Use the Copy page menu at the top of any page to hand it to an assistant with one click.