API Reference

Organisation

get
Get data row

https://app.picsellia.com/api/V1/dataset/:dataset_id/:row_id
Retrieve all the informations about an asset from one of your dataset
Request
Response
Request
Path Parameters
dataset_id
required
string
The Id of the dataset you want to retrieve data from
Headers
API Token
required
string
Body Parameters
raw_id
optional
string
id of the data
filename
optional
string
filename of the data
Response
200: OK
{
'id': '8e6487ae-6f23-4d62-8bdd-8c808894fbe1',
'external_url': 'my_awesome_picture.jpg',
'object_name': 'b5620ac0-cee8-4fd8-b81a-308657558848%5CPHOTO%20843.jpg'
'type': 'image',
'format': 'jpg',
'size': 3.4,
'import_date': '05-28-2020',
}

Projects

post
Create project

https://app.picsellia.com/api/v1/create_project
Allows you to setup a whole project at once
Request
Response
Request
Headers
API Token
optional
string
Your personnal API token available in your profile settings/API token
Body Parameters
type
optional
string
'classification' or 'detection' or 'segmentation' depending on the task
team
optional
object
Dictionnary with the emails of accounts you want to add on your project and the desired roles. If some of the emails doesn't exists, people will receive an invitation to join the platform and the project. { '1': { 'email': 'joe.ford@xyz.com', 'role': 'labeler' or 'reviewer' or 'manager' }, '2': { ... }, ... }
description
optional
string
The description of your project
private
required
boolean
Set it to True if you want your project to be private
labels
required
object
{ '1': { 'label_name': 'label', 'tool': 'rectangle' or 'polygon' or 'line' or 'point' }, '2': { ... }, ... }
dataset_name
required
string
Name of the dataset you want to attach to your project (must be already created)
project_name
required
string
Must be different from your other project's names
Response
200: OK

get
Get project list

https://app.picsellia.com/api/v1/project_list
Retrieve the list of your project names and ids
Request
Response
Request
Headers
API Token
optional
string
Your personnal API Token
Response
200: OK
{
'1': {
'project_name': 'my_first_project',
'id': 'e403f741-3672-4a7a-a39d-34e8be241dd2'
},
'2': {
...
}
}

get
Get project infos

https://app.picsellia.com/api/v1/project_infos/:project_id
Retrieve all the informations about one of your project
Request
Response
Request
Path Parameters
project_id
required
string
The id of the project you want to retrieve informations from
Headers
API Token
optional
string
Your personnal API Token
Response
200: OK
{
'id': 'e403f741-3672-4a7a-a39d-34e8be241dd2',
'project_name': 'my_first_project',
'type': segmentation,
'dataset': {
'dataset_id': 'a0c2b65f-6e25-445d-a423-22b7ff69f664',
'dataset_name': 'awesome_planes'
},
'labels': {
'1': {
'label_name': 'plane',
'tool': 'polygon'
},
'2': {
'label_name': 'bird',
'tool': 'polygon'
}
},
'collaborators': {
'1': {
'email': 'john.doe@picsellia.com',
'role': 'admin'
},
},
'models': {
'1': {
'model_id': '3c36ba70-faa7-41bf-b17e-d2727d30edc0',
'model_name': 'MaskR-CNN_plane_detection'
},
}
'metrics': {
'nb_annotations': 13200,
}
}

put
Update project infos

https://app.picsellia.com/api/v1/project_infos/:project_id
Update the informations (project name, description) of one of your projects
Request
Response
Request
Path Parameters
project_id
required
string
The ID of the project you want to update
Headers
API Token
required
string
Your personnal API Token
Body Parameters
description
required
string
The description of your project
project_name
required
string
The project_name you want for your project
Response
200: OK

get
Get project collaborators

https://app.picsellia.com/api/v1/project_collaborators/:project_id
Retrieve the list of collaborators for a given project
Request
Response
Request
Headers
API Token
required
string
Response
200: OK
{
'1': {
'email': 'john.doe@picsellia.com',
'username': 'the_john',
'role': 'manager',
'date_joigned': '12-06-2020'
},
'2': {
'email': 'gina@picsellia.com',
'username': 'gina',
'role': 'reviewer',
'date_joigned': '14-06-2020'
},
}

put
Update project collaborators

