Ninox Modules API

The Modules API from Ninox — 2 operation(s) for modules.

OpenAPI Specification

ninox-modules-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Ninox Public Fields Modules API
  description: 'The Ninox Public API provides programmatic access to workspace resources, enabling seamless integration for managing modules, tables, fields and records.


    ### Authentication

    All requests require a Workspace API Key passed in the HTTP header as follows:

    **<code>Authorization: Bearer {apiKey}</code>**


    API keys can be generated and managed within the **Workspace Integration** settings in the Ninox app.'
  version: 1.0.0
  contact: {}
servers: []
tags:
- name: Modules
paths:
  /api/v1/workspace/{workspaceId}/modules:
    post:
      operationId: ModulesV1Controller_createModule
      summary: Create a module
      description: Creates a new module in a workspace
      parameters:
      - name: workspaceId
        required: true
        in: path
        description: Workspace ID
        schema:
          minLength: 12
          maxLength: 12
          pattern: ^[a-z0-9]+$
          example: 5rdco4s18swu
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateModuleBody'
            examples:
              Example 1:
                value:
                  icon:
                    color: '#bada55'
                    filling: 0
                    icon: favorite
                  labels:
                    ? ''
                    : The events module
                  name: the_events_module
              Example 2 (all properties):
                value:
                  hideNavigation: false
                  icon:
                    color: coral
                    filling: 1
                    icon: school
                  isHidden: false
                  labels:
                    ? ''
                    : The sales module
                  name: sales_module
                  openRoles:
                  - admin
                  - editor
      responses:
        '201':
          description: Module created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleResponse'
        '400':
          description: Bad request (e.g., module already exists)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Workspace not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - bearer: []
      tags:
      - Modules
    get:
      operationId: ModulesV1Controller_getModules
      summary: List all modules in a workspace
      description: Retrieves all modules available in a workspace
      parameters:
      - name: workspaceId
        required: true
        in: path
        description: Workspace ID
        schema:
          minLength: 12
          maxLength: 12
          pattern: ^[a-z0-9]+$
          example: 5rdco4s18swu
          type: string
      responses:
        '200':
          description: Modules retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModulesResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Workspace not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - bearer: []
      tags:
      - Modules
  /api/v1/workspace/{workspaceId}/modules/{moduleName}:
    delete:
      operationId: ModulesV1Controller_deleteModule
      summary: Delete a module
      description: Deletes a module in a workspace
      parameters:
      - name: moduleName
        required: true
        in: path
        description: Module name
        schema:
          minLength: 1
          maxLength: 100
          pattern: ^[a-z0-9_]+$
          example: crm
          type: string
      - name: workspaceId
        required: true
        in: path
        description: Workspace ID
        schema:
          minLength: 12
          maxLength: 12
          pattern: ^[a-z0-9]+$
          example: 5rdco4s18swu
          type: string
      responses:
        '200':
          description: Module deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteModuleResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Module not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - bearer: []
      tags:
      - Modules
    get:
      operationId: ModulesV1Controller_getModule
      summary: Get a specific module
      description: Retrieves detailed information about a specific module, including its tables
      parameters:
      - name: moduleName
        required: true
        in: path
        description: Module name
        schema:
          minLength: 1
          maxLength: 100
          pattern: ^[a-z0-9_]+$
          example: crm
          type: string
      - name: workspaceId
        required: true
        in: path
        description: Workspace ID
        schema:
          minLength: 12
          maxLength: 12
          pattern: ^[a-z0-9]+$
          example: 5rdco4s18swu
          type: string
      responses:
        '200':
          description: Module details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Module not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - bearer: []
      tags:
      - Modules
    patch:
      operationId: ModulesV1Controller_updateModule
      summary: Update a module
      description: Updates an existing module in a workspace
      parameters:
      - name: moduleName
        required: true
        in: path
        description: Module name
        schema:
          minLength: 1
          maxLength: 100
          pattern: ^[a-z0-9_]+$
          example: crm
          type: string
      - name: workspaceId
        required: true
        in: path
        description: Workspace ID
        schema:
          minLength: 12
          maxLength: 12
          pattern: ^[a-z0-9]+$
          example: 5rdco4s18swu
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateModuleBody'
            examples:
              Example 1:
                value:
                  hideNavigation: false
                  icon:
                    icon: database
                  isHidden: false
                  labels:
                    ? ''
                    : A new app
                  name: a_new_application
                  openRoles:
                  - editor
                  - admin
      responses:
        '200':
          description: Module updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModuleResponse'
        '400':
          description: Bad request (e.g., module already exists)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Module not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - bearer: []
      tags:
      - Modules
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
              description: Error message
      required:
      - error
    DeleteModuleResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            id:
              type: string
              description: Deleted module id
      required:
      - data
    UpdateModuleBody:
      type: object
      properties:
        name:
          description: Module name
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^[a-z0-9_]+$
        hideNavigation:
          description: Hide module from navigation
          type: boolean
        icon:
          description: Module icon
          type: object
          properties:
            color:
              type: string
            filling:
              anyOf:
              - type: number
                enum:
                - 0
              - type: number
                enum:
                - 1
            icon:
              type: string
              minLength: 1
        isHidden:
          description: Hide module
          type: boolean
        labels:
          description: Module labels (localized)
          type: object
          additionalProperties:
            type: string
            minLength: 1
            maxLength: 100
        openRoles:
          description: Module open roles
          minItems: 1
          maxItems: 2
          type: array
          items:
            type: string
            enum:
            - admin
            - editor
      description: Update Module request body
    CreateModuleBody:
      type: object
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^[a-z0-9_]+$
          description: Module name
        hideNavigation:
          description: Hide module from navigation
          type: boolean
        icon:
          description: Module icon
          type: object
          properties:
            color:
              type: string
            filling:
              anyOf:
              - type: number
                enum:
                - 0
              - type: number
                enum:
                - 1
            icon:
              type: string
              minLength: 1
        isHidden:
          description: Hide module
          type: boolean
        labels:
          description: Module labels (localized)
          type: object
          additionalProperties:
            type: string
            minLength: 1
            maxLength: 100
        openRoles:
          description: Module open roles
          minItems: 1
          maxItems: 2
          type: array
          items:
            type: string
            enum:
            - admin
            - editor
      required:
      - name
      description: Create Module request body
    ModuleResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            hideNavigation:
              description: Hide module from navigation
              type: boolean
            icon:
              description: Module icon
              type: object
              properties:
                color:
                  description: Icon color (hex string)
                  type: string
                filling:
                  description: Icon filling
                  anyOf:
                  - type: number
                    enum:
                    - 0
                  - type: number
                    enum:
                    - 1
                icon:
                  type: string
                  description: Icon name
              required:
              - icon
            isHidden:
              description: Hide module
              type: boolean
            labels:
              description: Module labels (localized)
              type: object
              additionalProperties:
                type: string
            name:
              type: string
            openRoles:
              description: Module open roles
              type: array
              items:
                type: string
            tables:
              type: array
              items:
                type: object
                properties:
                  createRoles:
                    description: Roles allowed to create records
                    type: array
                    items:
                      type: string
                  deleteRoles:
                    description: Roles allowed to delete records
                    type: array
                    items:
                      type: string
                  fields:
                    type: array
                    items:
                      type: object
                      properties:
                        expression:
                          description: Expression (for function type)
                          type: string
                        expressionErrors:
                          description: Expression validation errors (for function type)
                          type: array
                          items:
                            type: object
                            properties:
                              column:
                                type: number
                                description: Column number where the error occurred
                              line:
                                type: number
                                description: Line number where the error occurred
                              message:
                                type: string
                                description: Error message
                            required:
                            - column
                            - line
                            - message
                        index:
                          description: Field is indexed
                          type: boolean
                        labels:
                          description: Field labels (localized)
                          type: object
                          additionalProperties:
                            type: string
                        name:
                          type: string
                          description: Field name
                        optionColor:
                          description: Color expression for dchoice/dmulti fields
                          type: string
                        optionIcon:
                          description: Icon expression for dchoice/dmulti fields
                          type: string
                        optionName:
                          description: Display name expression for dchoice/dmulti fields
                          type: string
                        options:
                          description: Options array for choice/multi fields, or selection expression for dchoice/dmulti fields
                          anyOf:
                          - type: array
                            items:
                              type: object
                              properties:
                                color:
                                  description: Option color (hex string)
                                  type: string
                                icon:
                                  description: Option icon name
                                  type: string
                                id:
                                  type: string
                                  description: Stable option id
                                labels:
                                  description: Localized option labels
                                  type: object
                                  additionalProperties:
                                    type: string
                                name:
                                  type: string
                                  description: Option name
                                order:
                                  type: number
                                  description: Option display order
                                textColor:
                                  description: Option text color (hex string)
                                  type: string
                              required:
                              - id
                              - name
                              - order
                          - type: string
                        readRoles:
                          description: Roles allowed to read the field
                          type: array
                          items:
                            type: string
                        refTableId:
                          description: Reference table id
                          type: string
                        required:
                          description: Field is required
                          type: boolean
                        search:
                          description: Field is searchable
                          type: boolean
                        type:
                          type: string
                          enum:
                          - any
                          - appointment
                          - boolean
                          - choice
                          - color
                          - date
                          - dchoice
                          - dmulti
                          - file
                          - function
                          - html
                          - icon
                          - lambda
                          - multi
                          - number
                          - react
                          - reference
                          - reverse
                          - rowId
                          - string
                          - styled
                          - time
                          - timeinterval
                          - timestamp
                          - unknown
                          - user
                          - void
                          description: Field type
                        unique:
                          description: Field is unique
                          type: boolean
                        variant:
                          description: Field variant (for string type)
                          type: string
                        writeRoles:
                          description: Roles allowed to write to the field
                          type: array
                          items:
                            type: string
                      required:
                      - name
                      - type
                  hasFiles:
                    description: Enable files for the table
                    type: boolean
                  hasGlobalSearch:
                    description: Enable global search for the table
                    type: boolean
                  hasHistory:
                    description: Enable history for the table
                    type: boolean
                  icon:
                    description: Table icon
                    type: object
                    properties:
                      color:
                        description: Icon color (hex string)
                        type: string
                      filling:
                        description: Icon filling
                        anyOf:
                        - type: number
                          enum:
                          - 0
                        - type: number
                          enum:
                          - 1
                      icon:
                        type: string
                        description: Icon name
                    required:
                    - icon
                  isEmailLinkingEnabled:
                    description: Enable email linking for the table
                    type: boolean
                  isHidden:
                    description: Hide the table
                    type: boolean
                  labels:
                    description: Table labels (localized)
                    type: object
                    additionalProperties:
                      type: string
                  name:
                    type: string
                  readRoles:
                    description: Roles allowed to read records
                    type: array
                    items:
                      type: string
                  writeRoles:
                    description: Roles allowed to update records
                    type: array
                    items:
                      type: string
                required:
                - name
          description: Module details
      required:
      - data
    ModulesResponse:
      type: object
      properties:
        data:
          type: array
          items:
            type: object
            properties:
              hideNavigation:
                description: Hide module from navigation
                type: boolean
              icon:
                description: Module icon
                type: object
                properties:
                  color:
                    description: Icon color (hex string)
                    type: string
                  filling:
                    description: Icon filling
                    anyOf:
                    - type: number
                      enum:
                      - 0
                    - type: number
                      enum:
                      - 1
                  icon:
                    type: string
                    description: Icon name
                required:
                - icon
              isHidden:
                description: Hide module
                type: boolean
              labels:
                description: Module labels (localized)
                type: object
                additionalProperties:
                  type: string
              name:
                type: string
              openRoles:
                description: Module open roles
                type: array
                items:
                  type: string
              tables:
                type: array
                items:
                  type: object
                  properties:
                    createRoles:
                      description: Roles allowed to create records
                      type: array
                      items:
                        type: string
                    deleteRoles:
                      description: Roles allowed to delete records
                      type: array
                      items:
                        type: string
                    fields:
                      type: array
                      items:
                        type: object
                        properties:
                          expression:
                            description: Expression (for function type)
                            type: string
                          expressionErrors:
                            description: Expression validation errors (for function type)
                            type: array
                            items:
                              type: object
                              properties:
                                column:
                                  type: number
                                  description: Column number where the error occurred
                                line:
                                  type: number
                                  description: Line number where the error occurred
                                message:
                                  type: string
                                  description: Error message
                              required:
                              - column
                              - line
                              - message
                          index:
                            description: Field is indexed
                            type: boolean
                          labels:
                            description: Field labels (localized)
                            type: object
                            additionalProperties:
                              type: string
                          name:
                            type: string
                            description: Field name
                          optionColor:
                            description: Color expression for dchoice/dmulti fields
                            type: string
                          optionIcon:
                            description: Icon expression for dchoice/dmulti fields
                            type: string
                          optionName:
                            description: Display name expression for dchoice/dmulti fields
                            type: string
                          options:
                            description: Options array for choice/multi fields, or selection expression for dchoice/dmulti fields
                            anyOf:
                            - type: array
                              items:
                                type: object
                                properties:
                                  color:
                                    description: Option color (hex string)
                                    type: string
                                  icon:
                                    description: Option icon name
                                    type: string
                                  id:
                                    type: string
                                    description: Stable option id
                                  labels:
                                    description: Localized option labels
                                    type: object
                                    additionalProperties:
                                      type: string
                                  name:
                                    type: string
                                    description: Option name
                                  order:
                                    type: number
                                    description: Option display order
                                  textColor:
                                    description: Option text color (hex string)
                                    type: string
                                required:
                                - id
                                - name
                                - order
                            - type: string
                          readRoles:
                            description: Roles allowed to read the field
                            type: array
                            items:
                              type: string
                          refTableId:
                            description: Reference table id
                            type: string
                          required:
                            description: Field is required
                            type: boolean
                          search:
                            description: Field is searchable
                            type: boolean
                          type:
                            type: string
                            enum:
                            - any
                            - appointment
                            - boolean
                            - choice
                            - color
                            - date
                            - dchoice
                            - dmulti
                            - file
                            - function
                            - html
                            - icon
                            - lambda
                            - multi
                            - number
                            - react
                            - reference
                            - reverse
                            - rowId
                            - string
                            - styled
                            - time
                            - timeinterval
                            - timestamp
                            - unknown
                            - user
                            - void
                            description: Field type
                          unique:
                            description: Field is unique
                            type: boolean
                          variant:
                            description: Field variant (for string type)
                            type: string
                          writeRoles:
                            description: Roles allowed to write to the field
                            type: array
                            items:
                              type: string
                        required:
                        - name
                        - type
                    hasFiles:
                      description: Enable files for the table
                      type: boolean
                    hasGlobalSearch:
                      description: Enable global search for the table
                      type: boolean
                    hasHistory:
                      description: Enable history for the table
                      type: boolean
                    icon:
                      description: Table icon
                      type: object
                      properties:
                        color:
                          description: Icon color (hex string)
                          type: string
                        filling:
                          description: Icon filling
                          anyOf:
                          - type: number
                            enum:
                            - 0
                          - type: number
                            enum:
                            - 1
                        icon:
                          type: string
                          description: Icon name
                      required:
                      - icon
                    isEmailLinkingEnabled:
                      description: Enable email linking for the table
                      type: boolean
                    isHidden:
                      description: Hide the table
                      type: boolean
                    labels:
                      description: Table labels (localized)
        

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