npm install api-mturk
var mturk = require('api-mturk');
var config = {
access : 'ACCESS_KEY_GOES_HERE',
secret : 'SECRET_KEY_GOES_HERE',
sandbox: true
}
mturk.createClient(config).then(function(api){
api.req('GetAccountBalance').then(function(res){
//Do something
}).catch(console.error);
//Example operation, with params
api.req('SearchHITs', { PageSize: 100 }).then(function(res){
//Do something
}).catch(console.error)
}).catch(console.error);
//Import an XML file. You can use one of our examples in the templates folder *
fs.readFile('./templates/HTMLQuestion.xml', 'utf8', function(err, unescapedXML){
if(err){console.error(err);return}
//HIT options
var params = {
Title: "Create HIT Example",
Description: "An example of how to create a HIT",
Question: _.escape(unescapedXML),//IMPORTANT: XML NEEDS TO BE ESCAPED!
AssignmentDurationInSeconds: 180, // Allow 3 minutes to answer
AutoApprovalDelayInSeconds: 86400 * 1, // 1 day auto approve
MaxAssignments: 100, // 100 worker responses
LifetimeInSeconds: 86400 * 3, // Expire in 3 days
Reward: {CurrencyCode:'USD', Amount:0.50}
};
api.req('CreateHIT', params).then(function(res){
//DO SOMETHING
}).catch(console.error);
})
* To see the all available Question templates, go to our templates folder
Operation | Required Parameters | Unit test |
---|---|---|
ApproveAssignment | { AssignmentId:String } | |
ApproveRejectedAssignment | { AssignmentId:String } | |
AssignQualification | { QualificationTypeId:String, WorkerId:String } | ✓ |
BlockWorker | { WorkerId:String, Reason:String } | ✓ |
ChangeHITTypeOfHIT | { HITId:String, HITTypeId:String} | |
CreateHIT | { Title:String, Description:String, AssignmentDurationInSeconds:Number, LifetimeInSeconds:Number } OR {HITTypeId:String, LifetimeInSeconds:Number } | ✓ |
CreateQualificationType | { Name:String, Description:String, QualificationTypeStatus:String } | ✓ |
DisableHIT | { HITId:String } | |
DisposeHIT | { HITId:String } | |
DisposeQualificationType | {QualificationTypeId:String} | ✓ |
ExtendHIT | { HITId:String } | |
ForceExpireHIT | { HITId:String } | ✓ |
GetAccountBalance | None | ✓ |
GetAssignment | { AssignmentId:String } | |
GetAssignmentsForHIT | { HITId:String } | |
GetBlockedWorkers | None | ✓ |
GetBonusPayments | { HITId:String } OR { AssignmentId:String } | |
GetFileUploadURL | { AssignmentId:String, QuestionIdentifier:String } | |
GetHIT | { HITId:String } | ✓ |
GetHITsForQualificationType | { QualificationTypeId:String } | |
GetQualificationsForQualificationType | { QualificationTypeId:String } | |
GetQualificationRequests | None | |
GetQualificationScore | { QualificationTypeId:String, SubjectId:String} | |
GetQualificationType | { QualificationTypeId:String } | |
GetRequesterStatistic | { Statistic:String, TimePeriod:String } | |
GetRequesterWorkerStatistic | {Statistic:String, WorkerId:String, TimePeriod:String } | |
GetReviewableHITs | None | |
GetReviewResultsForHIT | { HITId:String } | |
GrantBonus | { WorkerId:String, AssignmentId:String, BonusAmount:Object, Reason:String } | |
GrantQualification | { QualificationRequestId:String } | |
NotifyWorkers | { Subject:String, MessageText:String, WorkerId:Array} | |
RegisterHITType | { Title:String, Description:String, Reward:Object, AssignmentDurationInSeconds:Number } | |
RejectAssignment | { AssignmentId:String } | |
RejectQualificationRequest | { QualificationRequestId:String } | |
RevokeQualification | { Subject:String, QualificationTypeId:String, Reason:String } | |
SearchHITs | None | ✓ |
SearchQualificationTypes | { MustBeRequestable:Boolean } | |
SendTestEventNotification | { Notification:Object, TestEventType:Object } | ✓ |
SetHITAsReviewing | { HITId:String } | |
SetHITTypeNotification | { HITTypeId:String, Notification:Object, } | |
UnblockWorker | { WorkerId:String, } | ✓ |
UpdateQualificationScore | { QualificationTypeId:String, SubjectId:String, IntegerValue:Number } | |
UpdateQualificationType | { QualificationTypeId:String } |
MIT © Jose Barrios
Banner derived from Cosmin Cuciureanu's BrainUP