Skip to main content

Studio API (1.58.0)

Download OpenAPI specification:Download

Introduction and Prerequisites

DeepOpinion is a no-code platform, enabling teams to build human-level AI bots and automate away repetitive cognitive processes for unstructured text and documents.

Built by automation experts for automation experts, DeepOpinion solves the core problems teams face, which is why it is trusted by leaders at global enterprises.

And best of all, DeepOpinion complements and easily integrates with your existing enterprise systems and RPA tools, so building intelligence into your processes has never been easier.

Do you have any questions about our products? Please contact us, we are always happy to help!

Authentication

Studio API Authentication

The Studio API routes are secured and only accessible with a given JWT user token provided from the authentication service of the API. This ensures, that only registered and authorized users can access the API core resources.

JSON Web Tokens (JWT)

Once the user is logged in, each subsequent request will include the JWT, allowing the user to access routes, services, and resources that are permitted with that token. JSON Web Tokens are a good way of securely transmitting information between parties.

HTTP Header

To authenticate a user, a client application must send a JSON Web Token JWT in the authorization header of the HTTP request to Studio backend API. Studio API validates the token on behalf of your API, so you don't have to add any code in your API to process the authentication.

:::caution HTTPS

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

:::

How to get JWS Token

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

:::info

If you are a new user, get your token calling the REGISTER route, or, if you are a registered user, get your token calling the LOGIN route.

If you are a NEW USER, get your token calling the REGISTER route.

curl -L -X POST 'https://api.deepopinion.ai/auth/register' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"password": "badpassword"
}'
If you are a REGISTERED USER, get your token calling the LOGIN route.

curl -L -X POST 'https://api.deepopinion.ai/auth/login' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
--data-raw '{
"email": "john.doe@example.com",
"password": "badpassword"
}'

:::

How to add JWS Token in Http Header for authenticate next routes

:::tip Adding Token in HTTP header

With the Successful response from Login or Register routes, you have the auth_token.

Now, to authenticate via bearer auth (e.g., for a cross-origin request), use

-H "Authorization: Bearer  eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJleHAiOjE2NzU5MDE2MzcsInN1YiI6MjQxNjAyLCJpc3MiOiJkZWVwb3Bpbmlvbi5haSIsImxhbmd1YWdlcyI6WyIqIl0sImZ1bmN0aW9uYWxpdHkiOlsiQW5hbHlzaXMvKiIsIlRyYWluaW5nLyoiLCJNb2RlbHMvKiJdLCJpYXQiOjE2NzQ2OTIwMzd9.b9pAeNbstZzhWa7vWrP9PgMGSUbFsPkfyLjlZIwDlO4ufL0b5QsyRN2lUTqFp55yDs0zI4rXTqn1FsV9GE5uujEUqHAzh5Y9-ibk5WypuSefN_YUDOdceCSegrC1ScgnT9OKdR1a-f0sP4u2rd8PZmUZLPigTTbJdLJX-Ljm3lOgO0p6Goy0WpbqZ_KZJF9UHI9MPKUhkfrn6aKyB1s-z9yIUz6GLTGHCJCtWqTkshy42dG26EMsf3an-MkuzsXA_x2maI7BzRWkDkl8-VyL_aSOTLHacwF62PFeyYtvCy8Cslz6OiX4LcOXKSwwYt9jz9073uqoBhcuyemX-x2fB2sF4Fe7VqFPCsRqIT2TOtyD9cz-e7zpjSOEtUtc1uavOx4mOLdrOa64BfpKPtcUPRUhwXdVF0-LFDVToykf-nf2uq3jsiJemYvAdymuT-pzwNWXPIC0UmlxLJZyneEIVXn90s2ibbeRC-ilz4uN159OGWy66ZL5ZP019q9nCzVGKCCDJ4ezS5g3TJIqf9NJM8ZyHOb5NeAQbta22jHeKd7oz0dfdUepZdC8zAeTtrLyPnCs032EuuqIjs4ZJ5yr3SrRIk12XB2bps1SxcSxfBftrqlyitbWlKbO3u5LDM99WMnBDleS1NQe-58z8nPdCeyZ79WesNf3je8thDxgJ1w"

instead of -u auth_token in your next calls.

:::

:::tip Example Get models user is authorized to see.


curl -L -X GET 'https://api.deepopinion.ai/models' \
-H 'Accept: application/json' \
-H 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJleHAiOjE2NzU5MDE2MzcsInN1YiI6MjQxNjAyLCJpc3MiOiJkZWVwb3Bpbmlvbi5haSIsImxhbmd1YWdlcyI6WyIqIl0sImZ1bmN0aW9uYWxpdHkiOlsiQW5hbHlzaXMvKiIsIlRyYWluaW5nLyoiLCJNb2RlbHMvKiJdLCJpYXQiOjE2NzQ2OTIwMzd9.b9pAeNbstZzhWa7vWrP9PgMGSUbFsPkfyLjlZIwDlO4ufL0b5QsyRN2lUTqFp55yDs0zI4rXTqn1FsV9GE5uujEUqHAzh5Y9-ibk5WypuSefN_YUDOdceCSegrC1ScgnT9OKdR1a-f0sP4u2rd8PZmUZLPigTTbJdLJX-Ljm3lOgO0p6Goy0WpbqZ_KZJF9UHI9MPKUhkfrn6aKyB1s-z9yIUz6GLTGHCJCtWqTkshy42dG26EMsf3an-MkuzsXA_x2maI7BzRWkDkl8-VyL_aSOTLHacwF62PFeyYtvCy8Cslz6OiX4LcOXKSwwYt9jz9073uqoBhcuyemX-x2fB2sF4Fe7VqFPCsRqIT2TOtyD9cz-e7zpjSOEtUtc1uavOx4mOLdrOa64BfpKPtcUPRUhwXdVF0-LFDVToykf-nf2uq3jsiJemYvAdymuT-pzwNWXPIC0UmlxLJZyneEIVXn90s2ibbeRC-ilz4uN159OGWy66ZL5ZP019q9nCzVGKCCDJ4ezS5g3TJIqf9NJM8ZyHOb5NeAQbta22jHeKd7oz0dfdUepZdC8zAeTtrLyPnCs032EuuqIjs4ZJ5yr3SrRIk12XB2bps1SxcSxfBftrqlyitbWlKbO3u5LDM99WMnBDleS1NQe-58z8nPdCeyZ79WesNf3je8thDxgJ1w'

:::

Basic Flows

Get a token

Read the Authentication session to learn how to get a JWT Token and set it in Http Header for start to access the endpoints.

If an endpoint returned a 401, your token is either not present in the request or is expired. If expired, you can call the login endpoint again to get a new one.

Create a project

A project is the place where your custom models will be. Before uploading data to train your model, you need to create a project by calling the Create project

Create a document group

A document group is, as the name suggests, a group of documents. There are two ways of creating a group:

  1. By calling the Create group endpoint with all the documents you want to add to the group
  2. In two steps: first one, upload a file in CSV, TXT, JSON, JSONL or XLSX format using the Upload a File. This response will contain will be something like:
{
    "id": "fec48971-0aca-4aa7-ad38-1d300153d8ae",
    "preview": [
        [
            "another_column",
            "document",
            "review_source"
        ],
        [
            null,
            "the hotel is good",
            "a"
        ],
        [
            "test",
            "the hotel is bad",
            "b"
        ],
        [
            "null",
            "the hotel is ok",
            "a"
        ]
    ]
}

it contains the file "id" and the preview of the file.

Then, call the same Create group but instead of passing a list of `documents`, you need to pass the `file_id` and the chosen `column`. For example, if you want to use the "review_source", you need to use `column` 2 (0-indexed).

Upload labeled data

Uploading data that already contains labels can be done by simply calling the Upload labeled data endpoint or by sending a JSON object containing all data you need (see Create Label Session )

Upload documents to be analyzed

The logic here is very similar to the one to create document groups: you either send a JSON object containing all data you want to analyse. See Create Analysis or you do it in two-steps:

  1. Upload a document using the Upload document for Analysis endpoint and use the `file_id` and the `column` you want (0-indexed) in the step 2
  2. Call the Create Analysis endpoint using the `file_id` and the `column` you chose.

Analyses

All endpoints related to analyses.

Upload a file for a new Batch Analysis

Upload a file for a new batch analysis. A file contains one or more documents that can be used to create a batch analysis. The file could have the extensions .csv, .jsonl, .json, or .xslx. Each record in the file should contain a 'text' field with the document text and an optional 'id' field with a unique identifier for the document.

Authorizations:
Bearer
Request Body schema: multipart/form-data
required
file
required
string <binary>

file to upload

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "preview": [
    ]
}

List all analyses

List all Analyses that user has created. The list can be filtered by providing query parameters such as 'model' or paginated with 'offset' and 'limit'.

Authorizations:
Bearer
query Parameters
model
integer

ID of the model

offset
integer

An offset is simply the number of records you wish to skip before selecting records.

limit
integer

Limit of entries that should be returned.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a Batch Analysis

