id(String, UUID): Primary Keyemail(String): Unique, user's emailname(String): User's full namehashedPassword(String): Bcrypt hashed passwordmonitors(Monitor[]): Relation to monitorscreatedAt(DateTime): Default nowupdatedAt(DateTime): Default now
id(String, UUID): Primary Keyurl(String): Website URL to monitoruser(User?): Relation to the owneruserId(String?): Foreign Key toUserresults(CheckResult[]): Relation to check resultscreatedAt(DateTime): Default nowupdatedAt(DateTime): Default now
id(String, UUID): Primary Keymonitor(Monitor): Relation to the monitormonitorId(String): Foreign Key toMonitorstatus(Enum:Up,Down)Location(Enum:USA,INDIA)responseTimeMs(Int?): Latency in millisecondscheckedAt(DateTime): Default now
Base URL: http://localhost:3000
Creates a new user account.
- Body:
email(string, required)name(string, required)password(string, required)
- Response (201):
{ success: true, message: "...", data: { user: { id, email, name }, token } }
Authenticates a user and returns a JWT.
- Body:
email(string, required)password(string, required)
- Response (200):
{ success: true, message: "...", data: { user: { id, email, name }, token } }
Clears the authentication cookie.
- Response (200):
{ success: true, message: "Logout successful" }
Returns current user's profile.
- Headers:
Cookie: token=<jwt>orAuthorization: Bearer <jwt> - Response (200):
{ success: true, data: { user: { id, name, email, createdAt } } }
Adds a new website to monitor.
- Headers: Auth required
- Body:
url(string, required)
- Response (200):
{ success: true, data: { monitor: { ... } } }
Lists all monitors for the authenticated user.
- Headers: Auth required
- Response (200):
{ success: true, message: "Fetched all monitors", data: { result: [...] } }
Gets details of a specific monitor.
- Headers: Auth required
- Response (200):
{ success: true, data: { result: { ... } } }
Deletes a specific monitor.
- Headers: Auth required
- Response (200):
{ success: true, message: "monitor deleted successfully" }
Deletes ALL monitors for the user.
- Headers: Auth required
- Response (200):
{ success: true, message: "all monitors deleted successfully" }
Fetches check results for a specific monitor.
- Headers: Auth required
- Response (200):
{ success: true, data: { results: [...], count } }
Gets the most recent check result.
- Headers: Auth required
- Response (200):
{ success: true, data: { result: { ... } } }
Cleans up old check results.
- Headers: Auth required
- Query Params:
days(number, default 90) - Response (200):
{ success: true, message: "Deleted X old results" }
Another way to fetch user monitors (Legacy/Redundant).
- Headers: Auth required
- Response (200):
{ success: true, data: { monitor: [...] } }