Health Checks
The currently implemented health endpoints for the API and AI services, how to verify them locally, and where repository documentation diverges from code.
Current health checks at a glance
Two services currently expose health endpoints: the NestJS API and the FastAPI AI service. Both implement GET /health, return small JSON payloads, and support direct local verification with curl.
Current endpoints
Use these paths when you verify the services based on the current code and documented local ports:
- NestJS API —
GET http://localhost:3001/health - FastAPI AI service —
GET http://localhost:8001/health
Implemented routes in code
@Controller("health")
export class HealthController {
@Get()
getHealth() {
return { status: "ok", service: "api" };
}
}
@app.get("/health")
def health():
return {"status": "ok"}
Exact response payloads
These are the current response bodies implemented by code.
NestJS API response
{"status":"ok","service":"api"}
Returns ok.
Returns api.
FastAPI AI service response
{"status":"ok"}
Returns ok.
Verify each endpoint locally
Run each request directly against the local service port. A successful check returns the exact JSON shown in the previous section.
Check the NestJS API health endpoint
Use the implemented local URL:
curl http://localhost:3001/health
{"status":"ok","service":"api"}
Success looks like a 200 response with a body that includes both status and service.
Check the FastAPI AI service health endpoint
Use the documented local port and the implemented /health path:
curl http://localhost:8001/health
{"status":"ok"}
Success looks like a 200 response with a body containing only status.
README and code currently disagree
The repository README references a different NestJS API path than the one implemented in code.
README examples reference http://localhost:3001/api/health and GET /api/health. The NestJS code currently implements GET /health, and the reviewed main.ts does not define a global api prefix.
Current discrepancy
- README documented endpoint —
/api/health - Implemented Nest endpoint —
/health
Grounding for the mismatch
| NestJS API | [http://localhost:3001/api/health](http://localhost:3001/api/health) |
### NestJS
GET /api/health
@Controller("health")
export class HealthController {
@Get()
getHealth() {
return { status: "ok", service: "api" };
}
}
// main.ts
await app.listen(3001);
What these checks validate
These endpoints currently validate one narrow thing: each service exposes a reachable HTTP route that returns a static success payload.
The current health checks do not demonstrate dependency readiness, database connectivity, model availability, queue health, external API reachability, or any broader application readiness state. Keep their meaning limited to the exact implemented responses.
Service-readiness notes
- NestJS API — confirms that the API process is serving
GET /healthand returns{"status":"ok","service":"api"}. - FastAPI AI service — confirms that the AI service process is serving
GET /healthand returns{"status":"ok"}. - Neither endpoint currently exposes deeper health semantics beyond that response.