diff --git a/api.json b/api.json
index 9c88ea6..b37a4f9 100644
--- a/api.json
+++ b/api.json
@@ -5,6 +5,44 @@
     "version": "1.0.0"
   },
   "paths": {
+    "/users/{userId}": {
+      "get": {
+        "tags": [
+          "user"
+        ],
+        "summary": "Fetch user info.",
+        "operationId": "get_user_by_id",
+        "parameters": [
+          {
+            "in": "path",
+            "name": "userId",
+            "required": true,
+            "schema": {
+              "type": "string",
+              "format": "uuid"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "description": "successful operation",
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/User"
+                }
+              }
+            }
+          },
+          "4XX": {
+            "$ref": "#/components/responses/Error"
+          },
+          "5XX": {
+            "$ref": "#/components/responses/Error"
+          }
+        }
+      }
+    },
     "/version": {
       "get": {
         "summary": "Fetch version info.",
@@ -51,6 +89,23 @@
           "request_id"
         ]
       },
+      "User": {
+        "description": "User",
+        "type": "object",
+        "properties": {
+          "id": {
+            "type": "string",
+            "format": "uuid"
+          },
+          "name": {
+            "type": "string"
+          }
+        },
+        "required": [
+          "id",
+          "name"
+        ]
+      },
       "VersionInfo": {
         "description": "Version and build information",
         "type": "object",
@@ -80,5 +135,10 @@
         }
       }
     }
-  }
+  },
+  "tags": [
+    {
+      "name": "user"
+    }
+  ]
 }
diff --git a/flake.nix b/flake.nix
index 3858800..7f35a94 100644
--- a/flake.nix
+++ b/flake.nix
@@ -49,6 +49,7 @@
           root = ./.;
           fileset = pkgs.lib.fileset.unions [
             ./api.json
+            ./controller/.sqlx
             (craneLib.fileset.commonCargoSources ./.)
           ];
         };
@@ -116,6 +117,7 @@
         formatter =
           (treefmt-nix.lib.evalModule pkgs {
             projectRootFile = "flake.nix";
+
             programs = {
               nixfmt.enable = true;
               nixfmt.package = pkgs.nixfmt-rfc-style;
diff --git a/justfile b/justfile
index e081281..ce609e7 100644
--- a/justfile
+++ b/justfile
@@ -50,6 +50,10 @@ machete:
 open-api:
   cargo xtask open-api
 
+# Update OpenAPI spec
+open-api-update:
+  cargo xtask open-api > api.json
+
 # Run all tests
 check: check-nix