Kenjo Documents API

Return a paginated list of company documents stored in Kenjo. The document management surface for pulling HR document metadata out of the platform.

OpenAPI Specification

kenjo-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Kenjo API
  description: >-
    The Kenjo API is a documented REST API for the Kenjo all-in-one HR (HRIS)
    platform. It exposes employees, attendance and time tracking, time off /
    absences, company documents, compensation and payroll data, organizational
    structure, and recruiting over HTTPS. Access is gated: the API is available
    on Kenjo's top-tier Connect plan and must first be activated for your account
    (sandbox or production) by the Kenjo Customer Success team. You then generate
    an API key in the Kenjo web app (Settings > Integrations > API), exchange it
    for a bearer token via POST /auth/login, and send that token in the
    Authorization header on every request. A missing, invalid, or expired token
    returns 401 UNAUTHORIZED.

    Paths and HTTP methods in this document reflect Kenjo's published API
    reference (kenjo.readme.io). Request and response bodies are modeled from the
    documented endpoint descriptions where full field-level schemas are not
    published; treat the schema components as representative rather than
    exhaustive, and confirm exact fields against the live reference.
  version: '1.0'
  contact:
    name: Kenjo Support
    url: https://www.kenjo.io/legal/api
    email: support@kenjo.io
servers:
  - url: https://api.kenjo.io/api/v1
    description: Production
  - url: https://sandbox-api.kenjo.io/api/v1
    description: Sandbox (test environment)
security:
  - bearerAuth: []
tags:
  - name: Authentication
    description: Exchange an API key for a bearer token and invalidate tokens.
  - name: Employees
    description: Employee records and their profile sections.
  - name: Attendance
    description: Attendance and time-tracking entries.
  - name: Time Off
    description: Absences, time-off requests, types, statuses, and balances.
  - name: Documents
    description: Company documents.
  - name: Compensation
    description: Contracts, salaries, and additional payments.
  - name: Organization
    description: Companies, offices, departments, teams, areas, and calendars.
  - name: Recruiting
    description: Positions, candidates, and applications.
