Markup
Endpoint for managing images
{IMAGE_ID}
{IMAGE_ID}
Request parameters
Page number to return
Number of images to return
Responses
Body
Examples
{
"images": [
{
"image_id": "image42",
"image_src": "test_src",
"url": "s3://images.com/42",
"video_id": "adasdasdas",
"frame": 12,
"object_id": 1234,
"mac": "adasr434dcsaca",
"extra_meta": {
"param": 42,
"is_reference": true
},
"created_at": 12345564563,
"deleted_at": 414252356235
}
],
"meta": {
"page_id": 1,
"page_limit": 1,
"total_count": 1
}
}
GET https://markup-tool.ringlabskiev.com/api/v1/images_new HTTP/1.1
HTTP/1.1 200 OK
{
"images": [
{
"image_id": "image42",
"image_src": "test_src",
"url": "s3://images.com/42",
"video_id": "adasdasdas",
"frame": 12,
"object_id": 1234,
"mac": "adasr434dcsaca",
"extra_meta": {
"param": 42,
"is_reference": true
},
"created_at": 12345564563,
"deleted_at": 414252356235
}
],
"meta": {
"page_id": 1,
"page_limit": 1,
"total_count": 1
}
}
{IMAGE_ID}
Get image by image_id
Path variables
Responses
Body
Body
Examples
{
"error": "Image image_id_123 not found in db"
}
GET https://markup-tool.ringlabskiev.com/api/v1/images_new/image123 HTTP/1.1
HTTP/1.1 200 OK
{
"image": {
"image_id": "image123",
"image_src": "test_src",
"url": "s3://images.com/42",
"video_id": "adasdasdas",
"frame": 12,
"object_id": 1234,
"mac": "adasr434dcsaca",
"extra_meta": {
"param": 42,
"is_reference": true
},
"created_at": 12345564563,
"deleted_at": 414252356235
}
}
Request body
Examples
{
"image_id": "image42",
"image_src": "test_src",
"url": "s3://images.com/42",
"video_id": "adasdasdas",
"frame": 12,
"object_id": 1234,
"mac": "adasr434dcsaca",
"extra_meta": {
"param": 42,
"is_reference": true
}
}
Responses
Headers
New resource location
Body
Examples
{
"error": "Image with id=image_id_123 already exist"
}
Request body is not a valid image object
{IMAGE_ID}
Path variables
Responses
Image deleted successfully
Body
DELETE https://markup-tool.ringlabskiev.com/api/v1/images_new/image_123145 HTTP/1.1
HTTP/1.1 204 No Content
Schema for new image
{
"image_id": "image42",
"image_src": "test_src",
"url": "s3://images.com/42",
"video_id": "adasdasdas",
"frame": 12,
"object_id": 1234,
"mac": "adasr434dcsaca",
"extra_meta": {
"param": 42,
"is_reference": true
}
}
Request parameters
Request body
Examples
{
1: {
"confirmed": true
},
2: {
"confirmed": false
},
}
Responses
POST https://markup-tool.ringlabskiev.com/api/v1/re_id/results HTTP/1.1
Content-Type: application/json
{
"<image_id>": {
"confirmed": true
}
}
HTTP/1.1 201 Created
Request parameters
Responses
Body
Examples
{
"images": [
{
"id": 1,
"uri": "",
"dataset_id": 1
}
]
}
Task is Completed
User does not have access to this task according to group assignment
Reference image used for task
Request parameters
Get reference image for specified task
Responses
Request parameters
Responses
Body
Examples
{
"images": [
{
"id": 1,
"uri": "",
"dataset_id": 1
}
],
"reference": {
"id": 1,
"uri": "",
"dataset_id": 1
}
}
Request parameters
Request body
Examples
{
1: {
"confirmed": true
},
2: {
"confirmed": false
},
}
Responses
POST https://markup-tool.ringlabskiev.com/api/v1/re_id/results HTTP/1.1
Content-Type: application/json
{
"<image_id>": {
"confirmed": true
}
}
HTTP/1.1 201 Created
Request parameters
Responses
Body
Examples
{
"images": [
{
"id": 1,
"uri": "s3://path/to/image",
"meta": {},
"dataset_id": 1
}
]
}
Request parameters
Responses
Body
GET https://markup-tool.ringlabskiev.com/api/v1/person-diversity/images?task_id=123&count=1 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"images": [
{
"id": 1,
"uri": "s3://path/to/image"
}
]
}
Request parameters
Request body
Key - markup_result id
(Male|Female)
(Age_1_14|Age_15_24|Age_25_64|Age_65_plus)
(African|European|Asian|Hispanic|Other)
Examples
{
"1": {
"gender": "Male",
"age_range": "Age_1_14",
"ethnicity": "European"
},
"7": {
"gender": "Female",
"age_range": "Age_5_24",
"ethnicity": "Other"
}
}
Responses
Reference image used for task
Request parameters
Get reference image for specified task
Responses
Body
Examples
{
"image": {
"id": 1,
"uri": "s3://path/to/image",
"meta": {},
"dataset_id": 1
}
}
Request parameters
Responses
Body
Examples
{
"images": [
{
"id": 1,
"uri": "s3://path/to/image",
"meta": {},
"dataset_id": 1
}
]
}
Request parameters
Request body
Examples
{
1: {
"confirmed": true
},
2: {
"confirmed": false
},
}
Responses
POST https://markup-tool.ringlabskiev.com/api/v1/re_id/results HTTP/1.1
Content-Type: application/json
{
"<image_id>": {
"confirmed": true
}
}
HTTP/1.1 201 Created
Get user if it authenticated
Responses
If User Authorized
Body
["operator", "admin"]
If User non-authorized
GET http://markup.com/api/v1/session HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"user": {
"email": "test@ring.com",
"roles": [
{
"id": 1,
"name": "admin"
}
],
"picture": "https://lh3.googleusercontent.com/-MLokQf3w8Ug/AAAAAAAAAAI/AAAAAAAAAAA/ACLGyWCtciGra-GafBvxsjTVDl_DrLkO9g/s64-c-mo/photo.jpg",
"id": 1,
"name": "Elon Mask"
}
}
Return Google Authorization URL
Responses
Body
GET http://markup.com/api/v1/login HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"url": "https://accounts.google.com/signin/oauth/oauthchooseaccount?client_id=201661002672-raggr5uiijoat020ue2n7dn5gu781far.apps.googleusercontent.com&as=v2jd2ZGuU5FOic_BnpAklw&destination=https%3A%2F%2Fsirena.qa.ring.com&approval_state=!ChRrZjczWUE4Q1pRUlduSWFCbjJQTBIfRTdqR3IzVlNJT0VUOERFdWhZOThQYzgxa1ZuVUxCWQ%E2%88%99AB8iHBUAAAAAWtWcqchF8yk0e-QcKgVRLzDlFII7q-C5&xsrfsig=AHgIfE9MVTGFTDX11mtbf_RfxnxaHmEG5Q&flowName=GeneralOAuthFlow"
}
DELETE http://markup.com/api/v1/session HTTP/1.1
HTTP/1.1 204 No Content
HTTP/1.1 404 Not Found
{DATASET_ID}
{DATASET_ID}
{DATASET_ID}
Request parameters
Page Increment Identifier
Objects per page default=1000
Responses
Body
Can be null
GET https://markup-tool.ringlabskiev.com/api/v1/datasets?page_id=1&page_limit=2 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"datasets": [
{
"id": 3,
"created_at": 1528300892,
"description": null,
"name": "p0u769PyNiazQloW",
"image_count": 32
},
{
"id": 4,
"created_at": 1528300892,
"description": null,
"name": "nyEsT7kOQZc8Izm8",
"image_count": 32
}
],
"meta": {
"page_id": 1,
"page_limit": 2,
"total_count": 380
}
}
HTTP/1.1 400 Bad Request
{DATASET_ID}
Path variables
Responses
If Dataset finded
Body
A unique identifier for each Datasets. This is automatically generated upon Dataset creation.
The human-readable name set for the Dataset.
Time in Unix format
Number of images in dataset
If Dataset missing
GET http://markup.com/api/v1/datasets/1 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"dataset": {
"id": 1,
"name": "Dataset_1",
"description": "Dataset_Description",
"created_at": 1523871230266,
"image_count": 32
}
}
Request body
filter criteria to include images into newly created dataset
list of video_ids
list of macs
Responses
If Dataset is successfully created
Body
If Dataset with the same name already exist
POST https://markup-tool.ringlabskiev.com/api/v1/datasets HTTP/1.1
Content-Type: application/json
{
"name": "Dataset_Name",
"description": "Dataset_Description",
"image_filter": {
"video_ids": [
"acvfweqwd", "adasdsad"
],
"macs": [
"12345", "5678"
]
}
}
{DATASET_ID}
Path variables
Request body
Responses
Body
PATCH http://markup.com/api/v1/datasets/1 HTTP/1.1
Content-Type: application/json
{
"name": "New_Dataset_Name",
"description": "New_Dataset_Description"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"dataset": {
"id": 1,
"name": "New_Dataset_Name",
"description": "New_Dataset_Description",
"created_at": 1523871230266,
"updated_at": 1523871230266
}
}
{DATASET_ID}
Path variables
Responses
DELETE http://markup.com/api/v1/datasets/1 HTTP/1.1
HTTP/1.1 204 No Content
DELETE http://markup.com/api/v1/datasets/1 HTTP/1.1
HTTP/1.1 204 No Content
Request body
[1,2]
Responses
Body
PATCH https://markup-tool.ringlabskiev.com/api/v1/datasets HTTP/1.1
Content-Type: application/json
{
"op": "delete",
"ids": [
1,2
]
}
HTTP/1.1 200 OK
Content-Type: application/json
[{
"op": "delete",
"id": 1,
"result": "success"
},{
"op": "delete",
"id": 2,
"result": "fail"
}]
{TASK_ID}
{USER_ID}
/tasks{task_id}
{TASK_ID}
/export{TASK_ID}
/progress{TASK_ID}
Request parameters
Responses
Body
GET https://markup-tool.ringlabskiev.com/api/v1/tasks HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"tasks": [
{
"id": 121,
"name": "Task_1",
"description": "Task_Description",
"layer_id": 12,
"dataset_id": 745634,
"pipeline_id": 1,
"group_id": 14,
"status": "created",
"created_at": 153452348,
"ref_image_id": 1
}
],
"meta": {
"total_count": 54,
"page_id": 1,
"page_limit": 10
}
}
Request body
List of ids of FaceRecognition tasks to create FRValidation task from. If pipeline_id = 4 then task_ids MUST be present in request body. If pipeline_id != 4 then task_ids MUST NOT be present in request body
[
1, 2, 3
]
Responses
Body
Basic example
POST https://markup-tool.ringlabskiev.com/api/v1/tasks HTTP/1.1
Content-Type: application/json
{
"name": "Task_1",
"description": "Task_Description",
"layer_id": 100,
"dataset_id": 745634,
"pipeline_id": 1,
"group_id": 14
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 121,
"name": "Task_1",
"description": "Task_Description",
"layer_id": 12,
"dataset_id": 745634,
"pipeline_id": 1,
"group_id": 14,
"status": "created",
"created_at": 153452348,
"ref_image_id": 1
}
FRValidation task example
POST https://markup-tool.ringlabskiev.com/api/v1/tasks HTTP/1.1
Content-Type: application/json
{
"name": "Task_1",
"description": "Task_Description",
"layer_id": 100,
"dataset_id": 745634,
"pipeline_id": 4,
"group_id": 14,
"task_ids": [
1
]
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 121,
"name": "Task_1",
"description": "Task_Description",
"layer_id": 12,
"dataset_id": 745634,
"pipeline_id": 4,
"group_id": 14,
"status": "created",
"created_at": 153452348,
"ref_image_id": 1
}
{TASK_ID}
Path variables
Responses
Body
GET https://markup-tool.ringlabskiev.com/api/v1/tasks/{TASK_ID} HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"task": {
"id": 121,
"name": "Task_1",
"description": "Task_Description",
"layer_id": 12,
"dataset_id": 745634,
"pipeline_id": 1,
"group_id": 14,
"status": "created",
"created_at": 153452348,
"ref_image_id": 1
}
}
{USER_ID}
/tasksAuthentication
Return all user tasks
Path variables
Request parameters
Request only tasks with specified status
Responses
Body
Total objects count
Current page id
Items per page limit
GET https://markup-tool.ringlabskiev.com/api/v1/users/42/tasks HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"tasks": [
{
"id": 121,
"name": "Task_1",
"description": "Task_Description",
"layer_id": 12,
"dataset_id": 745634,
"pipeline_id": 1,
"group_id": 14,
"status": "created",
"created_at": 153452348,
"ref_image_id": 1
}
],
"meta": {
"total_count": 54,
"page_id": 1,
"page_limit": 10
}
}
GET https://markup-tool.ringlabskiev.com/api/v1/users/42/tasks HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"tasks": [
{
"id": 121,
"name": "Task_1",
"description": "Task_Description",
"layer_id": 12,
"dataset_id": 745634,
"pipeline_id": 1,
"group_id": 14,
"status": "created",
"created_at": 153452348,
"ref_image_id": 1
}
],
"meta": {
"total_count": 54,
"page_id": 1,
"page_limit": 10
}
}
Responses
Body
The current status of the Task. This can be “active”.
GET https://markup-tool.ringlabskiev.com/api/v1/tasks/active HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"task": {
"id": 1,
"name": "Task_1",
"description": "Task_Description",
"layer_id": 1,
"dataset_id": 1,
"pipeline_id": 1,
"group_id": 1,
"status": "active",
"ref_image_id": 1
}
}
Return all tasks for current user
Request parameters
Request only tasks with specified status
Responses
Body
Total objects count
Current page id
Items per page limit
GET https://markup-tool.ringlabskiev.com/api/v1/me/tasks HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"tasks": [
{
"id": 121,
"name": "Task_1",
"description": "Task_Description",
"layer_id": 12,
"dataset_id": 745634,
"pipeline_id": 1,
"group_id": 14,
"status": "created",
"created_at": 153452348,
"ref_image_id": 1
}
],
"meta": {
"total_count": 54,
"page_id": 1,
"page_limit": 10
}
}
GET https://markup-tool.ringlabskiev.com/api/v1/me/tasks HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"tasks": [
{
"id": 121,
"name": "Task_1",
"description": "Task_Description",
"layer_id": 12,
"dataset_id": 745634,
"pipeline_id": 1,
"group_id": 14,
"status": "created",
"created_at": 153452348,
"ref_image_id": 1
}
],
"meta": {
"total_count": 54,
"page_id": 1,
"page_limit": 10
}
}
{task_id}
Path variables
Request body
Responses
Body
Task does not exist OR group does not exist.
PATCH https://markup-tool.ringlabskiev.com/api/v1/tasks/2 HTTP/1.1
Content-Type: application/json
{
"name": "ololo",
"description": "new desc",
"status": "active",
"group_id": 4
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"task": {
"id": 121,
"name": "ololo",
"description": "new desc",
"layer_id": 12,
"dataset_id": 745634,
"pipeline_id": 1,
"group_id": 4,
"status": "active",
"created_at": 153452348,
"ref_image_id": 1
}
}
{TASK_ID}
/exportPath variables
Responses
Body
A comma separated value file with two columns a path to an image, does the image contains reference person
Task should be in Completed state
Task not found in db
{TASK_ID}
/progressPath variables
Responses
Body
progress in percents
If task by id is missing
Body
GET https://markup-tool.ringlabskiev.com/api/v1/tasks/1/progress HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"progress": 60
}
HTTP/1.1 404 Not Found
Content-Type: application/json
{
"error": "Task missing"
}
id of reference image
Route for bulk operations on tasks. Supports bulk deletion as well as bulk changing task status and task group.
Request body
One of ‘delete’, ‘replace’
List of task ids to delete
[1,2,3,4]
one of created, active, postponed, completed
Responses
Body
PATCH https://markup-tool.ringlabskiev.com/api/v1/tasks HTTP/1.1
Content-Type: application/json
{
"op": "replace",
"ids": [
1, 2, 3
],
"status": "active",
"group_id": 2
}
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": 1,
"op": "replace",
"result": "success"
},
{
"id": 2,
"op": "replace",
"result": "fail"
},
{
"id": 3,
"op": "replace",
"result": "fail"
}
]
{dataset_id}
/import{dataset_id}
/importPath variables
Request body
Responses
POST http://markup.com/api/v1/dataset/1/import HTTP/1.1
Content-Type: application/json
{
"uri": "s3://{s3_bucket}"
}
HTTP/1.1 201 Created
{USER_ID}
{user_id}
/roles{user_id}
/roles{user_id}
/roles{user_id}
/groups{user_id}
/groups{user_id}
/groups{group_id}
{group_id}
/users{USER_ID}
Request parameters
Responses
Body
Examples
{
"users": [
{
"id": 14,
"name": "john_doe",
"email": "john.doe@example.com",
"picture": "https://images.com/john_doe.jpg"
}
],
"meta": {
"page_id": 0,
"page_limit": 1,
"total_count": 1
}
}
GET https://markup-tool.ringlabskiev.com/api/v1/users?page_id=0&page_limit=1000 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"users": [
{
"id": 14,
"name": "john_doe",
"email": "john.doe@example.com",
"picture": "https://images.com/john_doe.jpg"
}
],
"meta": {
"page_id": 1,
"page_limit": 1000,
"total_count": 32
}
}
Request parameters
Responses
Body
Body
{USER_ID}
Path variables
Responses
Body
{user_id}
/rolesPath variables
Request body
Responses
In case role is not found in db
In case user already has this role
PATCH https://markup-tool.ringlabskiev.com/api/v1/users/2/roles HTTP/1.1
Content-Type: application/json
[1]
{user_id}
/rolesPath variables
Request body
Responses
Success
Role not found in db
DELETE https://markup-tool.ringlabskiev.com/api/v1/users/1/roles HTTP/1.1
Content-Type: application/json
[1,2]
{user_id}
/groupsPath variables
Request parameters
Responses
Body
Examples
{
"roles": [
{
"id": 1,
"name": "name_1"
}
],
"meta": {
"page_id": 0,
"page_limit": 1000,
"total_count": 1
}
}
Request parameters
Responses
Body
Examples
{
"groups": [
{
"id": 1,
"name": "group_1"
}
],
"meta": {
"page_id": 0,
"page_limit": 1,
"total_count": 1
}
}
{group_id}
Path variables
Responses
Body
Request body
Responses
Body
POST https://markup-tool.ringlabskiev.com/api/v1/groups HTTP/1.1
Content-Type: application/json
{
"name": "group_name"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"id": 1,
"name": "group_name"
}
POST https://markup-tool.ringlabskiev.com/api/v1/groups HTTP/1.1
Content-Type: application/json
{
"name": "group_name duplicate"
}
HTTP/1.1 409 Conflict
{USER_ID}
Path variables
Responses
DELETE https://markup-tool.ringlabskiev.com/api/v1/users/1 HTTP/1.1
HTTP/1.1 204 No Content
Endpoint to manage Markup Layers
{LAYER_ID}
{LAYER_ID}
Get all markup layers
Responses
Body
GET https://markup-tool.ringlabskiev.com/api/v1/api/v1/layers HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"layers": [
{
"id": 1,
"name": "person"
},
{
"id": 2,
"name": "animal"
}
]
}
{LAYER_ID}
Get markup layer by id
Path variables
Responses
Body
GET https://markup-tool.ringlabskiev.com/api/v1/layers/1 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"layer": {
"id": 1,
"name": "person"
}
}
Create markup layer
Request body
Responses
Body
POST https://markup-tool.ringlabskiev.com/api/v1/layers HTTP/1.1
Content-Type: application/json
{
"name": "vehicle"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"layer": {
"id": 1,
"name": "vehicle"
}
}
{LAYER_ID}
Delete markup layer
Path variables
Responses
DELETE https://markup-tool.ringlabskiev.com/api/v1/layer/1 HTTP/1.1
HTTP/1.1 204 No Content
{NOTIFICATION_ID}
Responses
Body
GET https://markup-tool.ringlabskiev.com/api/v1/me/notifications HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"notifications": [
{
"notification_id": "345345",
"message": "to_much_errors"
}
]
}
{NOTIFICATION_ID}
Path variables
Responses
DELETE https://markup-tool.ringlabskiev.com/api/v1/me/notifications/2333 HTTP/1.1
HTTP/1.1 204 No Content
{ROLE_ID}
{ROLE_ID}
{ROLE_ID}
/permissions{ROLE_ID}
/permissions{ROLE_ID}
/permissionsGet all markup roles
Responses
Body
GET https://markup-tool.ringlabskiev.com/api/v1/roles HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"roles": [
{
"id": 1,
"name": "Operator",
"description": "Operator"
},
{
"id": 2,
"name": "Admin",
"description": "Admin"
}
]
}
{ROLE_ID}
Path variables
role id
Responses
Body
GET https://markup-tool.ringlabskiev.com/api/v1/role/1 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"role": {
"id": 1,
"name": "Admin",
"description": "Admin"
}
}
Request body
Responses
Body
POST https://markup-tool.ringlabskiev.com/api/v1/roles HTTP/1.1
Content-Type: application/json
{
"name": "Dataset Manager",
"description": "Role for dataset management"
}
HTTP/1.1 201 Created
Content-Type: application/json
{
"role": {
"id": 3,
"name": "Dataset Manager",
"description": "Role for dataset management"
}
}
{ROLE_ID}
Path variables
role id
Responses
DELETE https://markup-tool.ringlabskiev.com/api/v1/roles/3 HTTP/1.1
HTTP/1.1 204 No Content
{ROLE_ID}
/permissionsPath variables
role id
Responses
Body
["BasicUserAccess","ImageRead","UserRead"]
GET https://markup-tool.ringlabskiev.com/api/v1/roles/5/permissions HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"permissions": [
"BasicUserAccess"
]
}
{ROLE_ID}
/permissionsPath variables
Request body
["ImageEdit","UserEdit","LayerRead"]
Responses
Body
PATCH https://markup-tool.ringlabskiev.com/api/v1/roles/{ROLE_ID}/permissions HTTP/1.1
Content-Type: application/json
{
"permissions": [
"ImageEdit",
"RoleEdit"
]
}
HTTP/1.1 204 No Content
Content-Type: application/json
{}
{ROLE_ID}
/permissionsPath variables
role id
Request body
["ImageEdit","UserEdit"]
Responses
DELETE https://markup-tool.ringlabskiev.com/api/v1/roles/3/permissions HTTP/1.1
Content-Type: application/json
{
"permissions": [
"ImageEdit"
]
}
HTTP/1.1 204 No Content
Request parameters
start date ISO String
end date ISO string
Task uniq indentifier
Responses
Body
Spent time in seconds
Start date is later then end date
GET https://markup-tool.ringlabskiev.com/api/v1/statistics?start_date=2018-10-03T12:03:52.631Z&end_date=2018-10-03T12:03:52.631Z&task_id=1 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json
{
"users": [
{
"id": 1,
"email": "ievgeniia.taranenko@ring.com",
"name": "User Name",
"statistics": {
"annotation_time": 1,
"marked_pictures": 200,
"speed": 1200,
"mistakes": 35
}
}
],
"meta": {
"overall_spent": 200,
"overall_marked": 5000,
"overall_mistakes": 120,
"avarage_speed": 800
}
}