openapi: 3.0.1 info: title: Klu Actions Context API description: 'REST API for the Klu (klu.ai) LLM app platform. The Klu Engine runs Actions - each encapsulating a prompt template, model config, context (RAG), and output parsing - against input variables to generate completions, and manages the data, feedback, sessions, models, apps, and workspaces around them. Authentication is via a Bearer API key obtained from the workspace API Keys settings. NOTE - Endpoints under the Actions, Context, and Apps/Workspaces paths reflect the publicly documented Klu API reference and SDK surface. Where the public docs document a capability via the SDK but do not publish the exact REST path, this spec models the conventional resource path used by the Klu Engine; see review.yml for which operations are documented verbatim versus inferred from the SDK.' termsOfService: https://klu.ai/terms contact: name: Klu Support url: https://help.klu.ai/ version: '1.0' servers: - url: https://api.klu.ai/v1 description: Klu Engine production API security: - bearerAuth: [] tags: - name: Context description: Manage Context libraries and documents for retrieval-augmented generation. paths: /context: post: operationId: createContext tags: - Context summary: Create a Context library description: Creates a new Context library. Klu automatically builds a vector index and performs retrieval-augmented generation via similarity search over its documents. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateContextRequest' responses: '200': description: Context library created. content: application/json: schema: $ref: '#/components/schemas/Context' '401': $ref: '#/components/responses/Unauthorized' /context/{guid}/documents: post: operationId: addContextDocument tags: - Context summary: Add a document to a Context library description: Adds app data as a Context document with optional metadata. parameters: - $ref: '#/components/parameters/Guid' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddContextDocumentRequest' responses: '200': description: Document added. content: application/json: schema: $ref: '#/components/schemas/ContextDocument' '401': $ref: '#/components/responses/Unauthorized' /context/{guid}/add_files: post: operationId: addContextFiles tags: - Context summary: Add files to a Context library description: Adds one or more files to an existing Context library. parameters: - $ref: '#/components/parameters/Guid' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddContextFilesRequest' responses: '200': description: Files added. '401': $ref: '#/components/responses/Unauthorized' components: schemas: Context: type: object properties: guid: type: string name: type: string description: type: string type: type: string ContextDocument: type: object properties: guid: type: string text: type: string meta_data: type: object additionalProperties: true AddContextFilesRequest: type: object required: - files properties: files: type: array items: type: string AddContextDocumentRequest: type: object required: - text properties: text: type: string meta_data: type: object additionalProperties: true CreateContextRequest: type: object required: - name - description - type properties: name: type: string description: type: string type: type: string enum: - Files - Custom files: type: array items: type: string Error: type: object properties: error: type: string message: type: string responses: Unauthorized: description: Missing or invalid API key. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: Guid: name: guid in: path required: true description: GUID of the resource. schema: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: Klu API key passed as a Bearer token in the Authorization header.