API Integration

 

All features offered by the Annotation Lab via UI are also accessible via API. The complete API documentation is available on the SWAGGER page of the Annotation Lab. This can be accessed via UI by clicking on the documentation icon on the left lower side of the screen as shown in the image below:

Concrete query examples are provided for each available endpoint.

Example of creating a new project via API

Get Client Secret

Get CLIENT_ID and CLIENT_SECRET by following the steps illustrated in the video.

Annotation Lab: Collect the Client Secret

Call API endpoint

For creating a new project via API you can use the following python script.

import requests
import json

# URL to Annotation Lab
API_URL = "https://123.45.67.89"
# Add user credentials
USERNAME = "user"
PASSWORD = "password"
# The above video shows how to get CLIENT_ID and CLIENT_SECRET
CLIENT_ID = "..."
CLIENT_SECRET = "..."

PROJECT_NAME = "sample_project"


IDENTITY_MANAGEMENT_URL = API_URL + "/auth/"
IDENTITY_MANAGEMENT_REALM = "master"
HEADERS = {
    "Host": API_URL.replace("http://", "").replace("https://", ""),
    "Origin": API_URL,
    "Content-Type": "application/json",
}


def get_cookies():
    url = f"{IDENTITY_MANAGEMENT_URL}realms/{IDENTITY_MANAGEMENT_REALM}/protocol/openid-connect/token"
    data = {
        "grant_type": "password",
        "username": USERNAME,
        "password": PASSWORD,
        "client_id": CLIENT_ID,
        "client_secret": CLIENT_SECRET,
    }
    auth_info = requests.post(url, data=data).json()
    cookies = {
        "access_token": f"Bearer {auth_info['access_token']}",
        "refresh_token": auth_info["refresh_token"],
    }
    return cookies


def create_project():
    # GET THIS FROM SWAGGER DOC
    url = f"{API_URL}/api/projects/create"
    data = {
        "project_name": PROJECT_NAME,
        "project_description": "",
        "project_sampling": "uniform",
        "project_instruction": "",
    }
    r = requests.post(
        url, headers=HEADERS, data=json.dumps(data), cookies=get_cookies()
    )
    return r

create_project()

Last updated