https://app.picsellia.com/api/v1/project_collaborators/:project_id
Update the list of collaborators on a given project
Request
Response
Request
Path Parameters
project_id
required
string
The Id of your project
Headers
API Token
required
string
Body Parameters
collaborators
required
object
An object containing the updated list of collaborators for this project. { '1': { 'email': 'john.doe@picsellia.com', 'role': 'admin' }, '2': { 'email': 'gina@picsellia.com', 'role': 'reviewer' }, '3': { 'email': 'emma@picsellia.com', 'role': 'manager' }, }
Response
200: OK

put
Update project labels

https://app.picsellia.com/api/v1/project_labels/:project_id
Update the label list of a given project
Request
Response
Request
Path Parameters
project_id
required
string
The Id of your project
Headers
API Token
required
string
Body Parameters
labels
required
object
An object containing the updated list of your project's labels. { '1': { 'label_name': 'plane', 'type': 'polygon' }, '1': { 'label_name': 'bird', 'type': 'polygon' }, '3': { 'label_name': 'wind-turbine', 'type': 'polygon' }, }
Response
200: OK

put
Set project automations

https://app.picsellia.com/api/v1/project_auto/:project_id
Attach the labels of your project to the labelmap of a chosen pre-trained network to enable the 'pre-annotation' in our annotation interface (The default network is Mask R-CNN trained on COCO).
Request
Response
Request
Path Parameters
project_id
required
string
The Id of your project
Headers
API Token
required
string
Body Parameters
model_id
required
string
The Id of the pre-trained model you want to associate your labels to.
labels
required
object
An object containing the list of your project's labels and the associated pre-annotation label. { '1': { 'label_name': 'plane', 'link_with': 'plane' }, '2': { 'label_name': 'bird', 'link_with': 'bird' } }
Response
200: OK

The model that you want to associate to your labels must be already attached to your project !

See Attach a model to my project

put
Set project Questions & Answers

https://app.picsellia.com/api/v1/project_qa/:project_id
Allows you to setup the Questions & Answers feature for your project. There is 4 different type of answers available : - Text answer : The user will answer the question via a text input - Value selection answer : The user will answer the question by choosing a value in a selection menu - Multiple Choice answer : The user will answer the question by checking some checkboxes - Range answer : The user will answer the question by moving a cursor in the desired range You can setup an image-level Q&A, which means that the questions are asked relatively to the image, and you can also set shape-level Q&A where every question will be asked for each drawn shapes.
Request
Response
Request
Path Parameters
project_id
required
string
The Id of your project
Headers
API Token
required
string
Body Parameters
shape_qa
optional
object
Same as image_qa but will be asked for every shapes
image_qa
optional
object
The image level Q&A { '1': { 'question': 'What is the person doing ?', 'type': 'text' }, '2': { 'question': 'How many people are in the image ?', 'type': 'range', 'min': 0, 'max': 50 } '3': { 'question': 'Level of brightness ?', 'type': 'choice', 'values': [0,1,2,3,4] } '4': { 'question': 'What emotions is the most probable?', 'type': 'mc', 'values': ['sadness','anger','happiness','surprise','joy'] } }
Response
200: OK

get
Get project stats

https://app.picsellia.com/api/v1/project_stats/:project_id
Retrieve the current state and statistics of a given project
Request
Response
Request
Path Parameters
project_id
required
string
The Id of your project
Headers
API Token
required
string
Response
200: OK
{
"labels": ["motor", "bus", "awning-tricycle", "tricycle", "truck", "van", "car", "bicycle", "people", "pedestrian", "others"],
"label_variance": 43.3,
"predicted_time": 0,
"time_per_image": [3, 17, 11, 14, 21, 3, 24, 3, 1, 15, 6, 22, 7, 16, 3, 7, 5, 23],
"assets_per_image": [127.0, 77.0, 48.0, 115.0, 113.0, 140.0, 115.0, 136.0, 164.0, 31.0],
"images_remaining": 0,
"total_time_spent": "",
"labels_per_classe": [1637.0, 20.0, 204.0, 266.0, 111.0, 286.0, 2144.0, 214.0, 1830.0, 2329.0, 6.0],
"nb_images_annotated": 150,
"average_time_by_image": 239.6,
"mean_assets_per_images": 60.31333333333333,
"percentage_advancement": 100,
"total_labels_submitted": 9047
}

