Noveum API client
Install the noveum-sdk platform API client, make a read-only request, and keep it separate from noveum-trace instrumentation.
Use noveum-sdk when trusted server-side Python code needs to call the Noveum
platform API. Use the separate noveum-trace package to instrument an application and
send trace telemetry.
The published noveum-sdk==1.1.0 wheel was clean-installed and imported with Python
3.12 on August 10, 2026. Its package metadata requires Python 3.10 or later. The
installed module name is noveum_api_client, not noveum_sdk.
The published package was also checked for client construction, read-only request
shape, response shape, and transport-error behavior with httpx.MockTransport. Those
checks do not execute the live-request fence below, make a live Noveum API request, or
validate organization data or credentials. Validate the client with your pinned
application dependencies before rollout.
Install and import
Create or activate a virtual environment, then install the pinned package:
python -m pip install "noveum-sdk==1.1.0"Verify the two public client imports without printing a credential:
python -c "from noveum_api_client import Client, NoveumClient; print('imports ok')"Make a read-only request
Store an organization API key in a server-side environment or secret manager. The following live-request fragment lists at most five datasets and closes the underlying HTTP client even when the request fails. Validate it against your organization's API in a non-production environment before using it in automation:
import os
import httpx
from noveum_api_client import NoveumClient
def main() -> None:
with NoveumClient(api_key=os.environ["NOVEUM_API_KEY"]) as client:
try:
result = client.list_datasets(limit=5)
except httpx.HTTPError as error:
raise RuntimeError("The Noveum API request could not be completed") from error
status_code = int(result["status_code"])
if status_code >= 400:
raise RuntimeError(f"Noveum API returned HTTP {status_code}")
print(f"Dataset request completed with HTTP {status_code}")
if __name__ == "__main__":
main()Run it after setting the key:
export NOVEUM_API_KEY="your-noveum-api-key"
python list_datasets.pyThe example is non-destructive. It sends GET /api/v1/datasets with an
Authorization: Bearer <key> header.
Read the response and errors
The high-level 1.1.0 methods return a dictionary with these keys:
| Key | Shape |
|---|---|
status_code | An HTTPStatus value; convert it with int(...) for numeric comparisons |
data | The generated client's parsed response, or None when that operation has no generated response model |
headers | A plain dictionary of response headers |
Version 1.1.0 does not raise automatically for an HTTP error response in these
high-level methods, so check status_code. Network, TLS, timeout, and connection
failures surface as httpx.HTTPError subclasses. Do not log the client object, request
headers, or exception details in a way that could expose the API key.
Keep platform access separate from tracing
| Task | Package or interface |
|---|---|
| Call the Noveum platform API from server-side Python | noveum-sdk and noveum_api_client |
| Instrument an application and send traces | noveum-trace |
| Inspect the HTTP contract or use another language | OpenAPI REST reference |
An API key's access follows its assigned organization role. Review roles and permissions, start with read-only calls, and keep keys out of browser code, mobile apps, repositories, screenshots, logs, and shared notebooks.
Troubleshooting
ModuleNotFoundError: noveum_api_client: confirm the active interpreter is the same one used forpython -m pip install "noveum-sdk==1.1.0".401or403: confirm the key is current, belongs to the intended organization, and has permission for the requested resource.dataisNoneafter a successful response: the generated 1.1.0 operation may not define a parsed response model. Usestatus_codeand the REST reference to confirm the endpoint contract.