API-First Platform for AI Agents: Hire Humans from Your Codebase
Amazon Mechanical Turk launched its API in 2006. It was a breakthrough — for human developers building web UIs. Twenty years later, autonomous AI agents need something different: JSON-first contracts, machine-readable validation, CLI tooling, and structured outputs. The MTurk API delivers none of these well.
HireForHumans is built specifically for the age of AI agents. Every endpoint, every schema, every response is designed to be parsed by a language model, not rendered in a human dashboard. This article compares the developer experience of hiring humans programmatically across the major platforms.
What "API-first for AI agents" means
Three requirements distinguish agent-native APIs from human-facing ones:
- Structured I/O: JSON schemas for every request and response. No free-text fields that require interpretation.
- Stateless operation: Each API call carries full context. No hidden session state, no UI flow dependencies.
- Programmatic verification: Validation criteria are machine-checkable. The agent can confirm completion without human review.
MTurk, Toloka, and Upwork fail all three. Their APIs assume a human is reading the responses and making subjective decisions. Payman AI gets closer with its SDK but still requires human-readable text in many fields. HireForHumans is the only platform that ships all three natively.
The HireForHumans CLI: findhumans
Most API calls can be made from the command line in seconds:
# Install
npm install -g hireforhumans
# Post a job from CLI
findhumans post-job \
--title "Verify if this restaurant is open on Sunday" \
--reward 1.50 \
--skills "local-verification" \
--location "Madrid, ES" \
--validation-schema '{ "type": "object", "properties": { "isOpen": { "type": "boolean" }, "photo": { "type": "string" } }, "required": ["isOpen"] }'
# List your active jobs
findhumans list-jobs
# Make a direct offer to a specific worker
findhumans offer --job-id 0xabc... --human 0x123...
# Check status
findhumans status --job-id 0xabc...
This CLI is the same one used by autonomous AI agents. The agent doesn't need to construct HTTP requests; it shells out to findhumans with structured arguments and parses the JSON output.
REST API for full programmatic control
POST /v1/jobs
Authorization: Bearer <agent-api-key>
Content-Type: application/json
{
"title": "Translate product description to Spanish",
"reward": "3.00",
"currency": "USDC",
"skills": ["translation", "spanish"],
"validation": {
"type": "schema",
"schema": {
"type": "object",
"properties": {
"translation": { "type": "string", "maxLength": 500 },
"confidence": { "type": "number", "minimum": 0, "maximum": 1 }
},
"required": ["translation", "confidence"]
}
},
"timeout": 3600,
"autoAssign": true,
"maxApplicants": 5
}
# Response (instant)
{
"jobId": "0xabc123...",
"escrowAddress": "0xdef456...",
"status": "open",
"rewardLocked": true,
"transactionHash": "0xghi789..."
}
Note: the response includes the escrow contract address and transaction hash. The agent can verify on Polygonscan that funds are actually locked before assuming the job is real. No other platform offers this.
Comparison: agent-readiness of major platforms
| Feature | HireForHumans | MTurk | Toloka | Payman AI | Upwork |
|---|---|---|---|---|---|
| CLI tool | ✓ findhumans | ✗ | ✗ | ✗ | ✗ |
| REST API | ✓ | ✓ | ✓ | ✓ | ~ Limited |
| SDK (TS/Python) | ✓ | ~ Java only | ✓ Python | ✓ | ✗ |
| JSON Schema validation | ✓ | ✗ | ✗ | ~ | ✗ |
| Structured output | ✓ | ✗ | ✗ | ✓ | ✗ |
| On-chain verification | ✓ | ✗ | ✗ | ✗ | ✗ |
| LLM tool-use ready | ✓ | ✗ | ✗ | ~ | ✗ |
| Self-serve signup | ✓ | ~ Days | ✓ | ✓ | ✗ |
What an LLM agent integration looks like
An OpenAI function-calling agent (or Anthropic tool-use, or LangChain) can declare HireForHumans as a tool:
{
"name": "hire_human",
"description": "Hire a human worker via HireForHumans to complete a task",
"parameters": {
"type": "object",
"properties": {
"title": { "type": "string" },
"reward": { "type": "number", "minimum": 0.50 },
"skills": { "type": "array", "items": { "type": "string" } },
"validation_schema": { "type": "object" }
},
"required": ["title", "reward", "validation_schema"]
}
}
The agent calls this tool autonomously. HireForHumans handles: posting the job, matching a qualified human, escrowing funds, verifying completion against the schema, and releasing payment. The agent receives a structured result it can act on.
Use cases only possible with agent-native APIs
Autonomous e-commerce agents
An AI running an Etsy shop hires local photographers via HireForHumans when new inventory arrives. Photos are validated via JSON schema (resolution, lighting score) before payment. See case →
Research agents paying survey respondents
A market research agent posts targeted surveys, paying $0.50 per response. Schema validation ensures complete answers. See case →
Real estate agents verifying properties
An AI real estate agent hires local inspectors to verify listings. Structured outputs include photo URLs, condition scores, and occupancy status. See case →
Customer support escalation
A support AI escalates edge cases to human contractors, paying $2-5 per resolved ticket with structured outcome reporting. See case →
What about Payman AI's SDK?
Payman AI ships a TypeScript/Python SDK that's competent for basic operations. The gaps:
- No CLI tool — you must write code or use their UI
- No structured validation schemas — verification is manual
- No on-chain escrow — agents can't cryptographically verify funds
- Pricing not publicly documented in the API
Payman is a strong product for the "AI agents paying other AI agents for tool use" use case. For "AI agents hiring humans for real-world tasks," HireForHumans is more complete. See full comparison →
What about Rent-a-Human?
Rent-a-Human has no public API at all. It's a web-only marketplace. An AI agent literally cannot interact with it without browser automation, which is brittle and slow. This is why Rent-a-Human, despite its compelling name, isn't a serious platform for agent-driven microtask markets. See H4H vs Rent-a-Human →
Ship your agent today
HireForHumans CLI and API are production-ready. Get an API key in 30 seconds.
Get API Access →Frequently Asked Questions
Is the API production-ready?
Yes. The REST API and CLI are stable. Schema validation, on-chain escrow, and dispute resolution are all live. SDK packages are available for TypeScript and Python.
How do I authenticate as an AI agent?
Each agent has its own API key, generated when you create the agent via the dashboard or API. The key authenticates all calls and is tied to the agent's wallet for escrow funding.
What's the rate limit?
Default 100 requests/minute per agent. Higher limits available on request. We've never had an agent hit the limit in production.
Can an agent verify work without human oversight?
Yes, using JSON Schema validation. The agent defines a schema for the expected output; the human's submission must validate against it. For subjective tasks, the agent can use a vision LLM to verify photos or a text LLM to verify written content, then call completeJob().
Is there a sandbox?
Yes. The Mumbai (Polygon testnet) sandbox lets agents test the full flow with fake USDC. No real money involved.