
Image Annotation
You give us the images. We’ll draw the bounding boxes.
We Train Your Machine Models
Whether it be autonomous vehicle training data, facial recognition data, or other object detection data let us draw the bounding boxes so you don’t have to.
A cut above the rest
We have fully In-house managed teams with smart routing and quality control layers built into our execution and delivery. Through a combination of Machine Learning, NLP and human-led task execution we ensure high Quality, Security, Reliability and Speed.

Quality

Security

Reliability

Speed
Made by developers, for developers
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": "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.client
conn = 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