JupyterHub Users API

User accounts and their servers.

OpenAPI Specification

jupyter-hub-users-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: JupyterHub REST Groups Users API
  description: REST API for managing JupyterHub users, groups, services, and single-user notebook servers. Authentication is performed via API tokens.
  version: '5.0'
  contact:
    name: Project Jupyter
    url: https://jupyter.org
  license:
    name: BSD-3-Clause
    url: https://github.com/jupyterhub/jupyterhub/blob/main/COPYING.md
servers:
- url: https://your-jupyterhub-domain.com/hub/api
  description: JupyterHub deployment
security:
- tokenAuth: []
tags:
- name: Users
  description: User accounts and their servers.
paths:
  /users:
    get:
      tags:
      - Users
      summary: List users
      operationId: listUsers
      parameters:
      - in: query
        name: state
        schema:
          type: string
          enum:
          - inactive
          - active
          - ready
      - in: query
        name: offset
        schema:
          type: integer
      - in: query
        name: limit
        schema:
          type: integer
      responses:
        '200':
          description: A list of users.
    post:
      tags:
      - Users
      summary: Create multiple users
      operationId: createUsers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                usernames:
                  type: array
                  items:
                    type: string
                admin:
                  type: boolean
      responses:
        '201':
          description: Users created.
  /users/{name}:
    parameters:
    - in: path
      name: name
      required: true
      schema:
        type: string
    get:
      tags:
      - Users
      summary: Get a user
      operationId: getUser
      responses:
        '200':
          description: User details.
    post:
      tags:
      - Users
      summary: Create a single user
      operationId: createUser
      responses:
        '201':
          description: User created.
    delete:
      tags:
      - Users
      summary: Delete a user
      operationId: deleteUser
      responses:
        '204':
          description: User deleted.
  /users/{name}/server:
    parameters:
    - in: path
      name: name
      required: true
      schema:
        type: string
    post:
      tags:
      - Users
      summary: Start a user's default server
      operationId: startUserServer
      responses:
        '201':
          description: Server started.
        '202':
          description: Server is starting (async).
    delete:
      tags:
      - Users
      summary: Stop a user's default server
      operationId: stopUserServer
      responses:
        '204':
          description: Server stopped.
  /users/{name}/servers/{server_name}:
    parameters:
    - in: path
      name: name
      required: true
      schema:
        type: string
    - in: path
      name: server_name
      required: true
      schema:
        type: string
    post:
      tags:
      - Users
      summary: Start a named server for a user
      operationId: startNamedServer
      responses:
        '201':
          description: Named server started.
    delete:
      tags:
      - Users
      summary: Stop a named server for a user
      operationId: stopNamedServer
      responses:
        '204':
          description: Named server stopped.
components:
  securitySchemes:
    tokenAuth:
      type: http
      scheme: bearer
      bearerFormat: JupyterHub-Token