post
Attach model to project

https://app.picsellia.com/api/v1/attach_model/project_id/model_id
Attach a CNN model to your project to perform transfert learning of
Request
Response
Request
Path Parameters
model_id
required
string
id of your model
project_id
required
string
id of your project
Response
200: OK
"Model attached"
202: Accepted
"Model already attached"

delete
Delete project

https://app.picsellia.com/api/v1/delete_project/project_id
Delete a project
Request
Response
Request
Path Parameters
project_id
required
string
id of the project
Response
200: OK
"Project deleted"
401: Unauthorized
"You don't have the permission to delete this project"

put
Detach model from project

https://app.picsellia.com/api/v1/delete_project/project_id/model_id
Detach a model from a project
Request
Response
Request
Path Parameters
model_id
required
string
project_id
required
string
id of the project
Response
200: OK
"Model detached"

get
Check connection

https://app.picsellia.com/sdk/check_connection
This endpoint allows you to check connection with our Backend and assert your Token is valid.
Request
Response
Request
Response
201: Created
Connection successfully instantiated
{"project_id": (uuid) id of the project}
400: Bad Request
Could not find matching project for this token
{"message": "Invalid Token"}

get

Request
Response
Request
Path Parameters
optional
string
Response
200: OK

Models

get
Get model list

https://app.picsellia.com/api/v1/models_list
Retrieve the list of all the models attached to a project or created where you are manager level
Request
Response
Request
Body Parameters
optional
string
Name of your model or desired name for model creation
Response
200: OK
{
'0': {
'model_id' : id
'model_name': 'Awesome model',
'model_type': 'classification', 'segmentation', 'detection',
'tags' : ["...", "...", "coco"]
'used_in': {
'0': {
'project_id': id,
'project_name': 'Awesome model',
'project_type': 'classification', 'segmentation', 'detection',
},
'1': {
...
}
},
'predictable' : True or False,
'trainable' : True or False,
},
'1': {
...
}
}
202: Accepted
"No AI models created by you of your collaborators"

delete
Delete a Model

https://app.picsellia.com/api/v1/delete_model/model_id
Request
Response
Request
Path Parameters
model_id
optional
string
id of the model
Response
200: OK
"Model deleted"
401: Unauthorized
"You are not allowed to delete this network"

get
Get model infos

https://app.picsellia.com/api/v1/model_infos/model_id
Request
Response
Request
Path Parameters
model_id
required
string
id of the model
Response
200: OK
{'model_id' : id,
'model_name': name,
'model_type': type,
'tags': [ "..", "...", ],
'description': '...',
'private' : True or False,
'trainable': True of False,
'predicatble': True of False,
'paper_link' :'',
'github_link': '',
'performances': {
...
},
'labels' : {
...
}
'used_in': {
'0' : {
'project_id' : id,
'project_name': name,
},
'1' : {
...
},
},
}'

put
Update model infos

https://app.picsellia.com/api/v1/model_infos/model_id
Request
Response
Request
Path Parameters
model_id
optional
string
id of the model
Body Parameters
optional
string
github_link
optional
string
git repo of your model
paper_link
optional
string
scientific paper link of the model
private
optional
boolean
set True for private model, false for public
tags
optional
array
array of tags in string format
description
optional
string
description of the model
model_name
optional
string
new_name of the model
Response
200: OK

delete
Delete experiment

https://app.picsellia.com/api/v1/delete_experiments/project_id/model_id/training_id
Method to delete a version of an experiment
Request
Response
Request
Path Parameters
project_id
optional
string
id of the project
training_id
optional
integer
id of the experiments
model_id
optional
string
id of the model
Response
200: OK

Annotations

get
A range of annotation

https://app.picsellia.com/api/v1/annotations/project_id
This allow you to retrieve annotations for a range of images.
Request
Response
Request
Path Parameters
project_id
optional
string
id of the project
Body Parameters
range
optional
array
desired range ( [0, 15])
Response
200: OK
{
'0': {
"internal_picture_id": (uuid) id of the related image,
"nb_labels": (int) nb of objects in the pic,
"time_spent": (float) time spend to annotate the pic in sec,
"QandA" : {
}
"annotations": (list(dic))
[
{
"type": (str) type of label -> rectangle/polygon
"label": (str) label given to shape,
"polygon": {"geometry": [{"x": (int) x, "y": (int) y}, ...,]
# each dict in geometry is a point of the polygon
# if no polygon have been done, list is empty
"rectangle": {
"height": (int) h,
"width": (int) w,
"top": (int) x,
"left": (int) y,
}
},
...,
]
},
'1' : {
...
},
}
400: Bad Request
{"message": "Invalid Token"}

post
annotations

https://app.picsellia.com/sdk/upload_annotations
Request
Response
Request
Body Parameters
format
optional
string
format type ("picsellia" of "other")
Response
201: Created
{"message": "Annotation uploaded"}
400: Bad Request
{"message": "Annotations already exists"}

post
Training logs

https://app.picsellia.com/sdk/post_logs
The endpoints allow you to post the repartition of your train test ensemble to visualize it on the Platform.
Request
Response
Request
Body Parameters
training_id
optional
integer
version of your experiments
network_id
optional
string
id of your network
logs
optional
object
(dict) logs from tfevents converted to dict
Response
201: Created
{"message" : "Metrics saved"}
400: Bad Request
{"message" : "Token doesn't exists"}

post
Preview results

https://app.picsellia.com/sdk/post_preview
This endpoint allow you to post visual results of your experiments
Request
Response
Request
Body Parameters
training_id
optional
integer
version of your experiments
network_id
optional
string
id of your Model
urls
optional
array
(str) url to your example results
Response
200: OK

Dataset

post
Create Dataset

https://app.picsellia.com/api/v1/create_dataset
API endpoint to create a Dataset
Request
Response
Request
Body Parameters
private
optional
boolean
True for private, False for Public
description
optional
string
Description of the Dataset
dataset_name
required
string
Desired name of the dataset
Response
200: OK
{"dataset_id": id}p

get
Get dataset list

https://app.picsellia.com/api/v1/dataset_list
Get the list of all the dataset of the project you are working on
Request
Response
Request
Headers
token
optional
string
Auth token
Response
200: OK
{
'0': {
'dataset_id': id,
'dataset_name': 'my awesome dataset',
'dataset_size': 1000,
'created_by': 'Username',
'description': 'bla bla bla',
'used_in': {
'0': {
'project_id': id,
'project_name': 'awesome project 1',
'project_type': 'classification', '
}
},
},
'1': {
...
}
}

get
Dataset infos

https://app.picsellia.com/api/v1/dataset_info/dataset_id
Retrieve the information related to a dataset
Request
Response
Request
Path Parameters
dataset_id
optional
string
id of the dataset
Response
200: OK
{ "dataset_id": id,
"dataset_name": "awesome dataset",
"dataset_size": 1000,
"description": "bla bla bla",
"used_in": {
"0": {
"project_id": id,
"project_name": "awesome project",
},
"1" : {
...
},
},
}

put
Update dataset infos

https://app.picsellia.com/api/v1/dataset_info/dataset_id
Update dataset infos
Request
Response
Request
Path Parameters
dataset_id
optional
string
id of the dataset
Body Parameters
description
optional
string
new description
dataset_name
optional
string
new name
Response
200: OK
"Info updated"

delete
Delete Dataset

https://app.picsellia.com/api/v1/dataset/dataset_id
Request
Response
Request
Path Parameters
dataset_id
optional
string
id of the dataset to delete
Response
200: OK

get
Retrieve info of a range of raw data

https://app.picsellia.com/api/v1/raw_data/dataset_id
Request
Response
Request
Path Parameters
dataset_id
optional
string
id of the dataset
Body Parameters
range
optional
array
range of index to retrieve ([0:50]) for example
Response
200: OK
{
"0" : {
"id": id of the raw data,
"external_url": url,
"shape": [x,y],
},
"1" : {
...
},
...
}

delete
Raw data

https://app.picsellia.com/api/v1/raw_data/dataset_id
you can delete a raw data either by providing its filename of the id of the datat
Request
Response
Request
Path Parameters
dataset_id
optional
string
id of the data
Body Parameters
filename
optional
string
name of the picture to delete
raw_id
optional
string
id of the raw data
Response
200: OK