--- title: "The CTERA SDK" slug: "the-ctera-sdk" updated: 2025-07-05T11:43:21Z published: 2025-07-05T11:43:21Z canonical: "kb.ctera.com/the-ctera-sdk" --- > ## Documentation Index > Fetch the complete documentation index at: https://kb.ctera.com/llms.txt > Use this file to discover all available pages before exploring further. # The CTERA SDK The CTERA SDK allows organizations to deploy and continuously manage file services using infrastructure as code (IaC), making it easy to automate global file system management with easy-to-use, clearly documented Python and Ansible interfaces. ![image.png](https://cdn.document360.io/30792387-cdcb-4791-aa14-94929bbcd3fe/Images/Documentation/image-WLWO7R1P.png?sv=2026-02-06&spr=https&st=2026-11-11T03%3A53%3A44Z&se=2026-11-11T04%3A53%3A44Z&sr=c&sp=r&sig=uKYcmviECdNQQ7mdrxKCzucTpF7YH%2B7hMzqSPDSckqI%3D) Using the CTERA SDK you can: - Rapidly deploy and manage hundreds of edge filers. - Make application development faster by consuming APIs and pre-built microservices. - Improve infrastructure monitoring through performance metrics. - Automate the creation of network shares and user ACLs. - Provision users and automate tools for user, folder, and storage quota management, as well as network shares creation. To access the SDK, including full documentation, go to [https://pypi.org/project/cterasdk/](https://pypi.org/project/cterasdk/). ## Examples The SDK includes examples. The following are a few samples: ### Portal Examples #### Logging In as Global Administrator ``` from cterasdk import * from getpass import getpass global_admin = GlobalAdmin('sdk.ctera.com') global_admin.login('administrator', getpass()) ``` #### Add a Portal User Account ``` global_admin.users.add( name='jsmith', email='jsmith@acme.com', first_name='John', last_name='Smith', password=getpass() ) ``` #### Create a Folder Group ``` global_admin.cloudfs.mkfg( name='FG-001', owner= portal_types.UserAccount('jsmith') ) ``` #### Create a Cloud Drive Folder ``` global_admin.cloudfs.mkdir( name='DRIVE-001', group='FG-001', owner= portal_types.UserAccount('jsmith') ) ``` ### Edge Filer Examples #### Create the First Edge Filer Administrator Account ``` from cterasdk import * from getpass import getpass filer = Gateway('vGateway-01db') filer.users.add_first_user('administrator', getpass()) ``` #### Connect to Active Directory ``` filer.directoryservice.connect('ctera.me', 'administrator', getpass()) ``` #### Connect to CTERA Portal (the Global File System) ``` device.services.connect('sdk.ctera.com', 'jsmith', getpass(), license='EV16') ``` #### Enable Caching Gateway ``` filer.cache.enable() filer.sync.unsuspend() ``` #### Pin a Sub-folder (Make Available Offline) ``` filer.cache.pin('users/John Smith/DRIVE-001/Documents') ``` ## Enabling the SDK for RESTful APIs Use the following to create a POSTMAN file that converts your SDK-based script to RESTful APIs: `cterasdk.settings.sessions.management.audit.postman.enabled = True` The POSTMAN file is downloaded to the PC. ### Example ``` import logging import cterasdk.settings from cterasdk import GlobalAdmin, CTERAException cterasdk.settings.sessions.audit.enabled = True cterasdk.settings.sessions.audit.filename = ‘postman-collection-filename.json' def main(): cterasdk.settings.sessions.management.ssl = False # for unstrusted or self-signed certificates with GlobalAdmin('192.168.27.108') as admin: status = admin.setup.get_setup_status() if status.wizard == "finish": print(status) print("Portal Already Initialized") quit() else: print(status) try: print("Initializing Portal") admin.setup.init_master('admin', 'admin@ctera.com', 'adminFirst', 'adminLast', 'password1!', 'ctera.me') except CTERAException as e: print(f' {e}, Portal Not Ready') quit() if __name__ == '__main__': main() ``` Also see [https://ctera-python-sdk.readthedocs.io/en/latest/UserGuides/Miscellaneous/Auditing.html](https://ctera-python-sdk.readthedocs.io/en/latest/UserGuides/Miscellaneous/Auditing.html).