immich/open-api/immich-openapi-specs.json
izzy 1fc98990ab
refactor: use respondWithCookie
refactor: merge start/end into one route
refactor: rename MaintenanceRepository to AppRepository
chore: use new ApiTag/Endpoint
refactor: apply other requested changes
2025-11-14 14:54:06 +00:00

14986 lines
No EOL
339 KiB
JSON

{
"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": true,
"in": "query",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"name": "level",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/ReactionLevel"
}
},
{
"name": "type",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/ReactionType"
}
},
{
"name": "userId",
"required": true,
"in": "query",
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"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": {
"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": true,
"in": "query",
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": true,
"in": "query",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"name": "withDeleted",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "isTrashed",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "visibility",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/AssetVisibility"
}
}
],
"responses": {
"200": {
"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": true,
"in": "query",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"name": "shared",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": true,
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": [],
"responses": {
"200": {
"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": {
"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": [],
"responses": {
"200": {
"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": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "isTrashed",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "visibility",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/AssetVisibility"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": true,
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": "getAllJobsStatus",
"parameters": [],
"responses": {
"200": {
"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/{id}": {
"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": "sendJobCommand",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"$ref": "#/components/schemas/JobName"
}
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/JobCommandDto"
}
}
},
"required": true
},
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "fileCreatedBefore",
"required": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "isArchived",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "isFavorite",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "withPartners",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "withSharedAlbums",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"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": {
"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": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "isSaved",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "isTrashed",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "order",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/MemorySearchOrder"
}
},
{
"name": "size",
"required": true,
"in": "query",
"description": "Number of memories to return",
"schema": {
"type": "integer"
}
},
{
"name": "type",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/MemoryType"
}
}
],
"responses": {
"200": {
"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": {
"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": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "isSaved",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "isTrashed",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "order",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/MemorySearchOrder"
}
},
{
"name": "size",
"required": true,
"in": "query",
"description": "Number of memories to return",
"schema": {
"type": "integer"
}
},
{
"name": "type",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/MemoryType"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": {
"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": true,
"in": "query",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"name": "level",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/NotificationLevel"
}
},
{
"name": "type",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/NotificationType"
}
},
{
"name": "unread",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": true,
"in": "query",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"name": "closestPersonId",
"required": true,
"in": "query",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"name": "page",
"required": false,
"in": "query",
"schema": {
"type": "number"
}
},
{
"name": "size",
"required": false,
"in": "query",
"schema": {
"type": "number"
}
},
{
"name": "withHidden",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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"
}
},
"/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": {
"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": {
"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": true,
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "createdAfter",
"required": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "createdBefore",
"required": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "isEncoded",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "isFavorite",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "isMotion",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "isNotInAlbum",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "isOffline",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "libraryId",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/Object"
}
},
{
"name": "minFileSize",
"required": true,
"in": "query",
"schema": {
"type": "integer"
}
},
{
"name": "personIds",
"required": true,
"in": "query",
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"name": "tagIds",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/Object"
}
},
{
"name": "takenAfter",
"required": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "takenBefore",
"required": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "trashedAfter",
"required": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "trashedBefore",
"required": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "type",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/AssetTypeEnum"
}
},
{
"name": "updatedAfter",
"required": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "updatedBefore",
"required": true,
"in": "query",
"schema": {
"format": "date-time",
"type": "string"
}
},
{
"name": "visibility",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/AssetVisibility"
}
},
{
"name": "withDeleted",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
},
{
"name": "withExif",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"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": {
"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": "withHidden",
"required": true,
"in": "query",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"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": [],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": "includeNull",
"required": true,
"in": "query",
"x-immich-history": [
{
"version": "v1.111.0",
"state": "Added"
},
{
"version": "v2",
"state": "Stable"
}
],
"x-immich-state": "Stable",
"schema": {
"type": "boolean"
}
},
{
"name": "type",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/SearchSuggestionType"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": true,
"in": "query",
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"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": {
"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": true,
"in": "query",
"schema": {
"example": "password",
"type": "string"
}
},
{
"name": "slug",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": {
"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": true,
"in": "query",
"schema": {
"format": "uuid",
"type": "string"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": true,
"in": "query",
"description": "Filter assets belonging to a specific album",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"name": "isFavorite",
"required": true,
"in": "query",
"description": "Filter by favorite status (true for favorites only, false for non-favorites only)",
"schema": {
"type": "boolean"
}
},
{
"name": "isTrashed",
"required": true,
"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": true,
"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": true,
"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": true,
"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": true,
"in": "query",
"description": "Filter assets by specific user ID",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"name": "visibility",
"required": true,
"in": "query",
"description": "Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)",
"schema": {
"$ref": "#/components/schemas/AssetVisibility"
}
},
{
"name": "withCoordinates",
"required": true,
"in": "query",
"description": "Include location data in the response",
"schema": {
"type": "boolean"
}
},
{
"name": "withPartners",
"required": true,
"in": "query",
"description": "Include assets shared by partners",
"schema": {
"type": "boolean"
}
},
{
"name": "withStacked",
"required": true,
"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": true,
"in": "query",
"description": "Filter assets belonging to a specific album",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"name": "isFavorite",
"required": true,
"in": "query",
"description": "Filter by favorite status (true for favorites only, false for non-favorites only)",
"schema": {
"type": "boolean"
}
},
{
"name": "isTrashed",
"required": true,
"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": true,
"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": true,
"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": true,
"in": "query",
"description": "Filter assets with a specific tag",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"name": "userId",
"required": true,
"in": "query",
"description": "Filter assets by specific user ID",
"schema": {
"format": "uuid",
"type": "string"
}
},
{
"name": "visibility",
"required": true,
"in": "query",
"description": "Filter by asset visibility status (ARCHIVE, TIMELINE, HIDDEN, LOCKED)",
"schema": {
"$ref": "#/components/schemas/AssetVisibility"
}
},
{
"name": "withCoordinates",
"required": true,
"in": "query",
"description": "Include location data in the response",
"schema": {
"type": "boolean"
}
},
{
"name": "withPartners",
"required": true,
"in": "query",
"description": "Include assets shared by partners",
"schema": {
"type": "boolean"
}
},
{
"name": "withStacked",
"required": true,
"in": "query",
"description": "Include stacked assets in the response. When true, only primary assets from stacks are returned.",
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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": {
"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"
}
}
},
"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": "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."
}
],
"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": {
"permissions": {
"items": {
"$ref": "#/components/schemas/Permission"
},
"type": "array"
}
},
"required": [
"permissions"
],
"type": "object"
},
"APIKeyUpdateDto": {
"properties": {
"permissions": {
"items": {
"$ref": "#/components/schemas/Permission"
},
"type": "array"
}
},
"required": [
"permissions"
],
"type": "object"
},
"ActivityCreateDto": {
"properties": {
"albumId": {
"format": "uuid",
"type": "string"
},
"assetId": {
"format": "uuid",
"type": "string"
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/ReactionType"
}
]
}
},
"required": [
"albumId",
"assetId",
"type"
],
"type": "object"
},
"AddUsersDto": {
"properties": {},
"type": "object"
},
"AdminOnboardingUpdateDto": {
"properties": {
"isOnboarded": {
"type": "boolean"
}
},
"required": [
"isOnboarded"
],
"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"
},
"AssetBulkDeleteDto": {
"properties": {
"force": {
"type": "boolean"
},
"ids": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
}
},
"required": [
"force",
"ids"
],
"type": "object"
},
"AssetBulkUpdateDto": {
"properties": {
"ids": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
},
"isFavorite": {
"type": "boolean"
},
"visibility": {
"allOf": [
{
"$ref": "#/components/schemas/AssetVisibility"
}
]
}
},
"required": [
"ids",
"isFavorite",
"visibility"
],
"type": "object"
},
"AssetBulkUploadCheckDto": {
"properties": {},
"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": [
"albums",
"favorite",
"sharedLinks",
"sidecar",
"sourceId",
"stack",
"targetId"
],
"type": "object"
},
"AssetDeltaSyncDto": {
"properties": {
"updatedAfter": {
"format": "date-time",
"type": "string"
},
"userIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
}
},
"required": [
"updatedAfter",
"userIds"
],
"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": {},
"type": "object"
},
"AssetFaceUpdateDto": {
"properties": {},
"type": "object"
},
"AssetFullSyncDto": {
"properties": {
"lastId": {
"format": "uuid",
"type": "string"
},
"limit": {
"type": "integer"
},
"updatedUntil": {
"format": "date-time",
"type": "string"
},
"userId": {
"format": "uuid",
"type": "string"
}
},
"required": [
"lastId",
"limit",
"updatedUntil",
"userId"
],
"type": "object"
},
"AssetIdsDto": {
"properties": {
"assetIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
}
},
"required": [
"assetIds"
],
"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"
},
"fileCreatedAt": {
"format": "date-time",
"type": "string"
},
"fileModifiedAt": {
"format": "date-time",
"type": "string"
},
"isFavorite": {
"type": "boolean"
},
"livePhotoVideoId": {
"format": "uuid",
"type": "string"
},
"sidecarData": {
"format": "binary",
"type": "string"
},
"visibility": {
"allOf": [
{
"$ref": "#/components/schemas/AssetVisibility"
}
]
}
},
"required": [
"assetData",
"fileCreatedAt",
"fileModifiedAt",
"isFavorite",
"livePhotoVideoId",
"visibility"
],
"type": "object"
},
"AssetMediaReplaceDto": {
"properties": {
"assetData": {
"format": "binary",
"type": "string"
},
"fileCreatedAt": {
"format": "date-time",
"type": "string"
},
"fileModifiedAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"assetData",
"fileCreatedAt",
"fileModifiedAt"
],
"type": "object"
},
"AssetMediaSize": {
"enum": [
"fullsize",
"preview",
"thumbnail"
],
"type": "string"
},
"AssetMetadataKey": {
"enum": [
"mobile-app"
],
"type": "string"
},
"AssetMetadataUpsertDto": {
"properties": {},
"type": "object"
},
"AssetOrder": {
"enum": [
"asc",
"desc"
],
"type": "string"
},
"AssetTypeEnum": {
"enum": [
"IMAGE",
"VIDEO",
"AUDIO",
"OTHER"
],
"type": "string"
},
"AssetVisibility": {
"enum": [
"archive",
"timeline",
"hidden",
"locked"
],
"type": "string"
},
"BulkIdsDto": {
"properties": {
"ids": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
}
},
"required": [
"ids"
],
"type": "object"
},
"ChangePasswordDto": {
"properties": {
"invalidateSessions": {
"default": false,
"type": "boolean"
},
"newPassword": {
"example": "password",
"type": "string"
},
"password": {
"example": "password",
"type": "string"
}
},
"required": [
"invalidateSessions",
"newPassword",
"password"
],
"type": "object"
},
"CheckExistingAssetsDto": {
"properties": {},
"type": "object"
},
"CreateAlbumDto": {
"properties": {
"albumName": {
"type": "string"
},
"assetIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
}
},
"required": [
"albumName",
"assetIds"
],
"type": "object"
},
"CreateLibraryDto": {
"properties": {
"ownerId": {
"format": "uuid",
"type": "string"
}
},
"required": [
"ownerId"
],
"type": "object"
},
"CreateProfileImageDto": {
"properties": {
"file": {
"format": "binary",
"type": "string"
}
},
"required": [
"file"
],
"type": "object"
},
"DownloadInfoDto": {
"properties": {
"albumId": {
"format": "uuid",
"type": "string"
},
"archiveSize": {
"type": "integer"
},
"assetIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
},
"userId": {
"format": "uuid",
"type": "string"
}
},
"required": [
"albumId",
"archiveSize",
"assetIds",
"userId"
],
"type": "object"
},
"FaceDto": {
"properties": {
"id": {
"format": "uuid",
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"JobCommand": {
"enum": [
"start",
"pause",
"resume",
"empty",
"clear-failed"
],
"type": "string"
},
"JobCommandDto": {
"properties": {
"command": {
"allOf": [
{
"$ref": "#/components/schemas/JobCommand"
}
]
},
"force": {
"type": "boolean"
}
},
"required": [
"command",
"force"
],
"type": "object"
},
"JobCreateDto": {
"properties": {
"name": {
"allOf": [
{
"$ref": "#/components/schemas/ManualJobName"
}
]
}
},
"required": [
"name"
],
"type": "object"
},
"JobName": {
"enum": [
"thumbnailGeneration",
"metadataExtraction",
"videoConversion",
"faceDetection",
"facialRecognition",
"smartSearch",
"duplicateDetection",
"backgroundTask",
"storageTemplateMigration",
"migration",
"search",
"sidecar",
"library",
"notifications",
"backupDatabase",
"ocr"
],
"type": "string"
},
"LicenseKeyDto": {
"properties": {
"activationKey": {
"type": "string"
},
"licenseKey": {
"pattern": "/IM(SV|CL)(-[\\dA-Za-z]{4}){8}/",
"type": "string"
}
},
"required": [
"activationKey",
"licenseKey"
],
"type": "object"
},
"LoginCredentialDto": {
"properties": {
"email": {
"example": "testuser@email.com",
"type": "string"
},
"password": {
"example": "password",
"type": "string"
}
},
"required": [
"email",
"password"
],
"type": "object"
},
"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"
},
"MemoryCreateDto": {
"properties": {
"assetIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
},
"isSaved": {
"type": "boolean"
},
"memoryAt": {
"format": "date-time",
"type": "string"
},
"seenAt": {
"format": "date-time",
"type": "string"
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/MemoryType"
}
]
}
},
"required": [
"assetIds",
"isSaved",
"memoryAt",
"seenAt",
"type"
],
"type": "object"
},
"MemorySearchOrder": {
"enum": [
"asc",
"desc",
"random"
],
"type": "string"
},
"MemoryType": {
"enum": [
"on_this_day"
],
"type": "string"
},
"MemoryUpdateDto": {
"properties": {
"isSaved": {
"type": "boolean"
},
"memoryAt": {
"format": "date-time",
"type": "string"
},
"seenAt": {
"format": "date-time",
"type": "string"
}
},
"required": [
"isSaved",
"memoryAt",
"seenAt"
],
"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"
},
"createdAfter": {
"format": "date-time",
"type": "string"
},
"createdBefore": {
"format": "date-time",
"type": "string"
},
"description": {
"type": "string"
},
"id": {
"format": "uuid",
"type": "string"
},
"isEncoded": {
"type": "boolean"
},
"isFavorite": {
"type": "boolean"
},
"isMotion": {
"type": "boolean"
},
"isNotInAlbum": {
"type": "boolean"
},
"isOffline": {
"type": "boolean"
},
"libraryId": {
"format": "uuid",
"type": "object"
},
"order": {
"allOf": [
{
"$ref": "#/components/schemas/AssetOrder"
}
],
"default": "desc"
},
"originalFileName": {
"type": "string"
},
"personIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
},
"tagIds": {
"format": "uuid",
"type": "object"
},
"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"
}
},
"required": [
"albumIds",
"createdAfter",
"createdBefore",
"description",
"id",
"isEncoded",
"isFavorite",
"isMotion",
"isNotInAlbum",
"isOffline",
"libraryId",
"order",
"originalFileName",
"personIds",
"tagIds",
"takenAfter",
"takenBefore",
"trashedAfter",
"trashedBefore",
"type",
"updatedAfter",
"updatedBefore",
"visibility",
"withDeleted",
"withExif",
"withPeople",
"withStacked"
],
"type": "object"
},
"NotificationCreateDto": {
"properties": {
"level": {
"allOf": [
{
"$ref": "#/components/schemas/NotificationLevel"
}
]
},
"readAt": {
"format": "date-time",
"type": "object"
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/NotificationType"
}
]
},
"userId": {
"format": "uuid",
"type": "string"
}
},
"required": [
"level",
"readAt",
"type",
"userId"
],
"type": "object"
},
"NotificationDeleteAllDto": {
"properties": {
"ids": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
}
},
"required": [
"ids"
],
"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",
"type": "object"
}
},
"required": [
"ids",
"readAt"
],
"type": "object"
},
"NotificationUpdateDto": {
"properties": {
"readAt": {
"format": "date-time",
"type": "object"
}
},
"required": [
"readAt"
],
"type": "object"
},
"OAuthCallbackDto": {
"properties": {
"url": {
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"OAuthConfigDto": {
"properties": {},
"type": "object"
},
"Object": {
"properties": {},
"type": "object"
},
"OnboardingDto": {
"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"
},
"PartnerUpdateDto": {
"properties": {},
"type": "object"
},
"PeopleUpdateDto": {
"properties": {},
"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",
"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",
"adminUser.create",
"adminUser.read",
"adminUser.update",
"adminUser.delete",
"adminSession.read",
"adminAuth.unlinkAll"
],
"type": "string"
},
"PersonCreateDto": {
"properties": {
"birthDate": {
"format": "date",
"type": "object"
},
"isFavorite": {
"type": "boolean"
},
"isHidden": {
"type": "boolean"
}
},
"required": [
"birthDate",
"isFavorite",
"isHidden"
],
"type": "object"
},
"PersonUpdateDto": {
"properties": {
"birthDate": {
"format": "date",
"type": "object"
},
"featureFaceAssetId": {
"format": "uuid",
"type": "string"
},
"isFavorite": {
"type": "boolean"
},
"isHidden": {
"type": "boolean"
}
},
"required": [
"birthDate",
"featureFaceAssetId",
"isFavorite",
"isHidden"
],
"type": "object"
},
"PinCodeChangeDto": {
"properties": {
"newPinCode": {
"example": "123456",
"type": "string"
},
"pinCode": {
"example": "123456",
"type": "string"
}
},
"required": [
"newPinCode",
"pinCode"
],
"type": "object"
},
"PinCodeResetDto": {
"properties": {
"pinCode": {
"example": "123456",
"type": "string"
}
},
"required": [
"pinCode"
],
"type": "object"
},
"PinCodeSetupDto": {
"properties": {
"pinCode": {
"example": "123456",
"type": "string"
}
},
"required": [
"pinCode"
],
"type": "object"
},
"RandomSearchDto": {
"properties": {
"albumIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
},
"createdAfter": {
"format": "date-time",
"type": "string"
},
"createdBefore": {
"format": "date-time",
"type": "string"
},
"isEncoded": {
"type": "boolean"
},
"isFavorite": {
"type": "boolean"
},
"isMotion": {
"type": "boolean"
},
"isNotInAlbum": {
"type": "boolean"
},
"isOffline": {
"type": "boolean"
},
"libraryId": {
"format": "uuid",
"type": "object"
},
"personIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
},
"tagIds": {
"format": "uuid",
"type": "object"
},
"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"
}
},
"required": [
"albumIds",
"createdAfter",
"createdBefore",
"isEncoded",
"isFavorite",
"isMotion",
"isNotInAlbum",
"isOffline",
"libraryId",
"personIds",
"tagIds",
"takenAfter",
"takenBefore",
"trashedAfter",
"trashedBefore",
"type",
"updatedAfter",
"updatedBefore",
"visibility",
"withDeleted",
"withExif",
"withPeople",
"withStacked"
],
"type": "object"
},
"ReactionLevel": {
"enum": [
"album",
"asset"
],
"type": "string"
},
"ReactionType": {
"enum": [
"comment",
"like"
],
"type": "string"
},
"SearchSuggestionType": {
"enum": [
"country",
"state",
"city",
"camera-make",
"camera-model",
"camera-lens-model"
],
"type": "string"
},
"SessionCreateDto": {
"properties": {},
"type": "object"
},
"SessionUnlockDto": {
"properties": {
"pinCode": {
"example": "123456",
"type": "string"
}
},
"required": [
"pinCode"
],
"type": "object"
},
"SessionUpdateDto": {
"properties": {
"isPendingSyncReset": {
"type": "boolean"
}
},
"required": [
"isPendingSyncReset"
],
"type": "object"
},
"SetMaintenanceModeDto": {
"properties": {
"maintenanceMode": {
"type": "boolean"
}
},
"required": [
"maintenanceMode"
],
"type": "object"
},
"SharedLinkCreateDto": {
"properties": {
"albumId": {
"format": "uuid",
"type": "string"
},
"allowDownload": {
"type": "boolean"
},
"allowUpload": {
"type": "boolean"
},
"assetIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
},
"expiresAt": {
"format": "date-time",
"type": "object"
},
"showMetadata": {
"type": "boolean"
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/SharedLinkType"
}
]
}
},
"required": [
"albumId",
"allowDownload",
"allowUpload",
"assetIds",
"expiresAt",
"showMetadata",
"type"
],
"type": "object"
},
"SharedLinkEditDto": {
"properties": {
"allowDownload": {
"type": "boolean"
},
"allowUpload": {
"type": "boolean"
},
"changeExpiryTime": {
"type": "boolean"
},
"showMetadata": {
"type": "boolean"
}
},
"required": [
"allowDownload",
"allowUpload",
"changeExpiryTime",
"showMetadata"
],
"type": "object"
},
"SharedLinkType": {
"enum": [
"ALBUM",
"INDIVIDUAL"
],
"type": "string"
},
"SignUpDto": {
"properties": {
"email": {
"example": "testuser@email.com",
"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"
},
"createdAfter": {
"format": "date-time",
"type": "string"
},
"createdBefore": {
"format": "date-time",
"type": "string"
},
"isEncoded": {
"type": "boolean"
},
"isFavorite": {
"type": "boolean"
},
"isMotion": {
"type": "boolean"
},
"isNotInAlbum": {
"type": "boolean"
},
"isOffline": {
"type": "boolean"
},
"libraryId": {
"format": "uuid",
"type": "object"
},
"personIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
},
"query": {
"type": "string"
},
"queryAssetId": {
"format": "uuid",
"type": "string"
},
"tagIds": {
"format": "uuid",
"type": "object"
},
"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"
}
},
"required": [
"albumIds",
"createdAfter",
"createdBefore",
"isEncoded",
"isFavorite",
"isMotion",
"isNotInAlbum",
"isOffline",
"libraryId",
"personIds",
"query",
"queryAssetId",
"tagIds",
"takenAfter",
"takenBefore",
"trashedAfter",
"trashedBefore",
"type",
"updatedAfter",
"updatedBefore",
"visibility",
"withDeleted",
"withExif"
],
"type": "object"
},
"StackCreateDto": {
"properties": {
"assetIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
}
},
"required": [
"assetIds"
],
"type": "object"
},
"StackUpdateDto": {
"properties": {
"primaryAssetId": {
"format": "uuid",
"type": "string"
}
},
"required": [
"primaryAssetId"
],
"type": "object"
},
"StatisticsSearchDto": {
"properties": {
"albumIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
},
"createdAfter": {
"format": "date-time",
"type": "string"
},
"createdBefore": {
"format": "date-time",
"type": "string"
},
"description": {
"type": "string"
},
"isEncoded": {
"type": "boolean"
},
"isFavorite": {
"type": "boolean"
},
"isMotion": {
"type": "boolean"
},
"isNotInAlbum": {
"type": "boolean"
},
"isOffline": {
"type": "boolean"
},
"libraryId": {
"format": "uuid",
"type": "object"
},
"personIds": {
"items": {
"format": "uuid",
"type": "string"
},
"type": "array"
},
"tagIds": {
"format": "uuid",
"type": "object"
},
"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"
}
]
}
},
"required": [
"albumIds",
"createdAfter",
"createdBefore",
"description",
"isEncoded",
"isFavorite",
"isMotion",
"isNotInAlbum",
"isOffline",
"libraryId",
"personIds",
"tagIds",
"takenAfter",
"takenBefore",
"trashedAfter",
"trashedBefore",
"type",
"updatedAfter",
"updatedBefore",
"visibility"
],
"type": "object"
},
"SyncAckDeleteDto": {
"properties": {
"types": {
"items": {
"$ref": "#/components/schemas/SyncEntityType"
},
"type": "array"
}
},
"required": [
"types"
],
"type": "object"
},
"SyncAckSetDto": {
"properties": {},
"type": "object"
},
"SyncAckV1": {
"properties": {},
"type": "object"
},
"SyncAlbumDeleteV1": {
"properties": {},
"type": "object"
},
"SyncAlbumToAssetDeleteV1": {
"properties": {},
"type": "object"
},
"SyncAlbumToAssetV1": {
"properties": {},
"type": "object"
},
"SyncAlbumUserDeleteV1": {
"properties": {},
"type": "object"
},
"SyncAlbumUserV1": {
"properties": {
"role": {
"allOf": [
{
"$ref": "#/components/schemas/AlbumUserRole"
}
]
}
},
"required": [
"role"
],
"type": "object"
},
"SyncAlbumV1": {
"properties": {
"order": {
"allOf": [
{
"$ref": "#/components/schemas/AssetOrder"
}
]
}
},
"required": [
"order"
],
"type": "object"
},
"SyncAssetDeleteV1": {
"properties": {},
"type": "object"
},
"SyncAssetExifV1": {
"properties": {
"exifImageHeight": {
"type": "integer"
},
"exifImageWidth": {
"type": "integer"
},
"fNumber": {
"format": "double",
"type": "number"
},
"fileSizeInByte": {
"type": "integer"
},
"focalLength": {
"format": "double",
"type": "number"
},
"fps": {
"format": "double",
"type": "number"
},
"iso": {
"type": "integer"
},
"latitude": {
"format": "double",
"type": "number"
},
"longitude": {
"format": "double",
"type": "number"
},
"rating": {
"type": "integer"
}
},
"required": [
"exifImageHeight",
"exifImageWidth",
"fNumber",
"fileSizeInByte",
"focalLength",
"fps",
"iso",
"latitude",
"longitude",
"rating"
],
"type": "object"
},
"SyncAssetFaceDeleteV1": {
"properties": {},
"type": "object"
},
"SyncAssetFaceV1": {
"properties": {
"boundingBoxX1": {
"type": "integer"
},
"boundingBoxX2": {
"type": "integer"
},
"boundingBoxY1": {
"type": "integer"
},
"boundingBoxY2": {
"type": "integer"
},
"imageHeight": {
"type": "integer"
},
"imageWidth": {
"type": "integer"
}
},
"required": [
"boundingBoxX1",
"boundingBoxX2",
"boundingBoxY1",
"boundingBoxY2",
"imageHeight",
"imageWidth"
],
"type": "object"
},
"SyncAssetMetadataDeleteV1": {
"properties": {
"key": {
"allOf": [
{
"$ref": "#/components/schemas/AssetMetadataKey"
}
]
}
},
"required": [
"key"
],
"type": "object"
},
"SyncAssetMetadataV1": {
"properties": {
"key": {
"allOf": [
{
"$ref": "#/components/schemas/AssetMetadataKey"
}
]
}
},
"required": [
"key"
],
"type": "object"
},
"SyncAssetV1": {
"properties": {
"type": {
"allOf": [
{
"$ref": "#/components/schemas/AssetTypeEnum"
}
]
},
"visibility": {
"allOf": [
{
"$ref": "#/components/schemas/AssetVisibility"
}
]
}
},
"required": [
"type",
"visibility"
],
"type": "object"
},
"SyncAuthUserV1": {
"properties": {
"avatarColor": {
"allOf": [
{
"$ref": "#/components/schemas/UserAvatarColor"
}
]
},
"quotaSizeInBytes": {
"type": "integer"
},
"quotaUsageInBytes": {
"type": "integer"
}
},
"required": [
"avatarColor",
"quotaSizeInBytes",
"quotaUsageInBytes"
],
"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": {},
"type": "object"
},
"SyncMemoryAssetV1": {
"properties": {},
"type": "object"
},
"SyncMemoryDeleteV1": {
"properties": {},
"type": "object"
},
"SyncMemoryV1": {
"properties": {
"type": {
"allOf": [
{
"$ref": "#/components/schemas/MemoryType"
}
]
}
},
"required": [
"type"
],
"type": "object"
},
"SyncPartnerDeleteV1": {
"properties": {},
"type": "object"
},
"SyncPartnerV1": {
"properties": {},
"type": "object"
},
"SyncPersonDeleteV1": {
"properties": {},
"type": "object"
},
"SyncPersonV1": {
"properties": {},
"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": {},
"type": "object"
},
"SyncStackV1": {
"properties": {},
"type": "object"
},
"SyncStreamDto": {
"properties": {
"reset": {
"type": "boolean"
},
"types": {
"items": {
"$ref": "#/components/schemas/SyncRequestType"
},
"type": "array"
}
},
"required": [
"reset",
"types"
],
"type": "object"
},
"SyncUserDeleteV1": {
"properties": {},
"type": "object"
},
"SyncUserMetadataDeleteV1": {
"properties": {
"key": {
"allOf": [
{
"$ref": "#/components/schemas/UserMetadataKey"
}
]
}
},
"required": [
"key"
],
"type": "object"
},
"SyncUserMetadataV1": {
"properties": {
"key": {
"allOf": [
{
"$ref": "#/components/schemas/UserMetadataKey"
}
]
}
},
"required": [
"key"
],
"type": "object"
},
"SyncUserV1": {
"properties": {
"avatarColor": {
"allOf": [
{
"$ref": "#/components/schemas/UserAvatarColor"
}
]
}
},
"required": [
"avatarColor"
],
"type": "object"
},
"SystemConfigDto": {
"properties": {},
"type": "object"
},
"SystemConfigSmtpDto": {
"properties": {
"enabled": {
"type": "boolean"
}
},
"required": [
"enabled"
],
"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"
},
"TagCreateDto": {
"properties": {
"parentId": {
"format": "uuid",
"type": "object"
}
},
"required": [
"parentId"
],
"type": "object"
},
"TagUpdateDto": {
"properties": {},
"type": "object"
},
"TagUpsertDto": {
"properties": {},
"type": "object"
},
"TemplateDto": {
"properties": {},
"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",
"stack",
"thumbhash",
"visibility"
],
"type": "object"
},
"UpdateAlbumDto": {
"properties": {
"albumThumbnailAssetId": {
"format": "uuid",
"type": "string"
},
"isActivityEnabled": {
"type": "boolean"
},
"order": {
"allOf": [
{
"$ref": "#/components/schemas/AssetOrder"
}
]
}
},
"required": [
"albumThumbnailAssetId",
"isActivityEnabled",
"order"
],
"type": "object"
},
"UpdateAlbumUserDto": {
"properties": {
"role": {
"allOf": [
{
"$ref": "#/components/schemas/AlbumUserRole"
}
]
}
},
"required": [
"role"
],
"type": "object"
},
"UpdateAssetDto": {
"properties": {
"isFavorite": {
"type": "boolean"
},
"livePhotoVideoId": {
"format": "uuid",
"type": "object"
},
"visibility": {
"allOf": [
{
"$ref": "#/components/schemas/AssetVisibility"
}
]
}
},
"required": [
"isFavorite",
"livePhotoVideoId",
"visibility"
],
"type": "object"
},
"UpdateLibraryDto": {
"properties": {},
"type": "object"
},
"UserAdminCreateDto": {
"properties": {
"avatarColor": {
"allOf": [
{
"$ref": "#/components/schemas/UserAvatarColor"
}
]
},
"isAdmin": {
"type": "boolean"
},
"notify": {
"type": "boolean"
},
"quotaSizeInBytes": {
"format": "int64",
"type": "integer"
},
"shouldChangePassword": {
"type": "boolean"
}
},
"required": [
"avatarColor",
"isAdmin",
"notify",
"quotaSizeInBytes",
"shouldChangePassword"
],
"type": "object"
},
"UserAdminDeleteDto": {
"properties": {
"force": {
"type": "boolean"
}
},
"required": [
"force"
],
"type": "object"
},
"UserAdminUpdateDto": {
"properties": {
"avatarColor": {
"allOf": [
{
"$ref": "#/components/schemas/UserAvatarColor"
}
]
},
"isAdmin": {
"type": "boolean"
},
"pinCode": {
"example": "123456",
"type": "object"
},
"quotaSizeInBytes": {
"format": "int64",
"type": "integer"
},
"shouldChangePassword": {
"type": "boolean"
}
},
"required": [
"avatarColor",
"isAdmin",
"pinCode",
"quotaSizeInBytes",
"shouldChangePassword"
],
"type": "object"
},
"UserAvatarColor": {
"enum": [
"primary",
"pink",
"red",
"yellow",
"blue",
"green",
"purple",
"orange",
"gray",
"amber"
],
"type": "string"
},
"UserMetadataKey": {
"enum": [
"preferences",
"license",
"onboarding"
],
"type": "string"
},
"UserPreferencesUpdateDto": {
"properties": {},
"type": "object"
},
"UserUpdateMeDto": {
"properties": {
"avatarColor": {
"allOf": [
{
"$ref": "#/components/schemas/UserAvatarColor"
}
]
}
},
"required": [
"avatarColor"
],
"type": "object"
},
"ValidateLibraryDto": {
"properties": {},
"type": "object"
}
}
}
}