Skip to content

Users API

The user list, used for things like picking interviewers. See API Conventions for shared rules.

Base path: /api/v1/users

Method Path Summary Auth Role
GET / List users Required -

List Users

Returns the user list used for interviewer selection and similar purposes.

URI

GET /api/v1/users

Authentication

Requires Authorization: Bearer <access_token>. No role restriction.

Query Parameters

Field Type Required Default Rules Description
page integer - 1 Positive integer Page number
limit integer - 20 1โ€“100 Items per page
sort string - - - Format createdAt:desc
search string - - - Partial match on name or email

Example Request

GET /api/v1/users?search=yamada&limit=50

Response (200 OK)

A paginated response.

{
  "success": true,
  "status": "success",
  "statusCode": 200,
  "timestamp": "2026-01-15T10:00:00.000Z",
  "data": [
    {
      "id": 1,
      "email": "user@example.com",
      "name": "John Doe",
      "picture": "https://example.com/avatar.jpg",
      "role": "member",
      "createdAt": "2026-01-15T09:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "totalCount": 12,
    "totalPages": 1,
    "hasNext": false,
    "hasPrevious": false
  },
  "path": "/api/v1/users",
  "method": "GET"
}
Field Type Description
id integer User ID
email string Email address
name string Display name
picture string | null Profile image URL
role enum admin / member / viewer
createdAt string(date-time) Registration timestamp

Errors

Description Status code Status name
Token missing or invalid 401 Unauthorized

Notes

  • There is no API to create, update, or delete users. Users are registered automatically on their first Google OAuth login, and role changes are currently made directly in the DB
  • To add an interviewer, pass an id obtained here to the Interviewers API