Create a new Batch Analysis by providing the necessary information to analyze the documents. Optionally, you can also provide a file_id and column if you want to create the analysis using a previously uploaded file.

Authorizations:
Bearer
Request Body schema: application/json
required
Array of objects (Document)

List of documents of the analysis.

name
string

Name of the analysis.

file_id
string <uuid>

Id of file that belongs of to the analysis.

column
integer

The index of the column of the file that should be used as source to the analysis.

column_name
string

Name of the column of the file or property that contains data to be analyzed.

split
boolean

Whether documents should be split into sentences.

header_first
boolean

Whether the first line should be used as the file header.

Responses

Request samples

Content type
application/json
{
  • "documents": [
    ],
  • "name": "My first analysis",
  • "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
  • "column": 0,
  • "column_name": "reviews",
  • "split": true,
  • "header_first": true
}

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "id": 1,
  • "name": "This is my first analysis",
  • "progress": 87.7,
  • "model_id": 10,
  • "status": "CREATED",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ],
  • "documents": [
    ]
}

Run an Ad-hoc analysis

Run an Ad-hoc analysis of a list of documents.

Authorizations:
Bearer
Request Body schema: application/json
required
Array of objects (Document)
model_id
integer

ID of the model

split
boolean

Whether documents should be split into sentences

Responses

Request samples

Content type
application/json
{
  • "documents": [
    ],
  • "model_id": 387,
  • "split": true
}

Response samples

Content type
application/json
{
  • "model": "Hotels Pre-Trained",
  • "documents": [
    ],
  • "type": "ABSA"
}

Download all documents from an analysis

Download all documents from a analysis.

Authorizations:
Bearer
path Parameters
analysis_id
required
integer

ID of the analysis_id to get

query Parameters
format
string

File format. Possible values are csv, jsonl, json and xlsx

Responses

List all documents from an analysis

List all documents from an analysis. The list of documents can be filtered by providing query parameters such as 'search' , 'classes', 'labels', 'details' or paginated with 'offset' and 'limit'.

Authorizations:
Bearer
path Parameters
analysis_id
required
integer

ID of the analysis to get

query Parameters
details
string
Enum: "segments" "meta" "tags"

Which details should return. Values might be any combination of 'segments', 'meta' and 'tags'.

  • segments: Show segments of a document
  • meta: Show all the additional attributes that were originally given as the document was uploaded
  • tags: Show tags of a document
search
string

Search by name

classes
Array of integers
Example: classes=1,746

filter by class ids

labels
Array of integers
Example: labels=110,111,112

filter by label ids

offset
integer >= 0
Default: 0

An offset is simply the number of records you wish to skip before selecting records.

limit
integer [ 1 .. 1000 ]
Default: 100

Limit of entries that should be returned.

Responses

Response samples

Content type
application/json
{
  • "documents": {
    },
  • "has_more": true,
  • "offset": 0,
  • "limit": 10,
  • "count": 10
}

Retrieve an analysis

Retrieve an Analysis.

Authorizations:
Bearer
path Parameters
analysis_id
required
integer

ID of the analysis_id to get

Responses

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "id": 1,
  • "name": "This is my first analysis",
  • "progress": 87.7,
  • "model_id": 10,
  • "status": "CREATED",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ],
  • "documents": [
    ]
}

Update an analysis

Update an Analysis.

Authorizations:
Bearer
path Parameters
analysis_id
required
integer

ID of the analysis to change

Request Body schema: application/json
required
name
string

Unique identifier representing the analysis name

Responses

Request samples

Content type
application/json
{
  • "name": "Changing my First Analysis"
}

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "uuid": "123e4567-e89b-12d3-a456-426614174000",
  • "id": 1,
  • "name": "This is my first analysis",
  • "progress": 87.7,
  • "model_id": 10,
  • "status": "CREATED",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ],
  • "documents": [
    ]
}

Delete an analysis

Delete an Analysis. This operation cannot be undone. The original document group will be preserved.

Authorizations:
Bearer
path Parameters
analysis_id
required
integer

ID of the analysis to delete

Responses

Classes

All endpoints related to classes.

Download all classes from a project

Download all classes from a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

query Parameters
format
string

File format. Possible values are csv, jsonl, json and xlsx

Responses

Upload a file containing classes definition.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Request Body schema: multipart/form-data
required
file
required
string <binary>

file to upload

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add multiple classes to a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to get

Request Body schema: application/json
required
Array
name
string

The class's name.

example
string

A usage example.

description
string

The class's description to help the annotator.

id
integer

The ID of the label

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a class

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project that contains the class

class_id
required
integer

ID of the class to get

Responses

Response samples

Content type
application/json
{
  • "name": "Comfort",
  • "example": "This is a good example",
  • "description": "This is a good description",
  • "id": 1
}

Update a class

Update a class

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to change

class_id
required
integer

ID of the class to change

Request Body schema: application/json
required
name
string

The class's name.

example
string

A usage example.

description
string

The class's description to help the annotator.

id
integer

The ID of the label

Responses

Request samples

Content type
application/json
{
  • "name": "Comfort",
  • "example": "This is a good example",
  • "description": "This is a good description",
  • "id": 1
}

Response samples

Content type
application/json
{
  • "name": "Comfort",
  • "example": "This is a good example",
  • "description": "This is a good description",
  • "id": 1
}

Delete a class

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project that contains the class

class_id
required
integer

ID of the class to delete

Responses

List all classes from a project

List all classes from a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a class to a project

Add a new class to a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to get

Request Body schema: application/json
required
name
string

The class's name.

example
string

A usage example.

description
string

The class's description to help the annotator.

id
integer

The ID of the label

Responses

Request samples

Content type
application/json
{
  • "name": "Comfort",
  • "example": "This is a good example",
  • "description": "This is a good description",
  • "id": 1
}

Response samples

Content type
application/json
{
  • "name": "Comfort",
  • "example": "This is a good example",
  • "description": "This is a good description",
  • "id": 1
}

Correction

All endpoints related to correction sessions. A correction session is where you can correct tags automatically predicted by our technology and then improve the model quality.

Confirm a tag

Confirm a tag

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

correction_id
required
integer

ID of the correction session

document_id
required
integer

ID of the document

segment_id
required
integer

ID of the segment

tag_id
required
integer

ID of the tag

Request Body schema: application/json
required
status
required
string
Enum: "READY" "CORRECTING"

Tag is either ready to be used or in correction

Responses

Request samples

Content type
application/json
{
  • "status": "READY"
}

Response samples

Content type
application/json
{
  • "segment": {
    },
  • "predicted_score": 0,
  • "progress": 98,
  • "tag": {
    }
}

Mark a segment as corrected.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

correction_id
required
integer

ID of the correction session

document_id
required
integer

ID of the document

segment_id
required
integer

ID of the segment

Request Body schema: application/json
required
name
required
string
Value: "ANNOTATED"

Responses

Request samples

Content type
application/json
{
  • "name": "ANNOTATED"
}

Response samples

Content type
application/json
{
  • "segment": {
    },
  • "predicted_score": 0,
  • "progress": 98
}

Change a tag.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

correction_id
required
integer

ID of the correction session

document_id
required
integer

ID of the document

segment_id
required
integer

ID of the segment

tag_id
required
integer

ID of the tag

Request Body schema: application/json
required
class
string

The class's name.

label
string

The label's name.

text
string

Annotated text

span
Array of integers = 2 items

Responses

Request samples

Content type
application/json
{
  • "class": "Comfort",
  • "label": "POS",
  • "text": "Segment 1",
  • "span": [
    ]
}

Response samples

Content type
application/json
{
  • "segment": {
    },
  • "predicted_score": 0,
  • "progress": 98,
  • "tag": {
    }
}

Delete a tag.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

correction_id
required
integer

ID of the correction session

document_id
required
integer

ID of the document

segment_id
required
integer

ID of the segment

tag_id
required
integer

ID of the tag

Responses

Response samples

Content type
application/json
{
  • "segment": {
    },
  • "predicted_score": 0,
  • "progress": 98
}

Add a tag to a segment

Add a tag to a segment

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

correction_id
required
integer

ID of the correction session

document_id
required
integer

ID of the document

segment_id
required
integer

ID of the segment

Responses

Response samples

Content type
application/json
{
  • "segment": {
    },
  • "predicted_score": 0,
  • "progress": 98,
  • "tag": {
    }
}

Retrieve a correction session documents

Retrieve a correction session documents

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

correction_id
required
integer

ID of the session

query Parameters
details
string
Enum: "segments" "meta" "tags"

Which details should return. Values might be any combination of 'segments', 'meta' and 'tags'.

  • segments: Show segments of a document
  • meta: Show all the additional attributes that were originally given as the document was uploaded
  • tags: Show tags of a document
offset
integer

An offset is simply the number of records you wish to skip before selecting records.

limit
integer

Limit of entries that should be returned.

