GithubHelp home page GithubHelp logo

dbirman / api-mturk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from josebarrios/api-mturk

0.0 2.0 0.0 105 KB

JS implementation of Amazon Mechanical Turk (mturk) API

Home Page: http://josebarrios.github.io/api-mturk/

License: Other

JavaScript 100.00%

api-mturk's Introduction

NPM version Downloads

alt text

Install

npm install mturk-api

Basic usage

var mturk = require('mturk-api');

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)


  //MTurk limits the velocity of requests. Normally,
  //if you exceed their request rate-limit, you will receive a
  //'503 Service Unavailable' response. As of v2.0, our interface
  //automatically throttles your requests to 3 per second.
  for(var i=0; i < 20; i++){
    //These requests will be queued and executed at a rate of 3 per second
    api.req('SearchHITs', { PageNumber: i }).then(function(res){
      //Do something
    }).catch(console.error);
  }


}).catch(console.error);

###Create HIT Example

//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

Supported API Operations

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 }

License

MIT © Jose Barrios

Banner derived from Cosmin Cuciureanu's BrainUP

api-mturk's People

Contributors

hendrikschneider avatar josebarrios avatar kgao avatar

Watchers

James Cloos avatar Dan Birman avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.