canonical: https://jentic.com/apis/amazonaws.com/amazon-mechanical-turk

# AWS Amazon Mechanical Turk

Jentic publishes the only available OpenAPI specification for Amazon Mechanical Turk, keeping it validated and agent-ready. Mechanical Turk (MTurk) is AWS's human-in-the-loop crowdsourcing platform - Requesters publish Human Intelligence Tasks (HITs), Workers complete them, and Requesters review the resulting Assignments. The 39 endpoints cover the full Requester lifecycle: CreateHIT and CreateHITWithHITType, ListHITs, accept/reject Assignments, send bonuses, manage Qualifications and QualificationRequests, and notify or block Workers.

## For AI agents

Publish, manage and review human-completed tasks (HITs) on Amazon Mechanical Turk - create HITs, approve or reject assignments, manage worker qualifications, and pay bonuses.

## Scope

Does not handle Worker-side task completion, payment processing outside MTurk, or hosting custom HIT UIs - use for the Requester lifecycle of HITs, assignments, qualifications, and bonuses only.

## Capabilities

- Publish Human Intelligence Tasks (HITs) with title, description, reward, lifetime, and assignment count
- Create reusable HITTypes with shared properties for batches of similar tasks
- List and review submitted Assignments and approve, reject, or send back to Workers
- Pay performance bonuses to Workers and notify them of incentives
- Define Qualifications and grant or revoke them to gate sensitive HITs to a vetted Worker pool
- Block and unblock individual Workers from a Requester's HITs
- Update an existing HIT's expiration, review policy, or maximum assignments without recreating it

## Use cases

### Crowdsource Labels for Machine Learning Training Data

ML teams need labelled image, text or audio data to train supervised models. Mechanical Turk lets a Requester publish HITs with custom HTML/QuestionForm content, set a per-assignment reward and lifetime, and collect responses from a global Worker pool. The CreateHIT and ListAssignmentsForHIT endpoints, combined with QualificationRequirements, support producing high-quality labelled datasets at low unit cost.

Example prompt: Call CreateHIT with Title='Label image content', Reward='0.10', LifetimeInSeconds=86400, MaxAssignments=3 and a QuestionForm XML, then poll ListAssignmentsForHIT and approve qualifying responses

### Build a Vetted Worker Pool With Custom Qualifications

Sensitive or domain-specific tasks (medical text annotation, multilingual transcription) require Workers with verified skills. MTurk's Qualifications API lets a Requester define a custom QualificationType, grant it via QualificationRequest review or a built-in Qualification test, and then require it on subsequent HITs. The agent can review pending QualificationRequests and accept or reject them based on a custom rubric.

Example prompt: Call CreateQualificationType, then list pending requests with ListQualificationRequests and call AcceptQualificationRequest for those who pass a rubric check

### Run a Human-in-the-Loop Validation Step

Generative AI pipelines often need a human review step on uncertain model outputs. An agent can take low-confidence outputs from a model, publish them as small HITs (each Assignment shows two model outputs and asks a Worker to pick the better one), and feed the resulting human preferences back into reward modelling. The same primitives - CreateHIT, list assignments, approve, bonus - drive both data labelling and HITL validation.

Example prompt: Call CreateHITWithHITType for each low-confidence output using a pre-built HITType, collect assignments, and aggregate Worker preferences for a feedback dataset

### AI Agent Integration for Crowdsourced Workflows

Through Jentic, an AI agent can orchestrate the full Requester lifecycle on Mechanical Turk - publish HITs, list and review assignments, pay bonuses, manage worker pools - without writing custom boto3 logic. Jentic returns the input schema for each MTurk operation and brokers SigV4 credentials so an LLM can drive crowdsourcing workflows from natural-language instructions.

Example prompt: Resolve the intent 'publish a Mechanical Turk HIT' via Jentic search, load the CreateHIT schema, and execute it with title, reward, lifetime, max assignments and a QuestionForm body

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /#X-Amz-Target=MTurkRequesterServiceV20170117.CreateHIT | Publish a new Human Intelligence Task |
| POST | /#X-Amz-Target=MTurkRequesterServiceV20170117.ListHITs | List the Requester's HITs with paging |
| POST | /#X-Amz-Target=MTurkRequesterServiceV20170117.ApproveAssignment | Approve a submitted assignment and pay the Worker |
| POST | /#X-Amz-Target=MTurkRequesterServiceV20170117.RejectAssignment | Reject an assignment with feedback |
| POST | /#X-Amz-Target=MTurkRequesterServiceV20170117.SendBonus | Send a bonus payment to a Worker |
| POST | /#X-Amz-Target=MTurkRequesterServiceV20170117.CreateQualificationType | Create a custom qualification type |
| POST | /#X-Amz-Target=MTurkRequesterServiceV20170117.AcceptQualificationRequest | Approve a Worker's qualification request |