paths:
  /auth/login:
    post:
      operationId: login
      tags:
        - Authentication
      summary: Log in an API token
      description: Exchanges a Kenjo API key for a bearer token used to authorize subsequent requests.
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoginRequest'
      responses:
        '200':
          description: A bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoginResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /auth/logout:
    post:
      operationId: logout
      tags:
        - Authentication
      summary: Log out an API token
      description: Invalidates the current bearer token.
      responses:
        '200':
          description: Token invalidated.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /user-accounts:
    get:
      operationId: listUserAccounts
      tags:
        - Employees
      summary: List user accounts
      description: Returns a list of user accounts in the organization.
      responses:
        '200':
          description: A list of user accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserAccountList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees:
    get:
      operationId: listEmployees
      tags:
        - Employees
      summary: List employees
      description: Returns a paginated list of employees.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: A list of employees.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createEmployee
      tags:
        - Employees
      summary: Create a new employee
      description: Creates a new employee. New employees are created deactivated by default and can be activated with the activate endpoint.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmployeeInput'
      responses:
        '201':
          description: The created employee.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Employee'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}:
    get:
      operationId: getEmployee
      tags:
        - Employees
      summary: Get an employee
      description: Returns all sections for a given employee id.
      parameters:
        - $ref: '#/components/parameters/EmployeeId'
      responses:
        '200':
          description: The employee with all sections.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Employee'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /employees/accounts:
    get:
      operationId: listEmployeeAccounts
      tags:
        - Employees
      summary: List employee accounts
      description: Returns a list of employee accounts containing email, external id, language, and activation status.
      responses:
        '200':
          description: A list of employee accounts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeAccountList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/personals:
    get:
      operationId: listEmployeePersonals
      tags:
        - Employees
      summary: List employee personal information
      description: Returns personal information for employees.
      responses:
        '200':
          description: A list of personal information sections.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SectionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/works:
    get:
      operationId: listEmployeeWorks
      tags:
        - Employees
      summary: List employee work information
      description: Returns work information for employees.
      responses:
        '200':
          description: A list of work information sections.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SectionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/work-schedules:
    get:
      operationId: listEmployeeWorkSchedules
      tags:
        - Employees
      summary: List employee work schedules
      description: Returns work schedules for employees.
      responses:
        '200':
          description: A list of work schedules.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SectionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/addresses:
    get:
      operationId: listEmployeeAddresses
      tags:
        - Employees
      summary: List employee addresses
      description: Returns addresses for employees.
      responses:
        '200':
          description: A list of address sections.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SectionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/financials:
    get:
      operationId: listEmployeeFinancials
      tags:
        - Employees
      summary: List employee financial data
      description: Returns financial data sections for employees.
      responses:
        '200':
          description: A list of financial sections.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SectionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/homes:
    get:
      operationId: listEmployeeHomes
      tags:
        - Employees
      summary: List employee home information
      description: Returns home information sections for employees.
      responses:
        '200':
          description: A list of home sections.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SectionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/emergencies:
    get:
      operationId: listEmployeeEmergencies
      tags:
        - Employees
      summary: List employee emergency contacts
      description: Returns emergency contact sections for employees.
      responses:
        '200':
          description: A list of emergency contact sections.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SectionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}/accounts:
    put:
      operationId: updateEmployeeAccount
      tags:
        - Employees
      summary: Update employee account section
      parameters:
        - $ref: '#/components/parameters/EmployeeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Section'
      responses:
        '200':
          description: The updated section.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}/personals:
    put:
      operationId: updateEmployeePersonal
      tags:
        - Employees
      summary: Update employee personal section
      parameters:
        - $ref: '#/components/parameters/EmployeeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Section'
      responses:
        '200':
          description: The updated section.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}/works:
    put:
      operationId: updateEmployeeWork
      tags:
        - Employees
      summary: Update employee work section
      parameters:
        - $ref: '#/components/parameters/EmployeeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Section'
      responses:
        '200':
          description: The updated section.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}/work-schedules:
    put:
      operationId: updateEmployeeWorkSchedule
      tags:
        - Employees
      summary: Update employee work schedule section
      parameters:
        - $ref: '#/components/parameters/EmployeeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Section'
      responses:
        '200':
          description: The updated section.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}/addresses:
    put:
      operationId: updateEmployeeAddress
      tags:
        - Employees
      summary: Update employee address section
      parameters:
        - $ref: '#/components/parameters/EmployeeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Section'
      responses:
        '200':
          description: The updated section.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}/financials:
    put:
      operationId: updateEmployeeFinancial
      tags:
        - Employees
      summary: Update employee financial section
      parameters:
        - $ref: '#/components/parameters/EmployeeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Section'
      responses:
        '200':
          description: The updated section.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}/homes:
    put:
      operationId: updateEmployeeHome
      tags:
        - Employees
      summary: Update employee home section
      parameters:
        - $ref: '#/components/parameters/EmployeeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Section'
      responses:
        '200':
          description: The updated section.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}/emergencies:
    put:
      operationId: updateEmployeeEmergency
      tags:
        - Employees
      summary: Update employee emergency section
      parameters:
        - $ref: '#/components/parameters/EmployeeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Section'
      responses:
        '200':
          description: The updated section.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}/activate:
    put:
      operationId: activateEmployee
      tags:
        - Employees
      summary: Activate an employee
      parameters:
        - $ref: '#/components/parameters/EmployeeId'
      responses:
        '200':
          description: The employee was activated.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /employees/{employeeId}/deactivate:
    put:
      operationId: deactivateEmployee
      tags:
        - Employees
      summary: Deactivate an employee
      parameters:
        - $ref: '#/components/parameters/EmployeeId'
      responses:
        '200':
          description: The employee was deactivated.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /attendances:
    get:
      operationId: listAttendances
      tags:
        - Attendance
      summary: List attendances
      description: Returns a list of attendance entries.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: A list of attendance entries.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AttendanceList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createAttendance
      tags:
        - Attendance
      summary: Create an attendance
      description: Creates a new attendance entry, identifying the employee by userId, email, or externalId.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttendanceInput'
      responses:
        '201':
          description: The created attendance entry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attendance'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /attendances/{attendanceId}:
    get:
      operationId: getAttendance
      tags:
        - Attendance
      summary: Get an attendance
      parameters:
        - $ref: '#/components/parameters/AttendanceId'
      responses:
        '200':
          description: The attendance entry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attendance'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateAttendance
      tags:
        - Attendance
      summary: Update an attendance
      parameters:
        - $ref: '#/components/parameters/AttendanceId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttendanceInput'
      responses:
        '200':
          description: The updated attendance entry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attendance'
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteAttendance
      tags:
        - Attendance
      summary: Delete an attendance
      parameters:
        - $ref: '#/components/parameters/AttendanceId'
      responses:
        '204':
          description: The attendance entry was deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /attendances/track-time:
    post:
      operationId: trackTime
      tags:
        - Attendance
      summary: Track an attendance entry
      description: Tracks a clock-in / clock-out by sending an employee identifier and a dateTime.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrackTimeInput'
      responses:
        '200':
          description: The tracked attendance entry.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Attendance'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /attendances/categories:
    get:
      operationId: listAttendanceCategories
      tags:
        - Attendance
      summary: List attendance categories
      responses:
        '200':
          description: A list of attendance categories.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /attendances/expected-time:
    get:
      operationId: listExpectedTime
      tags:
        - Attendance
      summary: List expected time per user
      description: Returns a paginated list of expected working time by user for a given date range.
      parameters:
        - name: from
          in: query
          schema:
            type: string
            format: date
        - name: to
          in: query
          schema:
            type: string
            format: date
      responses:
        '200':
          description: A list of expected times.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /time-off-requests:
    get:
      operationId: listTimeOffRequests
      tags:
        - Time Off
      summary: List time-off requests
      responses:
        '200':
          description: A list of time-off requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeOffRequestList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createTimeOffRequest
      tags:
        - Time Off
      summary: Create a time-off request
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TimeOffRequestInput'
      responses:
        '201':
          description: The created time-off request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeOffRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /time-off-requests/processed:
    post:
      operationId: createProcessedTimeOffRequest
      tags:
        - Time Off
      summary: Create a pre-approved time-off request
      description: Creates a time-off request that is already approved (processed).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TimeOffRequestInput'
      responses:
        '201':
          description: The created pre-approved time-off request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeOffRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /time-off-types:
    get:
      operationId: listTimeOffTypes
      tags:
        - Time Off
      summary: List time-off types
      responses:
        '200':
          description: A list of time-off types.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /time-off-status:
    get:
      operationId: listTimeOffStatus
      tags:
        - Time Off
      summary: List time-off statuses
      responses:
        '200':
          description: A list of time-off statuses.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /time-off/set-balance/{timeOffTypeId}/{employeeId}:
    put:
      operationId: setTimeOffBalance
      tags:
        - Time Off
      summary: Set a time-off balance
      description: Sets an employee's balance for a given time-off type.
      parameters:
        - name: timeOffTypeId
          in: path
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/EmployeeId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BalanceInput'
      responses:
        '200':
          description: The balance was set.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /documents/company:
    get:
      operationId: listCompanyDocuments
      tags:
        - Documents
      summary: List company documents
      description: Returns a paginated list of company documents.
      parameters:
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          description: A list of company documents.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /compensation/contracts:
    get:
      operationId: listContracts
      tags:
        - Compensation
      summary: List contracts
      responses:
        '200':
          description: A list of contracts.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /compensation/contract-types:
    get:
      operationId: listContractTypes
      tags:
        - Compensation
      summary: List contract types
      responses:
        '200':
          description: A list of contract types.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /compensation/salaries:
    get:
      operationId: listSalaries
      tags:
        - Compensation
      summary: List salaries
      responses:
        '200':
          description: A list of salaries.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /compensation/additional-payments:
    get:
      operationId: listAdditionalPayments
      tags:
        - Compensation
      summary: List additional payments
      responses:
        '200':
          description: A list of additional payments.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /compensation/additional-payment-types:
    get:
      operationId: listAdditionalPaymentTypes
      tags:
        - Compensation
      summary: List additional payment types
      responses:
        '200':
          description: A list of additional payment types.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /companies:
    get:
      operationId: listCompanies
      tags:
        - Organization
      summary: List companies
      responses:
        '200':
          description: A list of companies.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /offices:
    get:
      operationId: listOffices
      tags:
        - Organization
      summary: List offices
      responses:
        '200':
          description: A list of offices.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createOffice
      tags:
        - Organization
      summary: Create an office
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NamedResourceInput'
      responses:
        '201':
          description: The created office.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /offices/{id}:
    get:
      operationId: getOffice
      tags:
        - Organization
      summary: Get an office
      parameters:
        - $ref: '#/components/parameters/Id'
      responses:
        '200':
          description: The office.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateOffice
      tags:
        - Organization
      summary: Update an office
      parameters:
        - $ref: '#/components/parameters/Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NamedResourceInput'
      responses:
        '200':
          description: The updated office.
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteOffice
      tags:
        - Organization
      summary: Delete an office
      parameters:
        - $ref: '#/components/parameters/Id'
      responses:
        '204':
          description: The office was deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /departments:
    get:
      operationId: listDepartments
      tags:
        - Organization
      summary: List departments
      responses:
        '200':
          description: A list of departments.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createDepartment
      tags:
        - Organization
      summary: Create a department
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NamedResourceInput'
      responses:
        '201':
          description: The created department.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /departments/{id}:
    get:
      operationId: getDepartment
      tags:
        - Organization
      summary: Get a department
      parameters:
        - $ref: '#/components/parameters/Id'
      responses:
        '200':
          description: The department.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateDepartment
      tags:
        - Organization
      summary: Update a department
      parameters:
        - $ref: '#/components/parameters/Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NamedResourceInput'
      responses:
        '200':
          description: The updated department.
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteDepartment
      tags:
        - Organization
      summary: Delete a department
      parameters:
        - $ref: '#/components/parameters/Id'
      responses:
        '204':
          description: The department was deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /teams:
    get:
      operationId: listTeams
      tags:
        - Organization
      summary: List teams
      responses:
        '200':
          description: A list of teams.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createTeam
      tags:
        - Organization
      summary: Create a team
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NamedResourceInput'
      responses:
        '201':
          description: The created team.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /teams/{id}:
    get:
      operationId: getTeam
      tags:
        - Organization
      summary: Get a team
      parameters:
        - $ref: '#/components/parameters/Id'
      responses:
        '200':
          description: The team.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateTeam
      tags:
        - Organization
      summary: Update a team
      parameters:
        - $ref: '#/components/parameters/Id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NamedResourceInput'
      responses:
        '200':
          description: The updated team.
        '401':
          $ref: '#/components/responses/Unauthorized'
    delete:
      operationId: deleteTeam
      tags:
        - Organization
      summary: Delete a team
      parameters:
        - $ref: '#/components/parameters/Id'
      responses:
        '204':
          description: The team was deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /areas:
    get:
      operationId: listAreas
      tags:
        - Organization
      summary: List areas
      responses:
        '200':
          description: A list of areas.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createArea
      tags:
        - Organization
      summary: Create an area
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NamedResourceInput'
      responses:
        '201':
          description: The created area.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /areas/{id}:
    get:
      operationId: getArea
      tags:
        - Organization
      summary: Get an area
      parameters:
        - $ref: '#/components/parameters/Id'
      responses:
        '200':
  

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kenjo/refs/heads/main/openapi/kenjo-openapi.yml