Kata.ai Projects API

A project bundles one Bot, CMS, and/or NLU.

OpenAPI Specification

kataai-projects-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Kata.ai NL Prediction Auth Projects API
  description: The Kata.ai Natural Language (NL) Prediction API exposes a trained Natural Language Understanding model built in NL Studio so it can be called from any application. Given an input sentence it returns detected entities (trait, dict, phrase) with scores, spans, resolved values, and entity relationships. Reconstructed from the published Kata Platform documentation (kata-ai/kata-platform-docs, nl-studio/nl-prediction-api); an API Evangelist derived specification, not a Kata.ai-published OpenAPI.
  version: 1.0.0
  contact:
    name: Kata.ai
    email: business@kata.ai
    url: https://docs.kata.ai/nl-studio/nl-prediction-api
  x-provenance:
    generated: '2026-07-19'
    method: generated
    source: https://github.com/kata-ai/kata-platform-docs/blob/master/docs/nl-studio/nl-prediction-api.md
servers:
- url: https://geist.kata.ai
  description: Kata.ai NL Prediction API host
security:
- bearerAuth: []
tags:
- name: Projects
  description: A project bundles one Bot, CMS, and/or NLU.
paths:
  /projects/:
    get:
      tags:
      - Projects
      operationId: listProjects
      summary: List projects
      responses:
        '200':
          description: Paged list of projects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectList'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      tags:
      - Projects
      operationId: createProject
      summary: Create a project
      description: Creates a project consisting of one Bot, CMS, and/or NLU.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProjectRequest'
      responses:
        '200':
          description: Project created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Forbidden'
  /projects/{projectId}:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    get:
      tags:
      - Projects
      operationId: getProject
      summary: Get a project
      responses:
        '200':
          description: Project
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '403':
          $ref: '#/components/responses/Forbidden'
    put:
      tags:
      - Projects
      operationId: updateProject
      summary: Update a project
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Project'
      responses:
        '200':
          description: Updated project
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  schemas:
    Project:
      type: object
      required:
      - name
      - botLatestRevision
      - options
      properties:
        id:
          type: string
        name:
          type: string
        label:
          type: string
        description:
          type: string
        botLatestRevision:
          type: string
        nluLatestRevision:
          type: string
        cmsLatestRevision:
          type: string
        options:
          type: object
          properties:
            bot:
              type: boolean
            cms:
              type: boolean
            nlu:
              type: boolean
            timezone:
              type: integer
            nluVisibility:
              type: string
              enum:
              - private
              - public
            nluLang:
              type: string
            nluId:
              type: string
    CreateProjectRequest:
      type: object
      required:
      - name
      - options
      properties:
        name:
          type: string
        options:
          type: object
          properties:
            bot:
              type: boolean
            cms:
              type: boolean
            nlu:
              type: boolean
            timezone:
              type: integer
            nluVisibility:
              type: string
              enum:
              - private
              - public
            nluLang:
              type: string
    ProjectList:
      type: object
      properties:
        page:
          type: integer
        limit:
          type: integer
        total:
          type: integer
        data:
          type: array
          items:
            $ref: '#/components/schemas/Project'
  responses:
    BadRequest:
      description: Wrong API usage. Please refer to the documentation!
      content:
        application/json:
          schema:
            type: string
    TooManyRequests:
      description: Ratelimit exceeded! 100 per minute
      content:
        application/json:
          schema:
            type: string
    Forbidden:
      description: You're not authorized to view this page.
      content:
        application/json:
          schema:
            type: string
  parameters:
    ProjectId:
      name: projectId
      in: path
      required: true
      schema:
        type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Bearer token from NL Studio Settings (Authorization: Bearer <token>).'