Unofficial Python client for Immich
Reason this release was yanked:
Project renamed to immichpy. Use pip install immichpy. This package is deprecated.
Project description
Immich API Client
Unofficial Python client for the Immich API.
[!IMPORTANT] This repository is auto-generated from the Immich OpenAPI specification. Do not open pull requests. See CONTRIBUTING for more details.
Status
- Unofficial: Not affiliated with or endorsed by Immich.
- Auto-synced: Kept in sync with the latest Immich release (regenerated as upstream changes land).
Installation
You need Python 3.10–3.14 installed to be able to use this library.
Install the latest stable version from PyPI:
pip install immich
If you want the latest version (which may be a pre-release):
pip install --pre immich
Structure
This SDK is async-only. The client exposes API groups as attributes, and endpoints as methods on those groups. Groups and endpoints are documented in the Immich API documentation.
Authentication
Immich supports API keys. Create one in your server and pass it via api_key=.... Cookie and Bearer tokens are also supported.
Usage
With a context manager (recommended):
from immich import AsyncClient
async with AsyncClient(api_key="your-immich-api-key", base_url="http://localhost:2283/api") as client:
await client.server.get_about_info()
Without a context manager:
import asyncio
from immich import AsyncClient
async def main():
client = AsyncClient(api_key="your-immich-api-key", base_url="http://localhost:2283/api")
try:
await client.server.get_about_info()
finally:
await client.close()
asyncio.run(main())
Response Types
There are three different available output formats you can choose from:
Serialized Response
You can get fully serialized responses as Pydantic models. Using this, you get the full benefits of Pydantic's type checking.
res = await client.server.get_about_info()
The output would look like this:
ServerAboutResponseDto(...)
Serialized Response with HTTP Info
res = await client.server.get_about_info_with_http_info()
The output would look like this:
status_code=200 headers={'Content-Type': 'application/json'} data=ServerAboutResponseDto(...) raw_data=b'{"...": "..."}'
JSON Response
You can receive a classical JSON response by suffixing the function name with _without_preload_content:
response = await client.server.get_about_info_without_preload_content()
await response.json()
Session management
The client can manage a shared aiohttp.ClientSession, or you can pass your own via http_client=... (you are responsible for its lifecycle).
Versioning
This package follows Semantic Versioning.
- Package version is not the server version:
immichpackageX.Y.Zis the client’s own version. - Upstream breaking changes ⇒ major bump: Breaking Immich changes that require breaking client changes produce a new major version.
- Supported Immich server version:
IMMICH-VERSION(repo root) tracks the Immich version this client was generated from.- If you run an older Immich server version, you can install an older
immichpackage release whereIMMICH-VERSIONmatches your server. - This client supports Immich v2.4.1 and above.
- If you run an older Immich server version, you can install an older
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 immich-1.1.0.tar.gz.
File metadata
- Download URL: immich-1.1.0.tar.gz
- Upload date:
- Size: 185.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
338b5ec6a2c1c33208b9e94b26666363ba23287d440b4ace589a88897bd34749
|
|
| MD5 |
ae575309719a12b27154d9e6f8ae3c26
|
|
| BLAKE2b-256 |
c22d84c9c299a810682d30824d03f9559f671e745cce58bea184928de847b8e1
|
Provenance
The following attestation bundles were made for immich-1.1.0.tar.gz:
Publisher:
release.yml on timonrieger/immich-python-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
immich-1.1.0.tar.gz -
Subject digest:
338b5ec6a2c1c33208b9e94b26666363ba23287d440b4ace589a88897bd34749 - Sigstore transparency entry: 798288406
- Sigstore integration time:
-
Permalink:
timonrieger/immich-python-client@94c80bb8a9e9bf0688f2fbc2dab914518812960c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/timonrieger
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@94c80bb8a9e9bf0688f2fbc2dab914518812960c -
Trigger Event:
workflow_run
-
Statement type:
File details
Details for the file immich-1.1.0-py3-none-any.whl.
File metadata
- Download URL: immich-1.1.0-py3-none-any.whl
- Upload date:
- Size: 578.0 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 |
3777a1481c1d8a9637405c616dded7b9b687c77ba671d82e0119bd482977a7be
|
|
| MD5 |
0fe79b503c141c21ad676b99b1b2891f
|
|
| BLAKE2b-256 |
144ba4620c9f2bf4e6332e2ef599724b52f994c9e6b60bbb24389d1f311e833e
|
Provenance
The following attestation bundles were made for immich-1.1.0-py3-none-any.whl:
Publisher:
release.yml on timonrieger/immich-python-client
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
immich-1.1.0-py3-none-any.whl -
Subject digest:
3777a1481c1d8a9637405c616dded7b9b687c77ba671d82e0119bd482977a7be - Sigstore transparency entry: 798288408
- Sigstore integration time:
-
Permalink:
timonrieger/immich-python-client@94c80bb8a9e9bf0688f2fbc2dab914518812960c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/timonrieger
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@94c80bb8a9e9bf0688f2fbc2dab914518812960c -
Trigger Event:
workflow_run
-
Statement type: