Python client library for Proscia Concentriq Life Sciences API
Project description
Concentriq LS Python Client
Python client library for Proscia Concentriq Life Sciences API.
Features
- Complete API Coverage - V1, V2, and V3 APIs
- Multiple Auth Methods - API Key, Basic, JWT, Session
- Type Safe - Full type hints with mypy support
- Test Driven - Comprehensive test coverage
- Modern Python - Python 3.10+ with Pydantic v2
Quick Start
from concentriq import ConcentriqClient
from concentriq.auth import ApiKeyAuth
# Create authenticated client
with ConcentriqClient(
base_url="https://app.concentriq.com",
auth=ApiKeyAuth(api_key="your-api-key")
) as client:
# V1 API - Core resources
image_sets = client.v1.image_sets.list()
images = client.v1.images.list(filters={"imageSetId": 123})
# V2 API - User management
groups = client.v2.user_groups.list()
# V3 API - Modern features
studies = client.v3.studies.list()
seed = client.v3.image_sets.generate_seed(image_set_id=123)
Documentation
- Installation Guide - Setup, authentication, and configuration
- Usage Guide - Examples for V1, V2, and V3 APIs
- API Reference - Complete method documentation
Installation
pip install concentriq-ls-client
Or with uv:
uv add concentriq-ls-client
API Coverage
V1 API (/api/*) - Core Resources
Image Management:
- ImageSets - CRUD + pagination + filters
- Images - List, get, download
- Folders - Full CRUD
- Annotations - Full CRUD
Data & Metadata:
- Metadata - Fields (with cached lookup by name) and values management
- DropdownResolver - Translate between dropdown option text and IDs
- Attachments - Upload and manage files
Upload:
upload_image()- High-level helper: create image record + upload file (single-part or multipart)
Organization:
- Users - User management
- Organizations - Organization info
- Templates - Template CRUD
- Workflows - Workflow management
- Orders - Stain and recut orders
V2 API (/api/v2/*) - Extended Features
- UserGroups - Group management with permissions
- Modules - External module configuration
- SavedDisplaySettings - Fluorescence display settings
V3 API (/api/v3/*) - Modern Features
Authentication & Security:
- Auth - JWT tokens, API keys, whoami
Research & Studies:
- Studies - Full CRUD + fields/users/statistics
- ImageSets - Seed generation + blinding for research
- AuditLogs - Audit log status
Configuration:
- AnnotationClasses - Annotation type management
- ChannelGroups - Fluorescence channel groups
- AppConfig - Application configuration
- Users - User settings management
- Images - Image metadata
Requirements
- Python 3.10+
- httpx >= 0.27.0
- pydantic >= 2.0.0
Development
# Setup
uv sync --all-extras
# Run tests
uv run pytest tests/unit/ -v
# With coverage
uv run pytest tests/unit/ --cov=concentriq --cov-report=term-missing
See CHANGELOG.md for version history.
License
Copyright 2025 Proscia Inc.
Licensed under the MIT License. See LICENSE for details.
Support
For issues and questions:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file concentriq_ls_client-0.2.0.tar.gz.
File metadata
- Download URL: concentriq_ls_client-0.2.0.tar.gz
- Upload date:
- Size: 131.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2aa0f49ee36fcb31915f802ad671026cb4223068252ece72c4d26e7416097e2
|
|
| MD5 |
822d51307d53a81e35d6aaeab4141d7d
|
|
| BLAKE2b-256 |
e22db17527cbba80b600029ef37f777643f5aac29f37c376981767a6dbe20ee4
|
Provenance
The following attestation bundles were made for concentriq_ls_client-0.2.0.tar.gz:
Publisher:
publish.yml on Proscia/concentriq-ls-python-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
concentriq_ls_client-0.2.0.tar.gz -
Subject digest:
a2aa0f49ee36fcb31915f802ad671026cb4223068252ece72c4d26e7416097e2 - Sigstore transparency entry: 1116761000
- Sigstore integration time:
-
Permalink:
Proscia/concentriq-ls-python-client@c3fea2642d1e990b0d56be2bfeb4fe9dc8e37992 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Proscia
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c3fea2642d1e990b0d56be2bfeb4fe9dc8e37992 -
Trigger Event:
release
-
Statement type:
File details
Details for the file concentriq_ls_client-0.2.0-py3-none-any.whl.
File metadata
- Download URL: concentriq_ls_client-0.2.0-py3-none-any.whl
- Upload date:
- Size: 49.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a98b98313b6cda785742591a2252e6d9cfea1bdb52842a5ca90840e6c32c764b
|
|
| MD5 |
f76fe74c82a1e9e6e6c6846ed1050cd7
|
|
| BLAKE2b-256 |
333b5cae41dbbe6f2519b1d0639e836b788d43369e628447862929cc0c30f5ca
|
Provenance
The following attestation bundles were made for concentriq_ls_client-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on Proscia/concentriq-ls-python-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
concentriq_ls_client-0.2.0-py3-none-any.whl -
Subject digest:
a98b98313b6cda785742591a2252e6d9cfea1bdb52842a5ca90840e6c32c764b - Sigstore transparency entry: 1116761056
- Sigstore integration time:
-
Permalink:
Proscia/concentriq-ls-python-client@c3fea2642d1e990b0d56be2bfeb4fe9dc8e37992 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Proscia
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c3fea2642d1e990b0d56be2bfeb4fe9dc8e37992 -
Trigger Event:
release
-
Statement type: