oclok.app API Docs

Endpoints

GET  /api/v1/user/{id}/status
GET  /api/v1/user/{id}/schedule
POST /api/auth/signup
POST /api/auth/login
  

GET /api/v1/user/{id}/status

Status is computed in the user's own timezone, not the server's.

{
  "brand": "oclok.app",
  "userId": "user_1",
  "user": "D",
  "timezone": "America/Los_Angeles",
  "status": "offline",
  "nextOnline": "2026-08-21T17:00:00+00:00",
  "minutesUntilOnline": 1513
}
  

Returns 404 with {"error":"User not found"} for an unknown id.

GET /api/v1/user/{id}/schedule

{
  "brand": "oclok.app",
  "userId": "user_1",
  "weeklySchedule": [
    { "day": "Monday", "dayIndex": 1, "start": "09:00", "end": "12:00" }
  ]
}
  

POST /api/auth/signup

{ "username": "D", "email": "d@example.com",
  "password": "at-least-6-chars", "timezone": "America/Los_Angeles" }
  

201 on success, 409 if the email is taken.

POST /api/auth/login

{ "email": "d@example.com", "password": "secret" }
  

200 on success, 401 on bad credentials.

Dashboard • Home