{ "openapi": "3.0.0", "paths": { "/activities": { "get": { "description": "Returns a list of activities for the selected asset or album. The activities are returned in sorted order, with the oldest activities appearing first.", "operationId": "getActivities", "parameters": [ { "name": "albumId", "required": true, "in": "query", "schema": { "format": "uuid", "type": "string" } }, { "name": "assetId", "required": false, "in": "query", "schema": { "format": "uuid", "type": "string" } }, { "name": "level", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/ReactionLevel" } }, { "name": "type", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/ReactionType" } }, { "name": "userId", "required": false, "in": "query", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ActivityResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "List all activities", "tags": [ "Activities" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "activity.read", "x-immich-state": "Stable" }, "post": { "description": "Create a like or a comment for an album, or an asset in an album.", "operationId": "createActivity", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActivityCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActivityResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create an activity", "tags": [ "Activities" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "activity.create", "x-immich-state": "Stable" } }, "/activities/statistics": { "get": { "description": "Returns the number of likes and comments for a given album or asset in an album.", "operationId": "getActivityStatistics", "parameters": [ { "name": "albumId", "required": true, "in": "query", "schema": { "format": "uuid", "type": "string" } }, { "name": "assetId", "required": false, "in": "query", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActivityStatisticsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve activity statistics", "tags": [ "Activities" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "activity.statistics", "x-immich-state": "Stable" } }, "/activities/{id}": { "delete": { "description": "Removes a like or comment from a given album or asset in an album.", "operationId": "deleteActivity", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete an activity", "tags": [ "Activities" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "activity.delete", "x-immich-state": "Stable" } }, "/admin/auth/unlink-all": { "post": { "description": "Unlinks all OAuth accounts associated with user accounts in the system.", "operationId": "unlinkAllOAuthAccountsAdmin", "parameters": [], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Unlink all OAuth accounts", "tags": [ "Authentication (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "adminAuth.unlinkAll", "x-immich-state": "Stable" } }, "/admin/maintenance": { "post": { "description": "Put Immich into or take it out of maintenance mode", "operationId": "setMaintenanceMode", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetMaintenanceModeDto" } } }, "required": true }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Set maintenance mode", "tags": [ "Maintenance (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v2.3.0", "state": "Added" }, { "version": "v2.3.0", "state": "Alpha" } ], "x-immich-permission": "maintenance", "x-immich-state": "Alpha" } }, "/admin/maintenance/login": { "post": { "description": "Login with maintenance token or cookie to receive current information and perform further actions.", "operationId": "maintenanceLogin", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MaintenanceLoginDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MaintenanceAuthDto" } } }, "description": "" } }, "summary": "Log into maintenance mode", "tags": [ "Maintenance (admin)" ], "x-immich-history": [ { "version": "v2.3.0", "state": "Added" }, { "version": "v2.3.0", "state": "Alpha" } ], "x-immich-state": "Alpha" } }, "/admin/notifications": { "post": { "description": "Create a new notification for a specific user.", "operationId": "createNotification", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a notification", "tags": [ "Notifications (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/admin/notifications/templates/{name}": { "post": { "description": "Retrieve a preview of the provided email template.", "operationId": "getNotificationTemplateAdmin", "parameters": [ { "name": "name", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TemplateResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Render email template", "tags": [ "Notifications (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/admin/notifications/test-email": { "post": { "description": "Send a test email using the provided SMTP configuration.", "operationId": "sendTestEmailAdmin", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfigSmtpDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestEmailResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Send test email", "tags": [ "Notifications (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/admin/users": { "get": { "description": "Search for users.", "operationId": "searchUsersAdmin", "parameters": [ { "name": "id", "required": false, "in": "query", "schema": { "format": "uuid", "type": "string" } }, { "name": "withDeleted", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/UserAdminResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Search users", "tags": [ "Users (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "adminUser.read", "x-immich-state": "Stable" }, "post": { "description": "Create a new user.", "operationId": "createUserAdmin", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a user", "tags": [ "Users (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "adminUser.create", "x-immich-state": "Stable" } }, "/admin/users/{id}": { "delete": { "description": "Delete a user.", "operationId": "deleteUserAdmin", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminDeleteDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete a user", "tags": [ "Users (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "adminUser.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a specific user by their ID.", "operationId": "getUserAdmin", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve a user", "tags": [ "Users (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "adminUser.read", "x-immich-state": "Stable" }, "put": { "description": "Update an existing user.", "operationId": "updateUserAdmin", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update a user", "tags": [ "Users (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "adminUser.update", "x-immich-state": "Stable" } }, "/admin/users/{id}/preferences": { "get": { "description": "Retrieve the preferences of a specific user.", "operationId": "getUserPreferencesAdmin", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPreferencesResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve user preferences", "tags": [ "Users (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "adminUser.read", "x-immich-state": "Stable" }, "put": { "description": "Update the preferences of a specific user.", "operationId": "updateUserPreferencesAdmin", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPreferencesUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPreferencesResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update user preferences", "tags": [ "Users (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "adminUser.update", "x-immich-state": "Stable" } }, "/admin/users/{id}/restore": { "post": { "description": "Restore a previously deleted user.", "operationId": "restoreUserAdmin", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Restore a deleted user", "tags": [ "Users (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "adminUser.delete", "x-immich-state": "Stable" } }, "/admin/users/{id}/sessions": { "get": { "description": "Retrieve all sessions for a specific user.", "operationId": "getUserSessionsAdmin", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SessionResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve user sessions", "tags": [ "Users (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "adminSession.read", "x-immich-state": "Stable" } }, "/admin/users/{id}/statistics": { "get": { "description": "Retrieve asset statistics for a specific user.", "operationId": "getUserStatisticsAdmin", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "isFavorite", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "isTrashed", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "visibility", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/AssetVisibility" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetStatsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve user statistics", "tags": [ "Users (admin)" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "adminUser.read", "x-immich-state": "Stable" } }, "/albums": { "get": { "description": "Retrieve a list of albums available to the authenticated user.", "operationId": "getAllAlbums", "parameters": [ { "name": "assetId", "required": false, "in": "query", "description": "Only returns albums that contain the asset\nIgnores the shared parameter\nundefined: get all albums", "schema": { "format": "uuid", "type": "string" } }, { "name": "shared", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AlbumResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "List all albums", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "album.read", "x-immich-state": "Stable" }, "post": { "description": "Create a new album. The album can also be created with initial users and assets.", "operationId": "createAlbum", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAlbumDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AlbumResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create an album", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "album.create", "x-immich-state": "Stable" } }, "/albums/assets": { "put": { "description": "Send a list of asset IDs and album IDs to add each asset to each album.", "operationId": "addAssetsToAlbums", "parameters": [ { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AlbumsAddAssetsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AlbumsAddAssetsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Add assets to albums", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "albumAsset.create", "x-immich-state": "Stable" } }, "/albums/statistics": { "get": { "description": "Returns statistics about the albums available to the authenticated user.", "operationId": "getAlbumStatistics", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AlbumStatisticsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve album statistics", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "album.statistics", "x-immich-state": "Stable" } }, "/albums/{id}": { "delete": { "description": "Delete a specific album by its ID. Note the album is initially trashed and then immediately scheduled for deletion, but relies on a background job to complete the process.", "operationId": "deleteAlbum", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete an album", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "album.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve information about a specific album by its ID.", "operationId": "getAlbumInfo", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "withoutAssets", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AlbumResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve an album", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "album.read", "x-immich-state": "Stable" }, "patch": { "description": "Update the information of a specific album by its ID. This endpoint can be used to update the album name, description, sort order, etc. However, it is not used to add or remove assets or users from the album.", "operationId": "updateAlbumInfo", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAlbumDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AlbumResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update an album", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "album.update", "x-immich-state": "Stable" } }, "/albums/{id}/assets": { "delete": { "description": "Remove multiple assets from a specific album by its ID.", "operationId": "removeAssetFromAlbum", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkIdsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/BulkIdResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Remove assets from an album", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "albumAsset.delete", "x-immich-state": "Stable" }, "put": { "description": "Add multiple assets to a specific album by its ID.", "operationId": "addAssetsToAlbum", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkIdsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/BulkIdResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Add assets to an album", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "albumAsset.create", "x-immich-state": "Stable" } }, "/albums/{id}/user/{userId}": { "delete": { "description": "Remove a user from an album. Use an ID of \"me\" to leave a shared album.", "operationId": "removeUserFromAlbum", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Remove user from album", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "albumUser.delete", "x-immich-state": "Stable" }, "put": { "description": "Change the role for a specific user in a specific album.", "operationId": "updateAlbumUser", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "userId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAlbumUserDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update user role", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "albumUser.update", "x-immich-state": "Stable" } }, "/albums/{id}/users": { "put": { "description": "Share an album with multiple users. Each user can be given a specific role in the album.", "operationId": "addUsersToAlbum", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddUsersDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AlbumResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Share album with users", "tags": [ "Albums" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "albumUser.create", "x-immich-state": "Stable" } }, "/api-keys": { "get": { "description": "Retrieve all API keys of the current user.", "operationId": "getApiKeys", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/APIKeyResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "List all API keys", "tags": [ "API keys" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "apiKey.read", "x-immich-state": "Stable" }, "post": { "description": "Creates a new API key. It will be limited to the permissions specified.", "operationId": "createApiKey", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APIKeyCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APIKeyCreateResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create an API key", "tags": [ "API keys" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "apiKey.create", "x-immich-state": "Stable" } }, "/api-keys/me": { "get": { "description": "Retrieve the API key that is used to access this endpoint.", "operationId": "getMyApiKey", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APIKeyResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve the current API key", "tags": [ "API keys" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/api-keys/{id}": { "delete": { "description": "Deletes an API key identified by its ID. The current user must own this API key.", "operationId": "deleteApiKey", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete an API key", "tags": [ "API keys" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "apiKey.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve an API key by its ID. The current user must own this API key.", "operationId": "getApiKey", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APIKeyResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve an API key", "tags": [ "API keys" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "apiKey.read", "x-immich-state": "Stable" }, "put": { "description": "Updates the name and permissions of an API key by its ID. The current user must own this API key.", "operationId": "updateApiKey", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APIKeyUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APIKeyResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update an API key", "tags": [ "API keys" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "apiKey.update", "x-immich-state": "Stable" } }, "/assets": { "delete": { "description": "Deletes multiple assets at the same time.", "operationId": "deleteAssets", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetBulkDeleteDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete assets", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.delete", "x-immich-state": "Stable" }, "post": { "description": "Uploads a new asset to the server.", "operationId": "uploadAsset", "parameters": [ { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "x-immich-checksum", "in": "header", "description": "sha1 checksum that can be used for duplicate detection before the file is uploaded", "required": false, "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/AssetMediaCreateDto" } } }, "description": "Asset Upload Information", "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetMediaResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Upload asset", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.upload", "x-immich-state": "Stable" }, "put": { "description": "Updates multiple assets at the same time.", "operationId": "updateAssets", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetBulkUpdateDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update assets", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.update", "x-immich-state": "Stable" } }, "/assets/bulk-upload-check": { "post": { "description": "Determine which assets have already been uploaded to the server based on their SHA1 checksums.", "operationId": "checkBulkUpload", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetBulkUploadCheckDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetBulkUploadCheckResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Check bulk upload", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.upload", "x-immich-state": "Stable" } }, "/assets/copy": { "put": { "description": "Copy asset information like albums, tags, etc. from one asset to another.", "operationId": "copyAsset", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetCopyDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Copy asset", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.copy", "x-immich-state": "Stable" } }, "/assets/device/{deviceId}": { "get": { "deprecated": true, "description": "Get all asset of a device that are in the database, ID only.", "operationId": "getAllUserAssetsByDeviceId", "parameters": [ { "name": "deviceId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "type": "string" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve assets by device ID", "tags": [ "Assets", "Deprecated" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v2", "state": "Deprecated" } ], "x-immich-state": "Deprecated" } }, "/assets/exist": { "post": { "description": "Checks if multiple assets exist on the server and returns all existing - used by background backup", "operationId": "checkExistingAssets", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CheckExistingAssetsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CheckExistingAssetsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Check existing assets", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/assets/jobs": { "post": { "description": "Run a specific job on a set of assets.", "operationId": "runAssetJobs", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetJobsDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Run an asset job", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/assets/random": { "get": { "deprecated": true, "description": "Retrieve a specified number of random assets for the authenticated user.", "operationId": "getRandom", "parameters": [ { "name": "count", "required": false, "in": "query", "schema": { "minimum": 1, "type": "number" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get random assets", "tags": [ "Assets", "Deprecated" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Deprecated", "replacementId": "searchAssets" } ], "x-immich-permission": "asset.read", "x-immich-state": "Deprecated" } }, "/assets/statistics": { "get": { "description": "Retrieve various statistics about the assets owned by the authenticated user.", "operationId": "getAssetStatistics", "parameters": [ { "name": "isFavorite", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "isTrashed", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "visibility", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/AssetVisibility" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetStatsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get asset statistics", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.statistics", "x-immich-state": "Stable" } }, "/assets/{id}": { "get": { "description": "Retrieve detailed information about a specific asset.", "operationId": "getAssetInfo", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve an asset", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" }, "put": { "description": "Update information of a specific asset.", "operationId": "updateAsset", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAssetDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update an asset", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.update", "x-immich-state": "Stable" } }, "/assets/{id}/metadata": { "get": { "description": "Retrieve all metadata key-value pairs associated with the specified asset.", "operationId": "getAssetMetadata", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetMetadataResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get asset metadata", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" }, "put": { "description": "Update or add metadata key-value pairs for the specified asset.", "operationId": "updateAssetMetadata", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetMetadataUpsertDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetMetadataResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update asset metadata", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.update", "x-immich-state": "Stable" } }, "/assets/{id}/metadata/{key}": { "delete": { "description": "Delete a specific metadata key-value pair associated with the specified asset.", "operationId": "deleteAssetMetadata", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "key", "required": true, "in": "path", "schema": { "$ref": "#/components/schemas/AssetMetadataKey" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete asset metadata by key", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.update", "x-immich-state": "Stable" }, "get": { "description": "Retrieve the value of a specific metadata key associated with the specified asset.", "operationId": "getAssetMetadataByKey", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "key", "required": true, "in": "path", "schema": { "$ref": "#/components/schemas/AssetMetadataKey" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetMetadataResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve asset metadata by key", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" } }, "/assets/{id}/ocr": { "get": { "description": "Retrieve all OCR (Optical Character Recognition) data associated with the specified asset.", "operationId": "getAssetOcr", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetOcrResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve asset OCR data", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" } }, "/assets/{id}/original": { "get": { "description": "Downloads the original file of the specified asset.", "operationId": "downloadAsset", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/octet-stream": { "schema": { "format": "binary", "type": "string" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Download original asset", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.download", "x-immich-state": "Stable" }, "put": { "deprecated": true, "description": "Replace the asset with new file, without changing its id.", "operationId": "replaceAsset", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/AssetMediaReplaceDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetMediaResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Replace asset", "tags": [ "Assets", "Deprecated" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Deprecated", "replacementId": "copyAsset" } ], "x-immich-permission": "asset.replace", "x-immich-state": "Deprecated" } }, "/assets/{id}/thumbnail": { "get": { "description": "Retrieve the thumbnail image for the specified asset.", "operationId": "viewAsset", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "size", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/AssetMediaSize" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/octet-stream": { "schema": { "format": "binary", "type": "string" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "View asset thumbnail", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.view", "x-immich-state": "Stable" } }, "/assets/{id}/video/playback": { "get": { "description": "Streams the video file for the specified asset. This endpoint also supports byte range requests.", "operationId": "playAssetVideo", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/octet-stream": { "schema": { "format": "binary", "type": "string" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Play asset video", "tags": [ "Assets" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.view", "x-immich-state": "Stable" } }, "/auth/admin-sign-up": { "post": { "description": "Create the first admin user in the system.", "operationId": "signUpAdmin", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SignUpDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminResponseDto" } } }, "description": "" } }, "summary": "Register admin", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/auth/change-password": { "post": { "description": "Change the password of the current user.", "operationId": "changePassword", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChangePasswordDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Change password", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "auth.changePassword", "x-immich-state": "Stable" } }, "/auth/login": { "post": { "description": "Login with username and password and receive a session token.", "operationId": "login", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginCredentialDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginResponseDto" } } }, "description": "" } }, "summary": "Login", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/auth/logout": { "post": { "description": "Logout the current user and invalidate the session token.", "operationId": "logout", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LogoutResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Logout", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/auth/pin-code": { "delete": { "description": "Reset the pin code for the current user by providing the account password", "operationId": "resetPinCode", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PinCodeResetDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Reset pin code", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "pinCode.delete", "x-immich-state": "Stable" }, "post": { "description": "Setup a new pin code for the current user.", "operationId": "setupPinCode", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PinCodeSetupDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Setup pin code", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "pinCode.create", "x-immich-state": "Stable" }, "put": { "description": "Change the pin code for the current user.", "operationId": "changePinCode", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PinCodeChangeDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Change pin code", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "pinCode.update", "x-immich-state": "Stable" } }, "/auth/session/lock": { "post": { "description": "Remove elevated access to locked assets from the current session.", "operationId": "lockAuthSession", "parameters": [], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Lock auth session", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/auth/session/unlock": { "post": { "description": "Temporarily grant the session elevated access to locked assets by providing the correct PIN code.", "operationId": "unlockAuthSession", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionUnlockDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Unlock auth session", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/auth/status": { "get": { "description": "Get information about the current session, including whether the user has a password, and if the session can access locked assets.", "operationId": "getAuthStatus", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuthStatusResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve auth status", "tags": [ "Authentication" ] } }, "/auth/validateToken": { "post": { "description": "Validate the current authorization method is still valid.", "operationId": "validateAccessToken", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateAccessTokenResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Validate access token", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/download/archive": { "post": { "description": "Download a ZIP archive containing the specified assets. The assets must have been previously requested via the \"getDownloadInfo\" endpoint.", "operationId": "downloadArchive", "parameters": [ { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetIdsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/octet-stream": { "schema": { "format": "binary", "type": "string" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Download asset archive", "tags": [ "Download" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.download", "x-immich-state": "Stable" } }, "/download/info": { "post": { "description": "Retrieve information about how to request a download for the specified assets or album. The response includes groups of assets that can be downloaded together.", "operationId": "getDownloadInfo", "parameters": [ { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DownloadInfoDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DownloadResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve download information", "tags": [ "Download" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.download", "x-immich-state": "Stable" } }, "/duplicates": { "delete": { "description": "Delete multiple duplicate assets specified by their IDs.", "operationId": "deleteDuplicates", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkIdsDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete duplicates", "tags": [ "Duplicates" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "duplicate.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a list of duplicate assets available to the authenticated user.", "operationId": "getAssetDuplicates", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/DuplicateResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve duplicates", "tags": [ "Duplicates" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "duplicate.read", "x-immich-state": "Stable" } }, "/duplicates/{id}": { "delete": { "description": "Delete a single duplicate asset specified by its ID.", "operationId": "deleteDuplicate", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete a duplicate", "tags": [ "Duplicates" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "duplicate.delete", "x-immich-state": "Stable" } }, "/faces": { "get": { "description": "Retrieve all faces belonging to an asset.", "operationId": "getFaces", "parameters": [ { "name": "id", "required": true, "in": "query", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetFaceResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve faces for asset", "tags": [ "Faces" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "face.read", "x-immich-state": "Stable" }, "post": { "description": "Create a new face that has not been discovered by facial recognition. The content of the bounding box is considered a face.", "operationId": "createFace", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetFaceCreateDto" } } }, "required": true }, "responses": { "201": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a face", "tags": [ "Faces" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "face.create", "x-immich-state": "Stable" } }, "/faces/{id}": { "delete": { "description": "Delete a face identified by the id. Optionally can be force deleted.", "operationId": "deleteFace", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetFaceDeleteDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete a face", "tags": [ "Faces" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "face.delete", "x-immich-state": "Stable" }, "put": { "description": "Re-assign the face provided in the body to the person identified by the id in the path parameter.", "operationId": "reassignFacesById", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FaceDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Re-assign a face to another person", "tags": [ "Faces" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "face.update", "x-immich-state": "Stable" } }, "/jobs": { "get": { "description": "Retrieve the counts of the current queue, as well as the current status.", "operationId": "getQueuesLegacy", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QueuesResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve queue counts and status", "tags": [ "Jobs" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "job.read", "x-immich-state": "Stable" }, "post": { "description": "Run a specific job. Most jobs are queued automatically, but this endpoint allows for manual creation of a handful of jobs, including various cleanup tasks, as well as creating a new database backup.", "operationId": "createJob", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JobCreateDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a manual job", "tags": [ "Jobs" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "job.create", "x-immich-state": "Stable" } }, "/jobs/{name}": { "put": { "description": "Queue all assets for a specific job type. Defaults to only queueing assets that have not yet been processed, but the force command can be used to re-process all assets.", "operationId": "runQueueCommandLegacy", "parameters": [ { "name": "name", "required": true, "in": "path", "schema": { "$ref": "#/components/schemas/QueueName" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QueueCommandDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/QueueResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Run jobs", "tags": [ "Jobs" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "job.create", "x-immich-state": "Stable" } }, "/libraries": { "get": { "description": "Retrieve a list of external libraries.", "operationId": "getAllLibraries", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/LibraryResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve libraries", "tags": [ "Libraries" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "library.read", "x-immich-state": "Stable" }, "post": { "description": "Create a new external library.", "operationId": "createLibrary", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateLibraryDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LibraryResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a library", "tags": [ "Libraries" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "library.create", "x-immich-state": "Stable" } }, "/libraries/{id}": { "delete": { "description": "Delete an external library by its ID.", "operationId": "deleteLibrary", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete a library", "tags": [ "Libraries" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "library.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve an external library by its ID.", "operationId": "getLibrary", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LibraryResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve a library", "tags": [ "Libraries" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "library.read", "x-immich-state": "Stable" }, "put": { "description": "Update an existing external library.", "operationId": "updateLibrary", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateLibraryDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LibraryResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update a library", "tags": [ "Libraries" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "library.update", "x-immich-state": "Stable" } }, "/libraries/{id}/scan": { "post": { "description": "Queue a scan for the external library to find and import new assets.", "operationId": "scanLibrary", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Scan a library", "tags": [ "Libraries" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "library.update", "x-immich-state": "Stable" } }, "/libraries/{id}/statistics": { "get": { "description": "Retrieve statistics for a specific external library, including number of videos, images, and storage usage.", "operationId": "getLibraryStatistics", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LibraryStatsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve library statistics", "tags": [ "Libraries" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "library.statistics", "x-immich-state": "Stable" } }, "/libraries/{id}/validate": { "post": { "description": "Validate the settings of an external library.", "operationId": "validate", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateLibraryDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateLibraryResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Validate library settings", "tags": [ "Libraries" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/map/markers": { "get": { "description": "Retrieve a list of latitude and longitude coordinates for every asset with location data.", "operationId": "getMapMarkers", "parameters": [ { "name": "fileCreatedAfter", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "fileCreatedBefore", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "isArchived", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "isFavorite", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "withPartners", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "withSharedAlbums", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/MapMarkerResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve map markers", "tags": [ "Map" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/map/reverse-geocode": { "get": { "description": "Retrieve location information (e.g., city, country) for given latitude and longitude coordinates.", "operationId": "reverseGeocode", "parameters": [ { "name": "lat", "required": true, "in": "query", "schema": { "format": "double", "type": "number" } }, { "name": "lon", "required": true, "in": "query", "schema": { "format": "double", "type": "number" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/MapReverseGeocodeResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Reverse geocode coordinates", "tags": [ "Map" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/memories": { "get": { "description": "Retrieve a list of memories. Memories are sorted descending by creation date by default, although they can also be sorted in ascending order, or randomly.", "operationId": "searchMemories", "parameters": [ { "name": "for", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "isSaved", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "isTrashed", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "order", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/MemorySearchOrder" } }, { "name": "size", "required": false, "in": "query", "description": "Number of memories to return", "schema": { "minimum": 1, "type": "integer" } }, { "name": "type", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/MemoryType" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/MemoryResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve memories", "tags": [ "Memories" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "memory.read", "x-immich-state": "Stable" }, "post": { "description": "Create a new memory by providing a name, description, and a list of asset IDs to include in the memory.", "operationId": "createMemory", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemoryCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemoryResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a memory", "tags": [ "Memories" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "memory.create", "x-immich-state": "Stable" } }, "/memories/statistics": { "get": { "description": "Retrieve statistics about memories, such as total count and other relevant metrics.", "operationId": "memoriesStatistics", "parameters": [ { "name": "for", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "isSaved", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "isTrashed", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "order", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/MemorySearchOrder" } }, { "name": "size", "required": false, "in": "query", "description": "Number of memories to return", "schema": { "minimum": 1, "type": "integer" } }, { "name": "type", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/MemoryType" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemoryStatisticsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve memories statistics", "tags": [ "Memories" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "memory.statistics", "x-immich-state": "Stable" } }, "/memories/{id}": { "delete": { "description": "Delete a specific memory by its ID.", "operationId": "deleteMemory", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete a memory", "tags": [ "Memories" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "memory.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a specific memory by its ID.", "operationId": "getMemory", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemoryResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve a memory", "tags": [ "Memories" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "memory.read", "x-immich-state": "Stable" }, "put": { "description": "Update an existing memory by its ID.", "operationId": "updateMemory", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemoryUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemoryResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update a memory", "tags": [ "Memories" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "memory.update", "x-immich-state": "Stable" } }, "/memories/{id}/assets": { "delete": { "description": "Remove a list of asset IDs from a specific memory.", "operationId": "removeMemoryAssets", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkIdsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/BulkIdResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Remove assets from a memory", "tags": [ "Memories" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "memoryAsset.delete", "x-immich-state": "Stable" }, "put": { "description": "Add a list of asset IDs to a specific memory.", "operationId": "addMemoryAssets", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkIdsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/BulkIdResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Add assets to a memory", "tags": [ "Memories" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "memoryAsset.create", "x-immich-state": "Stable" } }, "/notifications": { "delete": { "description": "Delete a list of notifications at once.", "operationId": "deleteNotifications", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationDeleteAllDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete notifications", "tags": [ "Notifications" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "notification.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a list of notifications.", "operationId": "getNotifications", "parameters": [ { "name": "id", "required": false, "in": "query", "schema": { "format": "uuid", "type": "string" } }, { "name": "level", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/NotificationLevel" } }, { "name": "type", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/NotificationType" } }, { "name": "unread", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/NotificationDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve notifications", "tags": [ "Notifications" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "notification.read", "x-immich-state": "Stable" }, "put": { "description": "Update a list of notifications. Allows to bulk-set the read status of notifications.", "operationId": "updateNotifications", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationUpdateAllDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update notifications", "tags": [ "Notifications" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "notification.update", "x-immich-state": "Stable" } }, "/notifications/{id}": { "delete": { "description": "Delete a specific notification.", "operationId": "deleteNotification", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete a notification", "tags": [ "Notifications" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "notification.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a specific notification identified by id.", "operationId": "getNotification", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get a notification", "tags": [ "Notifications" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "notification.read", "x-immich-state": "Stable" }, "put": { "description": "Update a specific notification to set its read status.", "operationId": "updateNotification", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update a notification", "tags": [ "Notifications" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "notification.update", "x-immich-state": "Stable" } }, "/oauth/authorize": { "post": { "description": "Initiate the OAuth authorization process.", "operationId": "startOAuth", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthConfigDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthAuthorizeResponseDto" } } }, "description": "" } }, "summary": "Start OAuth", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/oauth/callback": { "post": { "description": "Complete the OAuth authorization process by exchanging the authorization code for a session token.", "operationId": "finishOAuth", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthCallbackDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginResponseDto" } } }, "description": "" } }, "summary": "Finish OAuth", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/oauth/link": { "post": { "description": "Link an OAuth account to the authenticated user.", "operationId": "linkOAuthAccount", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthCallbackDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Link OAuth account", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/oauth/mobile-redirect": { "get": { "description": "Requests to this URL are automatically forwarded to the mobile app, and is used in some cases for OAuth redirecting.", "operationId": "redirectOAuthToMobile", "parameters": [], "responses": { "200": { "description": "" } }, "summary": "Redirect OAuth to mobile", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/oauth/unlink": { "post": { "description": "Unlink the OAuth account from the authenticated user.", "operationId": "unlinkOAuthAccount", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Unlink OAuth account", "tags": [ "Authentication" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/partners": { "get": { "description": "Retrieve a list of partners with whom assets are shared.", "operationId": "getPartners", "parameters": [ { "name": "direction", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/PartnerDirection" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PartnerResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve partners", "tags": [ "Partners" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "partner.read", "x-immich-state": "Stable" }, "post": { "description": "Create a new partner to share assets with.", "operationId": "createPartner", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PartnerCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PartnerResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a partner", "tags": [ "Partners" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "partner.create", "x-immich-state": "Stable" } }, "/partners/{id}": { "delete": { "description": "Stop sharing assets with a partner.", "operationId": "removePartner", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Remove a partner", "tags": [ "Partners" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "partner.delete", "x-immich-state": "Stable" }, "post": { "deprecated": true, "description": "Create a new partner to share assets with.", "operationId": "createPartnerDeprecated", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PartnerResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a partner", "tags": [ "Partners", "Deprecated" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Deprecated", "replacementId": "createPartner" } ], "x-immich-permission": "partner.create", "x-immich-state": "Deprecated" }, "put": { "description": "Specify whether a partner's assets should appear in the user's timeline.", "operationId": "updatePartner", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PartnerUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PartnerResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update a partner", "tags": [ "Partners" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "partner.update", "x-immich-state": "Stable" } }, "/people": { "delete": { "description": "Bulk delete a list of people at once.", "operationId": "deletePeople", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkIdsDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete people", "tags": [ "People" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a list of all people.", "operationId": "getAllPeople", "parameters": [ { "name": "closestAssetId", "required": false, "in": "query", "schema": { "format": "uuid", "type": "string" } }, { "name": "closestPersonId", "required": false, "in": "query", "schema": { "format": "uuid", "type": "string" } }, { "name": "page", "required": false, "in": "query", "description": "Page number for pagination", "schema": { "minimum": 1, "default": 1, "type": "number" } }, { "name": "size", "required": false, "in": "query", "description": "Number of items per page", "schema": { "minimum": 1, "maximum": 1000, "default": 500, "type": "number" } }, { "name": "withHidden", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PeopleResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get all people", "tags": [ "People" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.read", "x-immich-state": "Stable" }, "post": { "description": "Create a new person that can have multiple faces assigned to them.", "operationId": "createPerson", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a person", "tags": [ "People" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.create", "x-immich-state": "Stable" }, "put": { "description": "Bulk update multiple people at once.", "operationId": "updatePeople", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PeopleUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/BulkIdResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update people", "tags": [ "People" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.update", "x-immich-state": "Stable" } }, "/people/{id}": { "delete": { "description": "Delete an individual person.", "operationId": "deletePerson", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete person", "tags": [ "People" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a person by id.", "operationId": "getPerson", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get a person", "tags": [ "People" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.read", "x-immich-state": "Stable" }, "put": { "description": "Update an individual person.", "operationId": "updatePerson", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update person", "tags": [ "People" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.update", "x-immich-state": "Stable" } }, "/people/{id}/merge": { "post": { "description": "Merge a list of people into the person specified in the path parameter.", "operationId": "mergePerson", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MergePersonDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/BulkIdResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Merge people", "tags": [ "People" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.merge", "x-immich-state": "Stable" } }, "/people/{id}/reassign": { "put": { "description": "Bulk reassign a list of faces to a different person.", "operationId": "reassignFaces", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetFaceUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PersonResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Reassign faces", "tags": [ "People" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.reassign", "x-immich-state": "Stable" } }, "/people/{id}/statistics": { "get": { "description": "Retrieve statistics about a specific person.", "operationId": "getPersonStatistics", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PersonStatisticsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get person statistics", "tags": [ "People" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.statistics", "x-immich-state": "Stable" } }, "/people/{id}/thumbnail": { "get": { "description": "Retrieve the thumbnail file for a person.", "operationId": "getPersonThumbnail", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/octet-stream": { "schema": { "format": "binary", "type": "string" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get person thumbnail", "tags": [ "People" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.read", "x-immich-state": "Stable" } }, "/plugins": { "get": { "description": "Retrieve a list of plugins available to the authenticated user.", "operationId": "getPlugins", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PluginResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "List all plugins", "tags": [ "Plugins" ], "x-immich-history": [ { "version": "v2.3.0", "state": "Added" }, { "version": "v2.3.0", "state": "Alpha" } ], "x-immich-permission": "plugin.read", "x-immich-state": "Alpha" } }, "/plugins/{id}": { "get": { "description": "Retrieve information about a specific plugin by its ID.", "operationId": "getPlugin", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PluginResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve a plugin", "tags": [ "Plugins" ], "x-immich-history": [ { "version": "v2.3.0", "state": "Added" }, { "version": "v2.3.0", "state": "Alpha" } ], "x-immich-permission": "plugin.read", "x-immich-state": "Alpha" } }, "/search/cities": { "get": { "description": "Retrieve a list of assets with each asset belonging to a different city. This endpoint is used on the places pages to show a single thumbnail for each city the user has assets in.", "operationId": "getAssetsByCity", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve assets by city", "tags": [ "Search" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" } }, "/search/explore": { "get": { "description": "Retrieve data for the explore section, such as popular people and places.", "operationId": "getExploreData", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SearchExploreResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve explore data", "tags": [ "Search" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" } }, "/search/large-assets": { "post": { "description": "Search for assets that are considered large based on specified criteria.", "operationId": "searchLargeAssets", "parameters": [ { "name": "albumIds", "required": false, "in": "query", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "city", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, { "name": "country", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, { "name": "createdAfter", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "createdBefore", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "deviceId", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "isEncoded", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "isFavorite", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "isMotion", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "isNotInAlbum", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "isOffline", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "lensModel", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, { "name": "libraryId", "required": false, "in": "query", "schema": { "format": "uuid", "nullable": true, "type": "string" } }, { "name": "make", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "minFileSize", "required": false, "in": "query", "schema": { "minimum": 0, "type": "integer" } }, { "name": "model", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, { "name": "ocr", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "personIds", "required": false, "in": "query", "schema": { "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "rating", "required": false, "in": "query", "schema": { "minimum": -1, "maximum": 5, "type": "number" } }, { "name": "size", "required": false, "in": "query", "schema": { "minimum": 1, "maximum": 1000, "type": "number" } }, { "name": "state", "required": false, "in": "query", "schema": { "nullable": true, "type": "string" } }, { "name": "tagIds", "required": false, "in": "query", "schema": { "nullable": true, "type": "array", "items": { "type": "string", "format": "uuid" } } }, { "name": "takenAfter", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "takenBefore", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "trashedAfter", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "trashedBefore", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "type", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/AssetTypeEnum" } }, { "name": "updatedAfter", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "updatedBefore", "required": false, "in": "query", "schema": { "format": "date-time", "type": "string" } }, { "name": "visibility", "required": false, "in": "query", "schema": { "$ref": "#/components/schemas/AssetVisibility" } }, { "name": "withDeleted", "required": false, "in": "query", "schema": { "type": "boolean" } }, { "name": "withExif", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Search large assets", "tags": [ "Search" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" } }, "/search/metadata": { "post": { "description": "Search for assets based on various metadata criteria.", "operationId": "searchAssets", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MetadataSearchDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Search assets by metadata", "tags": [ "Search" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" } }, "/search/person": { "get": { "description": "Search for people by name.", "operationId": "searchPerson", "parameters": [ { "name": "name", "required": true, "in": "query", "schema": { "type": "string" } }, { "name": "withHidden", "required": false, "in": "query", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PersonResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Search people", "tags": [ "Search" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "person.read", "x-immich-state": "Stable" } }, "/search/places": { "get": { "description": "Search for places by name.", "operationId": "searchPlaces", "parameters": [ { "name": "name", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PlacesResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Search places", "tags": [ "Search" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" } }, "/search/random": { "post": { "description": "Retrieve a random selection of assets based on the provided criteria.", "operationId": "searchRandom", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RandomSearchDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Search random assets", "tags": [ "Search" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" } }, "/search/smart": { "post": { "description": "Perform a smart search for assets by using machine learning vectors to determine relevance.", "operationId": "searchSmart", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SmartSearchDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Smart asset search", "tags": [ "Search" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" } }, "/search/statistics": { "post": { "description": "Retrieve statistical data about assets based on search criteria, such as the total matching count.", "operationId": "searchAssetStatistics", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StatisticsSearchDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchStatisticsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Search asset statistics", "tags": [ "Search" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.statistics", "x-immich-state": "Stable" } }, "/search/suggestions": { "get": { "description": "Retrieve search suggestions based on partial input. This endpoint is used for typeahead search features.", "operationId": "getSearchSuggestions", "parameters": [ { "name": "country", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "includeNull", "required": false, "in": "query", "x-immich-history": [ { "version": "v1.111.0", "state": "Added" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable", "schema": { "type": "boolean" } }, { "name": "lensModel", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "make", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "model", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "state", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "type", "required": true, "in": "query", "schema": { "$ref": "#/components/schemas/SearchSuggestionType" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "type": "string" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve search suggestions", "tags": [ "Search" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.read", "x-immich-state": "Stable" } }, "/server/about": { "get": { "description": "Retrieve a list of information about the server.", "operationId": "getAboutInfo", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServerAboutResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get server information", "tags": [ "Server" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "server.about", "x-immich-state": "Stable" } }, "/server/apk-links": { "get": { "description": "Retrieve links to the APKs for the current server version.", "operationId": "getApkLinks", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServerApkLinksDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get APK links", "tags": [ "Server" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "server.apkLinks", "x-immich-state": "Stable" } }, "/server/config": { "get": { "description": "Retrieve the current server configuration.", "operationId": "getServerConfig", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServerConfigDto" } } }, "description": "" } }, "summary": "Get config", "tags": [ "Server" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/server/features": { "get": { "description": "Retrieve available features supported by this server.", "operationId": "getServerFeatures", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServerFeaturesDto" } } }, "description": "" } }, "summary": "Get features", "tags": [ "Server" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/server/license": { "delete": { "description": "Delete the currently set server product key.", "operationId": "deleteServerLicense", "parameters": [], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete server product key", "tags": [ "Server" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "serverLicense.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve information about whether the server currently has a product key registered.", "operationId": "getServerLicense", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LicenseResponseDto" } } }, "description": "" }, "404": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get product key", "tags": [ "Server" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "serverLicense.read", "x-immich-state": "Stable" }, "put": { "description": "Validate and set the server product key if successful.", "operationId": "setServerLicense", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LicenseKeyDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LicenseResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Set server product key", "tags": [ "Server" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "serverLicense.update", "x-immich-state": "Stable" } }, "/server/media-types": { "get": { "description": "Retrieve all media types supported by the server.", "operationId": "getSupportedMediaTypes", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServerMediaTypesResponseDto" } } }, "description": "" } }, "summary": "Get supported media types", "tags": [ "Server" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/server/ping": { "get": { "description": "Pong", "operationId": "pingServer", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServerPingResponse" } } }, "description": "" } }, "summary": "Ping", "tags": [ "Server" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/server/statistics": { "get": { "description": "Retrieve statistics about the entire Immich instance such as asset counts.", "operationId": "getServerStatistics", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServerStatsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get statistics", "tags": [ "Server" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "server.statistics", "x-immich-state": "Stable" } }, "/server/storage": { "get": { "description": "Retrieve the current storage utilization information of the server.", "operationId": "getStorage", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServerStorageResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get storage", "tags": [ "Server" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "server.storage", "x-immich-state": "Stable" } }, "/server/theme": { "get": { "description": "Retrieve the custom CSS, if existent.", "operationId": "getTheme", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServerThemeDto" } } }, "description": "" } }, "summary": "Get theme", "tags": [ "Server" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/server/version": { "get": { "description": "Retrieve the current server version in semantic versioning (semver) format.", "operationId": "getServerVersion", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServerVersionResponseDto" } } }, "description": "" } }, "summary": "Get server version", "tags": [ "Server" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/server/version-check": { "get": { "description": "Retrieve information about the last time the version check ran.", "operationId": "getVersionCheck", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VersionCheckStateResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get version check status", "tags": [ "Server" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "server.versionCheck", "x-immich-state": "Stable" } }, "/server/version-history": { "get": { "description": "Retrieve a list of past versions the server has been on.", "operationId": "getVersionHistory", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ServerVersionHistoryResponseDto" }, "type": "array" } } }, "description": "" } }, "summary": "Get version history", "tags": [ "Server" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/sessions": { "delete": { "description": "Delete all sessions for the user. This will not delete the current session.", "operationId": "deleteAllSessions", "parameters": [], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete all sessions", "tags": [ "Sessions" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "session.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a list of sessions for the user.", "operationId": "getSessions", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SessionResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve sessions", "tags": [ "Sessions" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "session.read", "x-immich-state": "Stable" }, "post": { "description": "Create a session as a child to the current session. This endpoint is used for casting.", "operationId": "createSession", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionCreateResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a session", "tags": [ "Sessions" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "session.create", "x-immich-state": "Stable" } }, "/sessions/{id}": { "delete": { "description": "Delete a specific session by id.", "operationId": "deleteSession", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete a session", "tags": [ "Sessions" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "session.delete", "x-immich-state": "Stable" }, "put": { "description": "Update a specific session identified by id.", "operationId": "updateSession", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SessionResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update a session", "tags": [ "Sessions" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "session.update", "x-immich-state": "Stable" } }, "/sessions/{id}/lock": { "post": { "description": "Lock a specific session by id.", "operationId": "lockSession", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Lock a session", "tags": [ "Sessions" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "session.lock", "x-immich-state": "Stable" } }, "/shared-links": { "get": { "description": "Retrieve a list of all shared links.", "operationId": "getAllSharedLinks", "parameters": [ { "name": "albumId", "required": false, "in": "query", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SharedLinkResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve all shared links", "tags": [ "Shared links" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "sharedLink.read", "x-immich-state": "Stable" }, "post": { "description": "Create a new shared link.", "operationId": "createSharedLink", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SharedLinkCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SharedLinkResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a shared link", "tags": [ "Shared links" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "sharedLink.create", "x-immich-state": "Stable" } }, "/shared-links/me": { "get": { "description": "Retrieve the current shared link associated with authentication method.", "operationId": "getMySharedLink", "parameters": [ { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "password", "required": false, "in": "query", "schema": { "example": "password", "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "token", "required": false, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SharedLinkResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve current shared link", "tags": [ "Shared links" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/shared-links/{id}": { "delete": { "description": "Delete a specific shared link by its ID.", "operationId": "removeSharedLink", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete a shared link", "tags": [ "Shared links" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "sharedLink.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a specific shared link by its ID.", "operationId": "getSharedLinkById", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SharedLinkResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve a shared link", "tags": [ "Shared links" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "sharedLink.read", "x-immich-state": "Stable" }, "patch": { "description": "Update an existing shared link by its ID.", "operationId": "updateSharedLink", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SharedLinkEditDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SharedLinkResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update a shared link", "tags": [ "Shared links" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "sharedLink.update", "x-immich-state": "Stable" } }, "/shared-links/{id}/assets": { "delete": { "description": "Remove assets from a specific shared link by its ID. This endpoint is only relevant for shared link of type individual.", "operationId": "removeSharedLinkAssets", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetIdsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetIdsResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Remove assets from a shared link", "tags": [ "Shared links" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" }, "put": { "description": "Add assets to a specific shared link by its ID. This endpoint is only relevant for shared link of type individual.", "operationId": "addSharedLinkAssets", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetIdsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetIdsResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Add assets to a shared link", "tags": [ "Shared links" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/stacks": { "delete": { "description": "Delete multiple stacks by providing a list of stack IDs.", "operationId": "deleteStacks", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkIdsDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete stacks", "tags": [ "Stacks" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "stack.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a list of stacks.", "operationId": "searchStacks", "parameters": [ { "name": "primaryAssetId", "required": false, "in": "query", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/StackResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve stacks", "tags": [ "Stacks" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "stack.read", "x-immich-state": "Stable" }, "post": { "description": "Create a new stack by providing a name and a list of asset IDs to include in the stack. If any of the provided asset IDs are primary assets of an existing stack, the existing stack will be merged into the newly created stack.", "operationId": "createStack", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StackCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StackResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a stack", "tags": [ "Stacks" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "stack.create", "x-immich-state": "Stable" } }, "/stacks/{id}": { "delete": { "description": "Delete a specific stack by its ID.", "operationId": "deleteStack", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete a stack", "tags": [ "Stacks" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "stack.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a specific stack by its ID.", "operationId": "getStack", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StackResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve a stack", "tags": [ "Stacks" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "stack.read", "x-immich-state": "Stable" }, "put": { "description": "Update an existing stack by its ID.", "operationId": "updateStack", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StackUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StackResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update a stack", "tags": [ "Stacks" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "stack.update", "x-immich-state": "Stable" } }, "/stacks/{id}/assets/{assetId}": { "delete": { "description": "Remove a specific asset from a stack by providing the stack ID and asset ID.", "operationId": "removeAssetFromStack", "parameters": [ { "name": "assetId", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Remove an asset from a stack", "tags": [ "Stacks" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "stack.update", "x-immich-state": "Stable" } }, "/sync/ack": { "delete": { "description": "Delete specific synchronization acknowledgments.", "operationId": "deleteSyncAck", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SyncAckDeleteDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete acknowledgements", "tags": [ "Sync" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "syncCheckpoint.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve the synchronization acknowledgments for the current session.", "operationId": "getSyncAck", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SyncAckDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve acknowledgements", "tags": [ "Sync" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "syncCheckpoint.read", "x-immich-state": "Stable" }, "post": { "description": "Send a list of synchronization acknowledgements to confirm that the latest changes have been received.", "operationId": "sendSyncAck", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SyncAckSetDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Acknowledge changes", "tags": [ "Sync" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "syncCheckpoint.update", "x-immich-state": "Stable" } }, "/sync/delta-sync": { "post": { "deprecated": true, "description": "Retrieve changed assets since the last sync for the authenticated user.", "operationId": "getDeltaSync", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetDeltaSyncDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetDeltaSyncResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get delta sync for user", "tags": [ "Sync", "Deprecated" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v2", "state": "Deprecated" } ], "x-immich-state": "Deprecated" } }, "/sync/full-sync": { "post": { "deprecated": true, "description": "Retrieve all assets for a full synchronization for the authenticated user.", "operationId": "getFullSyncForUser", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssetFullSyncDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get full sync for user", "tags": [ "Sync", "Deprecated" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v2", "state": "Deprecated" } ], "x-immich-state": "Deprecated" } }, "/sync/stream": { "post": { "description": "Retrieve a JSON lines streamed response of changes for synchronization. This endpoint is used by the mobile app to efficiently stay up to date with changes.", "operationId": "getSyncStream", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SyncStreamDto" } } }, "required": true }, "responses": { "200": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Stream sync changes", "tags": [ "Sync" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "sync.stream", "x-immich-state": "Stable" } }, "/system-config": { "get": { "description": "Retrieve the current system configuration.", "operationId": "getConfig", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfigDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get system configuration", "tags": [ "System config" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "systemConfig.read", "x-immich-state": "Stable" }, "put": { "description": "Update the system configuration with a new system configuration.", "operationId": "updateConfig", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfigDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfigDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update system configuration", "tags": [ "System config" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "systemConfig.update", "x-immich-state": "Stable" } }, "/system-config/defaults": { "get": { "description": "Retrieve the default values for the system configuration.", "operationId": "getConfigDefaults", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfigDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get system configuration defaults", "tags": [ "System config" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "systemConfig.read", "x-immich-state": "Stable" } }, "/system-config/storage-template-options": { "get": { "description": "Retrieve exemplary storage template options.", "operationId": "getStorageTemplateOptions", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SystemConfigTemplateStorageOptionDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get storage template options", "tags": [ "System config" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "systemConfig.read", "x-immich-state": "Stable" } }, "/system-metadata/admin-onboarding": { "get": { "description": "Retrieve the current admin onboarding status.", "operationId": "getAdminOnboarding", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOnboardingUpdateDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve admin onboarding", "tags": [ "System metadata" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "systemMetadata.read", "x-immich-state": "Stable" }, "post": { "description": "Update the admin onboarding status.", "operationId": "updateAdminOnboarding", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AdminOnboardingUpdateDto" } } }, "required": true }, "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update admin onboarding", "tags": [ "System metadata" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "systemMetadata.update", "x-immich-state": "Stable" } }, "/system-metadata/reverse-geocoding-state": { "get": { "description": "Retrieve the current state of the reverse geocoding import.", "operationId": "getReverseGeocodingState", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReverseGeocodingStateResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve reverse geocoding state", "tags": [ "System metadata" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "systemMetadata.read", "x-immich-state": "Stable" } }, "/system-metadata/version-check-state": { "get": { "description": "Retrieve the current state of the version check process.", "operationId": "getVersionCheckState", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VersionCheckStateResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve version check state", "tags": [ "System metadata" ], "x-immich-admin-only": true, "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "systemMetadata.read", "x-immich-state": "Stable" } }, "/tags": { "get": { "description": "Retrieve a list of all tags.", "operationId": "getAllTags", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TagResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve tags", "tags": [ "Tags" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "tag.read", "x-immich-state": "Stable" }, "post": { "description": "Create a new tag by providing a name and optional color.", "operationId": "createTag", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a tag", "tags": [ "Tags" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "tag.create", "x-immich-state": "Stable" }, "put": { "description": "Create or update multiple tags in a single request.", "operationId": "upsertTags", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagUpsertDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TagResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Upsert tags", "tags": [ "Tags" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "tag.create", "x-immich-state": "Stable" } }, "/tags/assets": { "put": { "description": "Add multiple tags to multiple assets in a single request.", "operationId": "bulkTagAssets", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagBulkAssetsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagBulkAssetsResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Tag assets", "tags": [ "Tags" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "tag.asset", "x-immich-state": "Stable" } }, "/tags/{id}": { "delete": { "description": "Delete a specific tag by its ID.", "operationId": "deleteTag", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete a tag", "tags": [ "Tags" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "tag.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve a specific tag by its ID.", "operationId": "getTagById", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve a tag", "tags": [ "Tags" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "tag.read", "x-immich-state": "Stable" }, "put": { "description": "Update an existing tag identified by its ID.", "operationId": "updateTag", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update a tag", "tags": [ "Tags" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "tag.update", "x-immich-state": "Stable" } }, "/tags/{id}/assets": { "delete": { "description": "Remove a tag from all the specified assets.", "operationId": "untagAssets", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkIdsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/BulkIdResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Untag assets", "tags": [ "Tags" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "tag.asset", "x-immich-state": "Stable" }, "put": { "description": "Add a tag to all the specified assets.", "operationId": "tagAssets", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkIdsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/BulkIdResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Tag assets", "tags": [ "Tags" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "tag.asset", "x-immich-state": "Stable" } }, "/timeline/bucket": { "get": { "description": "Retrieve a string of all asset ids in a given time bucket.", "operationId": "getTimeBucket", "parameters": [ { "name": "albumId", "required": false, "in": "query", "description": "Filter assets belonging to a specific album", "schema": { "format": "uuid", "type": "string" } }, { "name": "isFavorite", "required": false, "in": "query", "description": "Filter by favorite status (true for favorites only, false for non-favorites only)", "schema": { "type": "boolean" } }, { "name": "isTrashed", "required": false, "in": "query", "description": "Filter by trash status (true for trashed assets only, false for non-trashed only)", "schema": { "type": "boolean" } }, { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "order", "required": false, "in": "query", "description": "Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)", "schema": { "$ref": "#/components/schemas/AssetOrder" } }, { "name": "personId", "required": false, "in": "query", "description": "Filter assets containing a specific person (face recognition)", "schema": { "format": "uuid", "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "tagId", "required": false, "in": "query", "description": "Filter assets with a specific tag", "schema": { "format": "uuid", "type": "string" } }, { "name": "timeBucket", "required": true, "in": "query", "description": "Time bucket identifier in YYYY-MM-DD format (e.g., \"2024-01-01\" for January 2024)", "schema": { "example": "2024-01-01", "type": "string" } }, { "name": "userId", "required": false, "in": "query", "description": "Filter assets by specific user ID", "schema": { "format": "uuid", "type": "string" } }, { "name": "visibility", "required": false, "in": "query", "description": "Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)", "schema": { "$ref": "#/components/schemas/AssetVisibility" } }, { "name": "withCoordinates", "required": false, "in": "query", "description": "Include location data in the response", "schema": { "type": "boolean" } }, { "name": "withPartners", "required": false, "in": "query", "description": "Include assets shared by partners", "schema": { "type": "boolean" } }, { "name": "withStacked", "required": false, "in": "query", "description": "Include stacked assets in the response. When true, only primary assets from stacks are returned.", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TimeBucketAssetResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get time bucket", "tags": [ "Timeline" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Internal" } ], "x-immich-permission": "asset.read", "x-immich-state": "Internal" } }, "/timeline/buckets": { "get": { "description": "Retrieve a list of all minimal time buckets.", "operationId": "getTimeBuckets", "parameters": [ { "name": "albumId", "required": false, "in": "query", "description": "Filter assets belonging to a specific album", "schema": { "format": "uuid", "type": "string" } }, { "name": "isFavorite", "required": false, "in": "query", "description": "Filter by favorite status (true for favorites only, false for non-favorites only)", "schema": { "type": "boolean" } }, { "name": "isTrashed", "required": false, "in": "query", "description": "Filter by trash status (true for trashed assets only, false for non-trashed only)", "schema": { "type": "boolean" } }, { "name": "key", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "order", "required": false, "in": "query", "description": "Sort order for assets within time buckets (ASC for oldest first, DESC for newest first)", "schema": { "$ref": "#/components/schemas/AssetOrder" } }, { "name": "personId", "required": false, "in": "query", "description": "Filter assets containing a specific person (face recognition)", "schema": { "format": "uuid", "type": "string" } }, { "name": "slug", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "tagId", "required": false, "in": "query", "description": "Filter assets with a specific tag", "schema": { "format": "uuid", "type": "string" } }, { "name": "userId", "required": false, "in": "query", "description": "Filter assets by specific user ID", "schema": { "format": "uuid", "type": "string" } }, { "name": "visibility", "required": false, "in": "query", "description": "Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)", "schema": { "$ref": "#/components/schemas/AssetVisibility" } }, { "name": "withCoordinates", "required": false, "in": "query", "description": "Include location data in the response", "schema": { "type": "boolean" } }, { "name": "withPartners", "required": false, "in": "query", "description": "Include assets shared by partners", "schema": { "type": "boolean" } }, { "name": "withStacked", "required": false, "in": "query", "description": "Include stacked assets in the response. When true, only primary assets from stacks are returned.", "schema": { "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TimeBucketsResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get time buckets", "tags": [ "Timeline" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Internal" } ], "x-immich-permission": "asset.read", "x-immich-state": "Internal" } }, "/trash/empty": { "post": { "description": "Permanently delete all items in the trash.", "operationId": "emptyTrash", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrashResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Empty trash", "tags": [ "Trash" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.delete", "x-immich-state": "Stable" } }, "/trash/restore": { "post": { "description": "Restore all items in the trash.", "operationId": "restoreTrash", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrashResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Restore trash", "tags": [ "Trash" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.delete", "x-immich-state": "Stable" } }, "/trash/restore/assets": { "post": { "description": "Restore specific assets from the trash.", "operationId": "restoreAssets", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkIdsDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TrashResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Restore assets", "tags": [ "Trash" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "asset.delete", "x-immich-state": "Stable" } }, "/users": { "get": { "description": "Retrieve a list of all users on the server.", "operationId": "searchUsers", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/UserResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get all users", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "user.read", "x-immich-state": "Stable" } }, "/users/me": { "get": { "description": "Retrieve information about the user making the API request.", "operationId": "getMyUser", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get current user", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "user.read", "x-immich-state": "Stable" }, "put": { "description": "Update the current user making teh API request.", "operationId": "updateMyUser", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserUpdateMeDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAdminResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update current user", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "user.update", "x-immich-state": "Stable" } }, "/users/me/license": { "delete": { "description": "Delete the registered product key for the current user.", "operationId": "deleteUserLicense", "parameters": [], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete user product key", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "userLicense.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve information about whether the current user has a registered product key.", "operationId": "getUserLicense", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LicenseResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve user product key", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "userLicense.read", "x-immich-state": "Stable" }, "put": { "description": "Register a product key for the current user.", "operationId": "setUserLicense", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LicenseKeyDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LicenseResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Set user product key", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "userLicense.update", "x-immich-state": "Stable" } }, "/users/me/onboarding": { "delete": { "description": "Delete the onboarding status of the current user.", "operationId": "deleteUserOnboarding", "parameters": [], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete user onboarding", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "userOnboarding.delete", "x-immich-state": "Stable" }, "get": { "description": "Retrieve the onboarding status of the current user.", "operationId": "getUserOnboarding", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OnboardingResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve user onboarding", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "userOnboarding.read", "x-immich-state": "Stable" }, "put": { "description": "Update the onboarding status of the current user.", "operationId": "setUserOnboarding", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OnboardingDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OnboardingResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update user onboarding", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "userOnboarding.update", "x-immich-state": "Stable" } }, "/users/me/preferences": { "get": { "description": "Retrieve the preferences for the current user.", "operationId": "getMyPreferences", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPreferencesResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Get my preferences", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "userPreference.read", "x-immich-state": "Stable" }, "put": { "description": "Update the preferences of the current user.", "operationId": "updateMyPreferences", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPreferencesUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPreferencesResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update my preferences", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "userPreference.update", "x-immich-state": "Stable" } }, "/users/profile-image": { "delete": { "description": "Delete the profile image of the current user.", "operationId": "deleteProfileImage", "parameters": [], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete user profile image", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "userProfileImage.delete", "x-immich-state": "Stable" }, "post": { "description": "Upload and set a new profile image for the current user.", "operationId": "createProfileImage", "parameters": [], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/CreateProfileImageDto" } } }, "description": "A new avatar for the user", "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateProfileImageResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create user profile image", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "userProfileImage.update", "x-immich-state": "Stable" } }, "/users/{id}": { "get": { "description": "Retrieve a specific user by their ID.", "operationId": "getUser", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve a user", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "user.read", "x-immich-state": "Stable" } }, "/users/{id}/profile-image": { "get": { "description": "Retrieve the profile image file for a user.", "operationId": "getProfileImage", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/octet-stream": { "schema": { "format": "binary", "type": "string" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve user profile image", "tags": [ "Users" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-permission": "userProfileImage.read", "x-immich-state": "Stable" } }, "/view/folder": { "get": { "description": "Retrieve assets that are children of a specific folder.", "operationId": "getAssetsByOriginalPath", "parameters": [ { "name": "path", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve assets by original path", "tags": [ "Views" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/view/folder/unique-paths": { "get": { "description": "Retrieve a list of unique folder paths from asset original paths.", "operationId": "getUniqueOriginalPaths", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "type": "string" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve unique paths", "tags": [ "Views" ], "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Beta" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "/workflows": { "get": { "description": "Retrieve a list of workflows available to the authenticated user.", "operationId": "getWorkflows", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/WorkflowResponseDto" }, "type": "array" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "List all workflows", "tags": [ "Workflows" ], "x-immich-history": [ { "version": "v2.3.0", "state": "Added" }, { "version": "v2.3.0", "state": "Alpha" } ], "x-immich-permission": "workflow.read", "x-immich-state": "Alpha" }, "post": { "description": "Create a new workflow, the workflow can also be created with empty filters and actions.", "operationId": "createWorkflow", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkflowCreateDto" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkflowResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Create a workflow", "tags": [ "Workflows" ], "x-immich-history": [ { "version": "v2.3.0", "state": "Added" }, { "version": "v2.3.0", "state": "Alpha" } ], "x-immich-permission": "workflow.create", "x-immich-state": "Alpha" } }, "/workflows/{id}": { "delete": { "description": "Delete a workflow by its ID.", "operationId": "deleteWorkflow", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Delete a workflow", "tags": [ "Workflows" ], "x-immich-history": [ { "version": "v2.3.0", "state": "Added" }, { "version": "v2.3.0", "state": "Alpha" } ], "x-immich-permission": "workflow.delete", "x-immich-state": "Alpha" }, "get": { "description": "Retrieve information about a specific workflow by its ID.", "operationId": "getWorkflow", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkflowResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Retrieve a workflow", "tags": [ "Workflows" ], "x-immich-history": [ { "version": "v2.3.0", "state": "Added" }, { "version": "v2.3.0", "state": "Alpha" } ], "x-immich-permission": "workflow.read", "x-immich-state": "Alpha" }, "put": { "description": "Update the information of a specific workflow by its ID. This endpoint can be used to update the workflow name, description, trigger type, filters and actions order, etc.", "operationId": "updateWorkflow", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkflowUpdateDto" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkflowResponseDto" } } }, "description": "" } }, "security": [ { "bearer": [] }, { "cookie": [] }, { "api_key": [] } ], "summary": "Update a workflow", "tags": [ "Workflows" ], "x-immich-history": [ { "version": "v2.3.0", "state": "Added" }, { "version": "v2.3.0", "state": "Alpha" } ], "x-immich-permission": "workflow.update", "x-immich-state": "Alpha" } } }, "info": { "title": "Immich", "description": "Immich API", "version": "2.2.3", "contact": {} }, "tags": [ { "name": "Activities", "description": "An activity is a like or a comment made by a user on an asset or album." }, { "name": "Albums", "description": "An album is a collection of assets that can be shared with other users or via shared links." }, { "name": "API keys", "description": "An api key can be used to programmatically access the Immich API." }, { "name": "Assets", "description": "An asset is an image or video that has been uploaded to Immich." }, { "name": "Authentication", "description": "Endpoints related to user authentication, including OAuth." }, { "name": "Authentication (admin)", "description": "Administrative endpoints related to authentication." }, { "name": "Deprecated", "description": "Deprecated endpoints that are planned for removal in the next major release." }, { "name": "Download", "description": "Endpoints for downloading assets or collections of assets." }, { "name": "Duplicates", "description": "Endpoints for managing and identifying duplicate assets." }, { "name": "Faces", "description": "A face is a detected human face within an asset, which can be associated with a person. Faces are normally detected via machine learning, but can also be created via manually." }, { "name": "Jobs", "description": "Queues and background jobs are used for processing tasks asynchronously. Queues can be paused and resumed as needed." }, { "name": "Libraries", "description": "An external library is made up of input file paths or expressions that are scanned for asset files. Discovered files are automatically imported. Assets much be unique within a library, but can be duplicated across libraries. Each user has a default upload library, and can have one or more external libraries." }, { "name": "Maintenance (admin)", "description": "Maintenance mode allows you to put Immich in a read-only state to perform various operations." }, { "name": "Map", "description": "Map endpoints include supplemental functionality related to geolocation, such as reverse geocoding and retrieving map markers for assets with geolocation data." }, { "name": "Memories", "description": "A memory is a specialized collection of assets with dedicated viewing implementations in the web and mobile clients. A memory includes fields related to visibility and are automatically generated per user via a background job." }, { "name": "Notifications", "description": "A notification is a specialized message sent to users to inform them of important events. Currently, these notifications are only shown in the Immich web application." }, { "name": "Notifications (admin)", "description": "Notification administrative endpoints." }, { "name": "Partners", "description": "A partner is a link with another user that allows sharing of assets between two users." }, { "name": "People", "description": "A person is a collection of faces, which can be favorited and named. A person can also be merged into another person. People are automatically created via the face recognition job." }, { "name": "Plugins", "description": "A plugin is an installed module that makes filters and actions available for the workflow feature." }, { "name": "Search", "description": "Endpoints related to searching assets via text, smart search, optical character recognition (OCR), and other filters like person, album, and other metadata. Search endpoints usually support pagination and sorting." }, { "name": "Server", "description": "Information about the current server deployment, including version and build information, available features, supported media types, and more." }, { "name": "Sessions", "description": "A session represents an authenticated login session for a user. Sessions also appear in the web application as \"Authorized devices\"." }, { "name": "Shared links", "description": "A shared link is a public url that provides access to a specific album, asset, or collection of assets. A shared link can be protected with a password, include a specific slug, allow or disallow downloads, and optionally include an expiration date." }, { "name": "Stacks", "description": "A stack is a group of related assets. One asset is the \"primary\" asset, and the rest are \"child\" assets. On the main timeline, stack parents are included by default, while child assets are hidden." }, { "name": "Sync", "description": "A collection of endpoints for the new mobile synchronization implementation." }, { "name": "System config", "description": "Endpoints to view, modify, and validate the system configuration settings." }, { "name": "System metadata", "description": "Endpoints to view, modify, and validate the system metadata, which includes information about things like admin onboarding status." }, { "name": "Tags", "description": "A tag is a user-defined label that can be applied to assets for organizational purposes. Tags can also be hierarchical, allowing for parent-child relationships between tags." }, { "name": "Timeline", "description": "Specialized endpoints related to the timeline implementation used in the web application. External applications or tools should not use or rely on these endpoints, as they are subject to change without notice." }, { "name": "Trash", "description": "Endpoints for managing the trash can, which includes assets that have been discarded. Items in the trash are automatically deleted after a configured amount of time." }, { "name": "Users (admin)", "description": "Administrative endpoints for managing users, including creating, updating, deleting, and restoring users. Also includes endpoints for resetting passwords and PIN codes." }, { "name": "Users", "description": "Endpoints for viewing and updating the current users, including product key information, profile picture data, onboarding progress, and more." }, { "name": "Views", "description": "Endpoints for specialized views, such as the folder view." }, { "name": "Workflows", "description": "A workflow is a set of actions that run whenever a triggering event occurs. Workflows also can include filters to further limit execution." } ], "servers": [ { "url": "/api" } ], "components": { "securitySchemes": { "bearer": { "scheme": "Bearer", "bearerFormat": "JWT", "type": "http", "in": "header" }, "cookie": { "type": "apiKey", "in": "cookie", "name": "immich_access_token" }, "api_key": { "type": "apiKey", "in": "header", "name": "x-api-key" } }, "schemas": { "APIKeyCreateDto": { "properties": { "name": { "type": "string" }, "permissions": { "items": { "$ref": "#/components/schemas/Permission" }, "minItems": 1, "type": "array" } }, "required": [ "permissions" ], "type": "object" }, "APIKeyCreateResponseDto": { "properties": { "apiKey": { "$ref": "#/components/schemas/APIKeyResponseDto" }, "secret": { "type": "string" } }, "required": [ "apiKey", "secret" ], "type": "object" }, "APIKeyResponseDto": { "properties": { "createdAt": { "format": "date-time", "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "permissions": { "items": { "$ref": "#/components/schemas/Permission" }, "type": "array" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "createdAt", "id", "name", "permissions", "updatedAt" ], "type": "object" }, "APIKeyUpdateDto": { "properties": { "name": { "type": "string" }, "permissions": { "items": { "$ref": "#/components/schemas/Permission" }, "minItems": 1, "type": "array" } }, "type": "object" }, "ActivityCreateDto": { "properties": { "albumId": { "format": "uuid", "type": "string" }, "assetId": { "format": "uuid", "type": "string" }, "comment": { "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/ReactionType" } ] } }, "required": [ "albumId", "type" ], "type": "object" }, "ActivityResponseDto": { "properties": { "assetId": { "nullable": true, "type": "string" }, "comment": { "nullable": true, "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "id": { "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/ReactionType" } ] }, "user": { "$ref": "#/components/schemas/UserResponseDto" } }, "required": [ "assetId", "createdAt", "id", "type", "user" ], "type": "object" }, "ActivityStatisticsResponseDto": { "properties": { "comments": { "type": "integer" }, "likes": { "type": "integer" } }, "required": [ "comments", "likes" ], "type": "object" }, "AddUsersDto": { "properties": { "albumUsers": { "items": { "$ref": "#/components/schemas/AlbumUserAddDto" }, "minItems": 1, "type": "array" } }, "required": [ "albumUsers" ], "type": "object" }, "AdminOnboardingUpdateDto": { "properties": { "isOnboarded": { "type": "boolean" } }, "required": [ "isOnboarded" ], "type": "object" }, "AlbumResponseDto": { "properties": { "albumName": { "type": "string" }, "albumThumbnailAssetId": { "nullable": true, "type": "string" }, "albumUsers": { "items": { "$ref": "#/components/schemas/AlbumUserResponseDto" }, "type": "array" }, "assetCount": { "type": "integer" }, "assets": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" }, "contributorCounts": { "items": { "$ref": "#/components/schemas/ContributorCountResponseDto" }, "type": "array" }, "createdAt": { "format": "date-time", "type": "string" }, "description": { "type": "string" }, "endDate": { "format": "date-time", "type": "string" }, "hasSharedLink": { "type": "boolean" }, "id": { "type": "string" }, "isActivityEnabled": { "type": "boolean" }, "lastModifiedAssetTimestamp": { "format": "date-time", "type": "string" }, "order": { "allOf": [ { "$ref": "#/components/schemas/AssetOrder" } ] }, "owner": { "$ref": "#/components/schemas/UserResponseDto" }, "ownerId": { "type": "string" }, "shared": { "type": "boolean" }, "startDate": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "albumName", "albumThumbnailAssetId", "albumUsers", "assetCount", "assets", "createdAt", "description", "hasSharedLink", "id", "isActivityEnabled", "owner", "ownerId", "shared", "updatedAt" ], "type": "object" }, "AlbumStatisticsResponseDto": { "properties": { "notShared": { "type": "integer" }, "owned": { "type": "integer" }, "shared": { "type": "integer" } }, "required": [ "notShared", "owned", "shared" ], "type": "object" }, "AlbumUserAddDto": { "properties": { "role": { "allOf": [ { "$ref": "#/components/schemas/AlbumUserRole" } ], "default": "editor" }, "userId": { "format": "uuid", "type": "string" } }, "required": [ "userId" ], "type": "object" }, "AlbumUserCreateDto": { "properties": { "role": { "allOf": [ { "$ref": "#/components/schemas/AlbumUserRole" } ] }, "userId": { "format": "uuid", "type": "string" } }, "required": [ "role", "userId" ], "type": "object" }, "AlbumUserResponseDto": { "properties": { "role": { "allOf": [ { "$ref": "#/components/schemas/AlbumUserRole" } ] }, "user": { "$ref": "#/components/schemas/UserResponseDto" } }, "required": [ "role", "user" ], "type": "object" }, "AlbumUserRole": { "enum": [ "editor", "viewer" ], "type": "string" }, "AlbumsAddAssetsDto": { "properties": { "albumIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "assetIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" } }, "required": [ "albumIds", "assetIds" ], "type": "object" }, "AlbumsAddAssetsResponseDto": { "properties": { "error": { "allOf": [ { "$ref": "#/components/schemas/BulkIdErrorReason" } ] }, "success": { "type": "boolean" } }, "required": [ "success" ], "type": "object" }, "AlbumsResponse": { "properties": { "defaultAssetOrder": { "allOf": [ { "$ref": "#/components/schemas/AssetOrder" } ], "default": "desc" } }, "required": [ "defaultAssetOrder" ], "type": "object" }, "AlbumsUpdate": { "properties": { "defaultAssetOrder": { "allOf": [ { "$ref": "#/components/schemas/AssetOrder" } ] } }, "type": "object" }, "AssetBulkDeleteDto": { "properties": { "force": { "type": "boolean" }, "ids": { "items": { "format": "uuid", "type": "string" }, "type": "array" } }, "required": [ "ids" ], "type": "object" }, "AssetBulkUpdateDto": { "properties": { "dateTimeOriginal": { "type": "string" }, "dateTimeRelative": { "type": "number" }, "description": { "type": "string" }, "duplicateId": { "nullable": true, "type": "string" }, "ids": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "isFavorite": { "type": "boolean" }, "latitude": { "type": "number" }, "longitude": { "type": "number" }, "rating": { "maximum": 5, "minimum": -1, "type": "number" }, "timeZone": { "type": "string" }, "visibility": { "allOf": [ { "$ref": "#/components/schemas/AssetVisibility" } ] } }, "required": [ "ids" ], "type": "object" }, "AssetBulkUploadCheckDto": { "properties": { "assets": { "items": { "$ref": "#/components/schemas/AssetBulkUploadCheckItem" }, "type": "array" } }, "required": [ "assets" ], "type": "object" }, "AssetBulkUploadCheckItem": { "properties": { "checksum": { "description": "base64 or hex encoded sha1 hash", "type": "string" }, "id": { "type": "string" } }, "required": [ "checksum", "id" ], "type": "object" }, "AssetBulkUploadCheckResponseDto": { "properties": { "results": { "items": { "$ref": "#/components/schemas/AssetBulkUploadCheckResult" }, "type": "array" } }, "required": [ "results" ], "type": "object" }, "AssetBulkUploadCheckResult": { "properties": { "action": { "enum": [ "accept", "reject" ], "type": "string" }, "assetId": { "type": "string" }, "id": { "type": "string" }, "isTrashed": { "type": "boolean" }, "reason": { "enum": [ "duplicate", "unsupported-format" ], "type": "string" } }, "required": [ "action", "id" ], "type": "object" }, "AssetCopyDto": { "properties": { "albums": { "default": true, "type": "boolean" }, "favorite": { "default": true, "type": "boolean" }, "sharedLinks": { "default": true, "type": "boolean" }, "sidecar": { "default": true, "type": "boolean" }, "sourceId": { "format": "uuid", "type": "string" }, "stack": { "default": true, "type": "boolean" }, "targetId": { "format": "uuid", "type": "string" } }, "required": [ "sourceId", "targetId" ], "type": "object" }, "AssetDeltaSyncDto": { "properties": { "updatedAfter": { "format": "date-time", "type": "string" }, "userIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" } }, "required": [ "updatedAfter", "userIds" ], "type": "object" }, "AssetDeltaSyncResponseDto": { "properties": { "deleted": { "items": { "type": "string" }, "type": "array" }, "needsFullSync": { "type": "boolean" }, "upserted": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" } }, "required": [ "deleted", "needsFullSync", "upserted" ], "type": "object" }, "AssetFaceCreateDto": { "properties": { "assetId": { "format": "uuid", "type": "string" }, "height": { "type": "integer" }, "imageHeight": { "type": "integer" }, "imageWidth": { "type": "integer" }, "personId": { "format": "uuid", "type": "string" }, "width": { "type": "integer" }, "x": { "type": "integer" }, "y": { "type": "integer" } }, "required": [ "assetId", "height", "imageHeight", "imageWidth", "personId", "width", "x", "y" ], "type": "object" }, "AssetFaceDeleteDto": { "properties": { "force": { "type": "boolean" } }, "required": [ "force" ], "type": "object" }, "AssetFaceResponseDto": { "properties": { "boundingBoxX1": { "type": "integer" }, "boundingBoxX2": { "type": "integer" }, "boundingBoxY1": { "type": "integer" }, "boundingBoxY2": { "type": "integer" }, "id": { "format": "uuid", "type": "string" }, "imageHeight": { "type": "integer" }, "imageWidth": { "type": "integer" }, "person": { "allOf": [ { "$ref": "#/components/schemas/PersonResponseDto" } ], "nullable": true }, "sourceType": { "allOf": [ { "$ref": "#/components/schemas/SourceType" } ] } }, "required": [ "boundingBoxX1", "boundingBoxX2", "boundingBoxY1", "boundingBoxY2", "id", "imageHeight", "imageWidth", "person" ], "type": "object" }, "AssetFaceUpdateDto": { "properties": { "data": { "items": { "$ref": "#/components/schemas/AssetFaceUpdateItem" }, "type": "array" } }, "required": [ "data" ], "type": "object" }, "AssetFaceUpdateItem": { "properties": { "assetId": { "format": "uuid", "type": "string" }, "personId": { "format": "uuid", "type": "string" } }, "required": [ "assetId", "personId" ], "type": "object" }, "AssetFaceWithoutPersonResponseDto": { "properties": { "boundingBoxX1": { "type": "integer" }, "boundingBoxX2": { "type": "integer" }, "boundingBoxY1": { "type": "integer" }, "boundingBoxY2": { "type": "integer" }, "id": { "format": "uuid", "type": "string" }, "imageHeight": { "type": "integer" }, "imageWidth": { "type": "integer" }, "sourceType": { "allOf": [ { "$ref": "#/components/schemas/SourceType" } ] } }, "required": [ "boundingBoxX1", "boundingBoxX2", "boundingBoxY1", "boundingBoxY2", "id", "imageHeight", "imageWidth" ], "type": "object" }, "AssetFullSyncDto": { "properties": { "lastId": { "format": "uuid", "type": "string" }, "limit": { "minimum": 1, "type": "integer" }, "updatedUntil": { "format": "date-time", "type": "string" }, "userId": { "format": "uuid", "type": "string" } }, "required": [ "limit", "updatedUntil" ], "type": "object" }, "AssetIdsDto": { "properties": { "assetIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" } }, "required": [ "assetIds" ], "type": "object" }, "AssetIdsResponseDto": { "properties": { "assetId": { "type": "string" }, "error": { "enum": [ "duplicate", "no_permission", "not_found" ], "type": "string" }, "success": { "type": "boolean" } }, "required": [ "assetId", "success" ], "type": "object" }, "AssetJobName": { "enum": [ "refresh-faces", "refresh-metadata", "regenerate-thumbnail", "transcode-video" ], "type": "string" }, "AssetJobsDto": { "properties": { "assetIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "name": { "allOf": [ { "$ref": "#/components/schemas/AssetJobName" } ] } }, "required": [ "assetIds", "name" ], "type": "object" }, "AssetMediaCreateDto": { "properties": { "assetData": { "format": "binary", "type": "string" }, "deviceAssetId": { "type": "string" }, "deviceId": { "type": "string" }, "duration": { "type": "string" }, "fileCreatedAt": { "format": "date-time", "type": "string" }, "fileModifiedAt": { "format": "date-time", "type": "string" }, "filename": { "type": "string" }, "isFavorite": { "type": "boolean" }, "livePhotoVideoId": { "format": "uuid", "type": "string" }, "metadata": { "items": { "$ref": "#/components/schemas/AssetMetadataUpsertItemDto" }, "type": "array" }, "sidecarData": { "format": "binary", "type": "string" }, "visibility": { "allOf": [ { "$ref": "#/components/schemas/AssetVisibility" } ] } }, "required": [ "assetData", "deviceAssetId", "deviceId", "fileCreatedAt", "fileModifiedAt", "metadata" ], "type": "object" }, "AssetMediaReplaceDto": { "properties": { "assetData": { "format": "binary", "type": "string" }, "deviceAssetId": { "type": "string" }, "deviceId": { "type": "string" }, "duration": { "type": "string" }, "fileCreatedAt": { "format": "date-time", "type": "string" }, "fileModifiedAt": { "format": "date-time", "type": "string" }, "filename": { "type": "string" } }, "required": [ "assetData", "deviceAssetId", "deviceId", "fileCreatedAt", "fileModifiedAt" ], "type": "object" }, "AssetMediaResponseDto": { "properties": { "id": { "type": "string" }, "status": { "allOf": [ { "$ref": "#/components/schemas/AssetMediaStatus" } ] } }, "required": [ "id", "status" ], "type": "object" }, "AssetMediaSize": { "enum": [ "fullsize", "preview", "thumbnail" ], "type": "string" }, "AssetMediaStatus": { "enum": [ "created", "replaced", "duplicate" ], "type": "string" }, "AssetMetadataKey": { "enum": [ "mobile-app" ], "type": "string" }, "AssetMetadataResponseDto": { "properties": { "key": { "allOf": [ { "$ref": "#/components/schemas/AssetMetadataKey" } ] }, "updatedAt": { "format": "date-time", "type": "string" }, "value": { "type": "object" } }, "required": [ "key", "updatedAt", "value" ], "type": "object" }, "AssetMetadataUpsertDto": { "properties": { "items": { "items": { "$ref": "#/components/schemas/AssetMetadataUpsertItemDto" }, "type": "array" } }, "required": [ "items" ], "type": "object" }, "AssetMetadataUpsertItemDto": { "properties": { "key": { "allOf": [ { "$ref": "#/components/schemas/AssetMetadataKey" } ] }, "value": { "type": "object" } }, "required": [ "key", "value" ], "type": "object" }, "AssetOcrResponseDto": { "properties": { "assetId": { "format": "uuid", "type": "string" }, "boxScore": { "description": "Confidence score for text detection box", "format": "double", "type": "number" }, "id": { "format": "uuid", "type": "string" }, "text": { "description": "Recognized text", "type": "string" }, "textScore": { "description": "Confidence score for text recognition", "format": "double", "type": "number" }, "x1": { "description": "Normalized x coordinate of box corner 1 (0-1)", "format": "double", "type": "number" }, "x2": { "description": "Normalized x coordinate of box corner 2 (0-1)", "format": "double", "type": "number" }, "x3": { "description": "Normalized x coordinate of box corner 3 (0-1)", "format": "double", "type": "number" }, "x4": { "description": "Normalized x coordinate of box corner 4 (0-1)", "format": "double", "type": "number" }, "y1": { "description": "Normalized y coordinate of box corner 1 (0-1)", "format": "double", "type": "number" }, "y2": { "description": "Normalized y coordinate of box corner 2 (0-1)", "format": "double", "type": "number" }, "y3": { "description": "Normalized y coordinate of box corner 3 (0-1)", "format": "double", "type": "number" }, "y4": { "description": "Normalized y coordinate of box corner 4 (0-1)", "format": "double", "type": "number" } }, "required": [ "assetId", "boxScore", "id", "text", "textScore", "x1", "x2", "x3", "x4", "y1", "y2", "y3", "y4" ], "type": "object" }, "AssetOrder": { "enum": [ "asc", "desc" ], "type": "string" }, "AssetResponseDto": { "properties": { "checksum": { "description": "base64 encoded sha1 hash", "type": "string" }, "createdAt": { "description": "The UTC timestamp when the asset was originally uploaded to Immich.", "example": "2024-01-15T20:30:00.000Z", "format": "date-time", "type": "string" }, "deviceAssetId": { "type": "string" }, "deviceId": { "type": "string" }, "duplicateId": { "nullable": true, "type": "string" }, "duration": { "type": "string" }, "exifInfo": { "$ref": "#/components/schemas/ExifResponseDto" }, "fileCreatedAt": { "description": "The actual UTC timestamp when the file was created/captured, preserving timezone information. This is the authoritative timestamp for chronological sorting within timeline groups. Combined with timezone data, this can be used to determine the exact moment the photo was taken.", "example": "2024-01-15T19:30:00.000Z", "format": "date-time", "type": "string" }, "fileModifiedAt": { "description": "The UTC timestamp when the file was last modified on the filesystem. This reflects the last time the physical file was changed, which may be different from when the photo was originally taken.", "example": "2024-01-16T10:15:00.000Z", "format": "date-time", "type": "string" }, "hasMetadata": { "type": "boolean" }, "id": { "type": "string" }, "isArchived": { "type": "boolean" }, "isFavorite": { "type": "boolean" }, "isOffline": { "type": "boolean" }, "isTrashed": { "type": "boolean" }, "libraryId": { "deprecated": true, "nullable": true, "type": "string", "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1", "state": "Deprecated" } ], "x-immich-state": "Deprecated" }, "livePhotoVideoId": { "nullable": true, "type": "string" }, "localDateTime": { "description": "The local date and time when the photo/video was taken, derived from EXIF metadata. This represents the photographer's local time regardless of timezone, stored as a timezone-agnostic timestamp. Used for timeline grouping by \"local\" days and months.", "example": "2024-01-15T14:30:00.000Z", "format": "date-time", "type": "string" }, "originalFileName": { "type": "string" }, "originalMimeType": { "type": "string" }, "originalPath": { "type": "string" }, "owner": { "$ref": "#/components/schemas/UserResponseDto" }, "ownerId": { "type": "string" }, "people": { "items": { "$ref": "#/components/schemas/PersonWithFacesResponseDto" }, "type": "array" }, "resized": { "deprecated": true, "type": "boolean", "x-immich-history": [ { "version": "v1", "state": "Added" }, { "version": "v1.113.0", "state": "Deprecated" } ], "x-immich-state": "Deprecated" }, "stack": { "allOf": [ { "$ref": "#/components/schemas/AssetStackResponseDto" } ], "nullable": true }, "tags": { "items": { "$ref": "#/components/schemas/TagResponseDto" }, "type": "array" }, "thumbhash": { "nullable": true, "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/AssetTypeEnum" } ] }, "unassignedFaces": { "items": { "$ref": "#/components/schemas/AssetFaceWithoutPersonResponseDto" }, "type": "array" }, "updatedAt": { "description": "The UTC timestamp when the asset record was last updated in the database. This is automatically maintained by the database and reflects when any field in the asset was last modified.", "example": "2024-01-16T12:45:30.000Z", "format": "date-time", "type": "string" }, "visibility": { "allOf": [ { "$ref": "#/components/schemas/AssetVisibility" } ] } }, "required": [ "checksum", "createdAt", "deviceAssetId", "deviceId", "duration", "fileCreatedAt", "fileModifiedAt", "hasMetadata", "id", "isArchived", "isFavorite", "isOffline", "isTrashed", "localDateTime", "originalFileName", "originalPath", "ownerId", "thumbhash", "type", "updatedAt", "visibility" ], "type": "object" }, "AssetStackResponseDto": { "properties": { "assetCount": { "type": "integer" }, "id": { "type": "string" }, "primaryAssetId": { "type": "string" } }, "required": [ "assetCount", "id", "primaryAssetId" ], "type": "object" }, "AssetStatsResponseDto": { "properties": { "images": { "type": "integer" }, "total": { "type": "integer" }, "videos": { "type": "integer" } }, "required": [ "images", "total", "videos" ], "type": "object" }, "AssetTypeEnum": { "enum": [ "IMAGE", "VIDEO", "AUDIO", "OTHER" ], "type": "string" }, "AssetVisibility": { "enum": [ "archive", "timeline", "hidden", "locked" ], "type": "string" }, "AudioCodec": { "enum": [ "mp3", "aac", "libopus", "pcm_s16le" ], "type": "string" }, "AuthStatusResponseDto": { "properties": { "expiresAt": { "type": "string" }, "isElevated": { "type": "boolean" }, "password": { "type": "boolean" }, "pinCode": { "type": "boolean" }, "pinExpiresAt": { "type": "string" } }, "required": [ "isElevated", "password", "pinCode" ], "type": "object" }, "AvatarUpdate": { "properties": { "color": { "allOf": [ { "$ref": "#/components/schemas/UserAvatarColor" } ] } }, "type": "object" }, "BulkIdErrorReason": { "enum": [ "duplicate", "no_permission", "not_found", "unknown" ], "type": "string" }, "BulkIdResponseDto": { "properties": { "error": { "enum": [ "duplicate", "no_permission", "not_found", "unknown" ], "type": "string" }, "id": { "type": "string" }, "success": { "type": "boolean" } }, "required": [ "id", "success" ], "type": "object" }, "BulkIdsDto": { "properties": { "ids": { "items": { "format": "uuid", "type": "string" }, "type": "array" } }, "required": [ "ids" ], "type": "object" }, "CLIPConfig": { "properties": { "enabled": { "type": "boolean" }, "modelName": { "type": "string" } }, "required": [ "enabled", "modelName" ], "type": "object" }, "CQMode": { "enum": [ "auto", "cqp", "icq" ], "type": "string" }, "CastResponse": { "properties": { "gCastEnabled": { "default": false, "type": "boolean" } }, "required": [ "gCastEnabled" ], "type": "object" }, "CastUpdate": { "properties": { "gCastEnabled": { "type": "boolean" } }, "type": "object" }, "ChangePasswordDto": { "properties": { "invalidateSessions": { "default": false, "type": "boolean" }, "newPassword": { "example": "password", "minLength": 8, "type": "string" }, "password": { "example": "password", "type": "string" } }, "required": [ "newPassword", "password" ], "type": "object" }, "CheckExistingAssetsDto": { "properties": { "deviceAssetIds": { "items": { "type": "string" }, "minItems": 1, "type": "array" }, "deviceId": { "type": "string" } }, "required": [ "deviceAssetIds", "deviceId" ], "type": "object" }, "CheckExistingAssetsResponseDto": { "properties": { "existingIds": { "items": { "type": "string" }, "type": "array" } }, "required": [ "existingIds" ], "type": "object" }, "Colorspace": { "enum": [ "srgb", "p3" ], "type": "string" }, "ContributorCountResponseDto": { "properties": { "assetCount": { "type": "integer" }, "userId": { "type": "string" } }, "required": [ "assetCount", "userId" ], "type": "object" }, "CreateAlbumDto": { "properties": { "albumName": { "type": "string" }, "albumUsers": { "items": { "$ref": "#/components/schemas/AlbumUserCreateDto" }, "type": "array" }, "assetIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "description": { "type": "string" } }, "required": [ "albumName" ], "type": "object" }, "CreateLibraryDto": { "properties": { "exclusionPatterns": { "items": { "type": "string" }, "maxItems": 128, "type": "array", "uniqueItems": true }, "importPaths": { "items": { "type": "string" }, "maxItems": 128, "type": "array", "uniqueItems": true }, "name": { "type": "string" }, "ownerId": { "format": "uuid", "type": "string" } }, "required": [ "ownerId" ], "type": "object" }, "CreateProfileImageDto": { "properties": { "file": { "format": "binary", "type": "string" } }, "required": [ "file" ], "type": "object" }, "CreateProfileImageResponseDto": { "properties": { "profileChangedAt": { "format": "date-time", "type": "string" }, "profileImagePath": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "profileChangedAt", "profileImagePath", "userId" ], "type": "object" }, "DatabaseBackupConfig": { "properties": { "cronExpression": { "type": "string" }, "enabled": { "type": "boolean" }, "keepLastAmount": { "minimum": 1, "type": "number" } }, "required": [ "cronExpression", "enabled", "keepLastAmount" ], "type": "object" }, "DownloadArchiveInfo": { "properties": { "assetIds": { "items": { "type": "string" }, "type": "array" }, "size": { "type": "integer" } }, "required": [ "assetIds", "size" ], "type": "object" }, "DownloadInfoDto": { "properties": { "albumId": { "format": "uuid", "type": "string" }, "archiveSize": { "minimum": 1, "type": "integer" }, "assetIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "userId": { "format": "uuid", "type": "string" } }, "type": "object" }, "DownloadResponse": { "properties": { "archiveSize": { "type": "integer" }, "includeEmbeddedVideos": { "default": false, "type": "boolean" } }, "required": [ "archiveSize", "includeEmbeddedVideos" ], "type": "object" }, "DownloadResponseDto": { "properties": { "archives": { "items": { "$ref": "#/components/schemas/DownloadArchiveInfo" }, "type": "array" }, "totalSize": { "type": "integer" } }, "required": [ "archives", "totalSize" ], "type": "object" }, "DownloadUpdate": { "properties": { "archiveSize": { "minimum": 1, "type": "integer" }, "includeEmbeddedVideos": { "type": "boolean" } }, "type": "object" }, "DuplicateDetectionConfig": { "properties": { "enabled": { "type": "boolean" }, "maxDistance": { "format": "double", "maximum": 0.1, "minimum": 0.001, "type": "number" } }, "required": [ "enabled", "maxDistance" ], "type": "object" }, "DuplicateResponseDto": { "properties": { "assets": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" }, "duplicateId": { "type": "string" } }, "required": [ "assets", "duplicateId" ], "type": "object" }, "EmailNotificationsResponse": { "properties": { "albumInvite": { "type": "boolean" }, "albumUpdate": { "type": "boolean" }, "enabled": { "type": "boolean" } }, "required": [ "albumInvite", "albumUpdate", "enabled" ], "type": "object" }, "EmailNotificationsUpdate": { "properties": { "albumInvite": { "type": "boolean" }, "albumUpdate": { "type": "boolean" }, "enabled": { "type": "boolean" } }, "type": "object" }, "ExifResponseDto": { "properties": { "city": { "default": null, "nullable": true, "type": "string" }, "country": { "default": null, "nullable": true, "type": "string" }, "dateTimeOriginal": { "default": null, "format": "date-time", "nullable": true, "type": "string" }, "description": { "default": null, "nullable": true, "type": "string" }, "exifImageHeight": { "default": null, "nullable": true, "type": "number" }, "exifImageWidth": { "default": null, "nullable": true, "type": "number" }, "exposureTime": { "default": null, "nullable": true, "type": "string" }, "fNumber": { "default": null, "nullable": true, "type": "number" }, "fileSizeInByte": { "default": null, "format": "int64", "nullable": true, "type": "integer" }, "focalLength": { "default": null, "nullable": true, "type": "number" }, "iso": { "default": null, "nullable": true, "type": "number" }, "latitude": { "default": null, "nullable": true, "type": "number" }, "lensModel": { "default": null, "nullable": true, "type": "string" }, "longitude": { "default": null, "nullable": true, "type": "number" }, "make": { "default": null, "nullable": true, "type": "string" }, "model": { "default": null, "nullable": true, "type": "string" }, "modifyDate": { "default": null, "format": "date-time", "nullable": true, "type": "string" }, "orientation": { "default": null, "nullable": true, "type": "string" }, "projectionType": { "default": null, "nullable": true, "type": "string" }, "rating": { "default": null, "nullable": true, "type": "number" }, "state": { "default": null, "nullable": true, "type": "string" }, "timeZone": { "default": null, "nullable": true, "type": "string" } }, "type": "object" }, "FaceDto": { "properties": { "id": { "format": "uuid", "type": "string" } }, "required": [ "id" ], "type": "object" }, "FacialRecognitionConfig": { "properties": { "enabled": { "type": "boolean" }, "maxDistance": { "format": "double", "maximum": 2, "minimum": 0.1, "type": "number" }, "minFaces": { "minimum": 1, "type": "integer" }, "minScore": { "format": "double", "maximum": 1, "minimum": 0.1, "type": "number" }, "modelName": { "type": "string" } }, "required": [ "enabled", "maxDistance", "minFaces", "minScore", "modelName" ], "type": "object" }, "FoldersResponse": { "properties": { "enabled": { "default": false, "type": "boolean" }, "sidebarWeb": { "default": false, "type": "boolean" } }, "required": [ "enabled", "sidebarWeb" ], "type": "object" }, "FoldersUpdate": { "properties": { "enabled": { "type": "boolean" }, "sidebarWeb": { "type": "boolean" } }, "type": "object" }, "ImageFormat": { "enum": [ "jpeg", "webp" ], "type": "string" }, "JobCreateDto": { "properties": { "name": { "allOf": [ { "$ref": "#/components/schemas/ManualJobName" } ] } }, "required": [ "name" ], "type": "object" }, "JobSettingsDto": { "properties": { "concurrency": { "minimum": 1, "type": "integer" } }, "required": [ "concurrency" ], "type": "object" }, "LibraryResponseDto": { "properties": { "assetCount": { "type": "integer" }, "createdAt": { "format": "date-time", "type": "string" }, "exclusionPatterns": { "items": { "type": "string" }, "type": "array" }, "id": { "type": "string" }, "importPaths": { "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" }, "ownerId": { "type": "string" }, "refreshedAt": { "format": "date-time", "nullable": true, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "assetCount", "createdAt", "exclusionPatterns", "id", "importPaths", "name", "ownerId", "refreshedAt", "updatedAt" ], "type": "object" }, "LibraryStatsResponseDto": { "properties": { "photos": { "default": 0, "type": "integer" }, "total": { "default": 0, "type": "integer" }, "usage": { "default": 0, "format": "int64", "type": "integer" }, "videos": { "default": 0, "type": "integer" } }, "required": [ "photos", "total", "usage", "videos" ], "type": "object" }, "LicenseKeyDto": { "properties": { "activationKey": { "type": "string" }, "licenseKey": { "pattern": "/IM(SV|CL)(-[\\dA-Za-z]{4}){8}/", "type": "string" } }, "required": [ "activationKey", "licenseKey" ], "type": "object" }, "LicenseResponseDto": { "properties": { "activatedAt": { "format": "date-time", "type": "string" }, "activationKey": { "type": "string" }, "licenseKey": { "pattern": "/IM(SV|CL)(-[\\dA-Za-z]{4}){8}/", "type": "string" } }, "required": [ "activatedAt", "activationKey", "licenseKey" ], "type": "object" }, "LogLevel": { "enum": [ "verbose", "debug", "log", "warn", "error", "fatal" ], "type": "string" }, "LoginCredentialDto": { "properties": { "email": { "example": "testuser@email.com", "format": "email", "type": "string" }, "password": { "example": "password", "type": "string" } }, "required": [ "email", "password" ], "type": "object" }, "LoginResponseDto": { "properties": { "accessToken": { "type": "string" }, "isAdmin": { "type": "boolean" }, "isOnboarded": { "type": "boolean" }, "name": { "type": "string" }, "profileImagePath": { "type": "string" }, "shouldChangePassword": { "type": "boolean" }, "userEmail": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "accessToken", "isAdmin", "isOnboarded", "name", "profileImagePath", "shouldChangePassword", "userEmail", "userId" ], "type": "object" }, "LogoutResponseDto": { "properties": { "redirectUri": { "type": "string" }, "successful": { "type": "boolean" } }, "required": [ "redirectUri", "successful" ], "type": "object" }, "MachineLearningAvailabilityChecksDto": { "properties": { "enabled": { "type": "boolean" }, "interval": { "type": "number" }, "timeout": { "type": "number" } }, "required": [ "enabled", "interval", "timeout" ], "type": "object" }, "MaintenanceAction": { "enum": [ "start", "end" ], "type": "string" }, "MaintenanceAuthDto": { "properties": { "username": { "type": "string" } }, "required": [ "username" ], "type": "object" }, "MaintenanceLoginDto": { "properties": { "token": { "type": "string" } }, "type": "object" }, "ManualJobName": { "enum": [ "person-cleanup", "tag-cleanup", "user-cleanup", "memory-cleanup", "memory-create", "backup-database" ], "type": "string" }, "MapMarkerResponseDto": { "properties": { "city": { "nullable": true, "type": "string" }, "country": { "nullable": true, "type": "string" }, "id": { "type": "string" }, "lat": { "format": "double", "type": "number" }, "lon": { "format": "double", "type": "number" }, "state": { "nullable": true, "type": "string" } }, "required": [ "city", "country", "id", "lat", "lon", "state" ], "type": "object" }, "MapReverseGeocodeResponseDto": { "properties": { "city": { "nullable": true, "type": "string" }, "country": { "nullable": true, "type": "string" }, "state": { "nullable": true, "type": "string" } }, "required": [ "city", "country", "state" ], "type": "object" }, "MemoriesResponse": { "properties": { "duration": { "default": 5, "type": "integer" }, "enabled": { "default": true, "type": "boolean" } }, "required": [ "duration", "enabled" ], "type": "object" }, "MemoriesUpdate": { "properties": { "duration": { "minimum": 1, "type": "integer" }, "enabled": { "type": "boolean" } }, "type": "object" }, "MemoryCreateDto": { "properties": { "assetIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "data": { "$ref": "#/components/schemas/OnThisDayDto" }, "isSaved": { "type": "boolean" }, "memoryAt": { "format": "date-time", "type": "string" }, "seenAt": { "format": "date-time", "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/MemoryType" } ] } }, "required": [ "data", "memoryAt", "type" ], "type": "object" }, "MemoryResponseDto": { "properties": { "assets": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" }, "createdAt": { "format": "date-time", "type": "string" }, "data": { "$ref": "#/components/schemas/OnThisDayDto" }, "deletedAt": { "format": "date-time", "type": "string" }, "hideAt": { "format": "date-time", "type": "string" }, "id": { "type": "string" }, "isSaved": { "type": "boolean" }, "memoryAt": { "format": "date-time", "type": "string" }, "ownerId": { "type": "string" }, "seenAt": { "format": "date-time", "type": "string" }, "showAt": { "format": "date-time", "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/MemoryType" } ] }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "assets", "createdAt", "data", "id", "isSaved", "memoryAt", "ownerId", "type", "updatedAt" ], "type": "object" }, "MemorySearchOrder": { "enum": [ "asc", "desc", "random" ], "type": "string" }, "MemoryStatisticsResponseDto": { "properties": { "total": { "type": "integer" } }, "required": [ "total" ], "type": "object" }, "MemoryType": { "enum": [ "on_this_day" ], "type": "string" }, "MemoryUpdateDto": { "properties": { "isSaved": { "type": "boolean" }, "memoryAt": { "format": "date-time", "type": "string" }, "seenAt": { "format": "date-time", "type": "string" } }, "type": "object" }, "MergePersonDto": { "properties": { "ids": { "items": { "format": "uuid", "type": "string" }, "type": "array" } }, "required": [ "ids" ], "type": "object" }, "MetadataSearchDto": { "properties": { "albumIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "checksum": { "type": "string" }, "city": { "nullable": true, "type": "string" }, "country": { "nullable": true, "type": "string" }, "createdAfter": { "format": "date-time", "type": "string" }, "createdBefore": { "format": "date-time", "type": "string" }, "description": { "type": "string" }, "deviceAssetId": { "type": "string" }, "deviceId": { "type": "string" }, "encodedVideoPath": { "type": "string" }, "id": { "format": "uuid", "type": "string" }, "isEncoded": { "type": "boolean" }, "isFavorite": { "type": "boolean" }, "isMotion": { "type": "boolean" }, "isNotInAlbum": { "type": "boolean" }, "isOffline": { "type": "boolean" }, "lensModel": { "nullable": true, "type": "string" }, "libraryId": { "format": "uuid", "nullable": true, "type": "string" }, "make": { "type": "string" }, "model": { "nullable": true, "type": "string" }, "ocr": { "type": "string" }, "order": { "allOf": [ { "$ref": "#/components/schemas/AssetOrder" } ], "default": "desc" }, "originalFileName": { "type": "string" }, "originalPath": { "type": "string" }, "page": { "minimum": 1, "type": "number" }, "personIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "previewPath": { "type": "string" }, "rating": { "maximum": 5, "minimum": -1, "type": "number" }, "size": { "maximum": 1000, "minimum": 1, "type": "number" }, "state": { "nullable": true, "type": "string" }, "tagIds": { "items": { "format": "uuid", "type": "string" }, "nullable": true, "type": "array" }, "takenAfter": { "format": "date-time", "type": "string" }, "takenBefore": { "format": "date-time", "type": "string" }, "thumbnailPath": { "type": "string" }, "trashedAfter": { "format": "date-time", "type": "string" }, "trashedBefore": { "format": "date-time", "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/AssetTypeEnum" } ] }, "updatedAfter": { "format": "date-time", "type": "string" }, "updatedBefore": { "format": "date-time", "type": "string" }, "visibility": { "allOf": [ { "$ref": "#/components/schemas/AssetVisibility" } ] }, "withDeleted": { "type": "boolean" }, "withExif": { "type": "boolean" }, "withPeople": { "type": "boolean" }, "withStacked": { "type": "boolean" } }, "type": "object" }, "NotificationCreateDto": { "properties": { "data": { "type": "object" }, "description": { "nullable": true, "type": "string" }, "level": { "allOf": [ { "$ref": "#/components/schemas/NotificationLevel" } ] }, "readAt": { "format": "date-time", "nullable": true, "type": "string" }, "title": { "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/NotificationType" } ] }, "userId": { "format": "uuid", "type": "string" } }, "required": [ "title", "userId" ], "type": "object" }, "NotificationDeleteAllDto": { "properties": { "ids": { "items": { "format": "uuid", "type": "string" }, "type": "array" } }, "required": [ "ids" ], "type": "object" }, "NotificationDto": { "properties": { "createdAt": { "format": "date-time", "type": "string" }, "data": { "type": "object" }, "description": { "type": "string" }, "id": { "type": "string" }, "level": { "allOf": [ { "$ref": "#/components/schemas/NotificationLevel" } ] }, "readAt": { "format": "date-time", "type": "string" }, "title": { "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/NotificationType" } ] } }, "required": [ "createdAt", "id", "level", "title", "type" ], "type": "object" }, "NotificationLevel": { "enum": [ "success", "error", "warning", "info" ], "type": "string" }, "NotificationType": { "enum": [ "JobFailed", "BackupFailed", "SystemMessage", "AlbumInvite", "AlbumUpdate", "Custom" ], "type": "string" }, "NotificationUpdateAllDto": { "properties": { "ids": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "readAt": { "format": "date-time", "nullable": true, "type": "string" } }, "required": [ "ids" ], "type": "object" }, "NotificationUpdateDto": { "properties": { "readAt": { "format": "date-time", "nullable": true, "type": "string" } }, "type": "object" }, "OAuthAuthorizeResponseDto": { "properties": { "url": { "type": "string" } }, "required": [ "url" ], "type": "object" }, "OAuthCallbackDto": { "properties": { "codeVerifier": { "type": "string" }, "state": { "type": "string" }, "url": { "type": "string" } }, "required": [ "url" ], "type": "object" }, "OAuthConfigDto": { "properties": { "codeChallenge": { "type": "string" }, "redirectUri": { "type": "string" }, "state": { "type": "string" } }, "required": [ "redirectUri" ], "type": "object" }, "OAuthTokenEndpointAuthMethod": { "enum": [ "client_secret_post", "client_secret_basic" ], "type": "string" }, "OcrConfig": { "properties": { "enabled": { "type": "boolean" }, "maxResolution": { "minimum": 1, "type": "integer" }, "minDetectionScore": { "format": "double", "maximum": 1, "minimum": 0.1, "type": "number" }, "minRecognitionScore": { "format": "double", "maximum": 1, "minimum": 0.1, "type": "number" }, "modelName": { "type": "string" } }, "required": [ "enabled", "maxResolution", "minDetectionScore", "minRecognitionScore", "modelName" ], "type": "object" }, "OnThisDayDto": { "properties": { "year": { "minimum": 1, "type": "number" } }, "required": [ "year" ], "type": "object" }, "OnboardingDto": { "properties": { "isOnboarded": { "type": "boolean" } }, "required": [ "isOnboarded" ], "type": "object" }, "OnboardingResponseDto": { "properties": { "isOnboarded": { "type": "boolean" } }, "required": [ "isOnboarded" ], "type": "object" }, "PartnerCreateDto": { "properties": { "sharedWithId": { "format": "uuid", "type": "string" } }, "required": [ "sharedWithId" ], "type": "object" }, "PartnerDirection": { "enum": [ "shared-by", "shared-with" ], "type": "string" }, "PartnerResponseDto": { "properties": { "avatarColor": { "allOf": [ { "$ref": "#/components/schemas/UserAvatarColor" } ] }, "email": { "type": "string" }, "id": { "type": "string" }, "inTimeline": { "type": "boolean" }, "name": { "type": "string" }, "profileChangedAt": { "format": "date-time", "type": "string" }, "profileImagePath": { "type": "string" } }, "required": [ "avatarColor", "email", "id", "name", "profileChangedAt", "profileImagePath" ], "type": "object" }, "PartnerUpdateDto": { "properties": { "inTimeline": { "type": "boolean" } }, "required": [ "inTimeline" ], "type": "object" }, "PeopleResponse": { "properties": { "enabled": { "default": true, "type": "boolean" }, "sidebarWeb": { "default": false, "type": "boolean" } }, "required": [ "enabled", "sidebarWeb" ], "type": "object" }, "PeopleResponseDto": { "properties": { "hasNextPage": { "type": "boolean", "x-immich-history": [ { "version": "v1.110.0", "state": "Added" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" }, "hidden": { "type": "integer" }, "people": { "items": { "$ref": "#/components/schemas/PersonResponseDto" }, "type": "array" }, "total": { "type": "integer" } }, "required": [ "hidden", "people", "total" ], "type": "object" }, "PeopleUpdate": { "properties": { "enabled": { "type": "boolean" }, "sidebarWeb": { "type": "boolean" } }, "type": "object" }, "PeopleUpdateDto": { "properties": { "people": { "items": { "$ref": "#/components/schemas/PeopleUpdateItem" }, "type": "array" } }, "required": [ "people" ], "type": "object" }, "PeopleUpdateItem": { "properties": { "birthDate": { "description": "Person date of birth.\nNote: the mobile app cannot currently set the birth date to null.", "format": "date", "nullable": true, "type": "string" }, "color": { "nullable": true, "type": "string" }, "featureFaceAssetId": { "description": "Asset is used to get the feature face thumbnail.", "format": "uuid", "type": "string" }, "id": { "description": "Person id.", "type": "string" }, "isFavorite": { "type": "boolean" }, "isHidden": { "description": "Person visibility", "type": "boolean" }, "name": { "description": "Person name.", "type": "string" } }, "required": [ "id" ], "type": "object" }, "Permission": { "enum": [ "all", "activity.create", "activity.read", "activity.update", "activity.delete", "activity.statistics", "apiKey.create", "apiKey.read", "apiKey.update", "apiKey.delete", "asset.read", "asset.update", "asset.delete", "asset.statistics", "asset.share", "asset.view", "asset.download", "asset.upload", "asset.replace", "asset.copy", "album.create", "album.read", "album.update", "album.delete", "album.statistics", "album.share", "album.download", "albumAsset.create", "albumAsset.delete", "albumUser.create", "albumUser.update", "albumUser.delete", "auth.changePassword", "authDevice.delete", "archive.read", "duplicate.read", "duplicate.delete", "face.create", "face.read", "face.update", "face.delete", "job.create", "job.read", "library.create", "library.read", "library.update", "library.delete", "library.statistics", "timeline.read", "timeline.download", "maintenance", "memory.create", "memory.read", "memory.update", "memory.delete", "memory.statistics", "memoryAsset.create", "memoryAsset.delete", "notification.create", "notification.read", "notification.update", "notification.delete", "partner.create", "partner.read", "partner.update", "partner.delete", "person.create", "person.read", "person.update", "person.delete", "person.statistics", "person.merge", "person.reassign", "pinCode.create", "pinCode.update", "pinCode.delete", "plugin.create", "plugin.read", "plugin.update", "plugin.delete", "server.about", "server.apkLinks", "server.storage", "server.statistics", "server.versionCheck", "serverLicense.read", "serverLicense.update", "serverLicense.delete", "session.create", "session.read", "session.update", "session.delete", "session.lock", "sharedLink.create", "sharedLink.read", "sharedLink.update", "sharedLink.delete", "stack.create", "stack.read", "stack.update", "stack.delete", "sync.stream", "syncCheckpoint.read", "syncCheckpoint.update", "syncCheckpoint.delete", "systemConfig.read", "systemConfig.update", "systemMetadata.read", "systemMetadata.update", "tag.create", "tag.read", "tag.update", "tag.delete", "tag.asset", "user.read", "user.update", "userLicense.create", "userLicense.read", "userLicense.update", "userLicense.delete", "userOnboarding.read", "userOnboarding.update", "userOnboarding.delete", "userPreference.read", "userPreference.update", "userProfileImage.create", "userProfileImage.read", "userProfileImage.update", "userProfileImage.delete", "workflow.create", "workflow.read", "workflow.update", "workflow.delete", "adminUser.create", "adminUser.read", "adminUser.update", "adminUser.delete", "adminSession.read", "adminAuth.unlinkAll" ], "type": "string" }, "PersonCreateDto": { "properties": { "birthDate": { "description": "Person date of birth.\nNote: the mobile app cannot currently set the birth date to null.", "format": "date", "nullable": true, "type": "string" }, "color": { "nullable": true, "type": "string" }, "isFavorite": { "type": "boolean" }, "isHidden": { "description": "Person visibility", "type": "boolean" }, "name": { "description": "Person name.", "type": "string" } }, "type": "object" }, "PersonResponseDto": { "properties": { "birthDate": { "format": "date", "nullable": true, "type": "string" }, "color": { "type": "string", "x-immich-history": [ { "version": "v1.126.0", "state": "Added" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" }, "id": { "type": "string" }, "isFavorite": { "type": "boolean", "x-immich-history": [ { "version": "v1.126.0", "state": "Added" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" }, "isHidden": { "type": "boolean" }, "name": { "type": "string" }, "thumbnailPath": { "type": "string" }, "updatedAt": { "format": "date-time", "type": "string", "x-immich-history": [ { "version": "v1.107.0", "state": "Added" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "required": [ "birthDate", "id", "isHidden", "name", "thumbnailPath" ], "type": "object" }, "PersonStatisticsResponseDto": { "properties": { "assets": { "type": "integer" } }, "required": [ "assets" ], "type": "object" }, "PersonUpdateDto": { "properties": { "birthDate": { "description": "Person date of birth.\nNote: the mobile app cannot currently set the birth date to null.", "format": "date", "nullable": true, "type": "string" }, "color": { "nullable": true, "type": "string" }, "featureFaceAssetId": { "description": "Asset is used to get the feature face thumbnail.", "format": "uuid", "type": "string" }, "isFavorite": { "type": "boolean" }, "isHidden": { "description": "Person visibility", "type": "boolean" }, "name": { "description": "Person name.", "type": "string" } }, "type": "object" }, "PersonWithFacesResponseDto": { "properties": { "birthDate": { "format": "date", "nullable": true, "type": "string" }, "color": { "type": "string", "x-immich-history": [ { "version": "v1.126.0", "state": "Added" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" }, "faces": { "items": { "$ref": "#/components/schemas/AssetFaceWithoutPersonResponseDto" }, "type": "array" }, "id": { "type": "string" }, "isFavorite": { "type": "boolean", "x-immich-history": [ { "version": "v1.126.0", "state": "Added" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" }, "isHidden": { "type": "boolean" }, "name": { "type": "string" }, "thumbnailPath": { "type": "string" }, "updatedAt": { "format": "date-time", "type": "string", "x-immich-history": [ { "version": "v1.107.0", "state": "Added" }, { "version": "v2", "state": "Stable" } ], "x-immich-state": "Stable" } }, "required": [ "birthDate", "faces", "id", "isHidden", "name", "thumbnailPath" ], "type": "object" }, "PinCodeChangeDto": { "properties": { "newPinCode": { "example": "123456", "type": "string" }, "password": { "type": "string" }, "pinCode": { "example": "123456", "type": "string" } }, "required": [ "newPinCode" ], "type": "object" }, "PinCodeResetDto": { "properties": { "password": { "type": "string" }, "pinCode": { "example": "123456", "type": "string" } }, "type": "object" }, "PinCodeSetupDto": { "properties": { "pinCode": { "example": "123456", "type": "string" } }, "required": [ "pinCode" ], "type": "object" }, "PlacesResponseDto": { "properties": { "admin1name": { "type": "string" }, "admin2name": { "type": "string" }, "latitude": { "type": "number" }, "longitude": { "type": "number" }, "name": { "type": "string" } }, "required": [ "latitude", "longitude", "name" ], "type": "object" }, "PluginActionResponseDto": { "properties": { "description": { "type": "string" }, "id": { "type": "string" }, "methodName": { "type": "string" }, "pluginId": { "type": "string" }, "schema": { "nullable": true, "type": "object" }, "supportedContexts": { "items": { "$ref": "#/components/schemas/PluginContext" }, "type": "array" }, "title": { "type": "string" } }, "required": [ "description", "id", "methodName", "pluginId", "schema", "supportedContexts", "title" ], "type": "object" }, "PluginContext": { "enum": [ "asset", "album", "person" ], "type": "string" }, "PluginFilterResponseDto": { "properties": { "description": { "type": "string" }, "id": { "type": "string" }, "methodName": { "type": "string" }, "pluginId": { "type": "string" }, "schema": { "nullable": true, "type": "object" }, "supportedContexts": { "items": { "$ref": "#/components/schemas/PluginContext" }, "type": "array" }, "title": { "type": "string" } }, "required": [ "description", "id", "methodName", "pluginId", "schema", "supportedContexts", "title" ], "type": "object" }, "PluginResponseDto": { "properties": { "actions": { "items": { "$ref": "#/components/schemas/PluginActionResponseDto" }, "type": "array" }, "author": { "type": "string" }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "filters": { "items": { "$ref": "#/components/schemas/PluginFilterResponseDto" }, "type": "array" }, "id": { "type": "string" }, "name": { "type": "string" }, "title": { "type": "string" }, "updatedAt": { "type": "string" }, "version": { "type": "string" } }, "required": [ "actions", "author", "createdAt", "description", "filters", "id", "name", "title", "updatedAt", "version" ], "type": "object" }, "PluginTriggerType": { "enum": [ "AssetCreate", "PersonRecognized" ], "type": "string" }, "PurchaseResponse": { "properties": { "hideBuyButtonUntil": { "type": "string" }, "showSupportBadge": { "type": "boolean" } }, "required": [ "hideBuyButtonUntil", "showSupportBadge" ], "type": "object" }, "PurchaseUpdate": { "properties": { "hideBuyButtonUntil": { "type": "string" }, "showSupportBadge": { "type": "boolean" } }, "type": "object" }, "QueueCommand": { "enum": [ "start", "pause", "resume", "empty", "clear-failed" ], "type": "string" }, "QueueCommandDto": { "properties": { "command": { "allOf": [ { "$ref": "#/components/schemas/QueueCommand" } ] }, "force": { "type": "boolean" } }, "required": [ "command" ], "type": "object" }, "QueueName": { "enum": [ "thumbnailGeneration", "metadataExtraction", "videoConversion", "faceDetection", "facialRecognition", "smartSearch", "duplicateDetection", "backgroundTask", "storageTemplateMigration", "migration", "search", "sidecar", "library", "notifications", "backupDatabase", "ocr", "workflow" ], "type": "string" }, "QueueResponseDto": { "properties": { "jobCounts": { "$ref": "#/components/schemas/QueueStatisticsDto" }, "queueStatus": { "$ref": "#/components/schemas/QueueStatusDto" } }, "required": [ "jobCounts", "queueStatus" ], "type": "object" }, "QueueStatisticsDto": { "properties": { "active": { "type": "integer" }, "completed": { "type": "integer" }, "delayed": { "type": "integer" }, "failed": { "type": "integer" }, "paused": { "type": "integer" }, "waiting": { "type": "integer" } }, "required": [ "active", "completed", "delayed", "failed", "paused", "waiting" ], "type": "object" }, "QueueStatusDto": { "properties": { "isActive": { "type": "boolean" }, "isPaused": { "type": "boolean" } }, "required": [ "isActive", "isPaused" ], "type": "object" }, "QueuesResponseDto": { "properties": { "backgroundTask": { "$ref": "#/components/schemas/QueueResponseDto" }, "backupDatabase": { "$ref": "#/components/schemas/QueueResponseDto" }, "duplicateDetection": { "$ref": "#/components/schemas/QueueResponseDto" }, "faceDetection": { "$ref": "#/components/schemas/QueueResponseDto" }, "facialRecognition": { "$ref": "#/components/schemas/QueueResponseDto" }, "library": { "$ref": "#/components/schemas/QueueResponseDto" }, "metadataExtraction": { "$ref": "#/components/schemas/QueueResponseDto" }, "migration": { "$ref": "#/components/schemas/QueueResponseDto" }, "notifications": { "$ref": "#/components/schemas/QueueResponseDto" }, "ocr": { "$ref": "#/components/schemas/QueueResponseDto" }, "search": { "$ref": "#/components/schemas/QueueResponseDto" }, "sidecar": { "$ref": "#/components/schemas/QueueResponseDto" }, "smartSearch": { "$ref": "#/components/schemas/QueueResponseDto" }, "storageTemplateMigration": { "$ref": "#/components/schemas/QueueResponseDto" }, "thumbnailGeneration": { "$ref": "#/components/schemas/QueueResponseDto" }, "videoConversion": { "$ref": "#/components/schemas/QueueResponseDto" }, "workflow": { "$ref": "#/components/schemas/QueueResponseDto" } }, "required": [ "backgroundTask", "backupDatabase", "duplicateDetection", "faceDetection", "facialRecognition", "library", "metadataExtraction", "migration", "notifications", "ocr", "search", "sidecar", "smartSearch", "storageTemplateMigration", "thumbnailGeneration", "videoConversion", "workflow" ], "type": "object" }, "RandomSearchDto": { "properties": { "albumIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "city": { "nullable": true, "type": "string" }, "country": { "nullable": true, "type": "string" }, "createdAfter": { "format": "date-time", "type": "string" }, "createdBefore": { "format": "date-time", "type": "string" }, "deviceId": { "type": "string" }, "isEncoded": { "type": "boolean" }, "isFavorite": { "type": "boolean" }, "isMotion": { "type": "boolean" }, "isNotInAlbum": { "type": "boolean" }, "isOffline": { "type": "boolean" }, "lensModel": { "nullable": true, "type": "string" }, "libraryId": { "format": "uuid", "nullable": true, "type": "string" }, "make": { "type": "string" }, "model": { "nullable": true, "type": "string" }, "ocr": { "type": "string" }, "personIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "rating": { "maximum": 5, "minimum": -1, "type": "number" }, "size": { "maximum": 1000, "minimum": 1, "type": "number" }, "state": { "nullable": true, "type": "string" }, "tagIds": { "items": { "format": "uuid", "type": "string" }, "nullable": true, "type": "array" }, "takenAfter": { "format": "date-time", "type": "string" }, "takenBefore": { "format": "date-time", "type": "string" }, "trashedAfter": { "format": "date-time", "type": "string" }, "trashedBefore": { "format": "date-time", "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/AssetTypeEnum" } ] }, "updatedAfter": { "format": "date-time", "type": "string" }, "updatedBefore": { "format": "date-time", "type": "string" }, "visibility": { "allOf": [ { "$ref": "#/components/schemas/AssetVisibility" } ] }, "withDeleted": { "type": "boolean" }, "withExif": { "type": "boolean" }, "withPeople": { "type": "boolean" }, "withStacked": { "type": "boolean" } }, "type": "object" }, "RatingsResponse": { "properties": { "enabled": { "default": false, "type": "boolean" } }, "required": [ "enabled" ], "type": "object" }, "RatingsUpdate": { "properties": { "enabled": { "type": "boolean" } }, "type": "object" }, "ReactionLevel": { "enum": [ "album", "asset" ], "type": "string" }, "ReactionType": { "enum": [ "comment", "like" ], "type": "string" }, "ReverseGeocodingStateResponseDto": { "properties": { "lastImportFileName": { "nullable": true, "type": "string" }, "lastUpdate": { "nullable": true, "type": "string" } }, "required": [ "lastImportFileName", "lastUpdate" ], "type": "object" }, "SearchAlbumResponseDto": { "properties": { "count": { "type": "integer" }, "facets": { "items": { "$ref": "#/components/schemas/SearchFacetResponseDto" }, "type": "array" }, "items": { "items": { "$ref": "#/components/schemas/AlbumResponseDto" }, "type": "array" }, "total": { "type": "integer" } }, "required": [ "count", "facets", "items", "total" ], "type": "object" }, "SearchAssetResponseDto": { "properties": { "count": { "type": "integer" }, "facets": { "items": { "$ref": "#/components/schemas/SearchFacetResponseDto" }, "type": "array" }, "items": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" }, "nextPage": { "nullable": true, "type": "string" }, "total": { "type": "integer" } }, "required": [ "count", "facets", "items", "nextPage", "total" ], "type": "object" }, "SearchExploreItem": { "properties": { "data": { "$ref": "#/components/schemas/AssetResponseDto" }, "value": { "type": "string" } }, "required": [ "data", "value" ], "type": "object" }, "SearchExploreResponseDto": { "properties": { "fieldName": { "type": "string" }, "items": { "items": { "$ref": "#/components/schemas/SearchExploreItem" }, "type": "array" } }, "required": [ "fieldName", "items" ], "type": "object" }, "SearchFacetCountResponseDto": { "properties": { "count": { "type": "integer" }, "value": { "type": "string" } }, "required": [ "count", "value" ], "type": "object" }, "SearchFacetResponseDto": { "properties": { "counts": { "items": { "$ref": "#/components/schemas/SearchFacetCountResponseDto" }, "type": "array" }, "fieldName": { "type": "string" } }, "required": [ "counts", "fieldName" ], "type": "object" }, "SearchResponseDto": { "properties": { "albums": { "$ref": "#/components/schemas/SearchAlbumResponseDto" }, "assets": { "$ref": "#/components/schemas/SearchAssetResponseDto" } }, "required": [ "albums", "assets" ], "type": "object" }, "SearchStatisticsResponseDto": { "properties": { "total": { "type": "integer" } }, "required": [ "total" ], "type": "object" }, "SearchSuggestionType": { "enum": [ "country", "state", "city", "camera-make", "camera-model", "camera-lens-model" ], "type": "string" }, "ServerAboutResponseDto": { "properties": { "build": { "type": "string" }, "buildImage": { "type": "string" }, "buildImageUrl": { "type": "string" }, "buildUrl": { "type": "string" }, "exiftool": { "type": "string" }, "ffmpeg": { "type": "string" }, "imagemagick": { "type": "string" }, "libvips": { "type": "string" }, "licensed": { "type": "boolean" }, "nodejs": { "type": "string" }, "repository": { "type": "string" }, "repositoryUrl": { "type": "string" }, "sourceCommit": { "type": "string" }, "sourceRef": { "type": "string" }, "sourceUrl": { "type": "string" }, "thirdPartyBugFeatureUrl": { "type": "string" }, "thirdPartyDocumentationUrl": { "type": "string" }, "thirdPartySourceUrl": { "type": "string" }, "thirdPartySupportUrl": { "type": "string" }, "version": { "type": "string" }, "versionUrl": { "type": "string" } }, "required": [ "licensed", "version", "versionUrl" ], "type": "object" }, "ServerApkLinksDto": { "properties": { "arm64v8a": { "type": "string" }, "armeabiv7a": { "type": "string" }, "universal": { "type": "string" }, "x86_64": { "type": "string" } }, "required": [ "arm64v8a", "armeabiv7a", "universal", "x86_64" ], "type": "object" }, "ServerConfigDto": { "properties": { "externalDomain": { "type": "string" }, "isInitialized": { "type": "boolean" }, "isOnboarded": { "type": "boolean" }, "loginPageMessage": { "type": "string" }, "maintenanceMode": { "type": "boolean" }, "mapDarkStyleUrl": { "type": "string" }, "mapLightStyleUrl": { "type": "string" }, "oauthButtonText": { "type": "string" }, "publicUsers": { "type": "boolean" }, "trashDays": { "type": "integer" }, "userDeleteDelay": { "type": "integer" } }, "required": [ "externalDomain", "isInitialized", "isOnboarded", "loginPageMessage", "maintenanceMode", "mapDarkStyleUrl", "mapLightStyleUrl", "oauthButtonText", "publicUsers", "trashDays", "userDeleteDelay" ], "type": "object" }, "ServerFeaturesDto": { "properties": { "configFile": { "type": "boolean" }, "duplicateDetection": { "type": "boolean" }, "email": { "type": "boolean" }, "facialRecognition": { "type": "boolean" }, "importFaces": { "type": "boolean" }, "map": { "type": "boolean" }, "oauth": { "type": "boolean" }, "oauthAutoLaunch": { "type": "boolean" }, "ocr": { "type": "boolean" }, "passwordLogin": { "type": "boolean" }, "reverseGeocoding": { "type": "boolean" }, "search": { "type": "boolean" }, "sidecar": { "type": "boolean" }, "smartSearch": { "type": "boolean" }, "trash": { "type": "boolean" } }, "required": [ "configFile", "duplicateDetection", "email", "facialRecognition", "importFaces", "map", "oauth", "oauthAutoLaunch", "ocr", "passwordLogin", "reverseGeocoding", "search", "sidecar", "smartSearch", "trash" ], "type": "object" }, "ServerMediaTypesResponseDto": { "properties": { "image": { "items": { "type": "string" }, "type": "array" }, "sidecar": { "items": { "type": "string" }, "type": "array" }, "video": { "items": { "type": "string" }, "type": "array" } }, "required": [ "image", "sidecar", "video" ], "type": "object" }, "ServerPingResponse": { "properties": { "res": { "example": "pong", "readOnly": true, "type": "string" } }, "required": [ "res" ], "type": "object" }, "ServerStatsResponseDto": { "properties": { "photos": { "default": 0, "type": "integer" }, "usage": { "default": 0, "format": "int64", "type": "integer" }, "usageByUser": { "default": [], "example": [ { "photos": 1, "videos": 1, "diskUsageRaw": 2, "usagePhotos": 1, "usageVideos": 1 } ], "items": { "$ref": "#/components/schemas/UsageByUserDto" }, "title": "Array of usage for each user", "type": "array" }, "usagePhotos": { "default": 0, "format": "int64", "type": "integer" }, "usageVideos": { "default": 0, "format": "int64", "type": "integer" }, "videos": { "default": 0, "type": "integer" } }, "required": [ "photos", "usage", "usageByUser", "usagePhotos", "usageVideos", "videos" ], "type": "object" }, "ServerStorageResponseDto": { "properties": { "diskAvailable": { "type": "string" }, "diskAvailableRaw": { "format": "int64", "type": "integer" }, "diskSize": { "type": "string" }, "diskSizeRaw": { "format": "int64", "type": "integer" }, "diskUsagePercentage": { "format": "double", "type": "number" }, "diskUse": { "type": "string" }, "diskUseRaw": { "format": "int64", "type": "integer" } }, "required": [ "diskAvailable", "diskAvailableRaw", "diskSize", "diskSizeRaw", "diskUsagePercentage", "diskUse", "diskUseRaw" ], "type": "object" }, "ServerThemeDto": { "properties": { "customCss": { "type": "string" } }, "required": [ "customCss" ], "type": "object" }, "ServerVersionHistoryResponseDto": { "properties": { "createdAt": { "format": "date-time", "type": "string" }, "id": { "type": "string" }, "version": { "type": "string" } }, "required": [ "createdAt", "id", "version" ], "type": "object" }, "ServerVersionResponseDto": { "properties": { "major": { "type": "integer" }, "minor": { "type": "integer" }, "patch": { "type": "integer" } }, "required": [ "major", "minor", "patch" ], "type": "object" }, "SessionCreateDto": { "properties": { "deviceOS": { "type": "string" }, "deviceType": { "type": "string" }, "duration": { "description": "session duration, in seconds", "minimum": 1, "type": "number" } }, "type": "object" }, "SessionCreateResponseDto": { "properties": { "appVersion": { "nullable": true, "type": "string" }, "createdAt": { "type": "string" }, "current": { "type": "boolean" }, "deviceOS": { "type": "string" }, "deviceType": { "type": "string" }, "expiresAt": { "type": "string" }, "id": { "type": "string" }, "isPendingSyncReset": { "type": "boolean" }, "token": { "type": "string" }, "updatedAt": { "type": "string" } }, "required": [ "appVersion", "createdAt", "current", "deviceOS", "deviceType", "id", "isPendingSyncReset", "token", "updatedAt" ], "type": "object" }, "SessionResponseDto": { "properties": { "appVersion": { "nullable": true, "type": "string" }, "createdAt": { "type": "string" }, "current": { "type": "boolean" }, "deviceOS": { "type": "string" }, "deviceType": { "type": "string" }, "expiresAt": { "type": "string" }, "id": { "type": "string" }, "isPendingSyncReset": { "type": "boolean" }, "updatedAt": { "type": "string" } }, "required": [ "appVersion", "createdAt", "current", "deviceOS", "deviceType", "id", "isPendingSyncReset", "updatedAt" ], "type": "object" }, "SessionUnlockDto": { "properties": { "password": { "type": "string" }, "pinCode": { "example": "123456", "type": "string" } }, "type": "object" }, "SessionUpdateDto": { "properties": { "isPendingSyncReset": { "type": "boolean" } }, "type": "object" }, "SetMaintenanceModeDto": { "properties": { "action": { "allOf": [ { "$ref": "#/components/schemas/MaintenanceAction" } ] } }, "required": [ "action" ], "type": "object" }, "SharedLinkCreateDto": { "properties": { "albumId": { "format": "uuid", "type": "string" }, "allowDownload": { "default": true, "type": "boolean" }, "allowUpload": { "type": "boolean" }, "assetIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "description": { "nullable": true, "type": "string" }, "expiresAt": { "default": null, "format": "date-time", "nullable": true, "type": "string" }, "password": { "nullable": true, "type": "string" }, "showMetadata": { "default": true, "type": "boolean" }, "slug": { "nullable": true, "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/SharedLinkType" } ] } }, "required": [ "type" ], "type": "object" }, "SharedLinkEditDto": { "properties": { "allowDownload": { "type": "boolean" }, "allowUpload": { "type": "boolean" }, "changeExpiryTime": { "description": "Few clients cannot send null to set the expiryTime to never.\nSetting this flag and not sending expiryAt is considered as null instead.\nClients that can send null values can ignore this.", "type": "boolean" }, "description": { "nullable": true, "type": "string" }, "expiresAt": { "format": "date-time", "nullable": true, "type": "string" }, "password": { "nullable": true, "type": "string" }, "showMetadata": { "type": "boolean" }, "slug": { "nullable": true, "type": "string" } }, "type": "object" }, "SharedLinkResponseDto": { "properties": { "album": { "$ref": "#/components/schemas/AlbumResponseDto" }, "allowDownload": { "type": "boolean" }, "allowUpload": { "type": "boolean" }, "assets": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" }, "createdAt": { "format": "date-time", "type": "string" }, "description": { "nullable": true, "type": "string" }, "expiresAt": { "format": "date-time", "nullable": true, "type": "string" }, "id": { "type": "string" }, "key": { "type": "string" }, "password": { "nullable": true, "type": "string" }, "showMetadata": { "type": "boolean" }, "slug": { "nullable": true, "type": "string" }, "token": { "nullable": true, "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/SharedLinkType" } ] }, "userId": { "type": "string" } }, "required": [ "allowDownload", "allowUpload", "assets", "createdAt", "description", "expiresAt", "id", "key", "password", "showMetadata", "slug", "type", "userId" ], "type": "object" }, "SharedLinkType": { "enum": [ "ALBUM", "INDIVIDUAL" ], "type": "string" }, "SharedLinksResponse": { "properties": { "enabled": { "default": true, "type": "boolean" }, "sidebarWeb": { "default": false, "type": "boolean" } }, "required": [ "enabled", "sidebarWeb" ], "type": "object" }, "SharedLinksUpdate": { "properties": { "enabled": { "type": "boolean" }, "sidebarWeb": { "type": "boolean" } }, "type": "object" }, "SignUpDto": { "properties": { "email": { "example": "testuser@email.com", "format": "email", "type": "string" }, "name": { "example": "Admin", "type": "string" }, "password": { "example": "password", "type": "string" } }, "required": [ "email", "name", "password" ], "type": "object" }, "SmartSearchDto": { "properties": { "albumIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "city": { "nullable": true, "type": "string" }, "country": { "nullable": true, "type": "string" }, "createdAfter": { "format": "date-time", "type": "string" }, "createdBefore": { "format": "date-time", "type": "string" }, "deviceId": { "type": "string" }, "isEncoded": { "type": "boolean" }, "isFavorite": { "type": "boolean" }, "isMotion": { "type": "boolean" }, "isNotInAlbum": { "type": "boolean" }, "isOffline": { "type": "boolean" }, "language": { "type": "string" }, "lensModel": { "nullable": true, "type": "string" }, "libraryId": { "format": "uuid", "nullable": true, "type": "string" }, "make": { "type": "string" }, "model": { "nullable": true, "type": "string" }, "ocr": { "type": "string" }, "page": { "minimum": 1, "type": "number" }, "personIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "query": { "type": "string" }, "queryAssetId": { "format": "uuid", "type": "string" }, "rating": { "maximum": 5, "minimum": -1, "type": "number" }, "size": { "maximum": 1000, "minimum": 1, "type": "number" }, "state": { "nullable": true, "type": "string" }, "tagIds": { "items": { "format": "uuid", "type": "string" }, "nullable": true, "type": "array" }, "takenAfter": { "format": "date-time", "type": "string" }, "takenBefore": { "format": "date-time", "type": "string" }, "trashedAfter": { "format": "date-time", "type": "string" }, "trashedBefore": { "format": "date-time", "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/AssetTypeEnum" } ] }, "updatedAfter": { "format": "date-time", "type": "string" }, "updatedBefore": { "format": "date-time", "type": "string" }, "visibility": { "allOf": [ { "$ref": "#/components/schemas/AssetVisibility" } ] }, "withDeleted": { "type": "boolean" }, "withExif": { "type": "boolean" } }, "type": "object" }, "SourceType": { "enum": [ "machine-learning", "exif", "manual" ], "type": "string" }, "StackCreateDto": { "properties": { "assetIds": { "description": "first asset becomes the primary", "items": { "format": "uuid", "type": "string" }, "minItems": 2, "type": "array" } }, "required": [ "assetIds" ], "type": "object" }, "StackResponseDto": { "properties": { "assets": { "items": { "$ref": "#/components/schemas/AssetResponseDto" }, "type": "array" }, "id": { "type": "string" }, "primaryAssetId": { "type": "string" } }, "required": [ "assets", "id", "primaryAssetId" ], "type": "object" }, "StackUpdateDto": { "properties": { "primaryAssetId": { "format": "uuid", "type": "string" } }, "type": "object" }, "StatisticsSearchDto": { "properties": { "albumIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "city": { "nullable": true, "type": "string" }, "country": { "nullable": true, "type": "string" }, "createdAfter": { "format": "date-time", "type": "string" }, "createdBefore": { "format": "date-time", "type": "string" }, "description": { "type": "string" }, "deviceId": { "type": "string" }, "isEncoded": { "type": "boolean" }, "isFavorite": { "type": "boolean" }, "isMotion": { "type": "boolean" }, "isNotInAlbum": { "type": "boolean" }, "isOffline": { "type": "boolean" }, "lensModel": { "nullable": true, "type": "string" }, "libraryId": { "format": "uuid", "nullable": true, "type": "string" }, "make": { "type": "string" }, "model": { "nullable": true, "type": "string" }, "ocr": { "type": "string" }, "personIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "rating": { "maximum": 5, "minimum": -1, "type": "number" }, "state": { "nullable": true, "type": "string" }, "tagIds": { "items": { "format": "uuid", "type": "string" }, "nullable": true, "type": "array" }, "takenAfter": { "format": "date-time", "type": "string" }, "takenBefore": { "format": "date-time", "type": "string" }, "trashedAfter": { "format": "date-time", "type": "string" }, "trashedBefore": { "format": "date-time", "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/AssetTypeEnum" } ] }, "updatedAfter": { "format": "date-time", "type": "string" }, "updatedBefore": { "format": "date-time", "type": "string" }, "visibility": { "allOf": [ { "$ref": "#/components/schemas/AssetVisibility" } ] } }, "type": "object" }, "SyncAckDeleteDto": { "properties": { "types": { "items": { "$ref": "#/components/schemas/SyncEntityType" }, "type": "array" } }, "type": "object" }, "SyncAckDto": { "properties": { "ack": { "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/SyncEntityType" } ] } }, "required": [ "ack", "type" ], "type": "object" }, "SyncAckSetDto": { "properties": { "acks": { "items": { "type": "string" }, "maxItems": 1000, "type": "array" } }, "required": [ "acks" ], "type": "object" }, "SyncAckV1": { "properties": {}, "type": "object" }, "SyncAlbumDeleteV1": { "properties": { "albumId": { "type": "string" } }, "required": [ "albumId" ], "type": "object" }, "SyncAlbumToAssetDeleteV1": { "properties": { "albumId": { "type": "string" }, "assetId": { "type": "string" } }, "required": [ "albumId", "assetId" ], "type": "object" }, "SyncAlbumToAssetV1": { "properties": { "albumId": { "type": "string" }, "assetId": { "type": "string" } }, "required": [ "albumId", "assetId" ], "type": "object" }, "SyncAlbumUserDeleteV1": { "properties": { "albumId": { "type": "string" }, "userId": { "type": "string" } }, "required": [ "albumId", "userId" ], "type": "object" }, "SyncAlbumUserV1": { "properties": { "albumId": { "type": "string" }, "role": { "allOf": [ { "$ref": "#/components/schemas/AlbumUserRole" } ] }, "userId": { "type": "string" } }, "required": [ "albumId", "role", "userId" ], "type": "object" }, "SyncAlbumV1": { "properties": { "createdAt": { "format": "date-time", "type": "string" }, "description": { "type": "string" }, "id": { "type": "string" }, "isActivityEnabled": { "type": "boolean" }, "name": { "type": "string" }, "order": { "allOf": [ { "$ref": "#/components/schemas/AssetOrder" } ] }, "ownerId": { "type": "string" }, "thumbnailAssetId": { "nullable": true, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "createdAt", "description", "id", "isActivityEnabled", "name", "order", "ownerId", "thumbnailAssetId", "updatedAt" ], "type": "object" }, "SyncAssetDeleteV1": { "properties": { "assetId": { "type": "string" } }, "required": [ "assetId" ], "type": "object" }, "SyncAssetExifV1": { "properties": { "assetId": { "type": "string" }, "city": { "nullable": true, "type": "string" }, "country": { "nullable": true, "type": "string" }, "dateTimeOriginal": { "format": "date-time", "nullable": true, "type": "string" }, "description": { "nullable": true, "type": "string" }, "exifImageHeight": { "nullable": true, "type": "integer" }, "exifImageWidth": { "nullable": true, "type": "integer" }, "exposureTime": { "nullable": true, "type": "string" }, "fNumber": { "format": "double", "nullable": true, "type": "number" }, "fileSizeInByte": { "nullable": true, "type": "integer" }, "focalLength": { "format": "double", "nullable": true, "type": "number" }, "fps": { "format": "double", "nullable": true, "type": "number" }, "iso": { "nullable": true, "type": "integer" }, "latitude": { "format": "double", "nullable": true, "type": "number" }, "lensModel": { "nullable": true, "type": "string" }, "longitude": { "format": "double", "nullable": true, "type": "number" }, "make": { "nullable": true, "type": "string" }, "model": { "nullable": true, "type": "string" }, "modifyDate": { "format": "date-time", "nullable": true, "type": "string" }, "orientation": { "nullable": true, "type": "string" }, "profileDescription": { "nullable": true, "type": "string" }, "projectionType": { "nullable": true, "type": "string" }, "rating": { "nullable": true, "type": "integer" }, "state": { "nullable": true, "type": "string" }, "timeZone": { "nullable": true, "type": "string" } }, "required": [ "assetId", "city", "country", "dateTimeOriginal", "description", "exifImageHeight", "exifImageWidth", "exposureTime", "fNumber", "fileSizeInByte", "focalLength", "fps", "iso", "latitude", "lensModel", "longitude", "make", "model", "modifyDate", "orientation", "profileDescription", "projectionType", "rating", "state", "timeZone" ], "type": "object" }, "SyncAssetFaceDeleteV1": { "properties": { "assetFaceId": { "type": "string" } }, "required": [ "assetFaceId" ], "type": "object" }, "SyncAssetFaceV1": { "properties": { "assetId": { "type": "string" }, "boundingBoxX1": { "type": "integer" }, "boundingBoxX2": { "type": "integer" }, "boundingBoxY1": { "type": "integer" }, "boundingBoxY2": { "type": "integer" }, "id": { "type": "string" }, "imageHeight": { "type": "integer" }, "imageWidth": { "type": "integer" }, "personId": { "nullable": true, "type": "string" }, "sourceType": { "type": "string" } }, "required": [ "assetId", "boundingBoxX1", "boundingBoxX2", "boundingBoxY1", "boundingBoxY2", "id", "imageHeight", "imageWidth", "personId", "sourceType" ], "type": "object" }, "SyncAssetMetadataDeleteV1": { "properties": { "assetId": { "type": "string" }, "key": { "allOf": [ { "$ref": "#/components/schemas/AssetMetadataKey" } ] } }, "required": [ "assetId", "key" ], "type": "object" }, "SyncAssetMetadataV1": { "properties": { "assetId": { "type": "string" }, "key": { "allOf": [ { "$ref": "#/components/schemas/AssetMetadataKey" } ] }, "value": { "type": "object" } }, "required": [ "assetId", "key", "value" ], "type": "object" }, "SyncAssetV1": { "properties": { "checksum": { "type": "string" }, "deletedAt": { "format": "date-time", "nullable": true, "type": "string" }, "duration": { "nullable": true, "type": "string" }, "fileCreatedAt": { "format": "date-time", "nullable": true, "type": "string" }, "fileModifiedAt": { "format": "date-time", "nullable": true, "type": "string" }, "id": { "type": "string" }, "isFavorite": { "type": "boolean" }, "libraryId": { "nullable": true, "type": "string" }, "livePhotoVideoId": { "nullable": true, "type": "string" }, "localDateTime": { "format": "date-time", "nullable": true, "type": "string" }, "originalFileName": { "type": "string" }, "ownerId": { "type": "string" }, "stackId": { "nullable": true, "type": "string" }, "thumbhash": { "nullable": true, "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/AssetTypeEnum" } ] }, "visibility": { "allOf": [ { "$ref": "#/components/schemas/AssetVisibility" } ] } }, "required": [ "checksum", "deletedAt", "duration", "fileCreatedAt", "fileModifiedAt", "id", "isFavorite", "libraryId", "livePhotoVideoId", "localDateTime", "originalFileName", "ownerId", "stackId", "thumbhash", "type", "visibility" ], "type": "object" }, "SyncAuthUserV1": { "properties": { "avatarColor": { "allOf": [ { "$ref": "#/components/schemas/UserAvatarColor" } ], "nullable": true }, "deletedAt": { "format": "date-time", "nullable": true, "type": "string" }, "email": { "type": "string" }, "hasProfileImage": { "type": "boolean" }, "id": { "type": "string" }, "isAdmin": { "type": "boolean" }, "name": { "type": "string" }, "oauthId": { "type": "string" }, "pinCode": { "nullable": true, "type": "string" }, "profileChangedAt": { "format": "date-time", "type": "string" }, "quotaSizeInBytes": { "nullable": true, "type": "integer" }, "quotaUsageInBytes": { "type": "integer" }, "storageLabel": { "nullable": true, "type": "string" } }, "required": [ "avatarColor", "deletedAt", "email", "hasProfileImage", "id", "isAdmin", "name", "oauthId", "pinCode", "profileChangedAt", "quotaSizeInBytes", "quotaUsageInBytes", "storageLabel" ], "type": "object" }, "SyncCompleteV1": { "properties": {}, "type": "object" }, "SyncEntityType": { "enum": [ "AuthUserV1", "UserV1", "UserDeleteV1", "AssetV1", "AssetDeleteV1", "AssetExifV1", "AssetMetadataV1", "AssetMetadataDeleteV1", "PartnerV1", "PartnerDeleteV1", "PartnerAssetV1", "PartnerAssetBackfillV1", "PartnerAssetDeleteV1", "PartnerAssetExifV1", "PartnerAssetExifBackfillV1", "PartnerStackBackfillV1", "PartnerStackDeleteV1", "PartnerStackV1", "AlbumV1", "AlbumDeleteV1", "AlbumUserV1", "AlbumUserBackfillV1", "AlbumUserDeleteV1", "AlbumAssetCreateV1", "AlbumAssetUpdateV1", "AlbumAssetBackfillV1", "AlbumAssetExifCreateV1", "AlbumAssetExifUpdateV1", "AlbumAssetExifBackfillV1", "AlbumToAssetV1", "AlbumToAssetDeleteV1", "AlbumToAssetBackfillV1", "MemoryV1", "MemoryDeleteV1", "MemoryToAssetV1", "MemoryToAssetDeleteV1", "StackV1", "StackDeleteV1", "PersonV1", "PersonDeleteV1", "AssetFaceV1", "AssetFaceDeleteV1", "UserMetadataV1", "UserMetadataDeleteV1", "SyncAckV1", "SyncResetV1", "SyncCompleteV1" ], "type": "string" }, "SyncMemoryAssetDeleteV1": { "properties": { "assetId": { "type": "string" }, "memoryId": { "type": "string" } }, "required": [ "assetId", "memoryId" ], "type": "object" }, "SyncMemoryAssetV1": { "properties": { "assetId": { "type": "string" }, "memoryId": { "type": "string" } }, "required": [ "assetId", "memoryId" ], "type": "object" }, "SyncMemoryDeleteV1": { "properties": { "memoryId": { "type": "string" } }, "required": [ "memoryId" ], "type": "object" }, "SyncMemoryV1": { "properties": { "createdAt": { "format": "date-time", "type": "string" }, "data": { "type": "object" }, "deletedAt": { "format": "date-time", "nullable": true, "type": "string" }, "hideAt": { "format": "date-time", "nullable": true, "type": "string" }, "id": { "type": "string" }, "isSaved": { "type": "boolean" }, "memoryAt": { "format": "date-time", "type": "string" }, "ownerId": { "type": "string" }, "seenAt": { "format": "date-time", "nullable": true, "type": "string" }, "showAt": { "format": "date-time", "nullable": true, "type": "string" }, "type": { "allOf": [ { "$ref": "#/components/schemas/MemoryType" } ] }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "createdAt", "data", "deletedAt", "hideAt", "id", "isSaved", "memoryAt", "ownerId", "seenAt", "showAt", "type", "updatedAt" ], "type": "object" }, "SyncPartnerDeleteV1": { "properties": { "sharedById": { "type": "string" }, "sharedWithId": { "type": "string" } }, "required": [ "sharedById", "sharedWithId" ], "type": "object" }, "SyncPartnerV1": { "properties": { "inTimeline": { "type": "boolean" }, "sharedById": { "type": "string" }, "sharedWithId": { "type": "string" } }, "required": [ "inTimeline", "sharedById", "sharedWithId" ], "type": "object" }, "SyncPersonDeleteV1": { "properties": { "personId": { "type": "string" } }, "required": [ "personId" ], "type": "object" }, "SyncPersonV1": { "properties": { "birthDate": { "format": "date-time", "nullable": true, "type": "string" }, "color": { "nullable": true, "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "faceAssetId": { "nullable": true, "type": "string" }, "id": { "type": "string" }, "isFavorite": { "type": "boolean" }, "isHidden": { "type": "boolean" }, "name": { "type": "string" }, "ownerId": { "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "birthDate", "color", "createdAt", "faceAssetId", "id", "isFavorite", "isHidden", "name", "ownerId", "updatedAt" ], "type": "object" }, "SyncRequestType": { "enum": [ "AlbumsV1", "AlbumUsersV1", "AlbumToAssetsV1", "AlbumAssetsV1", "AlbumAssetExifsV1", "AssetsV1", "AssetExifsV1", "AssetMetadataV1", "AuthUsersV1", "MemoriesV1", "MemoryToAssetsV1", "PartnersV1", "PartnerAssetsV1", "PartnerAssetExifsV1", "PartnerStacksV1", "StacksV1", "UsersV1", "PeopleV1", "AssetFacesV1", "UserMetadataV1" ], "type": "string" }, "SyncResetV1": { "properties": {}, "type": "object" }, "SyncStackDeleteV1": { "properties": { "stackId": { "type": "string" } }, "required": [ "stackId" ], "type": "object" }, "SyncStackV1": { "properties": { "createdAt": { "format": "date-time", "type": "string" }, "id": { "type": "string" }, "ownerId": { "type": "string" }, "primaryAssetId": { "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "createdAt", "id", "ownerId", "primaryAssetId", "updatedAt" ], "type": "object" }, "SyncStreamDto": { "properties": { "reset": { "type": "boolean" }, "types": { "items": { "$ref": "#/components/schemas/SyncRequestType" }, "type": "array" } }, "required": [ "types" ], "type": "object" }, "SyncUserDeleteV1": { "properties": { "userId": { "type": "string" } }, "required": [ "userId" ], "type": "object" }, "SyncUserMetadataDeleteV1": { "properties": { "key": { "allOf": [ { "$ref": "#/components/schemas/UserMetadataKey" } ] }, "userId": { "type": "string" } }, "required": [ "key", "userId" ], "type": "object" }, "SyncUserMetadataV1": { "properties": { "key": { "allOf": [ { "$ref": "#/components/schemas/UserMetadataKey" } ] }, "userId": { "type": "string" }, "value": { "type": "object" } }, "required": [ "key", "userId", "value" ], "type": "object" }, "SyncUserV1": { "properties": { "avatarColor": { "allOf": [ { "$ref": "#/components/schemas/UserAvatarColor" } ], "nullable": true }, "deletedAt": { "format": "date-time", "nullable": true, "type": "string" }, "email": { "type": "string" }, "hasProfileImage": { "type": "boolean" }, "id": { "type": "string" }, "name": { "type": "string" }, "profileChangedAt": { "format": "date-time", "type": "string" } }, "required": [ "avatarColor", "deletedAt", "email", "hasProfileImage", "id", "name", "profileChangedAt" ], "type": "object" }, "SystemConfigBackupsDto": { "properties": { "database": { "$ref": "#/components/schemas/DatabaseBackupConfig" } }, "required": [ "database" ], "type": "object" }, "SystemConfigDto": { "properties": { "backup": { "$ref": "#/components/schemas/SystemConfigBackupsDto" }, "ffmpeg": { "$ref": "#/components/schemas/SystemConfigFFmpegDto" }, "image": { "$ref": "#/components/schemas/SystemConfigImageDto" }, "job": { "$ref": "#/components/schemas/SystemConfigJobDto" }, "library": { "$ref": "#/components/schemas/SystemConfigLibraryDto" }, "logging": { "$ref": "#/components/schemas/SystemConfigLoggingDto" }, "machineLearning": { "$ref": "#/components/schemas/SystemConfigMachineLearningDto" }, "map": { "$ref": "#/components/schemas/SystemConfigMapDto" }, "metadata": { "$ref": "#/components/schemas/SystemConfigMetadataDto" }, "newVersionCheck": { "$ref": "#/components/schemas/SystemConfigNewVersionCheckDto" }, "nightlyTasks": { "$ref": "#/components/schemas/SystemConfigNightlyTasksDto" }, "notifications": { "$ref": "#/components/schemas/SystemConfigNotificationsDto" }, "oauth": { "$ref": "#/components/schemas/SystemConfigOAuthDto" }, "passwordLogin": { "$ref": "#/components/schemas/SystemConfigPasswordLoginDto" }, "reverseGeocoding": { "$ref": "#/components/schemas/SystemConfigReverseGeocodingDto" }, "server": { "$ref": "#/components/schemas/SystemConfigServerDto" }, "storageTemplate": { "$ref": "#/components/schemas/SystemConfigStorageTemplateDto" }, "templates": { "$ref": "#/components/schemas/SystemConfigTemplatesDto" }, "theme": { "$ref": "#/components/schemas/SystemConfigThemeDto" }, "trash": { "$ref": "#/components/schemas/SystemConfigTrashDto" }, "user": { "$ref": "#/components/schemas/SystemConfigUserDto" } }, "required": [ "backup", "ffmpeg", "image", "job", "library", "logging", "machineLearning", "map", "metadata", "newVersionCheck", "nightlyTasks", "notifications", "oauth", "passwordLogin", "reverseGeocoding", "server", "storageTemplate", "templates", "theme", "trash", "user" ], "type": "object" }, "SystemConfigFFmpegDto": { "properties": { "accel": { "allOf": [ { "$ref": "#/components/schemas/TranscodeHWAccel" } ] }, "accelDecode": { "type": "boolean" }, "acceptedAudioCodecs": { "items": { "$ref": "#/components/schemas/AudioCodec" }, "type": "array" }, "acceptedContainers": { "items": { "$ref": "#/components/schemas/VideoContainer" }, "type": "array" }, "acceptedVideoCodecs": { "items": { "$ref": "#/components/schemas/VideoCodec" }, "type": "array" }, "bframes": { "maximum": 16, "minimum": -1, "type": "integer" }, "cqMode": { "allOf": [ { "$ref": "#/components/schemas/CQMode" } ] }, "crf": { "maximum": 51, "minimum": 0, "type": "integer" }, "gopSize": { "minimum": 0, "type": "integer" }, "maxBitrate": { "type": "string" }, "preferredHwDevice": { "type": "string" }, "preset": { "type": "string" }, "refs": { "maximum": 6, "minimum": 0, "type": "integer" }, "targetAudioCodec": { "allOf": [ { "$ref": "#/components/schemas/AudioCodec" } ] }, "targetResolution": { "type": "string" }, "targetVideoCodec": { "allOf": [ { "$ref": "#/components/schemas/VideoCodec" } ] }, "temporalAQ": { "type": "boolean" }, "threads": { "minimum": 0, "type": "integer" }, "tonemap": { "allOf": [ { "$ref": "#/components/schemas/ToneMapping" } ] }, "transcode": { "allOf": [ { "$ref": "#/components/schemas/TranscodePolicy" } ] }, "twoPass": { "type": "boolean" } }, "required": [ "accel", "accelDecode", "acceptedAudioCodecs", "acceptedContainers", "acceptedVideoCodecs", "bframes", "cqMode", "crf", "gopSize", "maxBitrate", "preferredHwDevice", "preset", "refs", "targetAudioCodec", "targetResolution", "targetVideoCodec", "temporalAQ", "threads", "tonemap", "transcode", "twoPass" ], "type": "object" }, "SystemConfigFacesDto": { "properties": { "import": { "type": "boolean" } }, "required": [ "import" ], "type": "object" }, "SystemConfigGeneratedFullsizeImageDto": { "properties": { "enabled": { "type": "boolean" }, "format": { "allOf": [ { "$ref": "#/components/schemas/ImageFormat" } ] }, "quality": { "maximum": 100, "minimum": 1, "type": "integer" } }, "required": [ "enabled", "format", "quality" ], "type": "object" }, "SystemConfigGeneratedImageDto": { "properties": { "format": { "allOf": [ { "$ref": "#/components/schemas/ImageFormat" } ] }, "quality": { "maximum": 100, "minimum": 1, "type": "integer" }, "size": { "minimum": 1, "type": "integer" } }, "required": [ "format", "quality", "size" ], "type": "object" }, "SystemConfigImageDto": { "properties": { "colorspace": { "allOf": [ { "$ref": "#/components/schemas/Colorspace" } ] }, "extractEmbedded": { "type": "boolean" }, "fullsize": { "$ref": "#/components/schemas/SystemConfigGeneratedFullsizeImageDto" }, "preview": { "$ref": "#/components/schemas/SystemConfigGeneratedImageDto" }, "thumbnail": { "$ref": "#/components/schemas/SystemConfigGeneratedImageDto" } }, "required": [ "colorspace", "extractEmbedded", "fullsize", "preview", "thumbnail" ], "type": "object" }, "SystemConfigJobDto": { "properties": { "backgroundTask": { "$ref": "#/components/schemas/JobSettingsDto" }, "faceDetection": { "$ref": "#/components/schemas/JobSettingsDto" }, "library": { "$ref": "#/components/schemas/JobSettingsDto" }, "metadataExtraction": { "$ref": "#/components/schemas/JobSettingsDto" }, "migration": { "$ref": "#/components/schemas/JobSettingsDto" }, "notifications": { "$ref": "#/components/schemas/JobSettingsDto" }, "ocr": { "$ref": "#/components/schemas/JobSettingsDto" }, "search": { "$ref": "#/components/schemas/JobSettingsDto" }, "sidecar": { "$ref": "#/components/schemas/JobSettingsDto" }, "smartSearch": { "$ref": "#/components/schemas/JobSettingsDto" }, "thumbnailGeneration": { "$ref": "#/components/schemas/JobSettingsDto" }, "videoConversion": { "$ref": "#/components/schemas/JobSettingsDto" }, "workflow": { "$ref": "#/components/schemas/JobSettingsDto" } }, "required": [ "backgroundTask", "faceDetection", "library", "metadataExtraction", "migration", "notifications", "ocr", "search", "sidecar", "smartSearch", "thumbnailGeneration", "videoConversion", "workflow" ], "type": "object" }, "SystemConfigLibraryDto": { "properties": { "scan": { "$ref": "#/components/schemas/SystemConfigLibraryScanDto" }, "watch": { "$ref": "#/components/schemas/SystemConfigLibraryWatchDto" } }, "required": [ "scan", "watch" ], "type": "object" }, "SystemConfigLibraryScanDto": { "properties": { "cronExpression": { "type": "string" }, "enabled": { "type": "boolean" } }, "required": [ "cronExpression", "enabled" ], "type": "object" }, "SystemConfigLibraryWatchDto": { "properties": { "enabled": { "type": "boolean" } }, "required": [ "enabled" ], "type": "object" }, "SystemConfigLoggingDto": { "properties": { "enabled": { "type": "boolean" }, "level": { "allOf": [ { "$ref": "#/components/schemas/LogLevel" } ] } }, "required": [ "enabled", "level" ], "type": "object" }, "SystemConfigMachineLearningDto": { "properties": { "availabilityChecks": { "$ref": "#/components/schemas/MachineLearningAvailabilityChecksDto" }, "clip": { "$ref": "#/components/schemas/CLIPConfig" }, "duplicateDetection": { "$ref": "#/components/schemas/DuplicateDetectionConfig" }, "enabled": { "type": "boolean" }, "facialRecognition": { "$ref": "#/components/schemas/FacialRecognitionConfig" }, "ocr": { "$ref": "#/components/schemas/OcrConfig" }, "urls": { "format": "uri", "items": { "format": "uri", "type": "string" }, "minItems": 1, "type": "array" } }, "required": [ "availabilityChecks", "clip", "duplicateDetection", "enabled", "facialRecognition", "ocr", "urls" ], "type": "object" }, "SystemConfigMapDto": { "properties": { "darkStyle": { "format": "uri", "type": "string" }, "enabled": { "type": "boolean" }, "lightStyle": { "format": "uri", "type": "string" } }, "required": [ "darkStyle", "enabled", "lightStyle" ], "type": "object" }, "SystemConfigMetadataDto": { "properties": { "faces": { "$ref": "#/components/schemas/SystemConfigFacesDto" } }, "required": [ "faces" ], "type": "object" }, "SystemConfigNewVersionCheckDto": { "properties": { "enabled": { "type": "boolean" } }, "required": [ "enabled" ], "type": "object" }, "SystemConfigNightlyTasksDto": { "properties": { "clusterNewFaces": { "type": "boolean" }, "databaseCleanup": { "type": "boolean" }, "generateMemories": { "type": "boolean" }, "missingThumbnails": { "type": "boolean" }, "startTime": { "type": "string" }, "syncQuotaUsage": { "type": "boolean" } }, "required": [ "clusterNewFaces", "databaseCleanup", "generateMemories", "missingThumbnails", "startTime", "syncQuotaUsage" ], "type": "object" }, "SystemConfigNotificationsDto": { "properties": { "smtp": { "$ref": "#/components/schemas/SystemConfigSmtpDto" } }, "required": [ "smtp" ], "type": "object" }, "SystemConfigOAuthDto": { "properties": { "autoLaunch": { "type": "boolean" }, "autoRegister": { "type": "boolean" }, "buttonText": { "type": "string" }, "clientId": { "type": "string" }, "clientSecret": { "type": "string" }, "defaultStorageQuota": { "format": "int64", "minimum": 0, "nullable": true, "type": "integer" }, "enabled": { "type": "boolean" }, "issuerUrl": { "type": "string" }, "mobileOverrideEnabled": { "type": "boolean" }, "mobileRedirectUri": { "format": "uri", "type": "string" }, "profileSigningAlgorithm": { "type": "string" }, "roleClaim": { "type": "string" }, "scope": { "type": "string" }, "signingAlgorithm": { "type": "string" }, "storageLabelClaim": { "type": "string" }, "storageQuotaClaim": { "type": "string" }, "timeout": { "minimum": 1, "type": "integer" }, "tokenEndpointAuthMethod": { "allOf": [ { "$ref": "#/components/schemas/OAuthTokenEndpointAuthMethod" } ] } }, "required": [ "autoLaunch", "autoRegister", "buttonText", "clientId", "clientSecret", "defaultStorageQuota", "enabled", "issuerUrl", "mobileOverrideEnabled", "mobileRedirectUri", "profileSigningAlgorithm", "roleClaim", "scope", "signingAlgorithm", "storageLabelClaim", "storageQuotaClaim", "timeout", "tokenEndpointAuthMethod" ], "type": "object" }, "SystemConfigPasswordLoginDto": { "properties": { "enabled": { "type": "boolean" } }, "required": [ "enabled" ], "type": "object" }, "SystemConfigReverseGeocodingDto": { "properties": { "enabled": { "type": "boolean" } }, "required": [ "enabled" ], "type": "object" }, "SystemConfigServerDto": { "properties": { "externalDomain": { "format": "uri", "type": "string" }, "loginPageMessage": { "type": "string" }, "publicUsers": { "type": "boolean" } }, "required": [ "externalDomain", "loginPageMessage", "publicUsers" ], "type": "object" }, "SystemConfigSmtpDto": { "properties": { "enabled": { "type": "boolean" }, "from": { "type": "string" }, "replyTo": { "type": "string" }, "transport": { "$ref": "#/components/schemas/SystemConfigSmtpTransportDto" } }, "required": [ "enabled", "from", "replyTo", "transport" ], "type": "object" }, "SystemConfigSmtpTransportDto": { "properties": { "host": { "type": "string" }, "ignoreCert": { "type": "boolean" }, "password": { "type": "string" }, "port": { "maximum": 65535, "minimum": 0, "type": "number" }, "secure": { "type": "boolean" }, "username": { "type": "string" } }, "required": [ "host", "ignoreCert", "password", "port", "secure", "username" ], "type": "object" }, "SystemConfigStorageTemplateDto": { "properties": { "enabled": { "type": "boolean" }, "hashVerificationEnabled": { "type": "boolean" }, "template": { "type": "string" } }, "required": [ "enabled", "hashVerificationEnabled", "template" ], "type": "object" }, "SystemConfigTemplateEmailsDto": { "properties": { "albumInviteTemplate": { "type": "string" }, "albumUpdateTemplate": { "type": "string" }, "welcomeTemplate": { "type": "string" } }, "required": [ "albumInviteTemplate", "albumUpdateTemplate", "welcomeTemplate" ], "type": "object" }, "SystemConfigTemplateStorageOptionDto": { "properties": { "dayOptions": { "items": { "type": "string" }, "type": "array" }, "hourOptions": { "items": { "type": "string" }, "type": "array" }, "minuteOptions": { "items": { "type": "string" }, "type": "array" }, "monthOptions": { "items": { "type": "string" }, "type": "array" }, "presetOptions": { "items": { "type": "string" }, "type": "array" }, "secondOptions": { "items": { "type": "string" }, "type": "array" }, "weekOptions": { "items": { "type": "string" }, "type": "array" }, "yearOptions": { "items": { "type": "string" }, "type": "array" } }, "required": [ "dayOptions", "hourOptions", "minuteOptions", "monthOptions", "presetOptions", "secondOptions", "weekOptions", "yearOptions" ], "type": "object" }, "SystemConfigTemplatesDto": { "properties": { "email": { "$ref": "#/components/schemas/SystemConfigTemplateEmailsDto" } }, "required": [ "email" ], "type": "object" }, "SystemConfigThemeDto": { "properties": { "customCss": { "type": "string" } }, "required": [ "customCss" ], "type": "object" }, "SystemConfigTrashDto": { "properties": { "days": { "minimum": 0, "type": "integer" }, "enabled": { "type": "boolean" } }, "required": [ "days", "enabled" ], "type": "object" }, "SystemConfigUserDto": { "properties": { "deleteDelay": { "minimum": 1, "type": "integer" } }, "required": [ "deleteDelay" ], "type": "object" }, "TagBulkAssetsDto": { "properties": { "assetIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" }, "tagIds": { "items": { "format": "uuid", "type": "string" }, "type": "array" } }, "required": [ "assetIds", "tagIds" ], "type": "object" }, "TagBulkAssetsResponseDto": { "properties": { "count": { "type": "integer" } }, "required": [ "count" ], "type": "object" }, "TagCreateDto": { "properties": { "color": { "pattern": "^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$", "type": "string" }, "name": { "type": "string" }, "parentId": { "format": "uuid", "nullable": true, "type": "string" } }, "required": [ "name" ], "type": "object" }, "TagResponseDto": { "properties": { "color": { "type": "string" }, "createdAt": { "format": "date-time", "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "parentId": { "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "value": { "type": "string" } }, "required": [ "createdAt", "id", "name", "updatedAt", "value" ], "type": "object" }, "TagUpdateDto": { "properties": { "color": { "nullable": true, "type": "string" } }, "type": "object" }, "TagUpsertDto": { "properties": { "tags": { "items": { "type": "string" }, "type": "array" } }, "required": [ "tags" ], "type": "object" }, "TagsResponse": { "properties": { "enabled": { "default": true, "type": "boolean" }, "sidebarWeb": { "default": true, "type": "boolean" } }, "required": [ "enabled", "sidebarWeb" ], "type": "object" }, "TagsUpdate": { "properties": { "enabled": { "type": "boolean" }, "sidebarWeb": { "type": "boolean" } }, "type": "object" }, "TemplateDto": { "properties": { "template": { "type": "string" } }, "required": [ "template" ], "type": "object" }, "TemplateResponseDto": { "properties": { "html": { "type": "string" }, "name": { "type": "string" } }, "required": [ "html", "name" ], "type": "object" }, "TestEmailResponseDto": { "properties": { "messageId": { "type": "string" } }, "required": [ "messageId" ], "type": "object" }, "TimeBucketAssetResponseDto": { "properties": { "city": { "description": "Array of city names extracted from EXIF GPS data", "items": { "nullable": true, "type": "string" }, "type": "array" }, "country": { "description": "Array of country names extracted from EXIF GPS data", "items": { "nullable": true, "type": "string" }, "type": "array" }, "duration": { "description": "Array of video durations in HH:MM:SS format (null for images)", "items": { "nullable": true, "type": "string" }, "type": "array" }, "fileCreatedAt": { "description": "Array of file creation timestamps in UTC (ISO 8601 format, without timezone)", "items": { "type": "string" }, "type": "array" }, "id": { "description": "Array of asset IDs in the time bucket", "items": { "type": "string" }, "type": "array" }, "isFavorite": { "description": "Array indicating whether each asset is favorited", "items": { "type": "boolean" }, "type": "array" }, "isImage": { "description": "Array indicating whether each asset is an image (false for videos)", "items": { "type": "boolean" }, "type": "array" }, "isTrashed": { "description": "Array indicating whether each asset is in the trash", "items": { "type": "boolean" }, "type": "array" }, "latitude": { "description": "Array of latitude coordinates extracted from EXIF GPS data", "items": { "nullable": true, "type": "number" }, "type": "array" }, "livePhotoVideoId": { "description": "Array of live photo video asset IDs (null for non-live photos)", "items": { "nullable": true, "type": "string" }, "type": "array" }, "localOffsetHours": { "description": "Array of UTC offset hours at the time each photo was taken. Positive values are east of UTC, negative values are west of UTC. Values may be fractional (e.g., 5.5 for +05:30, -9.75 for -09:45). Applying this offset to 'fileCreatedAt' will give you the time the photo was taken from the photographer's perspective.", "items": { "type": "number" }, "type": "array" }, "longitude": { "description": "Array of longitude coordinates extracted from EXIF GPS data", "items": { "nullable": true, "type": "number" }, "type": "array" }, "ownerId": { "description": "Array of owner IDs for each asset", "items": { "type": "string" }, "type": "array" }, "projectionType": { "description": "Array of projection types for 360° content (e.g., \"EQUIRECTANGULAR\", \"CUBEFACE\", \"CYLINDRICAL\")", "items": { "nullable": true, "type": "string" }, "type": "array" }, "ratio": { "description": "Array of aspect ratios (width/height) for each asset", "items": { "type": "number" }, "type": "array" }, "stack": { "description": "Array of stack information as [stackId, assetCount] tuples (null for non-stacked assets)", "items": { "items": { "type": "string" }, "maxItems": 2, "minItems": 2, "nullable": true, "type": "array" }, "type": "array" }, "thumbhash": { "description": "Array of BlurHash strings for generating asset previews (base64 encoded)", "items": { "nullable": true, "type": "string" }, "type": "array" }, "visibility": { "description": "Array of visibility statuses for each asset (e.g., ARCHIVE, TIMELINE, HIDDEN, LOCKED)", "items": { "$ref": "#/components/schemas/AssetVisibility" }, "type": "array" } }, "required": [ "city", "country", "duration", "fileCreatedAt", "id", "isFavorite", "isImage", "isTrashed", "livePhotoVideoId", "localOffsetHours", "ownerId", "projectionType", "ratio", "thumbhash", "visibility" ], "type": "object" }, "TimeBucketsResponseDto": { "properties": { "count": { "description": "Number of assets in this time bucket", "example": 42, "type": "integer" }, "timeBucket": { "description": "Time bucket identifier in YYYY-MM-DD format representing the start of the time period", "example": "2024-01-01", "type": "string" } }, "required": [ "count", "timeBucket" ], "type": "object" }, "ToneMapping": { "enum": [ "hable", "mobius", "reinhard", "disabled" ], "type": "string" }, "TranscodeHWAccel": { "enum": [ "nvenc", "qsv", "vaapi", "rkmpp", "disabled" ], "type": "string" }, "TranscodePolicy": { "enum": [ "all", "optimal", "bitrate", "required", "disabled" ], "type": "string" }, "TrashResponseDto": { "properties": { "count": { "type": "integer" } }, "required": [ "count" ], "type": "object" }, "UpdateAlbumDto": { "properties": { "albumName": { "type": "string" }, "albumThumbnailAssetId": { "format": "uuid", "type": "string" }, "description": { "type": "string" }, "isActivityEnabled": { "type": "boolean" }, "order": { "allOf": [ { "$ref": "#/components/schemas/AssetOrder" } ] } }, "type": "object" }, "UpdateAlbumUserDto": { "properties": { "role": { "allOf": [ { "$ref": "#/components/schemas/AlbumUserRole" } ] } }, "required": [ "role" ], "type": "object" }, "UpdateAssetDto": { "properties": { "dateTimeOriginal": { "type": "string" }, "description": { "type": "string" }, "isFavorite": { "type": "boolean" }, "latitude": { "type": "number" }, "livePhotoVideoId": { "format": "uuid", "nullable": true, "type": "string" }, "longitude": { "type": "number" }, "rating": { "maximum": 5, "minimum": -1, "type": "number" }, "visibility": { "allOf": [ { "$ref": "#/components/schemas/AssetVisibility" } ] } }, "type": "object" }, "UpdateLibraryDto": { "properties": { "exclusionPatterns": { "items": { "type": "string" }, "maxItems": 128, "type": "array", "uniqueItems": true }, "importPaths": { "items": { "type": "string" }, "maxItems": 128, "type": "array", "uniqueItems": true }, "name": { "type": "string" } }, "type": "object" }, "UsageByUserDto": { "properties": { "photos": { "type": "integer" }, "quotaSizeInBytes": { "format": "int64", "nullable": true, "type": "integer" }, "usage": { "format": "int64", "type": "integer" }, "usagePhotos": { "format": "int64", "type": "integer" }, "usageVideos": { "format": "int64", "type": "integer" }, "userId": { "type": "string" }, "userName": { "type": "string" }, "videos": { "type": "integer" } }, "required": [ "photos", "quotaSizeInBytes", "usage", "usagePhotos", "usageVideos", "userId", "userName", "videos" ], "type": "object" }, "UserAdminCreateDto": { "properties": { "avatarColor": { "allOf": [ { "$ref": "#/components/schemas/UserAvatarColor" } ], "nullable": true }, "email": { "format": "email", "type": "string" }, "isAdmin": { "type": "boolean" }, "name": { "type": "string" }, "notify": { "type": "boolean" }, "password": { "type": "string" }, "quotaSizeInBytes": { "format": "int64", "minimum": 0, "nullable": true, "type": "integer" }, "shouldChangePassword": { "type": "boolean" }, "storageLabel": { "nullable": true, "type": "string" } }, "required": [ "email", "name", "password" ], "type": "object" }, "UserAdminDeleteDto": { "properties": { "force": { "type": "boolean" } }, "type": "object" }, "UserAdminResponseDto": { "properties": { "avatarColor": { "allOf": [ { "$ref": "#/components/schemas/UserAvatarColor" } ] }, "createdAt": { "format": "date-time", "type": "string" }, "deletedAt": { "format": "date-time", "nullable": true, "type": "string" }, "email": { "type": "string" }, "id": { "type": "string" }, "isAdmin": { "type": "boolean" }, "license": { "allOf": [ { "$ref": "#/components/schemas/UserLicense" } ], "nullable": true }, "name": { "type": "string" }, "oauthId": { "type": "string" }, "profileChangedAt": { "format": "date-time", "type": "string" }, "profileImagePath": { "type": "string" }, "quotaSizeInBytes": { "format": "int64", "nullable": true, "type": "integer" }, "quotaUsageInBytes": { "format": "int64", "nullable": true, "type": "integer" }, "shouldChangePassword": { "type": "boolean" }, "status": { "allOf": [ { "$ref": "#/components/schemas/UserStatus" } ] }, "storageLabel": { "nullable": true, "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" } }, "required": [ "avatarColor", "createdAt", "deletedAt", "email", "id", "isAdmin", "license", "name", "oauthId", "profileChangedAt", "profileImagePath", "quotaSizeInBytes", "quotaUsageInBytes", "shouldChangePassword", "status", "storageLabel", "updatedAt" ], "type": "object" }, "UserAdminUpdateDto": { "properties": { "avatarColor": { "allOf": [ { "$ref": "#/components/schemas/UserAvatarColor" } ], "nullable": true }, "email": { "format": "email", "type": "string" }, "isAdmin": { "type": "boolean" }, "name": { "type": "string" }, "password": { "type": "string" }, "pinCode": { "example": "123456", "nullable": true, "type": "string" }, "quotaSizeInBytes": { "format": "int64", "minimum": 0, "nullable": true, "type": "integer" }, "shouldChangePassword": { "type": "boolean" }, "storageLabel": { "nullable": true, "type": "string" } }, "type": "object" }, "UserAvatarColor": { "enum": [ "primary", "pink", "red", "yellow", "blue", "green", "purple", "orange", "gray", "amber" ], "type": "string" }, "UserLicense": { "properties": { "activatedAt": { "format": "date-time", "type": "string" }, "activationKey": { "type": "string" }, "licenseKey": { "type": "string" } }, "required": [ "activatedAt", "activationKey", "licenseKey" ], "type": "object" }, "UserMetadataKey": { "enum": [ "preferences", "license", "onboarding" ], "type": "string" }, "UserPreferencesResponseDto": { "properties": { "albums": { "$ref": "#/components/schemas/AlbumsResponse" }, "cast": { "$ref": "#/components/schemas/CastResponse" }, "download": { "$ref": "#/components/schemas/DownloadResponse" }, "emailNotifications": { "$ref": "#/components/schemas/EmailNotificationsResponse" }, "folders": { "$ref": "#/components/schemas/FoldersResponse" }, "memories": { "$ref": "#/components/schemas/MemoriesResponse" }, "people": { "$ref": "#/components/schemas/PeopleResponse" }, "purchase": { "$ref": "#/components/schemas/PurchaseResponse" }, "ratings": { "$ref": "#/components/schemas/RatingsResponse" }, "sharedLinks": { "$ref": "#/components/schemas/SharedLinksResponse" }, "tags": { "$ref": "#/components/schemas/TagsResponse" } }, "required": [ "albums", "cast", "download", "emailNotifications", "folders", "memories", "people", "purchase", "ratings", "sharedLinks", "tags" ], "type": "object" }, "UserPreferencesUpdateDto": { "properties": { "albums": { "$ref": "#/components/schemas/AlbumsUpdate" }, "avatar": { "$ref": "#/components/schemas/AvatarUpdate" }, "cast": { "$ref": "#/components/schemas/CastUpdate" }, "download": { "$ref": "#/components/schemas/DownloadUpdate" }, "emailNotifications": { "$ref": "#/components/schemas/EmailNotificationsUpdate" }, "folders": { "$ref": "#/components/schemas/FoldersUpdate" }, "memories": { "$ref": "#/components/schemas/MemoriesUpdate" }, "people": { "$ref": "#/components/schemas/PeopleUpdate" }, "purchase": { "$ref": "#/components/schemas/PurchaseUpdate" }, "ratings": { "$ref": "#/components/schemas/RatingsUpdate" }, "sharedLinks": { "$ref": "#/components/schemas/SharedLinksUpdate" }, "tags": { "$ref": "#/components/schemas/TagsUpdate" } }, "type": "object" }, "UserResponseDto": { "properties": { "avatarColor": { "allOf": [ { "$ref": "#/components/schemas/UserAvatarColor" } ] }, "email": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "profileChangedAt": { "format": "date-time", "type": "string" }, "profileImagePath": { "type": "string" } }, "required": [ "avatarColor", "email", "id", "name", "profileChangedAt", "profileImagePath" ], "type": "object" }, "UserStatus": { "enum": [ "active", "removing", "deleted" ], "type": "string" }, "UserUpdateMeDto": { "properties": { "avatarColor": { "allOf": [ { "$ref": "#/components/schemas/UserAvatarColor" } ], "nullable": true }, "email": { "format": "email", "type": "string" }, "name": { "type": "string" }, "password": { "type": "string" } }, "type": "object" }, "ValidateAccessTokenResponseDto": { "properties": { "authStatus": { "type": "boolean" } }, "required": [ "authStatus" ], "type": "object" }, "ValidateLibraryDto": { "properties": { "exclusionPatterns": { "items": { "type": "string" }, "maxItems": 128, "type": "array", "uniqueItems": true }, "importPaths": { "items": { "type": "string" }, "maxItems": 128, "type": "array", "uniqueItems": true } }, "type": "object" }, "ValidateLibraryImportPathResponseDto": { "properties": { "importPath": { "type": "string" }, "isValid": { "default": false, "type": "boolean" }, "message": { "type": "string" } }, "required": [ "importPath", "isValid" ], "type": "object" }, "ValidateLibraryResponseDto": { "properties": { "importPaths": { "items": { "$ref": "#/components/schemas/ValidateLibraryImportPathResponseDto" }, "type": "array" } }, "type": "object" }, "VersionCheckStateResponseDto": { "properties": { "checkedAt": { "nullable": true, "type": "string" }, "releaseVersion": { "nullable": true, "type": "string" } }, "required": [ "checkedAt", "releaseVersion" ], "type": "object" }, "VideoCodec": { "enum": [ "h264", "hevc", "vp9", "av1" ], "type": "string" }, "VideoContainer": { "enum": [ "mov", "mp4", "ogg", "webm" ], "type": "string" }, "WorkflowActionItemDto": { "properties": { "actionConfig": { "type": "object" }, "actionId": { "format": "uuid", "type": "string" } }, "required": [ "actionId" ], "type": "object" }, "WorkflowActionResponseDto": { "properties": { "actionConfig": { "nullable": true, "type": "object" }, "actionId": { "type": "string" }, "id": { "type": "string" }, "order": { "type": "number" }, "workflowId": { "type": "string" } }, "required": [ "actionConfig", "actionId", "id", "order", "workflowId" ], "type": "object" }, "WorkflowCreateDto": { "properties": { "actions": { "items": { "$ref": "#/components/schemas/WorkflowActionItemDto" }, "type": "array" }, "description": { "type": "string" }, "enabled": { "type": "boolean" }, "filters": { "items": { "$ref": "#/components/schemas/WorkflowFilterItemDto" }, "type": "array" }, "name": { "type": "string" }, "triggerType": { "allOf": [ { "$ref": "#/components/schemas/PluginTriggerType" } ] } }, "required": [ "actions", "filters", "name", "triggerType" ], "type": "object" }, "WorkflowFilterItemDto": { "properties": { "filterConfig": { "type": "object" }, "filterId": { "format": "uuid", "type": "string" } }, "required": [ "filterId" ], "type": "object" }, "WorkflowFilterResponseDto": { "properties": { "filterConfig": { "nullable": true, "type": "object" }, "filterId": { "type": "string" }, "id": { "type": "string" }, "order": { "type": "number" }, "workflowId": { "type": "string" } }, "required": [ "filterConfig", "filterId", "id", "order", "workflowId" ], "type": "object" }, "WorkflowResponseDto": { "properties": { "actions": { "items": { "$ref": "#/components/schemas/WorkflowActionResponseDto" }, "type": "array" }, "createdAt": { "type": "string" }, "description": { "type": "string" }, "enabled": { "type": "boolean" }, "filters": { "items": { "$ref": "#/components/schemas/WorkflowFilterResponseDto" }, "type": "array" }, "id": { "type": "string" }, "name": { "nullable": true, "type": "string" }, "ownerId": { "type": "string" }, "triggerType": { "enum": [ "AssetCreate", "PersonRecognized" ], "type": "string" } }, "required": [ "actions", "createdAt", "description", "enabled", "filters", "id", "name", "ownerId", "triggerType" ], "type": "object" }, "WorkflowUpdateDto": { "properties": { "actions": { "items": { "$ref": "#/components/schemas/WorkflowActionItemDto" }, "type": "array" }, "description": { "type": "string" }, "enabled": { "type": "boolean" }, "filters": { "items": { "$ref": "#/components/schemas/WorkflowFilterItemDto" }, "type": "array" }, "name": { "type": "string" } }, "type": "object" } } } }