Skip to main content

OpenAPI

Immich uses OpenAPI to describe its REST API, and generates the TypeScript and Dart client SDKs from that description. The published API documentation is at api.immich.app; see Immich API for the API itself.

How the specification is produced

The specification is written to immich-openapi-specs.json, which is autogenerated by the server when running in development mode. Do not edit it by hand.

Its contents are controlled by @nestjs/swagger decorators used or referenced by controller endpoints, so changes to the API surface are made there.

Regenerating the client SDKs

When you add a new endpoint or modify an existing one, run the server in development mode and then run:

mise open-api

The generated SDKs are written to:

SDKLocation
TypeScriptpackages/sdk/client
Dartmobile/generated/openapi

Generation uses openapi-generator-cli, which can be installed by following its installation instructions.