Install
openclaw skills install immich-apiConnect to self-hosted Immich instances to manage photos, albums, users, search media, upload/download files, and handle jobs via REST API.
openclaw skills install immich-apiWindows (PowerShell):
$env:IMMICH_URL = "https://your-immich-instance.com"
$env:IMMICH_API_KEY = "your-api-key-here"
Linux/macOS (bash):
export IMMICH_URL="https://your-immich-instance.com"
export IMMICH_API_KEY="your-api-key-here"
Generate API Key in Immich: User Profile → API Keys → Create API Key
python scripts/upload_photos.py --url "https://your-immich.com" --api-key "your-key" --folder ./photos
python scripts/download_album.py --url "https://your-immich.com" --api-key "your-key" --album-id "abc123" --output ./downloads
# Test connection
curl -H "x-api-key: $IMMICH_API_KEY" "$IMMICH_URL/api/server-info/ping"
{IMMICH_URL}/api
# List albums
curl -H "x-api-key: $IMMICH_API_KEY" "$IMMICH_URL/api/albums"
# Create album
curl -X POST -H "x-api-key: $IMMICH_API_KEY" -H "Content-Type: application/json" \
-d '{"albumName":"My Album"}' "$IMMICH_URL/api/albums"
# Get album assets
curl -H "x-api-key: $IMMICH_API_KEY" "$IMMICH_URL/api/albums/{albumId}"
# Get all assets (paginated)
curl -H "x-api-key: $IMMICH_API_KEY" "$IMMICH_URL/api/assets?limit=100"
# Upload asset
curl -X POST -H "x-api-key: $IMMICH_API_KEY" \
-F "file=@/path/to/photo.jpg" \
"$IMMICH_URL/api/assets"
# Get thumbnail
curl -H "x-api-key: $IMMICH_API_KEY" \
"$IMMICH_URL/api/assets/{assetId}/thumbnail?format=jpeg" -o thumb.jpg
# Get original file
curl -H "x-api-key: $IMMICH_API_KEY" \
"$IMMICH_URL/api/assets/{assetId}/original" -o original.jpg
# List users
curl -H "x-api-key: $IMMICH_API_KEY" "$IMMICH_URL/api/users"
# Get current user
curl -H "x-api-key: $IMMICH_API_KEY" "$IMMICH_URL/api/user/me"
# Search assets
curl -X POST -H "x-api-key: $IMMICH_API_KEY" -H "Content-Type: application/json" \
-d '{"query":"beach","take":10}' "$IMMICH_URL/api/search/assets"
# List libraries
curl -H "x-api-key: $IMMICH_API_KEY" "$IMMICH_URL/api/libraries"
# Scan library
curl -X POST -H "x-api-key: $IMMICH_API_KEY" \
"$IMMICH_URL/api/libraries/{libraryId}/scan"
# Get job statuses
curl -H "x-api-key: $IMMICH_API_KEY" "$IMMICH_URL/api/jobs"
# Trigger job (e.g., thumbnail generation)
curl -X POST -H "x-api-key: $IMMICH_API_KEY" -H "Content-Type: application/json" \
-d '{"jobName":"thumbnail-generation","force":true}' "$IMMICH_URL/api/jobs"
Use the bundled scripts in scripts/ for complex operations:
upload_photos.py - Bulk upload photosdownload_album.py - Download entire albumsync_library.py - Sync external librarySee references/api-endpoints.md for complete endpoint reference.