top of page
Untitled-2-01_edited_edited.png

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.

 
 
 

Recent Posts

See All
ITvue Networks Becomes a Peplink Silver Partner

Author: Ermias Teffera, (CCIE# 70053) We are proud to announce that ITvue Networks is now an official Peplink Silver Partner. An exciting milestone that reflects our continued commitment to delivering

 
 
 

Comments


bottom of page