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:
| SDK | Location |
|---|---|
| TypeScript | packages/sdk/client |
| Dart | mobile/generated/openapi |
Generation uses openapi-generator-cli, which can be installed by following its installation instructions.