Novant

Documentation

Sign in

Overview

NovantClient

All interaction with the Novant API goes through a single NovantClient instance. Create one with your API key and reuse it across calls:

from novant import NovantClient

client = NovantClient(api_key="ak_xxx")

List Types

Methods that return collections, such as assets(), points(), and values(), return typed list objects like AssetList, PointList, and ValueList. These support standard Python iteration and len():

assets = client.assets()

# number of assets
print(len(assets))

# iterate over results
for asset in assets:
  print(asset.name)

Each list type also includes the proj_id of the project it came from:

print(client.assets().proj_id)   # 4821

Each list type also exposes a named getter to look up a single item by ID, returning None if not found:

asset  = client.assets().asset("a.1")
space  = client.spaces().space("sp.3")
zone   = client.zones().zone("z.2")
source = client.sources().source("s.2")
point  = client.points(source_id="s.2").point("s.2.4")

Point IDs

Points in Novant are addressed using a dotted ID scheme. A point ID like s.2.4 refers to source 2, point 4. Source IDs (s.2) and point IDs (s.2.4) are used throughout the API to scope queries:

# Read values for all points on source s.2
client.values(source_id="s.2")

# Read trends for specific points
client.trends(point_ids=["s.2.4", "s.2.5"], date="2026-03-09")

Project IDs

Every project method accepts an optional proj_id keyword argument naming the project to act on. A project key does not need proj_id, since the key is bound to its project. An organization key requires proj_id on every project method, either per call or as a default on the client:

client = NovantClient(api_key="ak_org_xxx")
client.zones(proj_id=4821)

For more on organization keys, see Organization.