Export Instruments

Export instrument level data so that you can consume the data in your own internal applications

Export instruments and their data

POST https://api.annolab.ai/v1/export/instruments

Export all information related to instruments that meet filter criteria. Can include annotation data, source files, and tags.

Headers

Request Body

{
    'message': "Export Request Successful. To check export status make a GET request at exportStatusUrl in response body",
    'exportStatusUrl': "https://api.annolab.ai/v1/export/status/341",
    'exportJob': {'id': 341, 'status': "initialized", 'projectId': 148, 'isInstrumentsExport': true}
}

This code shows how to request an instrument export, then download the export contents.

import requests
import time

ANNO_LAB_API_KEY = 'XXXXXXX-XXXXXXX-XXXXXXX-XXXXXXX'

exportRequestBody = {
  'projectOwner': 'Group Name owning project',
  'projectName': 'Example Project Name',
  'tagFilter': {
    'includeTypes': ["Airframe Inventory"],
    'excludeTypes': ["Engine Inventory"],
  },
  'sourceFilter': "Test_PDF.pdf",
  'includeFiles': True
}

headers = {
  'Authorization': 'Api-Key '+ANNO_LAB_API_KEY,
}

url = 'https://api.annolab.ai/v1/export/instruments'

response = requests.post(url, headers=headers, json=exportRequestBody, stream=True)

status_url = response.json()['exportStatusUrl']
export_status = response.json()['exportJob']['status']

if response.status_code == 201:
  while export_status not in ['finished', 'errored']:
    response = requests.get(status_url, headers=headers).json()
    print(response)
    export_status = response['status']
    if export_status not in ['finished', 'errored']:
      time.sleep(15)
  
  if export_status == 'finished':
    signed_url = response['downloadUrl']
    download_response = requests.get(signed_url, stream=True)
    export_file_name = 'example_export.zip'
    if download_response.status_code == 200:
      with open(export_file_name, 'wb') as f:
        for chunk in download_response.iter_content(1024):
          f.write(chunk)
    print("Export download finished see: ", export_file_name)
    

Example Export Format

Once an export is completed, you will see a zip file on your file system

Opening the zip file will reveal one .json (jsonlines file) and a folder named pdfs (if you specified includeFiles: true in your export request)

Exported instrument pdfs will have a name of the form <Instrument Type>_<page start>-<page end>_<instrument id>.pdf

The instruments.json file will contain json lines of Instrument Objects

Last updated