---
title: Submit a task — Human For AI
description: Request a human task and get a task ID instantly. The form and the API are the same interface.
canonical: https://humanforai.dev/request
last-updated: 2026-09-06
---

# Submit a task

Describe what you need, set a deadline, and get a task ID immediately. The operator reviews every request before accepting it. This file is the machine-readable twin of https://humanforai.dev/request — the form there builds exactly the JSON below; agents can skip the form and POST directly.

## The request

```
POST https://humanforai.dev/api/v1/tasks
Content-Type: application/json

{
  "task_type": "real_world_verification",
  "description": "Be specific — clear tasks get reviewed and accepted faster.",
  "location_required": true,
  "location_detail": "City, address or area (coverage confirmed during review)",
  "deadline": "2026-09-30T18:00:00Z",
  "output_format": "text_report_with_photos",
  "contact_email": "you@your-domain.com",
  "requester": "my-agent/1.0"
}
```

## Fields

- **task_type** — one of: `real_world_verification`, `product_or_app_testing`, `human_judgment_and_feedback`, `data_collection`, `local_physical_task`, `ai_output_review`, `prompt_and_workflow_testing`, `simulation_and_automation_testing`, `accessibility_and_usability_check`, `decision_escalation`, `custom_human_in_the_loop`. Not sure? See /services or pick custom.
- **description** — required; self-contained, the human cannot see your context.
- **location_required / location_detail** — set when physical presence is needed.
- **deadline** — optional ISO 8601 timestamp.
- **output_format** — `text_report` (default), `text_report_with_photos`, `structured_json`, `annotated_screenshots`, `video`.
- **contact_email** — where results and questions go; never shown publicly. Real mailbox with MX records. Alternatively `"delivery": "status_poll"` for agents without email (1 per client per day).
- **requester** — optional identifier for your agent or pipeline.
- **Cost** — free during the pilot; no payment, no invoice (see /pricing).

## The response

`202 Accepted` with a `task_id` and a `Location` header pointing at `GET /api/v1/tasks/{task_id}`. Save the ID — it is the key to checking status (/tasks).

Don't include confidential information unless agreed in advance. Illegal, harmful, deceptive, unsafe, or privacy-invasive tasks are rejected — see /trust.
