Find an API

Search public APIs with auth details & Postman guides

← All APIs

Amazon Mechanical Turk

amazonaws · Cloud

Cloud No Auth Free & Open cloud Sandbox

Amazon Mechanical Turk API Reference

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

POST ListAssignmentsForHIT

The ListAssignmentsForHIT operation retrieves completed assignments for a HIT. You can use this operation to retrieve the results for a HIT. You can get assignments for a HIT at any time, even if the HIT is not yet Reviewable. If a HIT requested multiple assignments, and ha

https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListAssignmentsForHIT?NextToken=example&MaxResults=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
X-Amz-Target MTurkRequesterServiceV20170117.ListAssignmentsForHIT
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListAssignmentsForHIT?NextToken=example&MaxResults=example" \
  -H "X-Amz-Target: MTurkRequesterServiceV20170117.ListAssignmentsForHIT"
import requests
params = {
    "NextToken": "example",
    "MaxResults": "example"
}
headers = {
    "X-Amz-Target": "MTurkRequesterServiceV20170117.ListAssignmentsForHIT"
}
response = requests.post(
    "https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListAssignmentsForHIT",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListAssignmentsForHIT');
url.searchParams.set('NextToken', 'example');
url.searchParams.set('MaxResults', 'example');

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'X-Amz-Target': 'MTurkRequesterServiceV20170117.ListAssignmentsForHIT'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListAssignmentsForHIT")
	q := baseURL.Query()
	q.Set("NextToken", "example")
	q.Set("MaxResults", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("POST", targetURL, nil)
	req.Header.Set("X-Amz-Target", "MTurkRequesterServiceV20170117.ListAssignmentsForHIT")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListAssignmentsForHIT")
uri.query = URI.encode_www_form({
  "NextToken" => "example",
  "MaxResults" => "example"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "MTurkRequesterServiceV20170117.ListAssignmentsForHIT"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListAssignmentsForHIT?" . http_build_query([
    "NextToken" => "example",
    "MaxResults" => "example"
]);
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "X-Amz-Target: MTurkRequesterServiceV20170117.ListAssignmentsForHIT"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
POST ListBonusPayments

The ListBonusPayments operation retrieves the amounts of bonuses you have paid to Workers for a given HIT or assignment.

https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListBonusPayments?NextToken=example&MaxResults=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
X-Amz-Target MTurkRequesterServiceV20170117.ListBonusPayments
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListBonusPayments?NextToken=example&MaxResults=example" \
  -H "X-Amz-Target: MTurkRequesterServiceV20170117.ListBonusPayments"
import requests
params = {
    "NextToken": "example",
    "MaxResults": "example"
}
headers = {
    "X-Amz-Target": "MTurkRequesterServiceV20170117.ListBonusPayments"
}
response = requests.post(
    "https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListBonusPayments",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListBonusPayments');
url.searchParams.set('NextToken', 'example');
url.searchParams.set('MaxResults', 'example');

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'X-Amz-Target': 'MTurkRequesterServiceV20170117.ListBonusPayments'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListBonusPayments")
	q := baseURL.Query()
	q.Set("NextToken", "example")
	q.Set("MaxResults", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("POST", targetURL, nil)
	req.Header.Set("X-Amz-Target", "MTurkRequesterServiceV20170117.ListBonusPayments")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListBonusPayments")
uri.query = URI.encode_www_form({
  "NextToken" => "example",
  "MaxResults" => "example"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "MTurkRequesterServiceV20170117.ListBonusPayments"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListBonusPayments?" . http_build_query([
    "NextToken" => "example",
    "MaxResults" => "example"
]);
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "X-Amz-Target: MTurkRequesterServiceV20170117.ListBonusPayments"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
POST ListHITs

The ListHITs operation returns all of a Requester's HITs. The operation returns HITs of any status, except for HITs that have been deleted of with the DeleteHIT operation or that have been auto-deleted.

https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListHITs?NextToken=example&MaxResults=example

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
X-Amz-Target MTurkRequesterServiceV20170117.ListHITs
curl -X POST "https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListHITs?NextToken=example&MaxResults=example" \
  -H "X-Amz-Target: MTurkRequesterServiceV20170117.ListHITs"
import requests
params = {
    "NextToken": "example",
    "MaxResults": "example"
}
headers = {
    "X-Amz-Target": "MTurkRequesterServiceV20170117.ListHITs"
}
response = requests.post(
    "https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListHITs",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListHITs');
url.searchParams.set('NextToken', 'example');
url.searchParams.set('MaxResults', 'example');

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'X-Amz-Target': 'MTurkRequesterServiceV20170117.ListHITs'
  },
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListHITs")
	q := baseURL.Query()
	q.Set("NextToken", "example")
	q.Set("MaxResults", "example")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("POST", targetURL, nil)
	req.Header.Set("X-Amz-Target", "MTurkRequesterServiceV20170117.ListHITs")

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListHITs")
uri.query = URI.encode_www_form({
  "NextToken" => "example",
  "MaxResults" => "example"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Post.new(uri)
req["X-Amz-Target"] = "MTurkRequesterServiceV20170117.ListHITs"

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/amazonaws.com/mturk-requester/2017-01-17/#X-Amz-Target=MTurkRequesterServiceV20170117.ListHITs?" . http_build_query([
    "NextToken" => "example",
    "MaxResults" => "example"
]);
$opts = ["http" => [
    "method" => "POST",
    "header" => implode("\r\n", [
        "X-Amz-Target: MTurkRequesterServiceV20170117.ListHITs"
    ]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with Amazon Mechanical Turk?

Amazon Mechanical Turk is a Cloud API. Developers commonly use cloud APIs for:

  • provisioning and managing cloud infrastructure
  • automating deployments and container orchestration
  • monitoring uptime and performance metrics
  • managing storage buckets and databases
  • setting up auto-scaling and load balancing

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Amazon Mechanical Turk is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide

Open documentation ↗