Responses

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "document_group_id": 87,
  • "organization_id": 1,
  • "user_id": 1,
  • "project_id": 1,
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 120,
  • "name": "This is my first labeling session",
  • "progress": 87.7,
  • "model_id": 10,
  • "status": "CREATED",
  • "mode": "ANNOTATION",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ],
  • "documents": [
    ]
}

Return a correction session.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

correction_id
required
integer

ID of the correction session

Responses

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "document_group_id": 87,
  • "organization_id": 1,
  • "user_id": 1,
  • "project_id": 1,
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "name": "This is my first correction session",
  • "progress": 87.7,
  • "model": {
    },
  • "status": "CREATED",
  • "mode": "CORRECTION",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ],
  • "predicted_score": 0
}

Delete a correction session.

This operation cannot be undone. The original document group will be preserved.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

correction_id
required
integer

ID of the correction session to be deleted

Responses

Return a list of correction sessions that belongs to a project.

You can combine any of the parameters to filter the results.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

query Parameters
status
string

Correction status. Any of CREATED, STARTED, ANNOTATING, FAILED, FINISHED, SAMPLING, PREDICTING or DELETING

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new correction session.

If no documents are given, they will be randomly chosen.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Request Body schema: application/json
required
model_id
required
integer

ID of the model

sample_size
integer

Sample size

name
string

Name of the correction session

Responses

Request samples

Content type
application/json
{
  • "model_id": 387,
  • "sample_size": 20,
  • "name": "My first correction"
}

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "document_group_id": 87,
  • "organization_id": 1,
  • "user_id": 1,
  • "project_id": 1,
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "name": "This is my first correction session",
  • "progress": 87.7,
  • "model": {
    },
  • "status": "CREATED",
  • "mode": "CORRECTION",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ],
  • "predicted_score": 0
}

Document Processing

All endpoints related to Document Processing.

Extract information from one or more documents.

Given a document, this endpoint will extract information from it.

Supported document formats are:
- pdf
- jpeg / jpg
- png
- tiff
- webp

Authorizations:
Bearer
path Parameters
organization_id
required
integer

unique ID of your workspace

project_id
required
integer

is a unique ID of your project

model_id
required
integer

is a unique ID of your trained AI model

query Parameters
return_bboxes
string

whether or not to return bounding boxes

return_annotated_pages
string

whether or not to return the images correspondent to each page, with the found matches, as a base64 encoded string

Request Body schema: multipart/form-data
required
file
required
string <binary>

file to upload

Responses

Response samples

Content type
application/json
{
  • "model": "Invoice Extraction v1",
  • "all_required_fields_found": true,
  • "all_confidence_thresholds_met": true,
  • "all_data_conversion_passed": true,
  • "total_credits_used": 24,
  • "documents": [
    ],
  • "labels": [
    ]
}

Text Processing

All endpoints related to Text Processing.

Upload new documents.

Implemented as asynchronous request and returns 202 ACCEPTED.Documents will be uploaded, segmented and analyzed.If any annotations are given, these will also be analyzed and added to the database.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Request Body schema: application/json
required
Array
text
string

The document text

id
integer

The ID of the document.

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Retrieve document from a project.

Retrieve document from a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

document_id
required
integer

ID of the document

query Parameters
details
string
Value: "segments"

Which details should return. Only 'segments' is supported.

  • segments: Show segments of a document

Responses

Response samples

Content type
application/json
{
  • "text": "Document 1",
  • "segments": [
    ]
}

Change a document.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

document_id
required
integer

ID of the document group

Request Body schema: application/json
required
text
string

The document text

Responses

Request samples

Content type
application/json
{
  • "text": "Document 1 Edited"
}

Response samples

Content type
application/json
{
  • "text": "Document 1",
  • "id": 18000
}

Delete a document from a project.

Delete a document from a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

document_id
required
integer

ID of the document

Responses

List all documents from a project

List all documents from a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to get

query Parameters
details
string
Enum: "segments" "meta" "tags"

Which details should return. Values might be any combination of 'segments', 'meta' and 'tags'.

  • segments: Show segments of a document
  • meta: Show all the additional attributes that were originally given as the document was uploaded
  • tags: Show tags of a document
search
string

Search by name

annotation_id
integer

Filter by annotation ID

analysis_id
integer

Filter by analysis ID

group_id
integer

Filter by group ID

grouped
boolean

If true, return only documents that belong to a group

analysed
boolean

If true, return only documents that belong to an analysis

offset
integer

An offset is simply the number of records you wish to skip before selecting records.

limit
integer

Limit of entries that should be returned.

Responses

Response samples

Content type
application/json
{
  • "documents": {
    },
  • "has_more": true,
  • "offset": 0,
  • "limit": 10,
  • "count": 10
}

Create a new document.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Request Body schema: application/json
required
text
required
string

Document text

object

Responses

Request samples

Content type
application/json
{
  • "text": "Text 1",
  • "segments": {
    }
}

Response samples

Content type
application/json
{
  • "text": "Document 1",
  • "id": 18000
}

Document Groups

All endpoints related to groups. A group as the name suggests, is a collection of documents.

Connect an external source to Studio and pull unlabeled data from it.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Request Body schema: multipart/form-data
required
credential_id
required
number

ID of the credential to be used to connect to the external source.

source
required
string

A string that identifies the source

parameters
object

Parameters to filter the data returned by the external source.

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "preview": [
    ]
}

Upload a file

Upload a file to a project. A file contains one or more documents that can be used to create a document group

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Request Body schema: multipart/form-data
required
file
required
string <binary>

file to upload

to_list
boolean

DEPRECATED: If set to false, the file preview will be in JSON format instead of a list. The default behavior will soon be changed to return a JSON and this parameter won't be needed anymore

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "preview": [
    ]
}

Retrieve a document

Retrieve a document from a group.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

group_id
required
integer

ID of the document group

document_id
required
integer

ID of the document

query Parameters
details
string
Enum: "segments" "meta" "tags"

Which details should return. Values might be any combination of 'segments', 'meta' and 'tags'.

  • segments: Show segments of a document
  • meta: Show all the additional attributes that were originally given as the document was uploaded
  • tags: Show tags of a document

Responses

Response samples

Content type
application/json
{
  • "text": "Document 1",
  • "segments": [
    ]
}

List all documents from a group

Fetches all documents of a given groupUse URL params to control or filter the result:- ?search=wordto only show documents that contain word- ?offset=0&limit=10 to have a paginated view- ?details=segments,meta,tags to show details of a document * segments: Show segments of a document * tags: Show tags of a document * meta: Show all the additional attributes that were originally given as the document was uploaded

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

group_id
required
integer

ID of the document group

query Parameters
search
string

Search by name

details
string
Enum: "segments" "meta" "tags"

Which documents' details API should return. Values might be any combination of 'segments', 'meta' and 'tags'.

offset
integer

An offset is simply the number of records you wish to skip before selecting records.

limit
integer

Limit of entries that should be returned.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download all the documents of a group

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

group_id
required
integer

ID of the document group

query Parameters
format
string

File format. Possible values are csv, jsonl, json and xlsx

Responses

Retrieve a Document Group

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project that contains the group

group_id
required
integer

ID of the group to get

Responses

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "id": 18,
  • "name": "This is my first group",
  • "project_id": 0,
  • "source": "ANALYSIS",
  • "status": "PROCESSING"
}

Change a document group.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

group_id
required
integer

ID of the document group

Request Body schema: application/json
required
name
string

The document group's name.

document_ids
Array of integers

IDs of documents that should be added to the group

Array of objects (DocumentGroup)

Documents that should be added to the group

Responses

Request samples

Content type
application/json
{
  • "name": "Changing my first group",
  • "document_ids": [
    ],
  • "documents": [
    ]
}

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "document_group_id": 87,
  • "organization_id": 1,
  • "user_id": 1,
  • "project_id": 1,
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "name": "This is my first labeling session",
  • "progress": 87.7,
  • "model_id": 10,
  • "status": "CREATED",
  • "mode": "ANNOTATION",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ]
}

Delete a group of documents.

By deleting a group, all analyses or annotations created from that group will be deleted.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project that contains the group

group_id
required
integer

ID of the group to delete

Responses

List all document groups that belongs to a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to get

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new document group.

A document group is, as the name suggests, a group of documents. There are two ways of creating a group:- By calling the Create group endpoint with all the documents you want to add to the group- In two steps: first one, upload a file in CSV, TXT, JSON, JSONL or XLSX format using the Upload a File endpoint. Then, use the file_id received and the column you want

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to get

Request Body schema: application/json
required
Array of objects (Document)

array of objects that represent documents.

name
string

Name of the group

file_id
string <uuid>

Unique identifier of the file

credential_id
number

ID of the credential to be used to connect to the external source

source
string

A string that identifies the source

parameters
object

Parameters to filter the data returned by the external source.

column
integer

DEPRECATED: The index of the column that should be used as source

column_name
string

Name of the column or property that contains data to be analyzed

split
boolean

Whether documents should be split into sentences

header_first
boolean

Whether the first line should be used as the file header

Responses

Request samples

