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

Unofficial Python client for the Immich API.

Supported Immich version Package version Supported Python versions PyPI - Downloads GitHub Actions Workflow Status GitHub Repository

[!IMPORTANT] This repository is mostly auto-generated from the Immich OpenAPI specification. Pull requests are welcome, but modifications to auto-generated code will be rejected. See CONTRIBUTING for more details.

[!NOTE] This project is auto-synced with the latest Immich release.

[!NOTE] This project is not affiliated with or endorsed by Immich.

Versioning

This package follows Semantic Versioning. Some important notes:

  • 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 produce a new major version of this package.
  • Supported Immich server version: IMMICH-VERSION tracks the Immich version the client was generated from. COMPATIBILITY.csv maps package versions to supported server versions.

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.

Custom functions

Some API groups include custom convenience methods that are preferred over the auto-generated ones for common operations:

Assets API

  • assets.download_asset_to_file: Download an asset (original file) directly to disk.
  • assets.view_asset_to_file: Download an asset thumbnail directly to disk .
  • assets.play_asset_video_to_file: Download an asset video stream directly to disk.
  • assets.upload: Upload assets with smart features (duplicate detection, album management, sidecar support, dry run).

Resumable Downloads: All asset download methods support automatic resumable downloads.

Download API

  • download.download_archive_to_file: Download asset archives (ZIP files) directly to disk. You can download whole albums or user-specified assets in a single request.

Note: Archive downloads (ZIP files) do not support resumable downloads due to the nature of streaming archives.

Users API

  • users.get_profile_image_to_file: Download a user's profile image directly to disk.

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).

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.5.1.tar.gz (197.0 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.5.1-py3-none-any.whl (592.0 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for immich-1.5.1.tar.gz
Algorithm Hash digest
SHA256 982f4dba02105d83f1afb22acf905c98abb0315e5361dbfcda4a9aa07913b92c
MD5 52a059a8c7c4b8e5f80ff80aa97a1058
BLAKE2b-256 770f31f7de157d2ee40a30e2a0bfaa0cecbbe9b3b7e3c33d2077264ebc0e7a64

See more details on using hashes here.

Provenance

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

Publisher: cd.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.5.1-py3-none-any.whl.

File metadata

  • Download URL: immich-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 592.0 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.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2895d835123e91c9097835efc995338d7eb791a448e57030f82b83975c384142
MD5 5539f5c92bbfe0889ab49fdebd88c5a1
BLAKE2b-256 96c14ce5d015497bc2c196bd263fb3bf2a0d57709893b19074706cd6e1cb6893

See more details on using hashes here.

Provenance

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

Publisher: cd.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