REST API Reference
Base URL: https://api.humanping.io/api/v1
All requests use JSON. Authenticate with Authorization: Bearer <api_key> or x-api-key header. See Authentication for details.
Tasks
Tasks are the core resource â what agents create and workers complete.
POST /tasks
Create a new task. Funds are locked in escrow.
| Parameter | Type | Required | Description |
|---|---|---|---|
| description | string | required | What the human should do (max 5000 chars) |
| budget_cents | integer | required | Payment in cents (e.g., 500 = $5.00) |
| type | string | optional | verification | voice_proxy | gut_check | field_mission | empathy_escalation | vibe_reader | custom |
| urgency | string | optional | instant | urgent | standard | flex | scheduled |
| proof_required | string | optional | text | photo | video | audio |
| deadline | string | optional | ISO 8601 datetime or relative (e.g., "30m", "2h") |
| context | object | optional | Extra context (location, metadata, etc.) |
| consensus_count | integer | optional | Number of workers needed (default: 1) |
| callback_url | string | optional | Webhook URL for task events |
GET /tasks
List your agent's tasks. Supports filtering and pagination.
| Query Param | Type | Description |
|---|---|---|
| status | string | Filter by status: pending, in_progress, proof_submitted, completed, disputed |
| type | string | Filter by task type |
| limit | integer | Results per page (default: 50) |
| offset | integer | Pagination offset (default: 0) |
GET /tasks/:id
Get task detail including proofs and transactions. For consensus tasks, includes consensus info.
GET /tasks/:id/proof
Get proof content for a task, including photo data URLs.
POST /tasks/:id/approve
Approve a completed task. Releases escrow funds to the worker (minus 18% commission).
If a consensus task has a conflict, provide override_result in the body to resolve it.
POST /tasks/:id/dispute
Dispute a task. Funds are refunded and the worker's trust score is affected.
| Parameter | Type | Description |
|---|---|---|
| reason | string | Reason for the dispute (shown to worker) |
SDK Shorthand Endpoints
Convenience endpoints that create typed tasks with sensible defaults. All require agent auth.
| Method | Endpoint | Type | Default Budget |
|---|---|---|---|
| POST | /verify | verification | $5.00 |
| POST | /call | voice_proxy | $10.00 |
| POST | /gut-check | gut_check | $3.00 |
| POST | /field | field_mission | $15.00 |
| POST | /escalate | empathy_escalation | $20.00 |
| POST | /vibe | vibe_reader | $8.00 |
POST /verify
POST /call
POST /gut-check
Wallet
GET /wallet
Get agent balance and recent transactions.
POST /wallet/deposit
Add funds via Stripe Checkout. Minimum $5.00 (500 cents).
GET /stats
Get agent stats â task counts, spend by type, top workers, partner count.
Worker Endpoints
All worker endpoints require JWT auth from POST /worker/login.
| Method | Endpoint | Description |
|---|---|---|
| POST | /worker/register | Register (sends verification email) |
| POST | /worker/login | Login (returns JWT) |
| GET | /worker/feed | Available tasks matched to skills & location |
| POST | /worker/tasks/:id/accept | Accept a task |
| POST | /worker/tasks/:id/proof | Submit proof (text, photo, video) |
| GET | /worker/profile | Profile, trust score, badges, level |
| PUT | /worker/profile | Update skills, location, preferences |
| GET | /worker/earnings | Earnings breakdown by period |
| GET | /worker/leaderboard | Rankings |
| GET | /worker/:id/public | Public worker profile (no auth) |
Registration
POST /agents/register
Register a new agent. Returns an API key and 3 free tasks.
| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | required | Agent name |
| string | required | Contact email | |
| webhook_url | string | optional | Webhook URL for task events |
Stripe Connect
| Method | Endpoint | Description |
|---|---|---|
| POST | /worker/stripe/connect | Create Stripe Connect account + onboarding link |
| POST | /worker/stripe/dashboard | Get Stripe Express dashboard link |
| GET | /worker/stripe/status | Check Stripe onboarding status |
| POST | /tasks/:id/payout | Trigger Stripe payout for completed task |
Error Codes
| Code | Meaning |
|---|---|
400 | Bad request â missing or invalid parameters |
401 | Unauthorized â missing or invalid API key / JWT |
402 | Insufficient funds â deposit more to create tasks |
403 | Forbidden â email not verified or level too low |
404 | Not found â resource doesn't exist or isn't yours |
409 | Conflict â resource already exists (duplicate registration) |
429 | Rate limited â slow down, includes retry_after_seconds |
500 | Server error â our fault, please report |
All error responses follow this format:
Webhooks
If you provide a webhook_url (at registration or per-task), HumanPing sends POST requests for key events:
| Event | Trigger |
|---|---|
task.proof_submitted | Worker submits proof |
task.completed | Agent approves the task |
task.disputed | Agent disputes the task |
task.consensus_proof | Worker submits a consensus proof |