Content type
application/json
{
  • "documents": [
    ],
  • "name": "My first Group!",
  • "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
  • "credential_id": 0,
  • "source": "string",
  • "parameters": {
    },
  • "column": 3,
  • "column_name": "reviews",
  • "split": true,
  • "header_first": true
}

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "id": 18,
  • "name": "This is my first group",
  • "project_id": 0,
  • "source": "ANALYSIS",
  • "status": "PROCESSING"
}

HITL

All endpoints related to Human In The Loop.

List HITL reviews based on HITL ID

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to change

hitl_id
required
integer

ID of the hitl to change

query Parameters
with_full_data
boolean

whether or not to return all the review data

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all project's HITLs

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a new HITL to a project.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to get

Request Body schema: application/json
name
string <= 120 characters
description
string <= 255 characters
assigned_user_id
integer
model_id
integer
is_live
boolean
webhook_url
string <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "assigned_user_id": 0,
  • "model_id": 0,
  • "is_live": true,
  • "webhook_url": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "project_id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "assigned_user_id": 0,
  • "model_id": 0,
  • "is_live": true,
  • "webhook_url": "string",
  • "labels": { }
}

Delete a HITL by ID.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project that contains the class

hitl_id
required
integer

ID of the hitl to delete

Responses

Get a particular HITL

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

hitl_id
required
integer

ID of HITL

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "project_id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "assigned_user_id": 0,
  • "model_id": 0,
  • "is_live": true,
  • "webhook_url": "string",
  • "labels": { }
}

Update HITL's data based on HITL ID

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to change

hitl_id
required
integer

ID of the hitl to change

Request Body schema: application/json
name
string <= 120 characters
description
string <= 255 characters
assigned_user_id
integer
model_id
integer
is_live
boolean
webhook_url
string <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "assigned_user_id": 0,
  • "model_id": 0,
  • "is_live": true,
  • "webhook_url": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "project_id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "assigned_user_id": 0,
  • "model_id": 0,
  • "is_live": true,
  • "webhook_url": "string",
  • "labels": { }
}

Assign to user HITL's data based on HITL ID

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to change

hitl_id
required
integer

ID of the hitl to change

Request Body schema: application/json
name
string <= 120 characters
description
string <= 255 characters
assigned_user_id
integer
model_id
integer
is_live
boolean
webhook_url
string <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "assigned_user_id": 0,
  • "model_id": 0,
  • "is_live": true,
  • "webhook_url": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string",
  • "description": "string",
  • "project_id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "assigned_user_id": 0,
  • "model_id": 0,
  • "is_live": true,
  • "webhook_url": "string",
  • "labels": { }
}

Delete a label in a project HITL.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project that contains the class

hitl_id
required
integer

ID of the hitl to delete

name
required
string

label name to be added in project hitl

Responses

ADD a label in a project HITL.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project that contains the class

hitl_id
required
integer

ID of the hitl to delete

name
required
string

label name to be added in project hitl

Responses

Labeling

All endpoints related to labeling sessions. A label session is where classes and labels can be added to segments.

Mark a segment as annotated

Mark a segment as annotated

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the labeling session

document_id
required
integer

ID of the document

segment_id
required
integer

ID of the segment

Request Body schema: application/json
required
name
required
string
Value: "ANNOTATED"

Responses

Request samples

Content type
application/json
{
  • "name": "ANNOTATED"
}

Response samples

Content type
application/json
{
  • "name": "ANNOTATED",
  • "created": "2019-08-24T14:15:22Z",
  • "document_id": 187,
  • "segment_id": 3010,
  • "annotation_id": 1
}

Retrieve a tag

Retrieve a tag

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the labeling session

document_id
required
integer

ID of the document

segment_id
required
integer

ID of the segment

tag_id
required
integer

ID of the tag

Responses

Response samples

Content type
application/json
{
  • "class": "Comfort",
  • "label": "POS"
}

Update a tag

Update a tag.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the labeling session

document_id
required
integer

ID of the document

segment_id
required
integer

ID of the segment

tag_id
required
integer

ID of the tag

Request Body schema: application/json
required
class
string

The class's name.

label
string

The label's name.

text
string

Annotated text

span
Array of integers = 2 items

Responses

Request samples

Content type
application/json
{
  • "class": "Comfort",
  • "label": "POS",
  • "text": "Segment 1",
  • "span": [
    ]
}

Response samples

Content type
application/json
{
  • "class": "Comfort",
  • "label": "POS"
}

Delete a tag

Delete a tag

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the labeling session

document_id
required
integer

ID of the document

segment_id
required
integer

ID of the segment

tag_id
required
integer

ID of the tag

Responses

List all tags from a segment.

List all tags from a segment.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the labeling session

document_id
required
integer

ID of the document

segment_id
required
integer

ID of the segment

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a tag to a segment

Add a tag to a segment

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the labeling session

document_id
required
integer

ID of the document

segment_id
required
integer

ID of the segment

Responses

Response samples

Content type
application/json
{
  • "class": "Comfort",
  • "label": "POS"
}

Mark a page as annotated

Mark a page as annotated

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the labeling session

document_id
required
integer

ID of the document

page
required
integer

the page number starting in 0

Request Body schema: application/json
required
name
required
string
Value: "ANNOTATED"

Responses

Request samples

Content type
application/json
{
  • "name": "ANNOTATED"
}

Response samples

Content type
application/json
{
  • "name": "ANNOTATED",
  • "created": "2019-08-24T14:15:22Z",
  • "document_id": 187,
  • "segment_id": 3010,
  • "annotation_id": 1
}

Mark a document as annotated

Mark a document as annotated

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the labeling session

document_id
required
integer

ID of the document

Request Body schema: application/json
required
name
required
string
Value: "ANNOTATED"

Responses

Request samples

Content type
application/json
{
  • "name": "ANNOTATED"
}

Response samples

Content type
application/json
{
  • "name": "ANNOTATED",
  • "created": "2019-08-24T14:15:22Z",
  • "document_id": 187,
  • "annotation_id": 1
}

Download all labeling sessions of a project.

The result will be combined into one single file.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

query Parameters
format
string

File format. Possible values are csv, jsonl, json and xlsx

Responses

Connect an external source to Studio and pull training data from it.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Request Body schema: multipart/form-data
required
credential_id
required
number

ID of the credential to be used to connect to the external source.

source
required
string

A string that identifies the source

parameters
object

Parameters to filter the data returned by the external source.

Responses

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "document_group_id": 87,
  • "organization_id": 1,
  • "user_id": 1,
  • "project_id": 1,
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "name": "This is my first labeling session",
  • "progress": 87.7,
  • "model_id": 10,
  • "status": "CREATED",
  • "mode": "ANNOTATION",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ]
}

Upload a file for a new labeling session

A file contains one or more documents that can be used to create a labeling session.If show_preview is True, a preview will be shown and the endpoint to createa new labeling session must be called using the "id" and a column nameobtained in the preview response.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Request Body schema: multipart/form-data
required
show_preview
boolean

If true, a preview will be shown.

file
required
string <binary>

file to upload

Responses

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "document_group_id": 87,
  • "organization_id": 1,
  • "user_id": 1,
  • "project_id": 1,
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "name": "This is my first labeling session",
  • "progress": 87.7,
  • "model_id": 10,
  • "status": "CREATED",
  • "mode": "ANNOTATION",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ]
}

Retrieve a document of a labeling session.

  • segments: Show segments of a document * tags: Show tags of a document * meta: Show all the additional attributes that were originally given as the document was uploaded
Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the session

document_id
required
integer

ID of the document

query Parameters
details
string
Enum: "segments" "meta" "tags"

Which details should return. Values might be any combination of 'segments', 'meta' and 'tags'.

  • segments: Show segments of a document
  • meta: Show all the additional attributes that were originally given as the document was uploaded
  • tags: Show tags of a document

Responses

Response samples

Content type
application/json
{
  • "text": "Document 1",
  • "segments": [
    ]
}

List all documents from a labeling session

List all documents from a labeling session.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the session

query Parameters
details
string
Enum: "segments" "meta" "tags"

Which details should return. Values might be any combination of 'segments', 'meta' and 'tags'.

  • segments: Show segments of a document
  • meta: Show all the additional attributes that were originally given as the document was uploaded
  • tags: Show tags of a document
offset
integer

An offset is simply the number of records you wish to skip before selecting records.

limit
integer

Limit of entries that should be returned.

Responses

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "document_group_id": 87,
  • "organization_id": 1,
  • "user_id": 1,
  • "project_id": 1,
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 120,
  • "name": "This is my first labeling session",
  • "progress": 87.7,
  • "model_id": 10,
  • "status": "CREATED",
  • "mode": "ANNOTATION",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ],
  • "documents": [
    ]
}

Download a labeling session

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the session

query Parameters
format
string

File format. Possible values are csv, jsonl, json and xlsx

Responses

Return a labeling session.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the labeling session

