Skip to main content

A client for the MTurk Crowd REST API

Project description


To use this library, you’ll need first follow our account set-up instructions to set up your Mechanical Turk and AWS accounts to call the API.

Instantiating the client requires using a Session object from boto3 to authenticate. The boto3 docs describe how to manage your credentials in more detail.

Quick Start

First, install the library:

$ pip install mturk-crowd-beta-client

Then, from a Python interpreter or script, create your first task:

from mturk_crowd_beta_client import MTurkCrowdClient
from boto3.session import Session
import uuid

# This examples assume you have a local AWS profile called
# 'mturk-crowd-caller', but you can authenticate however you like,
# including by directly passing in your access key and secret key.
session = Session(profile_name='mturk-crowd-caller')

# Create the client
crowd_client = MTurkCrowdClient(session)

# For this example, we'll give our task a random, unique name. For real
# work, you'll probably want to pick a name based on your input source.
task_name = 'my-test-task-' + uuid.uuid4().hex
function_name = 'sentiment-analysis-test'

# Create the task
put_result = crowd_client.put_task(function_name,
                                   {'text': 'Everything is wonderful.'})
print('PUT response: {}'.format(
    {'status_code': put_result.status_code, 'task': put_result.json()}))
# => PUT response: {
#  'status_code': 201,
#  'task': {'input': {'text': 'Everything is wonderful.'},
#           'problemDetails': None,
#           'result': None,
#           'state': 'processing',
#           'taskName': 'my-test-task-73fbfb29f2bc451d9696d11103dcaf0e'}
#   }

# Get the task we just created. Note that for a production (i.e., non-test)
# task, we'd have to poll periodically until the task completed.
get_result = crowd_client.get_task(function_name, task_name)
print('GET response: {}'.format(
    {'status_code': get_result.status_code, 'task': get_result.json()}))
# => GET response: {
#  'status_code': 200,
#  'task': {'input': {'text': 'Everything is wonderful.'},
#           'problemDetails': None,
#           'result': {'sentiment': 'positive'}
#           'state': 'completed',
#           'taskName': 'my-test-task-73fbfb29f2bc451d9696d11103dcaf0e'}
#   }

Further Reading

Check out our usage instructions and API documentation for more details about how to use the API and this client.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for mturk-crowd-beta-client, version 1.0.0
Filename, size File type Python version Upload date Hashes
Filename, size mturk-crowd-beta-client-1.0.0.tar.gz (4.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page