Skip to main content

Nifi-Python-Api: A convenient Python wrapper for the Apache NiFi Rest API

Project description


Nifi-Python-Api: A convenient Python wrapper for the Apache NiFi Rest API

Release Status Build Status Documentation Status Python Updates test coverage License


This package provides pythonic calls for common NiFi tasks and CICD/SDLC integrations
These are implemented by replicating the action of the same task in the GUI and surfacing the underlying NiFi Data structures and calls wherever possible, to retain UX parallelism for the user


The easiest way to install NiPyApi is with pip:

# in bash
pip install nipyapi

Then import and use the modules:

# in python
from nipyapi.canvas import *
from nipyapi.templates import *
from nipyapi.system import *
>['__builtins__', 'all_templates', 'create_pg_snippet', 'create_template', 'delete_process_group', 'delete_template', 'deploy_template', 'export_template', 'get_cluster', 'get_flow', 'get_nifi_version_info', 'get_node', 'get_process_group', 'get_process_group_status', 'get_root_pg_id', 'get_system_diagnostics', 'get_template_by_name', 'list_all_process_groups', 'recurse_flow', 'schedule_process_group', 'sys', 'upload_template']


For more information on Apache NiFi, please visit
For Documentation on this package please visit

Version Support

This project leverages the nifi-python-swagger-client to maintain version compatibility with NiFi releases
Currently we are testing against NiFi version 1.2.x
If you require a different version please raise an issue


Python 2.7 or 3.6 supported, though other versions may work


This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template

Inspired by the equivalent Java client maintained over at hermannpencole/nifi-config

The swagger 2.0 compliant client auto-generated using the Swagger Codegen project, and then cleaned / bugfixed by the authors


0.6.1 (2018-01-04)

  • Added requested functions to find and list Processors on the canvas
  • Fixed list all process groups to include the root special case properly

0.6.0 (2017-12-31)

  • Refactored many functions to use native NiFi datatypes instead of generics
  • Standardised several call names for consistency
  • Updated examples
  • Created additional tests and enhanced existing to capture several exceptions

0.5.1 (2017-12-07)

  • Added template import/export with working xml parsing and tests
  • Added a ton of testing and validation steps
  • Cleared many todos out of code by either implementing or moving to todo doc

0.5.0 (2017-12-06)

  • migrated swagger_client to separate repo to allow independent versions
  • refactored wrapper Classes to simpler functions instead
  • cleaned up documentation and project administrivia to support the split

0.4.0 (2017-10-29)

  • Added wrapper functions for many common Template commands (
  • Added new functions for common Process Groups commands (
  • Significant test framework enhancements for wrapper functions
  • Many coding style cleanups in preparation for filling out test suite
  • Added linting
  • Cleaned up docs layout and placement within project
  • Integrated with TravisCI
  • Dropped Python2.6 testing (wasn’t listed as supported anyway)
  • Updated examples and Readme to be more informative

0.3.2 (2017-09-04)

  • Fixed bug where tox failing locally due to coveralls expecting travis
  • Fixed bug where TravisCI failing due to incorrectly set install requirements
  • Fixed bug where swagger_client not importing as expected

0.3.1 (2017-09-04)

  • Fixed imports and requirements for wheel install from PyPi

0.3.0 (2017-09-04)

  • Created basic wrapper structure for future development
  • Added simple usage functions to complete todo task
  • Added devnotes, updated usage, and various sundry other documentation cleanups
  • Split tests into subfolders for better management and clarity
  • Added Coveralls and License Badge
  • Removed broken venv that ended up in project directory, added similar to ignore file
  • Changed default URL in the configuration to default docker url and port on localhost

0.2.1 (2017-08-26)

  • Fixed up removal of leftover swagger client dependencies

0.2.0 (2017-08-25)

  • Merge the nifi swagger client into this repo as a sub package
    • Restructured tests into package subfolders
    • Consolidate package configuration
    • Setup package import structure
    • Updated usage instructions
    • Integrate documentation

0.1.2 (2017-08-24)

  • Created basic integration with nifi-python-swagger-client

0.1.1 (2017-08-24)

  • Cleaned up base project and integrations ready for code migration

0.1.0 (2017-08-24)

  • First release on PyPI.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
nipyapi-0.6.1-py2.py3-none-any.whl (13.2 kB) Copy SHA256 hash SHA256 Wheel py2.py3
nipyapi-0.6.1.tar.gz (22.2 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page