Responses

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "document_group_id": 87,
  • "organization_id": 1,
  • "user_id": 1,
  • "project_id": 1,
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "name": "This is my first labeling session",
  • "progress": 87.7,
  • "model_id": 10,
  • "status": "CREATED",
  • "mode": "ANNOTATION",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ]
}

Update a labeling session

Update a labeling session

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the labeling session to changed

Request Body schema: application/json
required
name
string

Name of the labeling session

document_ids
Array of integers
Array of objects (LabelledDocument)
classes
Array of strings

Classes contained in that session.

labels
Array of strings

Labels contained in that session.

Responses

Request samples

Content type
application/json
{
  • "name": "Change my first session",
  • "document_ids": [
    ],
  • "documents": [
    ],
  • "classes": [
    ],
  • "labels": [
    ]
}

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "document_group_id": 87,
  • "organization_id": 1,
  • "user_id": 1,
  • "project_id": 1,
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "name": "This is my first labeling session",
  • "progress": 87.7,
  • "model_id": 10,
  • "status": "CREATED",
  • "mode": "ANNOTATION",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ]
}

Delete a labeling session.

This operation cannot be undone. The original document group will be preserved.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

annotation_id
required
integer

ID of the labeling session to be deleted

Responses

List all labeling sessions from a project

You can combine any of the parameters to filter the results.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

query Parameters
mode
string

Labeling mode. Any combination of ANNOTATION or CORRECTION

status
string

Labeling status. Any of CREATED, STARTED, ANNOTATING, FAILED, FINISHED, SAMPLING, PREDICTING or DELETING

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new labeling session

If neither documents nor document_ids are given, the whole documents of the system are used for this annotation.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Request Body schema: application/json
required
name
string

Name of the labeling session

auto
boolean

If auto is set to true, the documents will be analyzed if they contain attributes that match with tags. If this is the case, they are automatically inferred and annotated by the system

sample_size
integer

Sample size

document_ids
Array of integers

IDs of already available documents that should be annotated

Array of objects (LabelledDocument)

The documents that should be used for this annotation session

classes
Array of strings

Classes contained in that session. If not given, project classes will be used

labels
Array of strings

Labels contained in that session. If not given, project labels will be used

file_id
string <uuid>

Unique identifier of the file

column_mapping
object

An object that maps column name and column content. Attributes can be: 'text', 'label', 'class' or 'aspect'. The value should be the correspondent column in the original file

credential_id
number

ID of the credential to be used to connect to the external source

source
string

A string that identifies the source

parameters
object

Parameters to filter the data returned by the external source.

Responses

Request samples

Content type
application/json
{
  • "name": "My first session",
  • "auto": true,
  • "sample_size": 25,
  • "document_ids": [
    ],
  • "documents": [
    ],
  • "classes": [
    ],
  • "labels": [
    ],
  • "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
  • "column_mapping": {
    },
  • "credential_id": 0,
  • "source": "string",
  • "parameters": {
    }
}

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "finished": "2019-08-24T14:15:22Z",
  • "document_count": 100,
  • "document_group_id": 87,
  • "organization_id": 1,
  • "user_id": 1,
  • "project_id": 1,
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "name": "This is my first labeling session",
  • "progress": 87.7,
  • "model_id": 10,
  • "status": "CREATED",
  • "mode": "ANNOTATION",
  • "type": "ABSA",
  • "description": "string",
  • "classes": [
    ],
  • "labels": [
    ]
}

Labels

All endpoints related to labels.

Download all project's labels

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

query Parameters
format
string

File format. Possible values are csv, jsonl, json and xlsx

Responses

Upload a file containing labels definition.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Request Body schema: multipart/form-data
required
file
required
string <binary>

file to upload

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a particular label

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

label_id
required
integer

ID of the label

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "POS"
}

Change label's data based on label ID

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to change

label_id
required
integer

ID of the label to change

Request Body schema: application/json
required
name
string

The label's name.

Responses

Request samples

Content type
application/json
{
  • "name": "POS"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "POS"
}

Delete a label by ID. Labels from ABSA projects cannot be deleted.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project that contains the class

label_id
required
integer

ID of the label to delete

Responses

Change label's data based on label name

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to change

name
required
string

ID of the label to change

Request Body schema: application/json
required
name
string

The label's name.

Responses

Request samples

Content type
application/json
{
  • "name": "POS"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "POS"
}

Delete a label by name. Labels from ABSA projects cannot be deleted.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project that contains the class

name
required
string

ID of the label to delete

Responses

List all project's labels

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a new label to a project.

You cannot add labels to an ABSA project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to get

Request Body schema: application/json
required
name
string

The label's name.

Responses

Request samples

Content type
application/json
{
  • "name": "POS"
}

Response samples

Content type
application/json
{
  • "id": 1,
  • "name": "POS"
}

Models

All endpoints related to models.

Upload a model.

Authorizations:
Bearer
Request Body schema: multipart/form-data
required
file
required
string <binary>

file to upload

base
string

the name of the model used to create the modal that's being changed

display_name
required
string

a friendly name

score
integer <float>

model score. As this is a result of a training session, this value shouldn't be touched

long_description
string

a longer description which proper describes the model

short_description
string

a short description to help users quickly identify the model

status
string
Enum: "CREATED" "QUEUED" "TRAINING" "FAILED" "READY" "ACTIVE" "PUBLISHED"

the model status

language
string
Enum: "en" "de" "ar"
name
string

internal name. It should be unique for a workspace

Responses

Response samples

Content type
application/json
{
  • "base": "Hotel Pre-Trained",
  • "created": "2019-08-24T14:15:22Z",
  • "display_name": "My model 1",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "language": "en",
  • "long_description": "My model 1 can predict anything I want",
  • "name": "My model 1",
  • "owner": "John Doe",
  • "progress": 6.78,
  • "project_id": 1,
  • "score": 0.68,
  • "short_description": "This is a very short description of My Model 1",
  • "status": "CREATED",
  • "type": "ABSA"
}

List all models of a user

List all models that user is authorized to see.

Authorizations:
Bearer
query Parameters
collection_id
integer

The collection ID of the model

public
boolean

if model is public or not

starred
boolean

if model is starred or not

search
string

Search a model by name

type
string
Enum: "ABSA" "CLASS" "LABEL" "CLASSLABEL"

model type

offset
integer

An offset is simply the number of records you wish to skip before selecting records.

limit
integer

Limit of entries that should be returned.

exclude_id
integer

Exclude model with this ID

Responses

Response samples

Content type
application/json
{
  • "models": [
    ],
  • "has_more": true,
  • "offset": 0,
  • "limit": 10,
  • "count": 10
}

Download a model by organization name and model name

Authorizations:
Bearer
path Parameters
organization
required
string

The organization name

model
required
string

The model name

Responses

Download a model that belongs to a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

model_id
required
integer

ID of the model

Responses

Retrieve models user is authorized to see.

Parameters can be combined to filter models.

Authorizations:
Bearer
path Parameters
organization
required
string

organization name

query Parameters
collection_id
integer

The collection ID of the model

public
boolean

if model is public or not

starred
boolean

if model is starred or not

type
string
Enum: "ABSA" "CLASS" "LABEL" "CLASSLABEL"

model type

offset
integer

An offset is simply the number of records you wish to skip before selecting records.

limit
integer

Limit of entries that should be returned.

Responses

Response samples

Content type
application/json
{
  • "models": [
    ],
  • "has_more": true,
  • "offset": 0,
  • "limit": 10,
  • "count": 10
}

Retrieve a specific model that belongs to a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

model_id
required
integer

ID of the model

Responses

Response samples

Content type
application/json
{
  • "base": "Hotel Pre-Trained",
  • "created": "2019-08-24T14:15:22Z",
  • "display_name": "My model 1",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "language": "en",
  • "long_description": "My model 1 can predict anything I want",
  • "name": "My model 1",
  • "owner": "John Doe",
  • "progress": 6.78,
  • "project_id": 1,
  • "score": 0.68,
  • "short_description": "This is a very short description of My Model 1",
  • "status": "CREATED",
  • "type": "ABSA",
  • "demoset": [
    ],
  • "metrics": { },
  • "classes": [
    ],
  • "labels": [
    ]
}

Update a model that belongs to a project.

Updates meta data of a model. All model's attributes can be changed:

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

model_id
required
integer

ID of the model

Request Body schema: application/json
required
base
string

the name of the model used to create the modal that's being changed

created
string <date-time>

creation date

display_name
string

a friendly name.

uuid
string <uuid>

model unique identifier. Should be a UUID value

id
integer >= 1

The ID of the model

language
string
Enum: "en" "de" "ar"
long_description
string

a longer description which proper describes the model

name
string

internal name. It should be unique for a workspace

owner
string
progress
number <float>
project_id
integer

The ID of the project

score
number <float>

model score. As this is a result of a training session, this value shouldn't be touched

short_description
string

a short description to help users quickly identify the model

status
string
Enum: "CREATED" "QUEUED" "TRAINING" "FAILED" "READY" "ACTIVE" "PUBLISHED"

the model status

type
string
Enum: "ABSA" "CLASS" "LABEL" "CLASSLABEL"

