Install & Compatibility
Where this runs
tested against v2.0.7 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.000s · 30.2MB
glibcpy 3.10–3.910 runs
installs and imports cleanly · install 3.5s · import 0.000s · 30MB
28MB installed
● package 28MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
ApiClient
✓ import qase
✗ from qase import ApiClient
This quickstart demonstrates how to initialize the Qase API V2 client, authenticate using an API token (preferably from environment variables), and make a basic call to list projects. It explicitly highlights and corrects the common pitfall of the default API host.
import os
from qase_api_v2_client import ApiClient, Configuration
from qase_api_v2_client.api.projects_api import ProjectsApi
from qase_api_v2_client.exceptions import ApiException
# Configure API key authentication
configuration = Configuration()
configuration.api_key['TokenAuth'] = os.environ.get('QASE_API_TOKEN', 'YOUR_QASE_API_TOKEN_HERE')
# IMPORTANT: The client is named 'v2-client' but its default host is 'v1'.
# Explicitly set the host to the Qase API V2 endpoint.
configuration.host = os.environ.get('QASE_API_BASE_URL', 'https://api.qase.io/v2')
# Create an instance of the API client
api_client = ApiClient(configuration)
# Create an instance of a specific API service, e.g., ProjectsApi
projects_api = ProjectsApi(api_client)
try:
# Example: List projects
response = projects_api.get_projects()
print(f"Successfully connected to Qase API V2. Found {response.total} projects.")
if response.entities:
print(f"First project: {response.entities[0].title} (Code: {response.entities[0].code})")
except ApiException as e:
print(f"Error calling Qase API: {e.status} - {e.body}")
if e.status == 401:
print("Please check your QASE_API_TOKEN and ensure it's valid for the v2 API.")
elif e.status == 404 and 'v1' in configuration.host:
print("Consider changing QASE_API_BASE_URL to 'https://api.qase.io/v2'.")
except Exception as e:
print(f"An unexpected error occurred: {e}")
Debug
Known issues
gotchaThe `qase-api-v2-client` library, despite its name, defaults its `Configuration.host` to `https://api.qase.io/v1`. To use the Qase API V2, you *must* explicitly set `configuration.host = 'https://api.qase.io/v2'` or configure `QASE_API_BASE_URL` environment variable.fixSet `configuration.host = 'https://api.qase.io/v2'` or ensure `os.environ['QASE_API_BASE_URL'] = 'https://api.qase.io/v2'` before initializing the `Configuration`.
affects: All versions up to 2.0.6
breakingMigrating from a Qase API v1 client to `qase-api-v2-client` will involve significant breaking changes. API endpoints, request/response models, and method signatures are different, reflecting the V2 API specification.fixReview the Qase API V2 documentation and the `qase-api-v2-client` source code/examples for the new API structure and model definitions. Your existing V1 API calls will not work directly.
affects: All versions (when upgrading from V1 client)
gotchaThis library is part of the `qase-python` monorepo. While it is a standalone install, updates to shared components (like `qase-python-commons`) or new API versions may prompt updates to this client, potentially changing method signatures or data models.fixAlways check the release notes on GitHub for `qase-api-v2-client` specifically and the overall `qase-python` project when upgrading to new major or minor versions to anticipate changes.
affects: All versions
Upgrade
Version history
2.0.7latest on PyPI · released May 12, 2026
Audit
Dependencies
qase-python-commonsrequiredProvides shared models and utilities used by the Qase Python ecosystem.
urllib3requiredHTTP client for making API requests.
pydanticrequiredUsed for data validation and settings management.