## Key resources

- **HITs** — Create, list, update expiration, and delete Human Intelligence Tasks
- **HITTypes** — Create reusable templates for batches of similar HITs
- **Assignments** — List, approve, reject and send-back Worker submissions
- **Qualifications** — Define and grant custom qualifications and review qualification requests
- **Workers** — Block, unblock and notify individual Workers
- **Bonuses** — Send incentive bonuses to Workers

## Why Jentic

- **Setup:** Wiring the Mechanical Turk Requester API by hand means implementing AWS SigV4 signing, targeting the regional host such as mturk-requester.us-east-1.amazonaws.com, and shaping QuestionForm XML plus your own assignment polling and backoff. Through Jentic you install once, import Amazon Mechanical Turk from the API Directory, store the AWS access key once, and your agent calls it.
- **Permission scoping:** MTurk carries HIT and assignment ids in the request body rather than the URL path, so scoping is by operation, not by path prefix. Limit the agent to the operations it needs, such as CreateHIT and ApproveAssignment, so ones like RejectAssignment or DeleteHIT are not included unless you add them.
- **Credential handling:** Your AWS access key is stored once, encrypted, by your own Jentic One instance and used to sign each MTurk request with SigV4 at execution time. The raw secret never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'publish a Mechanical Turk HIT' or 'list MTurk assignments', and Jentic returns the matching MTurk operation such as CreateHIT with its input schema so the agent calls the right endpoint without browsing the AWS reference.

## Related APIs

- **Amazon Augmented AI (A2I) Runtime** — A2I provides a higher-level human-review workflow that can route tasks to MTurk, internal teams, or vendors
- **Amazon Comprehend** — Comprehend pre-classifies text so an agent can send only low-confidence cases to MTurk Workers
- **Amazon SageMaker** — SageMaker trains models on the labelled data MTurk produces and serves them for inference

## FAQ

### Why is there no official OpenAPI spec for Amazon Mechanical Turk?

AWS does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Amazon Mechanical Turk via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Mechanical Turk Requester API use?

The MTurk Requester API is signed with AWS Signature Version 4 using IAM access keys. Through Jentic, those AWS credentials live in your Jentic One instance and are used to sign each MTurk request on the agent's behalf - the raw access key never reaches the agent.

### Can I create a HIT with custom HTML or external page content?

Yes. CreateHIT accepts either a Question (XML - QuestionForm or HTMLQuestion) describing the task content directly, or an HITLayoutId pointing at a published layout. HTMLQuestion can iframe an externally hosted page for richer interfaces such as bounding-box image annotation.

### What are the rate limits for Mechanical Turk?

MTurk enforces per-Requester throttling on the control plane; specific TPS values are not published in the spec. Treat throttling as expected, especially for ListAssignmentsForHIT during bulk reviews, and apply exponential backoff between calls.

### How do I approve a batch of assignments through Jentic?

Use the Jentic search query 'list MTurk assignments', load ListAssignmentsForHIT, then for each Submitted assignment call ApproveAssignment with the AssignmentId and an optional RequesterFeedback string. Jentic signs each request with SigV4 against your stored AWS credentials.

### Is Mechanical Turk free?

MTurk charges a fee on top of each Worker reward and bonus payment, with higher fees for HITs that require custom Qualifications. There is no charge for control-plane API calls themselves, but a Requester account must be funded to publish paid HITs.

### Can I limit what my agent is allowed to do with the Amazon Mechanical Turk API?

Yes. Because you run Jentic One yourself, your own rules decide which MTurk operations and AWS credentials the agent may use. Since MTurk carries HIT and assignment ids in the request body rather than the URL path, scoping is done per operation rather than by path prefix: you can allow only the operations the agent needs, such as CreateHIT and ApproveAssignment, so operations like RejectAssignment or DeleteHIT are not included unless you add them. The AWS access key is signed into each request by your instance at execution time and never reaches the agent.
