Skip to main content

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

CodeRabbit Pull Request Reviews Tests Package version Supported Python versions

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: immich package X.Y.Z is 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 immich package release where IMMICH-VERSION matches your server.
    • This client supports Immich v2.4.1 and above.

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

immich-1.2.0.tar.gz (189.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

immich-1.2.0-py3-none-any.whl (583.8 kB view details)

Uploaded Python 3

File details

Details for the file immich-1.2.0.tar.gz.

File metadata

  • Download URL: immich-1.2.0.tar.gz
  • Upload date:
  • Size: 189.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for immich-1.2.0.tar.gz
Algorithm Hash digest
SHA256 7e5b8f4f55c9a0f780cf55881efd61c7727008655b5b8e60486bddbed1ab4a66
MD5 dac21670bfc8bfddad4e4f4b6ac711c7
BLAKE2b-256 9d56cd9b714ca1031bc8cae58bc0ed68df6433f3fa1b750362b278f34cb07b33

See more details on using hashes here.

Provenance

The following attestation bundles were made for immich-1.2.0.tar.gz:

Publisher: release.yml on timonrieger/immich-python-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file immich-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: immich-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 583.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for immich-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8eb751f2ffb6f9fba8445a443e6556200131e3c84887a49fb1d1064a64b46f64
MD5 0821ca1d559945ff621829ab7b5ef899
BLAKE2b-256 3140f217a0c957a39461e1a3badc3937509c18e296534882fc5e77165394d38c

See more details on using hashes here.

Provenance

The following attestation bundles were made for immich-1.2.0-py3-none-any.whl:

Publisher: release.yml on timonrieger/immich-python-client

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page