model type (1: BASE, 2: ABSA, 3: LABEL, 4: CLASS, 5: CLASSLABEL))

Responses

Request samples

Content type
application/json
{
  • "base": "Hotel Pre-Trained",
  • "created": "2019-08-24T14:15:22Z",
  • "display_name": "My model 1",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "language": "en",
  • "long_description": "My model 1 can predict anything I want",
  • "name": "My model 1",
  • "owner": "John Doe",
  • "progress": 6.78,
  • "project_id": 1,
  • "score": 0.68,
  • "short_description": "This is a very short description of My Model 1",
  • "status": "CREATED",
  • "type": "ABSA"
}

Response samples

Content type
application/json
{
  • "base": "Hotel Pre-Trained",
  • "created": "2019-08-24T14:15:22Z",
  • "display_name": "My model 1",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "language": "en",
  • "long_description": "My model 1 can predict anything I want",
  • "name": "My model 1",
  • "owner": "John Doe",
  • "progress": 6.78,
  • "project_id": 1,
  • "score": 0.68,
  • "short_description": "This is a very short description of My Model 1",
  • "status": "CREATED",
  • "type": "ABSA"
}

Delete a model that belongs to a project..

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

model_id
required
integer

ID of the model

Responses

Retrieve models that belongs to a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Train a new model.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Request Body schema: application/json
required
display_name
string

Display name of the model

language
string
Enum: "en" "de" "ar"

Language of the model

name
string

internal name. It should be unique for a workspace

base_id
integer

ID of the Base Model used for training

annotation_ids
Array of integers non-empty

IDs of the labeling sessions to be used to create test and train sets. If this parameter is given, trainset_annotation_ids and testset_annotation_ids will be ignored

trainset_annotation_ids
Array of integers non-empty

IDs of the labeling sessions to be used as source for the trainset

testset_annotation_ids
Array of integers non-empty

IDs of the labeling sessions to be used as source for the testset

Responses

Request samples

Content type
application/json
{
  • "display_name": "My model 1",
  • "language": "en",
  • "name": "My model 1",
  • "base_id": 0,
  • "annotation_ids": [
    ],
  • "trainset_annotation_ids": [
    ],
  • "testset_annotation_ids": [
    ]
}

Response samples

Content type
application/json
{
  • "base": "Hotel Pre-Trained",
  • "created": "2019-08-24T14:15:22Z",
  • "display_name": "My model 1",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "language": "en",
  • "long_description": "My model 1 can predict anything I want",
  • "name": "My model 1",
  • "owner": "John Doe",
  • "progress": 6.78,
  • "project_id": 1,
  • "score": 0.68,
  • "short_description": "This is a very short description of My Model 1",
  • "status": "CREATED",
  • "type": "ABSA"
}

List all model permissions

List all model permissions

Authorizations:
Bearer
path Parameters
model_id
required
integer

ID of the model

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download a model

Authorizations:
Bearer
path Parameters
model_id
required
integer

ID of the model

Responses

List all analysis from a model

List all analysis from a model.The list of documents can be filtered by providing query parameters such as 'search' , 'classes', 'labels', 'details' or paginated with 'offset' and 'limit'. The pagination should be done by increasing the offset by the value of limit until the property has_more is false

Authorizations:
Bearer
path Parameters
model_id
required
integer

ID of the model

query Parameters
offset
integer

An offset is simply the number of records you wish to skip before selecting records.

limit
integer

Limit of entries that should be returned.

Responses

Response samples

Content type
application/json
{
  • "analyses": [
    ],
  • "has_more": true,
  • "offset": 0,
  • "limit": 10,
  • "count": 10
}

Download a model by name

Authorizations:
Bearer
path Parameters
model
required
string

The model name

Responses

Unfavorite a model

Unfavorite a model

Authorizations:
Bearer
path Parameters
model_id
required
integer

ID of the model

Responses

Favorite a model.

Authorizations:
Bearer
path Parameters
model_id
required
integer

ID of the model

Responses

Retrieve a model by its ID

Authorizations:
Bearer
path Parameters
model_id
required
integer

ID of the model

Responses

Response samples

Content type
application/json
{
  • "models": [
    ],
  • "has_more": true,
  • "offset": 0,
  • "limit": 10,
  • "count": 10
}

Update a Model

Updates meta data of a model. All model's attributes can be changed:

Authorizations:
Bearer
path Parameters
model_id
required
integer

ID of the model

Request Body schema: application/json
required
base
string

the name of the model used to create the modal that's being changed

created
string <date-time>

creation date

display_name
string

a friendly name.

uuid
string <uuid>

model unique identifier. Should be a UUID value

id
integer >= 1

The ID of the model

language
string
Enum: "en" "de" "ar"
long_description
string

a longer description which proper describes the model

name
string

internal name. It should be unique for a workspace

owner
string
progress
number <float>
project_id
integer

The ID of the project

score
number <float>

model score. As this is a result of a training session, this value shouldn't be touched

short_description
string

a short description to help users quickly identify the model

status
string
Enum: "CREATED" "QUEUED" "TRAINING" "FAILED" "READY" "ACTIVE" "PUBLISHED"

the model status

type
string
Enum: "ABSA" "CLASS" "LABEL" "CLASSLABEL"

model type (1: BASE, 2: ABSA, 3: LABEL, 4: CLASS, 5: CLASSLABEL))

Responses

Request samples

Content type
application/json
{
  • "base": "Hotel Pre-Trained",
  • "created": "2019-08-24T14:15:22Z",
  • "display_name": "My model 1",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "language": "en",
  • "long_description": "My model 1 can predict anything I want",
  • "name": "My model 1",
  • "owner": "John Doe",
  • "progress": 6.78,
  • "project_id": 1,
  • "score": 0.68,
  • "short_description": "This is a very short description of My Model 1",
  • "status": "CREATED",
  • "type": "ABSA"
}

Response samples

Content type
application/json
{
  • "base": "Hotel Pre-Trained",
  • "created": "2019-08-24T14:15:22Z",
  • "display_name": "My model 1",
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "id": 1,
  • "language": "en",
  • "long_description": "My model 1 can predict anything I want",
  • "name": "My model 1",
  • "owner": "John Doe",
  • "progress": 6.78,
  • "project_id": 1,
  • "score": 0.68,
  • "short_description": "This is a very short description of My Model 1",
  • "status": "CREATED",
  • "type": "ABSA"
}

Delete a model

Delete a Model

Authorizations:
Bearer
path Parameters
model_id
required
integer

ID of the model

Responses

Monitoring

All endpoints to help monitor the application.

Health Check

Authorizations:
Bearer

Responses

General Information about the Studio API.

The result contains the application version and additional useful information about the current system.

Authorizations:
Bearer

Responses

Notifications

All endpoints related to notifications. Notifications are created after a process that takes some time to complete finishes.

List all users notifications

List all users notifications

Authorizations:
Bearer
query Parameters
offset
integer

An offset is simply the number of records you wish to skip before selecting records.

limit
integer

Limit of entries that should be returned.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a notification

Authorizations:
Bearer
path Parameters
notification_id
required
integer

ID of the notification

Responses

Response samples

Content type
application/json
{
  • "id": 120,
  • "title": "Model is ready",
  • "text": "Your model 'First Model' is ready to be used",
  • "created": "2019-08-24T14:15:22Z",
  • "type": "INFO",
  • "read": "2019-08-24T14:15:22Z"
}

Change a notification

Authorizations:
Bearer
path Parameters
notification_id
required
integer

ID of the notification

Request Body schema: application/json
required

Data to be changed

title
string

The notification's title.

text
string

The notification's text.

created
string <date-time>

creation date

type
string
Enum: "INFO" "WARNING"

The notification's type.

read
string <date-time>

date the user read the notification. If empty, notification will be marked as unread

Responses

Request samples

Content type
application/json
{
  • "title": "Model is ready",
  • "text": "Your model 'First Model' is ready to be used",
  • "created": "2019-08-24T14:15:22Z",
  • "type": "INFO",
  • "read": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "id": 120,
  • "title": "Model is ready",
  • "text": "Your model 'First Model' is ready to be used",
  • "created": "2019-08-24T14:15:22Z",
  • "type": "INFO",
  • "read": "2019-08-24T14:15:22Z"
}

Delete a notification

Authorizations:
Bearer
path Parameters
notification_id
required
integer

ID of the notification

Responses

Projects

All endpoints related to projects. A "project" is the place where your custom models will be.

List all projects

List all projects that the authorized user has access to.

Authorizations:
Bearer
query Parameters
details
boolean

if true, the project will be enriched with information

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new project.

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

Unique identifier representing the project name

type
required
string
Enum: "ABSA" "CLASS" "LABEL" "CLASSLABEL"

Classification Type

Responses

Request samples

Content type
application/json
{
  • "name": "My First Project",
  • "type": "ABSA"
}

Response samples

Content type
application/json
{
  • "classes": [
    ],
  • "labels": [
    ],
  • "created": "2019-08-24T14:15:22Z",
  • "id": 1,
  • "models": [
    ],
  • "name": "My first project!",
  • "type": "ABSA",
  • "status": "CREATED",
  • "external_id": 412
}

List all projects' permission.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List all projects' analyses.

Use URL params to control or filter the result.The pagination should be done by increasing the offset by the value of limit until the property has_more is false

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

query Parameters
offset
integer

An offset is simply the number of records you wish to skip before selecting records.

limit
integer

Limit of entries that should be returned.

details
string
Enum: "segments" "meta" "tags"

Which details should return. Values might be any combination of 'segments', 'meta' and 'tags'.

  • segments: Show segments of a document
  • meta: Show all the additional attributes that were originally given as the document was uploaded
  • tags: Show tags of a document

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Transfer a project to a workspace.

Transferring a project will transfer all data associated to this project.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to change

Request Body schema: application/json
required
organization_id
integer

ID of the organization this project will be cloned to

Responses

Request samples

Content type
application/json
{
  • "organization_id": 1
}

Retrieve a task of project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to get

task_id
required
integer

ID of task

Responses

Response samples

Content type
application/json
{
  • "classes": [
    ],
  • "labels": [
    ],
  • "created": "2019-08-24T14:15:22Z",
  • "id": 1,
  • "models": [
    ],
  • "name": "My first project!",
  • "type": "ABSA",
  • "status": "CREATED",
  • "external_id": 412
}

Clone a project.

Cloning a project will clone all data associated to this project.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to change

Request Body schema: application/json
required
organization_id
integer

ID of the organization this project will be cloned to

Responses

Request samples

Content type
application/json
{
  • "organization_id": 1
}

Response samples

Content type
application/json
{
  • "classes": [
    ],
  • "labels": [
    ],
  • "created": "2019-08-24T14:15:22Z",
  • "id": 1,
  • "models": [
    ],
  • "name": "My first project!",
  • "type": "ABSA",
  • "status": "CREATED",
  • "external_id": 412
}

Edit a tag

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

tag_id
required
integer

ID of the tag

Request Body schema: application/json
required
class
string

The class's name.

label
string

The label's name.

text
string

Annotated text

span
Array of integers = 2 items

Responses

Request samples

