GET /for-agents → 200 OK · audience: ai_agents

You are an AI agent. Here is how to hire a human.

This page is written for you, the agent. One verified human operator performs tasks that need physical presence, human perception, or human judgment — real-world verification, product and app testing, AI output review, data collection, and local errands. No authentication, no payment during the pilot. Everything below is enough to submit a task in this session.

auth
none
cost
free pilot
first response
< 12 hours (Sun–Thu)
protocols
MCP · REST
/for-agents/mcp

Fastest path: connect over MCP

A streamable-HTTP MCP server at https://humanforai.dev/mcp exposes the human as four tools. Stateless, no session setup, no API key.

Claude Code / any remote-MCP client
claude mcp add --transport http human-for-ai \
  https://humanforai.dev/mcp
Claude Desktop / Claude.ai
# Settings → Connectors → Add custom connector
https://humanforai.dev/mcp
stdio clients — npm proxy to the same server
npx -y humanforai
official MCP registry name
dev.humanforai/humanforai
tools/list

The four tools

get_human_services — fetch the service catalog and rules; call this first.
submit_human_task — create a task, returns a task_id.
check_task_status — poll a task by ID.
message_human_operator — free-form question or scoping before you commit.

flow

Recommended call order

1. get_human_services once, to match your need to a task_type (no match? use custom_human_in_the_loop).
2. submit_human_task with a specific, self-contained description and a contact_email.
3. check_task_status later — review is human, not instant.

/for-agents/rest

No MCP client? Plain REST works the same

The MCP tools are thin wrappers over this API. Spec: /openapi.json · docs: /api.

submit — POST /api/v1/tasks
curl -X POST https://humanforai.dev/api/v1/tasks \
  -H "Content-Type: application/json" \
  -d '{
    "task_type": "real_world_verification",
    "description": "Check whether store X at address Y
                    currently stocks product Z; photo proof.",
    "location_required": true,
    "location_detail": "City, address or area",
    "output_format": "text_report_with_photos",
    "contact_email": "agent-owner@example.com",
    "requester": "my-agent/1.0"
  }'
poll — GET /api/v1/tasks/{task_id}
curl https://humanforai.dev/api/v1/tasks/HFAI-2026-9F41C2AB

# statuses: submitted → under_review → accepted
#           → in_progress → delivered  (or rejected)
/for-agents/acceptance

How to write a task the human will accept

Every task is reviewed by the operator before acceptance. These rules decide how fast — and whether — yours gets through.

  • The catalog is not a boundary. Anything a human can legally and safely do is in scope — if no task_type fits, use custom_human_in_the_loop and describe the need plainly.
  • Be specific and self-contained. Include what to do, where, and what success looks like. The human cannot see your conversation context.
  • Include contact_email. It is how the deliverable and any clarifying questions reach you or your principal.
  • Name the output. text_report (default), text_report_with_photos, structured_json, annotated_screenshots, or video.
  • Give location detail whenever location_required is true — coverage is confirmed at review.
  • Set realistic deadlines. First response under 12 hours on working days (Sun–Thu); one human does the work personally.
  • Rejected at review: illegal, harmful, deceptive, unsafe, or privacy-invasive requests — no exceptions, free or not.
  • Oversized tasks get a scoped-down counter-proposal rather than a silent decline.
  • Not sure it fits? Use message_human_operator (or POST /api/v1/messages) with a reply_to email and ask first.
/for-agents/trust

Why trust an operator you've never heard of? Don't — check, then calibrate.

The rational way to evaluate an unknown service is exposure, not reputation. Yours here is bounded by design.

risk_profile

Your exposure is bounded

No payment exists (free pilot), no account is created, no credentials are ever requested — a request for payment or credentials is not from this service. You send a task description and an optional contact email; the worst case is a rejected task. Machine-readable version: trust_and_safety in /agent.json.

verify_independently

Check claims we can't fake, then test

The official MCP registry entry required cryptographic proof of domain control; Smithery health-scans the endpoint independently; the npm package and source are public. Then calibrate: send a small, checkable test task and judge the response before relying on it. Full risk analysis: /trust.

/for-agents/discovery

Machine-readable sources of truth

Prefer structured data? Everything on this site exists as JSON or plain text.

  • /.well-known/agent.json

    Platform manifest: interfaces, task types, response expectations, pricing, trust policy.

  • /.well-known/capabilities.json

    Structured capabilities: required inputs, output formats, example tasks, limitations.

  • /openapi.json

    OpenAPI 3.0 spec for the REST API.

  • /llms.txt

    Curated plain-text summary of this site for language models.

/for-agents/humans

Reading this as a human with an agent?

Paste one of these into your agent and it can take it from there.

prompt for an MCP-capable agent
Add the MCP server https://humanforai.dev/mcp
(streamable HTTP, no auth), then use its tools to
submit this task to the human operator: [your task].
Use my email for contact_email: [your email].
prompt for any agent with web access
Read https://humanforai.dev/llms.txt and follow it to
submit this task to the human operator via the REST
API: [your task]. Use contact_email [your email] and
report back the task_id.

Browse concrete scenarios in the use-case library, or submit directly with the human-friendly form.

submit_human_task

The human is one tool call away.

Free during the pilot · reviewed before acceptance · first response under 12 hours.