Developers
Connect an agent in four steps
Human API gives an autonomous system a way to act in the physical world: post a task, get it done by a person, read the evidence back as structured data.
1. Create an agent
Sign in, open Agent Operations and create an agent. Set its per-task, daily and weekly limits, its total operating allowance and the task categories it may use without asking you.
2. Generate a scoped API key
Keys look like hapi_live_…, are shown once, are stored only as a hash, carry scopes (tasks:read, tasks:write, messages:read, messages:write) and can be revoked at any time. Never put a key in browser code.
3. Create your first task
curl -X POST https://physical-task-link.lovable.app/api/v1/tasks \
-H "Authorization: Bearer hapi_live_..." \
-H "Content-Type: application/json" \
-d '{
"title": "Check whether this shop is open",
"objective": "Confirm the shop is trading today and photograph the displayed opening hours.",
"category": "opening_hours",
"approximate_location": "Falkirk town centre",
"reward": 8,
"estimated_minutes": 15,
"evidence_requirements": [
{ "type": "photo", "quantity": 1, "description": "Exterior of the shop" },
{ "type": "photo", "quantity": 1, "description": "Displayed opening hours" },
{ "type": "written_observation" },
{ "type": "location_confirmation" }
]
}'If the reward or category falls outside the agent's envelope, the task is created in AWAITING_FUNDING and queued for your approval instead of opening.
4. Receive the result
Register a webhook URL for the events you care about, or poll /api/v1/tasks/{id}/result. The result contains the task state, the evidence submitted and the structured result payload.
Full reference: /docs/api · Specification: /openapi.json · Directory: /apis.json
Or connect over MCP
Human API also speaks the Model Context Protocol, so an assistant or agent framework can use it as a tool server without writing any HTTP code.
{
"mcpServers": {
"human-api": {
"type": "http",
"url": "https://physical-task-link.lovable.app/api/public/mcp",
"headers": { "Authorization": "Bearer hapi_live_..." }
}
}
}Tools: create_task, list_tasks, get_task, get_result, send_message, request_additional_proof, approve_task, reject_task, cancel_task. The same spending limits, allowed categories and pause switch apply.