Skip to main content

Python Nexthink

This Python library provides a small client for the Nexthink API.

Installation

pip install nexthink_api
# or
uv add nexthink_api

Source And Documentation

Quickstart

The recommended entrypoint for new code is NexthinkClient. The historical NxtApiClient remains available as a compatibility facade.

The examples below assume these environment variables are set:

export nexthink_tenant="your-tenant-name"
export nexthink_region="eu"
export client_id="your-client-id"
export client_secret="your-client-secret"

When running behind a corporate proxy with TLS inspection, for example Zscaler, call enable_truststore() before creating the client. This enables the operating system trust store for Nexthink HTTP calls without permanently patching Python SSL for the whole process.

import os

from nexthink_api import NexthinkClient, NxtRegionName, enable_truststore

enable_truststore()

client = NexthinkClient(
    os.environ["nexthink_tenant"],
    NxtRegionName(os.getenv("nexthink_region", NxtRegionName.eu.value)),
    client_id=os.environ["client_id"],
    client_secret=os.environ["client_secret"],
)

NQL Execute

The NQL query must already exist in Nexthink Administration as an API query.

import os

from nexthink_api import NxtNqlApiExecuteRequest

request = NxtNqlApiExecuteRequest(
    queryId=os.environ["nexthink_nql_query_id"],
)

response = client.nql.execute(request, version="v2")
print(response.rows)
print(response.data)

Enrichment

This example updates one custom device field for one device identified by name.

import os
from datetime import datetime

from nexthink_api import (
    MAX_ENRICHMENTS_PER_REQUEST,
    NxtEnrichment,
    NxtEnrichmentRequest,
    NxtField,
    NxtFieldName,
    NxtIdentification,
    NxtIdentificationName,
)

identification = NxtIdentification(
    name=NxtIdentificationName.DEVICE_DEVICE_NAME,
    value=os.environ["nexthink_enrichment_device_name"],
)
field = NxtField(
    name=NxtFieldName.CUSTOM_DEVICE,
    custom_value="nexthink_api_example",
    value=datetime.now().isoformat(),
)
enrichments = [NxtEnrichment(identification=[identification], fields=[field])]

if len(enrichments) > MAX_ENRICHMENTS_PER_REQUEST:
    raise ValueError("Too many enrichment objects for one request")

request = NxtEnrichmentRequest(
    domain=os.getenv("nexthink_enrichment_domain", "nexthink_api_example"),
    enrichments=enrichments,
)

response = client.enrichment.run(request)
print(response)

Data Management Device Deletion

The Data Management deletion API is asynchronous and destructive. Keep an explicit confirmation in scripts and validate identifiers before calling it.

import os

from nexthink_api import NxtDeviceEntry, NxtUidValidationMode

if os.getenv("confirm_data_management_delete") != "yes":
    raise SystemExit("Set confirm_data_management_delete=yes before deleting devices.")

devices = [
    NxtDeviceEntry(
        uid=os.environ["nexthink_device_uid"],
        name=os.environ["nexthink_device_name"],
    )
]

response = client.data_management.delete_devices(
    devices=devices,
    request_id=os.environ["nexthink_request_id"],
    uid_validation=NxtUidValidationMode.WARN,
)
print(response)

Examples

Runnable examples are available in examples/:

uv run python examples/nql_query_example.py
uv run python examples/enrichment_example.py
uv run python examples/data_management_device_deletion_example.py
uv run python examples/remote_actions_example.py
uv run python examples/campaigns_example.py
uv run python examples/workflows_example.py
uv run python examples/spark_handoff_example.py

API Classes

Most request and response classes are Pydantic models. Use:

  • model_dump() to serialize to a dictionary.
  • model_dump_json() to serialize to JSON.
  • model_validate(data) to build a model from serialized data.

Metadata

Release files for nexthink_api 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nexthink_api 0.1.1
File Size Uploaded
nexthink_api-0.1.1.tar.gz 912.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nexthink_api 0.1.1
File Interpreter ABI Platform
nexthink_api-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / nexthink_api-0.1.1.tar.gz

Download URL nexthink_api-0.1.1.tar.gz
Size 912.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1e91fd0bb8d24438e8acb13a10ecdab2fcbcea546c1db714a5198ac59f805128
BLAKE2b-256 checksum
How to use checksums
d23b008b1ac4624a0907a5068cf12d4d9fb54c335aff0f7b241b84cd36e9550b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / nexthink_api-0.1.1-py3-none-any.whl

Download URL nexthink_api-0.1.1-py3-none-any.whl
Size 95.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
22eb0e2d04aba76a0d4d7b4f394d6e1ef7555d876585109551c607a530196cbf
BLAKE2b-256 checksum
How to use checksums
e8d6d4b88b79b109940a4f4234b53a0bc589404f27ccdf4ac61638b96f1455b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page