Machine Learning Trained By Humans
We’ve made it easy for developers and companies to dramatically expand their workforce and execute microtasks across various domains. Your new workforce will be fully managed employees who operate in our own offices ensuring high quality and security.
Meet Our Solutions

–url https://api.taskware.io/comparisons \
–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”:”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 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

–url https://api.taskware.io/categorizations \
–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”:”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 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 ‘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

–url https://api.taskware.io/phonecalls \
–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”:”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 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

–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”: “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

Managed Workforce
We ensure high quality and high security by operating a scalable in-house staff with quality control layers to ensure your tasks are completed with high accuracy. Choose to keep your data within the confines of our environment and our employees and we’ll securely store, return and remove your data after processing.

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.

Customizable Workflows
Leverage our RESTful API to create task execution that fit’s into your organization and workflows. Our engineers are ready to customize your own endpoints based on your individual situation.
We integrate with the leaders in Machine Learning
giving you the best combination of Machine Intelligence
combined with Human Intelligence.


Try the Taskware API today!
Grab an API Key and easily test out assigning tasks.
