Skip to main content

API Client (python)

Python API clients help you perform Labii API calls, such as authentication, get, patch, post, and delete.

Usage ​

  1. Install the Labii SDK
pip install labii-sdk
  1. Import the package
from labii_sdk.api_client import APIObject
  1. Initial the API object
api = APIObject()

Initial API ​

During API initiation, the following parameters can be customized:

  • base_url, the server base url, defaults to https://www.labii.dev. If you are using a different data center, make sure to change the base_url setting.
  • api_key, the API Key to get authenticated.
  • organization__sid, your organization sid. You can find it by logging into Labii (https://www.labii.com/login/) and going to Side menu -> Settings -> Organization -> Sid
api = APIObject(
base_url="https://www.labii.dev",
api_key="xxx"
organization__sid=None
)

Get list URL ​

Use this function to create a url for list view.

  • app and model (required), the app and object to limit the type of data in Labii. Learn more at https://docs.labii.com/api/overview#objects.
  • level (default to "organization"), the scope of records to retrieve. Learn more at https://docs.labii.com/api/overview#levels
  • sid (default to "organization__sid"), the static and encrypted Labii object id. It has to match with level.
  • serializer (default to "list"), the scope of fields of the return data. Learn more at https://docs.labii.com/api/overview#serializer
    • name, return only sid and name, very fast
    • list, return selected fields of the objects, fast
    • detail, return all fields of the objects, slow
  • query (optional), additional query to limit the results.
url = api.get_list_url(
app="tables",
model="section",
level="organization",
sid="xxx",
serializer='list',
query="is_archived=false"
)

# It can be simplified as:
url = api.get_list_url(
app="tables",
model="section"
)

Get detail URL ​

Use this function to create a url for detail view.

  • app and model (required), same as above
  • sid (required), the sid of the object.
  • query (optional), passing additional parameters during querying.
url = api.get_detail_url(
app="tables",
model="section",
sid="xxx",
query=""
)

Get headers ​

Return necessary headers for API functions.

  • is_authorized (default to True), To use a header without authentication information, set is_authorized=False.
headers = api.get_headers(
is_authorized=True
)

Login ​

Get authentication token.

  • api.login()
    • The user will be prompted to provide an email/password if they have not previously provided a credential.
    • When an email or password has already been provided, you will receive a new token.
  • api.login(email=xxx, password=xxx)
    • Login with a provided email/password.

Check token ​

Labii enforces the Excessive Session Timeout seurity (U.S. CNSS - CNSSI No. 1253 section AC-11). Your account will be logged out after 30 minutes of inactivity. Call this function to generate a new token if your application is continuously running or is performing queries after 30 minutes of inactivity.
Note: For the function to work, you must run api.login() first.

labii.check_token()

Post ​

A function to do POST for labii api

  • url (str), the URL to post. Generate a standard URL with get_list_url.
  • data (dict), a JSON dict data to post. Learn more at https://docs.labii.com/api/methods
  • is_authorized (default to True), whether authorized tokens should be used.
api.post(
url="xxx",
data={},
is_authorized=True
)

Patch ​

A function to do PATCH for labii api

  • url (str), the URL to post. Generate a standard URL with get_detail_url.
  • data (dict), a JSON dict data to post. Learn more at https://docs.labii.com/api/methods
  • is_authorized (default to True), whether authorized tokens should be used.
api.patch(
url="xxx",
data={},
is_authorized=True
)

Get ​

A function to do GET for labii api.

  • url (str), the URL to post. Generate a standard URL with get_list_url or get_detail_url.
  • all_pages (bool, default=False), Whether all pages should be returned. When False, only return the data for the first page. Only applies to list views.
  • is_authorized (default to True), whether authorized tokens should be used.
api.get(
url="xxx",
all_pages=False
is_authorized=True
)

Delete ​

A function to do DELETE for labii api.

  • url (str), the URL to post. Generate a standard URL with get_detail_url.
  • is_authorized (default to True), whether authorized tokens should be used.
api.delete(
url="xxx",
is_authorized=True
)