01 (1)
Agriculture
07
Vehicles
09
Robotics
05-1
Sports
03
E-Commerce
pic-1

We have the platform and workforce to execute the microtasks your business needs in order to learn and scale.

Types of support

Machine learning

Machine Learning

data modeling

Data Modeling

insurance

Insurance Verification

vehicle

Transportation Verification

content moderation

Content Moderation

Getting Started is Easy

Schedule Onboarding Call

Send us microtasks

Sign off on training process

We begin to execute

We QA

Outputs are sent back to you via API or files

Our solutions

  • comparison Comparison
  • icon2 Categorization
  • icon3 Phone Call Campaigns
  • icon4 Image Annotation
  • Examples
  • Code
img-side-2

curl –request POST \
–url https://api.taskware.io/annotations \
–header ‘accept: application/vnd.api+json; version=1’ \
–header ‘content-type: application/vnd.api+json’ \
–header ‘x-api-key: TASKWARE-TEST-API-TOKEN’ \
–data ‘{“data”:{“type”:”annotations”,”attributes”:{“annotations”:[“cat”,”dog”],”bounding-box”:{“min-height”:10,”min-width”:10,”include-labels”:true},”guidelines”:”Draw bounding boxes around all individual cats and dogs. Choose the appropriate annotation for each box.”,”callback-url”:”http://example.com”,”media”:{“type”:”image”,”source”:”http://example.com/image.png”}}}}’

var data = JSON.stringify({
“data”: {
“type”: “comparisons”,
“attributes”: {
“dictionary”: {
“unique”: [
{
“answer”: “Are these images of the same type of fruit?”,
“options”: {
“values”: [
“Yes”,
“No”
],
“single_choice”: true
}
}
] },
“guidelines”: “Select whether or not both images are the same type of fruit”,
“callback-url”: “http://example.com”,
“flow-id”: “AP300COMPTA”,
“media”: [
{
“type”: “image”,
“source”: “http://example.com/image1.jpg”
},
{
“type”: “image”,
“source”: “http://example.com/image2.jpg”
}
] }
}
});var xhr = new XMLHttpRequest();
xhr.withCredentials = true;xhr.addEventListener(“readystatechange”, function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open(“POST”, “https://api.taskware.io/comparisons”);
xhr.setRequestHeader(“x-api-key”, “TASKWARE-TEST-API-TOKEN”);
xhr.setRequestHeader(“content-type”, “application/vnd.api+json”);
xhr.setRequestHeader(“accept”, “application/vnd.api+json; version=1”);

xhr.send(data);

import http.client
conn = http.client.HTTPSConnection(“api.taskware.io”)
payload = “{\”data\”:{\”type\”:\”comparisons\”,\”attributes\”:{\”dictionary\”:{\”unique\”:[{\”answer\”:\”Are these images of the same type of fruit?\”,\”options\”:{\”values\”:[\”Yes\”,\”No\”],\”single_choice\”:true}}]},\”guidelines\”:\”Select whether or not both images are the same type of fruit\”,\”callback-url\”:\”http://example.com\”,\”flow-id\”:\”AP300COMPTA\”,\”media\”:[{\”type\”:\”image\”,\”source\”:\”http://example.com/image1.jpg\”},{\”type\”:\”image\”,\”source\”:\”http://example.com/image2.jpg\”}]}}}”headers = {
‘x-api-key’: “TASKWARE-TEST-API-TOKEN”,
‘content-type’: “application/vnd.api+json”,
‘accept’: “application/vnd.api+json; version=1”
}conn.request(“POST”, “/comparisons”, payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode(“utf-8”))

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONErequest = Net::HTTP::Post.new(url)
request[“x-api-key”] = ‘TASKWARE-TEST-API-TOKEN’
request[“content-type”] = ‘application/vnd.api+json’
request[“accept”] = ‘application/vnd.api+json; version=1’
request.body = “{\”data\”:{\”type\”:\”comparisons\”,\”attributes\”:{\”dictionary\”:{\”unique\”:[{\”answer\”:\”Are these images of the same type of fruit?\”,\”options\”:{\”values\”:[\”Yes\”,\”No\”],\”single_choice\”:true}}]},\”guidelines\”:\”Select whether or not both images are the same type of fruit\”,\”callback-url\”:\”http://example.com\”,\”flow-id\”:\”AP300COMPTA\”,\”media\”:[{\”type\”:\”image\”,\”source\”:\”http://example.com/image1.jpg\”},{\”type\”:\”image\”,\”source\”:\”http://example.com/image2.jpg\”}]}}}”response = http.request(request)
puts response.read_body

  • Examples
  • Code
solutions-categorization

curl –request POST \
–url https://api.taskware.io/annotations \
–header ‘accept: application/vnd.api+json; version=1’ \
–header ‘content-type: application/vnd.api+json’ \
–header ‘x-api-key: TASKWARE-TEST-API-TOKEN’ \
–data ‘{“data”:{“type”:”annotations”,”attributes”:{“annotations”:[“cat”,”dog”],”bounding-box”:{“min-height”:10,”min-width”:10,”include-labels”:true},”guidelines”:”Draw bounding boxes around all individual cats and dogs. Choose the appropriate annotation for each box.”,”callback-url”:”http://example.com”,”media”:{“type”:”image”,”source”:”http://example.com/image.png”}}}}’

var data = JSON.stringify({
“data”: {
“type”: “categorizations”,
“attributes”: {
“guidelines”: “Which category best describes this image”,
“callback-url”: “http://example.com”,
“media”: {
“type”: “image”,
“source”: “http://example.com/image.jpg”
},
“flow-id”: “AP300CATETA”,
“categories”: {
“values”: [
“Fruits”,
“Vegetables”
],
“single_choice”: true
}
}
}
});var xhr = new XMLHttpRequest();
xhr.withCredentials = true;xhr.addEventListener(“readystatechange”, function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open(“POST”, “https://api.taskware.io/categorizations”);
xhr.setRequestHeader(“x-api-key”, “TASKWARE-TEST-API-TOKEN”);
xhr.setRequestHeader(“content-type”, “application/vnd.api+json”);
xhr.setRequestHeader(“accept”, “application/vnd.api+json; version=1”);

xhr.send(data);

import http.clientconn = http.client.HTTPSConnection(“api.taskware.io”)

payload = “{\”data\”:{\”type\”:\”categorizations\”,\”attributes\”:{\”guidelines\”:\”Which category best describes this image\”,\”callback-url\”:\”http://example.com\”,\”media\”:{\”type\”:\”image\”,\”source\”:\”http://example.com/image.jpg\”},\”flow-id\”:\”AP300CATETA\”,\”categories\”:{\”values\”:[\”Fruits\”,\”Vegetables\”],\”single_choice\”:true}}}}”

headers = {
‘x-api-key’: “TASKWARE-TEST-API-TOKEN”,
‘content-type’: “application/vnd.api+json”,
‘accept’: “application/vnd.api+json; version=1”
}

conn.request(“POST”, “/categorizations”, payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode(“utf-8”))

require ‘uri’
require ‘net/http’
url = URI(“https://api.taskware.io/categorizations”)
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request[“x-api-key”] = ‘TASKWARE-TEST-API-TOKEN’
request[“content-type”] = ‘application/vnd.api+json’
request[“accept”] = ‘application/vnd.api+json; version=1’
request.body = “{\”data\”:{\”type\”:\”categorizations\”,\”attributes\”:{\”guidelines\”:\”Which category best describes this image\”,\”callback-url\”:\”http://example.com\”,\”media\”:{\”type\”:\”image\”,\”source\”:\”http://example.com/image.jpg\”},\”flow-id\”:\”AP300CATETA\”,\”categories\”:{\”values\”:[\”Fruits\”,\”Vegetables\”],\”single_choice\”:true}}}}”response = http.request(request)
puts response.read_body

  • Examples
  • Code
solutions-phone-calls

curl –request POST \<br>
–url https://api.taskware.io/phonecalls \<br>
–header ‘accept: application/vnd.api+json; version=1’ \<br>
–header ‘content-type: application/vnd.api+json’ \<br>
–header ‘x-api-key: TASKWARE-TEST-API-TOKEN’ \<br>
–data ‘{“data”:{“type”:”phonecalls”,”attributes”:{“dictionary”:{“unique”:[{“email”:”Client Email”},{“region”:”Region”,”options”:{“values”:[“HI”,”CA”,”FL”],”single_choice”:false}}],”multiple”:[[{“street”:”Street address”}],[{“city”:”City”},{“zip_code”:”Zip Code”}]]},”flow-id”:”AP300PHONTA”,”guidelines”:”Call this person and follow the script”,”callback-url”:”http://example.com”,”media”:{“type”:”text”,”source”:”Some text”},”entity”:{“phone_number”:””,”contact_name”:”John”,”script”:”Hello my name is &lt;&gt;, and I am calling on behalf of &lt;&gt;, I’m looking to update your account records can you please provide me with your contact information? I need to update your email and physical mailing address”}}}}’

var data = JSON.stringify({
“data”: {
“type”: “phonecalls”,
“attributes”: {
“dictionary”: {
“unique”: [
{
“email”: “Client Email”
},
{
“region”: “Region”,
“options”: {
“values”: [
“HI”,
“CA”,
“FL”
],
“single_choice”: false
}
}
],
“multiple”: [[
{
“street”: “Street address”
}
],[
{
“city”: “City”
},
{
“zip_code”: “Zip Code”
}
] ] },
“flow-id”: “AP300PHONTA”,
“guidelines”: “Call this person and follow the script”,
“callback-url”: “http://example.com”,
“media”: {
“type”: “text”,
“source”: “Some text”
},
“entity”: {
“phone_number”: “”,
“contact_name”: “John”,
“script”: “Hello my name is <>, and I am calling on behalf of <>, I’m looking to update your account records can you please provide me with your contact information? I need to update your email and physical mailing address”
}
}
}
});var xhr = new XMLHttpRequest();
xhr.withCredentials = true;xhr.addEventListener(“readystatechange”, function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open(“POST”, “https://api.taskware.io/phonecalls”);
xhr.setRequestHeader(“x-api-key”, “TASKWARE-TEST-API-TOKEN”);
xhr.setRequestHeader(“content-type”, “application/vnd.api+json”);
xhr.setRequestHeader(“accept”, “application/vnd.api+json; version=1”);

xhr.send(data);

import http.clientconn = http.client.HTTPSConnection(“api.taskware.io”)

payload = “{\”data\”:{\”type\”:\”phonecalls\”,\”attributes\”:{\”dictionary\”:{\”unique\”:[{\”email\”:\”Client Email\”},{\”region\”:\”Region\”,\”options\”:{\”values\”:[\”HI\”,\”CA\”,\”FL\”],\”single_choice\”:false}}],\”multiple\”:[[{\”street\”:\”Street address\”}],[{\”city\”:\”City\”},{\”zip_code\”:\”Zip Code\”}]]},\”flow-id\”:\”AP300PHONTA\”,\”guidelines\”:\”Call this person and follow the script\”,\”callback-url\”:\”http://example.com\”,\”media\”:{\”type\”:\”text\”,\”source\”:\”Some text\”},\”entity\”:{\”phone_number\”:\”\”,\”contact_name\”:\”John\”,\”script\”:\”Hello my name is <>, and I am calling on behalf of <>, I’m looking to update your account records can you please provide me with your contact information? I need to update your email and physical mailing address\”}}}}”

headers = {
‘x-api-key’: “TASKWARE-TEST-API-TOKEN”,
‘content-type’: “application/vnd.api+json”,
‘accept’: “application/vnd.api+json; version=1”
}

conn.request(“POST”, “/phonecalls”, payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode(“utf-8”))

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONErequest = Net::HTTP::Post.new(url)
request[“x-api-key”] = ‘TASKWARE-TEST-API-TOKEN’
request[“content-type”] = ‘application/vnd.api+json’
request[“accept”] = ‘application/vnd.api+json; version=1’
request.body = “{\”data\”:{\”type\”:\”phonecalls\”,\”attributes\”:{\”dictionary\”:{\”unique\”:[{\”email\”:\”Client Email\”},{\”region\”:\”Region\”,\”options\”:{\”values\”:[\”HI\”,\”CA\”,\”FL\”],\”single_choice\”:false}}],\”multiple\”:[[{\”street\”:\”Street address\”}],[{\”city\”:\”City\”},{\”zip_code\”:\”Zip Code\”}]]},\”flow-id\”:\”AP300PHONTA\”,\”guidelines\”:\”Call this person and follow the script\”,\”callback-url\”:\”http://example.com\”,\”media\”:{\”type\”:\”text\”,\”source\”:\”Some text\”},\”entity\”:{\”phone_number\”:\”\”,\”contact_name\”:\”John\”,\”script\”:\”Hello my name is <>, and I am calling on behalf of <>, I’m looking to update your account records can you please provide me with your contact information? I need to update your email and physical mailing address\”}}}}”response = http.request(request)
puts response.read_body

  • Examples
  • Code
solutions-annotation

curl –request POST \<br>
–url https://api.taskware.io/annotations \<br>
–header ‘accept: application/vnd.api+json; version=1’ \<br>
–header ‘content-type: application/vnd.api+json’ \<br>
–header ‘x-api-key: TASKWARE-TEST-API-TOKEN’ \<br>
–data ‘{“data”:{“type”:”annotations”,”attributes”:{“annotations”:[“cat”,”dog”],”bounding-box”:{“min-height”:10,”min-width”:10,”include-labels”:true},”guidelines”:”Draw bounding boxes around all individual cats and dogs. Choose the appropriate annotation for each box.”,”callback-url”:”http://example.com”,”media”:{“type”:”image”,”source”:”http://example.com/image.png”}}}}’

var data = JSON.stringify({
“data”: {
“type”: “annotations”,
“attributes”: {
“annotations”: [
“cat”,
“dog”
],
“bounding-box”: {
“min-height”: 10,
“min-width”: 10,
“include-labels”: true
},
“guidelines”: “Draw bounding boxes around all individual cats and dogs. Choose the appropriate annotation for each box.”,
“callback-url”: “http://example.com”,
“media”: {
“type”: “image”,
“source”: “http://example.com/image.png”
}
}
}
});var xhr = new XMLHttpRequest();
xhr.withCredentials = true;xhr.addEventListener(“readystatechange”, function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open(“POST”, “https://api.taskware.io/annotations”);
xhr.setRequestHeader(“x-api-key”, “TASKWARE-TEST-API-TOKEN”);
xhr.setRequestHeader(“content-type”, “application/vnd.api+json”);
xhr.setRequestHeader(“accept”, “application/vnd.api+json; version=1”);

xhr.send(data);

import http.clientconn = http.client.HTTPSConnection(“api.taskware.io”)

payload = “{\”data\”:{\”type\”:\”annotations\”,\”attributes\”:{\”annotations\”:[\”cat\”,\”dog\”],\”bounding-box\”:{\”min-height\”:10,\”min-width\”:10,\”include-labels\”:true},\”guidelines\”:\”Draw bounding boxes around all individual cats and dogs. Choose the appropriate annotation for each box.\”,\”callback-url\”:\”http://example.com\”,\”media\”:{\”type\”:\”image\”,\”source\”:\”http://example.com/image.png\”}}}}”

headers = {
‘x-api-key’: “TASKWARE-TEST-API-TOKEN”,
‘content-type’: “application/vnd.api+json”,
‘accept’: “application/vnd.api+json; version=1”
}

conn.request(“POST”, “/annotations”, payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode(“utf-8”))

require ‘uri’
require ‘net/http’url = URI(“https://api.taskware.io/annotations”)http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request[“x-api-key”] = ‘TASKWARE-TEST-API-TOKEN’
request[“content-type”] = ‘application/vnd.api+json’
request[“accept”] = ‘application/vnd.api+json; version=1’
request.body = “{\”data\”:{\”type\”:\”annotations\”,\”attributes\”:{\”annotations\”:[\”cat\”,\”dog\”],\”bounding-box\”:{\”min-height\”:10,\”min-width\”:10,\”include-labels\”:true},\”guidelines\”:\”Draw bounding boxes around all individual cats and dogs. Choose the appropriate annotation for each box.\”,\”callback-url\”:\”http://example.com\”,\”media\”:{\”type\”:\”image\”,\”source\”:\”http://example.com/image.png\”}}}}”

response = http.request(request)
puts response.read_body


Benefits of using Taskware

01
Managed Workforce

We ensure high quality and security by operating a scalable in-house staff with quality control layers to ensure your tasks are completed with high accuracy.

02
Savings at scale

We take the complexity out of scaling workloads. Take the burden and cost off of your employees from performing repetitive tasks and let us do the work.

03
Customizable workflows

Leverage our RESTful API to create task execution that fit’s into your organization and workflows with your own endpoints customized based on your individual situation.

Performance Based Pricing. Period.

Taskware API

Immediate SLA

24 Hour SLA

1 Week SLA

Phone Calls Campaigns Marketing Campaigns, Surveys, Outdial Campaigns

$.40/min

$.30/min

$.25/min

Image OCR Transcription Receipts, Documents, Financial Data

$.40/min

$.30/min

$.25/min

Comparison A/B Comparisons, Content Moderation Data Validation

$.40/min

$.30/min

$.25/min

Categorization eCommerce Tagging, Image Search Cataloging

$.40/min

$.30/min

$.25/min

Image Annotation Autonomous Vehicle Training Data, eCommerce Training Data

$.40/min

$.30/min

$.25/min