Setup
istari-digital-client is the Python interface to the Istari Digital Platform. This page installs the package and builds a configured Client — the entry point for every other example in this section.
To create your first System end to end, work through Python Client 201 — Your first System and come back here when you start writing your own code.
Requirements
- Python 3.10 or newer. Supported versions are listed on the PyPI project description.
istari-digital-client13.0.0, the client released with this platform version — see Release notes. The examples below install exactly that version.- A Key from the web app — see Credentials below.
Installation
Pick whichever fits how you already work. All three install the same package into an isolated environment.
pip, in a virtual environment:
python -m venv .venv && source .venv/bin/activate
pip install "istari-digital-client==13.0.0"
uv, in a virtual environment:
uv venv && source .venv/bin/activate
uv pip install "istari-digital-client==13.0.0"
uv, as a project — when the code is a repository rather than a one-off script:
uv init my-analysis && cd my-analysis
uv add "istari-digital-client==13.0.0"
uv run python analysis.py
uv add records the dependency in pyproject.toml and pins it in uv.lock, so a colleague reproduces your environment with uv sync. uv run executes in that environment without activating it.
On Windows, activate with .venv\Scripts\activate.
Credentials
In the web app, open avatar → Developer Settings. Click Generate Key, then Download credentials — the key is shown once. Copy the API URL from the Endpoints section on the same page. Details: Developer Settings — Keys.
Put both in a .env file beside your script:
ISTARI_DIGITAL_API_URL=<API URL from Endpoints>
ISTARI_CLIENT_IDENTITY_SERVICE_SECRET_FILE=/absolute/path/to/key.json
ISTARI_DIGITAL_IDENTITY_SERVICE_ENABLED=true
Note the ISTARI_CLIENT_ prefix on the key path — it is the only name the client reads for the key. ISTARI_DIGITAL_IDENTITY_SERVICE_ENABLED defaults to off, so a key that is set but not enabled is ignored and the first call fails as unauthenticated.
Keep .env and the key file out of git, prompts, and chat logs.
Initialize the client
Configuration() reads those names from the environment, so the credential stays out of your code:
from dotenv import load_dotenv
from istari_digital_client import Client, Configuration
load_dotenv() # copies .env into the environment
client = Client(Configuration())
python-dotenv installs with the client, so there is nothing else to add. Point load_dotenv("istari.env") at another filename when you already keep credentials elsewhere — the tutorials use istari.env.
Passing the values in code
Constructor arguments override the environment. Use them when the values come from a secret manager, or when one process talks to more than one instance:
from istari_digital_client import Client, Configuration
client = Client(Configuration(
digital_api_url="https://api.your-instance.istari.app",
identity_service_secret_file="/absolute/path/to/key.json",
identity_service_enabled=True,
))
Identity Service secrets should only be used when the Identity Service is enabled.
Personal Access Tokens
PATs are deprecated as of the July 2026 release and have been superseded by Keys. Support for PATs will be removed from the platform in a future release.
See the PAT → Key Exchange guide to migrate to keys.
A PAT uses two names instead of the three above — ISTARI_REGISTRY_URL and ISTARI_REGISTRY_AUTH_TOKEN in .env, or the matching arguments:
client = Client(Configuration(
registry_url="https://your-instance.istari.digital",
registry_auth_token="your-personal-access-token",
))
The Registry URL is in the Endpoints section of Developer Settings; see Personal Access Tokens for the token itself.
Next steps
- Patterns — the calls behind common workflows.
- Branching and change requests — commit Resources to a branch and merge a change request.
- Folders in the Python client — arrange a System's tree from Python.
- V3Client quick start — the unified resource API.