Content type
application/json
{
  • "class": "Comfort",
  • "label": "POS",
  • "text": "Segment 1",
  • "span": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Delete a tag.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

tag_id
required
integer

ID of the tag

Responses

List all tags of a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project

query Parameters
classes
boolean

if true, the whole class object will be returned instead of just strings

labels
boolean

if true, the whole label object will be returned instead of just strings

offset
integer

An offset is simply the number of records you wish to skip before selecting records.

limit
integer

Limit of entries that should be returned.

Responses

Response samples

Content type
application/json
{
  • "tags": [
    ],
  • "offset": 0,
  • "limit": 10,
  • "count": 10,
  • "total": 10
}

Retrieve a project

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to get

Responses

Response samples

Content type
application/json
{
  • "classes": [
    ],
  • "labels": [
    ],
  • "created": "2019-08-24T14:15:22Z",
  • "id": 1,
  • "models": [
    ],
  • "name": "My first project!",
  • "type": "ABSA",
  • "status": "CREATED",
  • "external_id": 412
}

Change project data.

Any project attribute can be given that should be updated.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to change

Request Body schema: application/json
required
name
string

Unique identifier representing the project name

type
string
Enum: "ABSA" "CLASS" "LABEL" "CLASSLABEL"

Classification Type

Responses

Request samples

Content type
application/json
{
  • "name": "Changing my First Project",
  • "type": "ABSA"
}

Response samples

Content type
application/json
{
  • "classes": [
    ],
  • "labels": [
    ],
  • "created": "2019-08-24T14:15:22Z",
  • "id": 1,
  • "models": [
    ],
  • "name": "My first project!",
  • "type": "ABSA",
  • "status": "CREATED",
  • "external_id": 412
}

Delete a project.

By deleting a project, all data that is managed by the project (document, models) will be deleted as well and cannot be restored.

Authorizations:
Bearer
path Parameters
project_id
required
integer

ID of the project to change

Responses

Types

All endpoints related to task types.

List all task types

List all task types

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Users

All endpoints related to users.

Verification Email

Resend verification email

Authorizations:
Bearer

Responses

Confirm Email

Confirm an email.

Authorizations:
Bearer
Request Body schema: application/json
required
verify_email_token
string

Verify email token

Responses

Request samples

Content type
application/json
{
  • "verify_email_token": "f9bf78b9a18ce6d46a0cd2b0b86df9da"
}

Reset Password

Reset a users password with the token received in reset email.

Authorizations:
Bearer
Request Body schema: application/json
required
reset_password_token
required
string

One Time Password reset token

password
required
string

New Password to be set

Responses

Request samples

Content type
application/json
{
  • "reset_password_token": "f9bf78b9a18ce6d46a0cd2b0b86df9da",
  • "password": "verybadpass"
}

Password Reset Email

Reset Password for a certain email address corresponding to a registered user. If email exists, a new reset reset_password_token is created and an email is sent to the corresponding user.

Authorizations:
Bearer
Request Body schema: application/json
required
email
required
string

Email of the user

Responses

Request samples

Content type
application/json
{
  • "email": "john.doe@example.com"
}

Retrieve an user

Retrieve an user by ID. The user ID must be given as route parameter. If not an admin, this route is accessible only for the given and authenticated user.

Authorizations:
Bearer
path Parameters
user_id
required
integer

ID of the user

Responses

Response samples

Content type
application/json
{
  • "first_name": "John",
  • "last_name": "Doe",
  • "email": "john.doe@example.com",
  • "password": "badpassword"
}

Update an User

Update an User.

Authorizations:
Bearer
path Parameters
user_id
required
integer

ID of the user

Request Body schema: application/json
required
first_name
string

User's first name

last_name
string

User's last name

email
string <email>

User's email. Should be unique

password
string <password> >= 8 characters

User's password

Responses

Request samples

Content type
application/json
{
  • "first_name": "John",
  • "last_name": "Doe",
  • "email": "john.doe@example.com",
  • "password": "badpassword"
}

Response samples

Content type
application/json
{
  • "first_name": "John",
  • "last_name": "Doe",
  • "email": "john.doe@example.com",
  • "password": "badpassword"
}

Delete an user

Delete an User.

Authorizations:
Bearer
path Parameters
user_id
required
integer

ID of the user

Responses

User Authentication

All endpoints related to authentication.

Register

Create a new account. A successful request returns an auth_token that can be used for subsequent calls.

Request Body schema: application/json
required
first_name
string

User's first name

last_name
string

User's last name

email
string <email>

User's email. Should be unique

password
string <password> >= 8 characters

User's password

Responses

Request samples

Content type
application/json
{
  • "first_name": "John",
  • "last_name": "Doe",
  • "email": "john.doe@example.com",
  • "password": "badpassword"
}

Response samples

Content type
application/json
{
  • "auth_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJleHAiOjE2MjM4MzY4MzMsInN1YiI6MzIsImlzcyI6ImRlZXBvcGluaW9uLmFpIiwibGFuZ3VhZ2VzIjpbIioiXSwiZnVuY3Rpb25hbGl0eSI6WyJBbmFseXNpcy8qIiwiVHJhaW5pbmcvKiIsIk1vZGVscy8qIl0sImlhdCI6MTYyMjYyNzIzM30.Vv_KymEKnrFq5W1XbcufSuLTIr8hk_QBbbT8z9yBST-EiP_-dM3RnyCESfUWr35EHav9UVc9pwr84WNIxffQYnXRuglBtspy0UfBlYvmSNNdWUczn2--WT90VmvujbtFnMp70hry_MTZe-sKBGxE80Br_UuDEmH2gVFim8-ZAu2JAW--bxur0dT59RPpA1DXvw-d_q95_vevjwYvx7uC-9YskMm0g13OFBnwmdj1DGOnjGsWqQ4Z4HSX6B6ctTm_a0Lgc4llwDrA3Ppck05SSgYMIzyUGZDtLrH-Vp-qiCMnd5cplqrUyqZnroUFCjgbT_GuVkdRkxnUpvCQeecWFppg7-CwnYc5gfoMhq5LnJxLgcfQQQ9vBSp1RZPsKBhZlAGUfUoMWFEDa0LBBq6p7zg90D1_G-1LjeUI2N6roGGRdPl9FTKdLklQw2g5RTmb9ik5yTK-VcxLJBSFHhigTZzrktOR1d1akbOVB38TUjcuSQvOdnCVO_-FKyhYtTogSaxth4yMnGHMNuzMHIplW8A1y9Yni4jXzLMSSTV_T8YcirJvr-sVgZa4nUjEqHpMVn7S2Tywp6kd-c_OVEpiHH1ODqczqvtDAYFF6xCf4S8gKlk3CBsJFElzPMnFmLPIWl173mSGuH4beagVKJLFeS87yRINFAL7Nyfe2UJn6gc",
  • "message": "Successfully registered.",
  • "status": "CREATED"
}

Login Status

Status information about the current user.

Authorizations:
Bearer

Responses

Log Out

Log out a user. Invalidates the current auth token of the user.

Authorizations:
Bearer

Responses

Log In

Log in a user. Login via email and password. A successful request returns the attribute auth_token that can be used for authenticate the user at other calls.It's also possible to log in with a "first time login". This token is sent to users we manually created through Studio Admin

Request Body schema: application/json
required
email
string <email>

User's email. Should be unique

password
string <password>

User's password

Responses

Request samples

Content type
application/json
{
  • "email": "john.doe@example.com",
  • "password": "badpassword"
}

Response samples

Content type
application/json
{
  • "auth_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJleHAiOjE2MjM4MzY4MzMsInN1YiI6MzIsImlzcyI6ImRlZXBvcGluaW9uLmFpIiwibGFuZ3VhZ2VzIjpbIioiXSwiZnVuY3Rpb25hbGl0eSI6WyJBbmFseXNpcy8qIiwiVHJhaW5pbmcvKiIsIk1vZGVscy8qIl0sImlhdCI6MTYyMjYyNzIzM30.Vv_KymEKnrFq5W1XbcufSuLTIr8hk_QBbbT8z9yBST-EiP_-dM3RnyCESfUWr35EHav9UVc9pwr84WNIxffQYnXRuglBtspy0UfBlYvmSNNdWUczn2--WT90VmvujbtFnMp70hry_MTZe-sKBGxE80Br_UuDEmH2gVFim8-ZAu2JAW--bxur0dT59RPpA1DXvw-d_q95_vevjwYvx7uC-9YskMm0g13OFBnwmdj1DGOnjGsWqQ4Z4HSX6B6ctTm_a0Lgc4llwDrA3Ppck05SSgYMIzyUGZDtLrH-Vp-qiCMnd5cplqrUyqZnroUFCjgbT_GuVkdRkxnUpvCQeecWFppg7-CwnYc5gfoMhq5LnJxLgcfQQQ9vBSp1RZPsKBhZlAGUfUoMWFEDa0LBBq6p7zg90D1_G-1LjeUI2N6roGGRdPl9FTKdLklQw2g5RTmb9ik5yTK-VcxLJBSFHhigTZzrktOR1d1akbOVB38TUjcuSQvOdnCVO_-FKyhYtTogSaxth4yMnGHMNuzMHIplW8A1y9Yni4jXzLMSSTV_T8YcirJvr-sVgZa4nUjEqHpMVn7S2Tywp6kd-c_OVEpiHH1ODqczqvtDAYFF6xCf4S8gKlk3CBsJFElzPMnFmLPIWl173mSGuH4beagVKJLFeS87yRINFAL7Nyfe2UJn6gc",
  • "message": "Successfully logged in.",
  • "status": "OK"
}

User Permissions

All endpoints related to users permissions.

Retrieve Permissions

User Permissions. Return user permissions attributes, including superuser and betauser permission.

Authorizations:
Bearer
path Parameters
user_id
required
integer

ID of the user

Responses

Response samples

Content type
application/json
{
  • "first_name": "John",
  • "last_name": "Doe",
  • "email": "john.doe@example.com",
  • "password": "badpassword"
}

Update Permissions

Update user Permissions. Use this endpoint to set and revoke superuser and betauser permission.

Authorizations:
Bearer
path Parameters
user_id
required
integer

ID of the user

Request Body schema: application/json
required
is_betauser
boolean

Beta User Status

is_superuser
boolean

Superuser Status

Responses

Request samples

Content type
application/json
{
  • "is_betauser": true,
  • "is_superuser": true
}

Response samples

Content type
application/json
{
  • "first_name": "John",
  • "last_name": "Doe",
  • "email": "john.doe@example.com",
  • "password": "badpassword"
}

User Product Keys

All User Product Keys endpoints.

Delete Key

Delete a key associated to a user

Authorizations:
Bearer
path Parameters
user_id
required
integer

ID of the user

key_id
required
integer

ID of the key

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List all product keys

List all product keys associated to a user

Authorizations:
Bearer
path Parameters
user_id
required
integer

ID of the user

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add Key

Add a product key to a user

Authorizations:
Bearer
path Parameters
user_id
required
integer

ID of the user

Responses

Response samples

Content type
application/json
{
  • "id": 1,
  • "created": "2019-08-24T14:15:22Z",
  • "name": "This is my key",
  • "token": "f9bf78b9a18ce6d46a0cd2b0b86df9da"
}

User Confirmations

All endpoints related to user confirmations.

Workspaces

All endpoints related to workspaces. Workspaces contains all your projects and related data. They were previously called "Organizations"

Accept an invitation.

The data necessary to create a new user should be sent. If the user is already a member of Studio, only the membership will be added.

Authorizations:
Bearer
Request Body schema: application/json
required
token
required
string

Validation token

first_name
string

User's first name

last_name
string

User's last name

email
string <email>

User's email. Should be unique

password
required
string <password> >= 8 characters

User's password

Responses

Request samples

Content type
application/json
{
  • "token": "f9bf78b9a18ce6d46a0cd2b0b86df9da",
  • "first_name": "John",
  • "last_name": "Doe",
  • "email": "john.doe@example.com",
  • "password": "badpassword"
}

Create a new workspace.

Authorizations:
Bearer
Request Body schema: application/json
required
name
required
string

The name of the workspace

description
string

the description of the workspace

Responses

Request samples

Content type
application/json
{
  • "name": "My first workspace",
  • "description": "This is my first workspace to test wonderful models"
}

Response samples

Content type
application/json
{
  • "id": 5,
  • "name": "My first workspace",
  • "description": "This is my first workspace to test wonderful models",
  • "created": "2019-08-24T14:15:22Z",
  • "is_beta": true,
  • "is_read_only": true
}

Resend an invitation.

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

invitation_id
required
integer

ID of the invitation

Responses

List all pending invitations

List all pending invitations.

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Invite users to a workspace.

Invite users to a workspace. All invited users will have the same defined permission.

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

Request Body schema: application/json
required
role
required
string
Enum: "USER" "VIEWER" "ANNOTATOR" "ADMIN" "MANAGER"

User's role

emails
required
Array of strings <email> [ items <email > ]

List of emails

Responses

Request samples

Content type
application/json
{
  • "role": "USER",
  • "emails": [
    ]
}

Response samples

Content type
application/json
{
  • "not_invited": [
    ],
  • "invitations": [
    ]
}

Update users role

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

permission_id
required
integer

ID of the permission to change

Request Body schema: application/json
required
role
required
string
Enum: "USER" "VIEWER" "ANNOTATOR" "ADMIN" "MANAGER"

User's role

Responses

Request samples

Content type
application/json
{
  • "role": "USER"
}

Remove a user from a workspace.

A workspace must have at least one manager

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

permission_id
required
integer

ID of the permission to remove

Responses

List all users' permissions from a workspace

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Add a new user to a workspace.

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

Request Body schema: application/json
required
role
required
string
Enum: "USER" "VIEWER" "ANNOTATOR" "ADMIN" "MANAGER"

User's role

user_id
required
integer

The ID of the user

Responses

Request samples

Content type
application/json
{
  • "role": "USER",
  • "user_id": 50
}

Response samples

Content type
application/json
{
  • "id": 5,
  • "role": "USER",
  • "user": "John Doe"
}

Cancel an invitation.

The invitation will be removed and the link user received by email won'tbe valid anymore.

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

invitation_id
required
integer

ID of the invitation

Responses

Set a workspace as the default one.

Default workspaces will come pre-selected on Studio

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

Request Body schema: application/json
required
default
required
boolean

If the workspace is the default one

Responses

Request samples

Content type
application/json
{
  • "default": true
}

List all users of a workspace

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a workspace.

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

Responses

Response samples

Content type
application/json
{
  • "id": 5,
  • "name": "My first workspace",
  • "description": "This is my first workspace to test wonderful models",
  • "created": "2019-08-24T14:15:22Z",
  • "is_beta": true,
  • "is_read_only": true
}

Change a workspace.

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

Request Body schema: application/json
required
name
required
string

The name of the workspace

description
string

the description of the workspace

Responses

Request samples

Content type
application/json
{
  • "name": "My first workspace",
  • "description": "This is my first workspace to test wonderful models"
}

Response samples

Content type
application/json
{
  • "id": 5,
  • "name": "My first workspace",
  • "description": "This is my first workspace to test wonderful models",
  • "created": "2019-08-24T14:15:22Z",
  • "is_beta": true,
  • "is_read_only": true
}

Deactivates a workspace.

Authorizations:
Bearer
path Parameters
organization_id
required
integer

ID of the workspace

Responses

Response samples

Content type
application/json
{
  • "id": 5,
  • "name": "My first workspace",
  • "description": "This is my first workspace to test wonderful models",
  • "created": "2019-08-24T14:15:22Z",
  • "is_beta": true,
  • "is_read_only": true
}