ICVA API Integration Guide
- The Itvue Team
- Jul 1
- 4 min read
Author: Ermias Teffera, (CCIE# 70053)
Introduction
Modern network environments require more than just manual administration. As infrastructures continue to grow, automation becomes increasingly important for improving efficiency, consistency, and scalability.
The InControl Virtual Appliance (ICVA) provides a REST API that enables administrators to securely interact with the platform, automate repetitive tasks, retrieve information, and integrate ICVA with external applications.
This guide walks through the initial setup required to authenticate with the ICVA API and prepare a Python development environment for building future automation workflows.
Why Use the ICVA API?
The ICVA REST API provides administrators with the ability to:
Automate repetitive administrative tasks
Retrieve device and organizational information
Build custom reports
Integrate ICVA with third-party applications
Reduce manual configuration efforts
Develop scalable automation using Python
Rather than manually performing routine tasks through the web interface, administrators can leverage the API to create repeatable and reliable automation.
Prerequisites
Before beginning, ensure you have:
Administrative access to the ICVA Web Portal
Access to the ICVA API documentation
Python installed
Command Prompt (Windows) or Terminal (Linux/macOS)
Step 1 – Create an API Client
Open a web browser and navigate to:
Log in with an administrator account.
Navigate to:
Profile → Applications
Select:
New Client
Provide the following information:
Field | Value |
Name | Test-Name |
Website |
Click Save.
After the application has been created, ICVA generates a unique Client ID.
Record this value for future use.
Step 2 – Obtain the Client Secret
Navigate back to:
Profile → Applications
Locate the application you created.
Select:
Show Secret
Record both:
Client ID
Client Secret
These credentials are required for API authentication.
Step 3 – Generate an API Access Token
Open the API documentation:
Locate the OAuth Client Credentials example.
Copy the provided cURL command into Notepad.
Modify the command by:
Adding -k immediately after curl
Replacing the Client ID
Replacing the Client Secret
Note: Ensure there are no unintended spaces within the cURL authentication string.
Open Command Prompt.
Paste the updated cURL command and execute it.
If the authentication is successful, ICVA returns an Access Token similar to the following:
{
"access_token": "xxxxxxxxxxxxxxxx",
"token_type": "Bearer",
"expires_in": 3600
}
This token will be used to authenticate all subsequent API requests.
Step 4 – Prepare the Python Environment
Install Python Enviroment if it is not already installed.
Python
What is it?
Python is a high-level programming language widely used for network automation, scripting, cybersecurity, cloud computing, and data analysis.
Why is it required?
Python provides the foundation for communicating with the ICVA REST API, processing returned data, and automating repetitive administrative tasks.
Benefits
Easy to learn
Large automation ecosystem
Cross-platform support
Excellent REST API integration
Extensive community support
Open Command Prompt and install the required packages.
pip install jupyterlab
JupyterLab
What is it?
JupyterLab is a browser-based interactive development environment for Python.
Instead of creating and executing traditional Python files, JupyterLab allows administrators to write and execute code one section at a time.
Why is it required?
When learning or developing ICVA API automation, JupyterLab makes it easy to test API calls, troubleshoot authentication, and immediately view returned data.
Benefits
Interactive code execution
Excellent for learning APIs
Easy debugging
Built-in documentation and notes
Ideal for automation development
pip install requests
What is it?
Requests is Python’s most popular HTTP library.
It allows Python scripts to send GET, POST, PUT, PATCH, and DELETE requests to REST APIs.
Why is it required?
The ICVA REST API communicates over HTTPS.
Requests handles the authentication, sends API requests, and receives responses from the ICVA server.
Benefits
Simple syntax
Secure HTTPS communication
Easy authentication handling
Supports JSON data
Industry standard for REST APIs
pip install pandas
Pandas
What is it?
Pandas is a powerful data analysis and reporting library.
It organizes information into tables known as DataFrames, making large amounts of data much easier to manipulate.
Why is it required?
Many ICVA API responses contain hundreds or thousands of records.
Pandas simplifies filtering, sorting, searching, and exporting this information into useful reports.
Benefits
Organizes JSON data
Creates structured tables
Filters and sorts information
Exports to Excel and CSV
Simplifies reporting and analytics
pip install urllib3
urllib3
What is it?
urllib3 is a low-level HTTP communication library that provides secure and reliable HTTPS connectivity.
Many Python networking libraries—including Requests—are built on top of urllib3.
Why is it required?
urllib3 provides the underlying secure communication layer used when connecting to the ICVA REST API over HTTPS.
Benefits
Secure TLS/SSL communication
Reliable connection handling
Automatic retry capabilities
Efficient HTTP performance
Foundation for many Python networking libraries
These packages provide:
JupyterLab – Interactive Python development
Requests – REST API communication
Pandas – Data processing and reporting
urllib3 – Secure HTTP communications
Note: The Python io module is included with Python and does not require installation.
How These Components Work Together

Step 5 – Launch JupyterLab
After installing the required packages, launch JupyterLab.
Open Command Prompt and run:
jupyter lab
Your default web browser will automatically open the JupyterLab interface.
Note: JupyterLab must be started each time the workstation is rebooted by executing the same command.
Benefits of Using the ICVA API
Implementing automation through the ICVA REST API offers several advantages:
Faster administrative operations
Reduced human error
Consistent configuration management
Easier integration with enterprise tools
Improved reporting capabilities
Simplified device lifecycle management
Whether managing a handful of appliances or a large deployment, API-driven automation significantly reduces administrative overhead.
Best Practices
To maintain a secure and reliable automation environment:
Protect Client IDs and Client Secrets.
Never embed credentials directly into production scripts.
Store authentication information securely.
Use HTTPS for all API communications.
Rotate API credentials periodically.
Validate scripts in a lab environment before production deployment.
Conclusion
The ICVA REST API provides a powerful framework for automating network administration and integrating management functions into custom workflows. By creating an API client, generating an authentication token, and preparing a Python development environment, administrators can begin building automation that saves time, improves consistency, and enhances operational efficiency.
This guide establishes the foundation for future automation projects. In upcoming articles, we’ll explore practical examples such as retrieving appliance inventories, onboarding devices, modifying configurations, collecting operational statistics, and generating automated reports using Python.

Comments