openapi: 3.0.3 info: title: Flowise APIs version: "1.0.0" description: | Flowise REST API for managing AI agent flows, chatflows, assistants, document stores, tools, variables, and predictions. Bearer token authentication uses an API key generated in the Flowise admin UI. The default server is your local or hosted Flowise instance at /api/v1. license: name: Apache 2.0 url: https://github.com/FlowiseAI/Flowise/blob/main/LICENSE.md contact: name: FlowiseAI email: support@flowiseai.com servers: - url: http://localhost:3000/api/v1 description: Local Flowise server - url: https://{instance}.flowiseai.com/api/v1 description: Flowise Cloud instance variables: instance: default: app tags: - name: assistants - name: attachments - name: chatmessage - name: chatflows - name: document-store - name: feedback - name: leads - name: ping - name: prediction - name: tools - name: upsert-history - name: variables - name: vector paths: /chatmessage/{id}: get: tags: - chatmessage security: - bearerAuth: [] operationId: getAllChatMessages summary: List all chat messages description: Retrieve all chat messages for a specific chatflow. parameters: - in: path name: id required: true schema: type: string description: Chatflow ID - in: query name: chatType schema: type: string enum: [INTERNAL, EXTERNAL] description: Filter by chat type - in: query name: order schema: type: string enum: [ASC, DESC] description: Sort order - in: query name: chatId schema: type: string description: Filter by chat ID - in: query name: memoryType schema: type: string example: Buffer Memory description: Filter by memory type - in: query name: sessionId schema: type: string description: Filter by session ID - in: query name: startDate schema: type: string example: 2025-01-01T11:28:36.000Z format: date-time description: Filter by start date - in: query name: endDate schema: type: string example: 2025-01-13T11:28:36.000Z format: date-time description: Filter by end date - in: query name: feedback schema: type: boolean description: Filter by feedback - in: query name: feedbackType schema: type: string enum: [THUMBS_UP, THUMBS_DOWN] description: Filter by feedback type. Only applicable if feedback is true responses: '200': description: A list of chat messages content: application/json: schema: type: array items: $ref: '#/components/schemas/ChatMessage' '500': description: Internal error delete: tags: - chatmessage security: - bearerAuth: [] operationId: removeAllChatMessages summary: Delete all chat messages description: Delete all chat messages for a specific chatflow. parameters: - in: path name: id required: true schema: type: string description: Chatflow ID - in: query name: chatId schema: type: string description: Filter by chat ID - in: query name: memoryType schema: type: string example: Buffer Memory description: Filter by memory type - in: query name: sessionId schema: type: string description: Filter by session ID - in: query name: chatType schema: type: string enum: [INTERNAL, EXTERNAL] description: Filter by chat type - in: query name: startDate schema: type: string example: 2025-01-01T11:28:36.000Z description: Filter by start date - in: query name: endDate schema: type: string example: 2025-01-13T11:28:36.000Z description: Filter by end date - in: query name: feedbackType schema: type: string enum: [THUMBS_UP, THUMBS_DOWN] description: Filter by feedback type - in: query name: hardDelete schema: type: boolean description: If hardDelete is true, messages will be deleted from the third party service as well responses: '200': description: Chat messages deleted successfully '400': description: Invalid parameters '404': description: Chat messages not found '500': description: Internal error /assistants: post: tags: - assistants security: - bearerAuth: [] operationId: createAssistant summary: Create a new assistant description: Create a new assistant with the provided details requestBody: content: application/json: schema: $ref: '#/components/schemas/Assistant' required: true responses: '200': description: Assistant created successfully content: application/json: schema: $ref: '#/components/schemas/Assistant' '400': description: Invalid input provided '422': description: Validation exception get: tags: - assistants security: - bearerAuth: [] summary: List all assistants description: Retrieve a list of all assistants operationId: listAssistants responses: '200': description: Successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/Assistant' '500': description: Internal error /assistants/{id}: get: tags: - assistants security: - bearerAuth: [] summary: Get assistant by ID description: Retrieve a specific assistant by ID operationId: getAssistantById parameters: - in: path name: id required: true schema: type: string description: Assistant ID responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Assistant' '400': description: The specified ID is invalid '404': description: Assistant not found '500': description: Internal error put: tags: - assistants security: - bearerAuth: [] summary: Update assistant details description: Update the details of an existing assistant operationId: updateAssistant parameters: - in: path name: id required: true schema: type: string description: Assistant ID requestBody: content: application/json: schema: $ref: '#/components/schemas/Assistant' responses: '200': description: Assistant updated successfully content: application/json: schema: $ref: '#/components/schemas/Assistant' '400': description: The specified ID is invalid or body is missing '404': description: Assistant not found '500': description: Internal error delete: tags: - assistants security: - bearerAuth: [] summary: Delete an assistant description: Delete an assistant by ID operationId: deleteAssistant parameters: - in: path name: id required: true schema: type: string description: Assistant ID responses: '200': description: Assistant deleted successfully '400': description: The specified ID is invalid '404': description: Assistant not found '500': description: Internal error /attachments/{chatflowId}/{chatId}: post: tags: - attachments security: - bearerAuth: [] operationId: createAttachment summary: Create attachments array description: Return contents of the files in plain string format parameters: - in: path name: chatflowId required: true schema: type: string description: Chatflow ID - in: path name: chatId required: true schema: type: string description: Chat ID requestBody: content: multipart/form-data: schema: type: object properties: files: type: array items: type: string format: binary description: Files to be uploaded base64: type: boolean default: false description: Return contents of the files in base64 format required: - files required: true responses: '200': description: Attachments created successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/CreateAttachmentResponse' '400': description: Invalid input provided '404': description: Chatflow or ChatId not found '422': description: Validation error '500': description: Internal server error /chatflows: post: tags: - chatflows security: - bearerAuth: [] operationId: createChatflow summary: Create a new chatflow description: Create a new chatflow with the provided details requestBody: content: application/json: schema: $ref: '#/components/schemas/Chatflow' required: true responses: '200': description: Chatflow created successfully content: application/json: schema: $ref: '#/components/schemas/Chatflow' '400': description: Invalid input provided '422': description: Validation exception get: tags: - chatflows security: - bearerAuth: [] summary: List all chatflows description: Retrieve a list of all chatflows operationId: listChatflows responses: '200': description: Successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/Chatflow' '500': description: Internal error /chatflows/{id}: get: tags: - chatflows security: - bearerAuth: [] summary: Get chatflow by ID description: Retrieve a specific chatflow by ID operationId: getChatflowById parameters: - in: path name: id required: true schema: type: string description: Chatflow ID responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Chatflow' '400': description: The specified ID is invalid '404': description: Chatflow not found '500': description: Internal error put: tags: - chatflows security: - bearerAuth: [] summary: Update chatflow details description: Update the details of an existing chatflow operationId: updateChatflow parameters: - in: path name: id required: true schema: type: string description: Chatflow ID requestBody: content: application/json: schema: $ref: '#/components/schemas/Chatflow' responses: '200': description: Chatflow updated successfully content: application/json: schema: $ref: '#/components/schemas/Chatflow' '400': description: The specified ID is invalid or body is missing '404': description: Chatflow not found '500': description: Internal error delete: tags: - chatflows security: - bearerAuth: [] summary: Delete a chatflow description: Delete a chatflow by ID operationId: deleteChatflow parameters: - in: path name: id required: true schema: type: string description: Chatflow ID responses: '200': description: Chatflow deleted successfully '400': description: The specified ID is invalid '404': description: Chatflow not found '500': description: Internal error /chatflows/apikey/{apikey}: get: tags: - chatflows security: - bearerAuth: [] summary: Get chatflow by API key description: Retrieve a chatflow using an API key operationId: getChatflowByApiKey parameters: - in: path name: apikey required: true schema: type: string description: API key associated with the chatflow responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Chatflow' '400': description: The specified API key is invalid '404': description: Chatflow not found '500': description: Internal error /document-store/store: post: tags: - document-store security: - bearerAuth: [] summary: Create a new document store description: Creates a new document store with the provided details operationId: createDocumentStore requestBody: content: application/json: schema: $ref: '#/components/schemas/DocumentStore' required: true responses: '200': description: Successfully created document store content: application/json: schema: $ref: '#/components/schemas/DocumentStore' '400': description: Invalid request body '500': description: Internal server error get: tags: - document-store security: - bearerAuth: [] summary: List all document stores description: Retrieves a list of all document stores operationId: getAllDocumentStores responses: '200': description: A list of document stores content: application/json: schema: type: array items: $ref: '#/components/schemas/DocumentStore' '500': description: Internal server error /document-store/store/{id}: get: tags: - document-store security: - bearerAuth: [] summary: Get a specific document store description: Retrieves details of a specific document store by its ID operationId: getDocumentStoreById parameters: - in: path name: id required: true schema: type: string format: uuid description: Document Store ID responses: '200': description: Successfully retrieved document store content: application/json: schema: $ref: '#/components/schemas/DocumentStore' '404': description: Document store not found '500': description: Internal server error put: tags: - document-store security: - bearerAuth: [] summary: Update a specific document store description: Updates the details of a specific document store by its ID operationId: updateDocumentStore parameters: - in: path name: id required: true schema: type: string format: uuid description: Document Store ID requestBody: content: application/json: schema: $ref: '#/components/schemas/DocumentStore' required: true responses: '200': description: Successfully updated document store content: application/json: schema: $ref: '#/components/schemas/DocumentStore' '404': description: Document store not found '500': description: Internal server error delete: tags: - document-store security: - bearerAuth: [] summary: Delete a specific document store description: Deletes a document store by its ID operationId: deleteDocumentStore parameters: - in: path name: id required: true schema: type: string format: uuid description: Document Store ID responses: '200': description: Successfully deleted document store '404': description: Document store not found '500': description: Internal server error /document-store/upsert/{id}: post: tags: - document-store security: - bearerAuth: [] summary: Upsert document to document store description: Upsert document to document store operationId: upsertDocument parameters: - in: path name: id required: true schema: type: string format: uuid description: Document Store ID requestBody: content: application/json: schema: $ref: '#/components/schemas/DocumentStoreLoaderForUpsert' multipart/form-data: schema: type: object properties: files: type: array items: type: string format: binary description: Files to be uploaded docId: type: string nullable: true example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766' description: Document ID to use existing configuration loader: type: string nullable: true example: '{"name":"plainText","config":{"text":"why the sky is blue"}}' description: Loader configurations splitter: type: string nullable: true example: '{"name":"recursiveCharacterTextSplitter","config":{"chunkSize":2000}}' description: Splitter configurations embedding: type: string nullable: true example: '{"name":"openAIEmbeddings","config":{"modelName":"text-embedding-ada-002"}}' description: Embedding configurations vectorStore: type: string nullable: true example: '{"name":"faiss"}' description: Vector Store configurations recordManager: type: string nullable: true example: '{"name":"postgresRecordManager"}' description: Record Manager configurations metadata: type: object nullable: true description: Metadata associated with the document example: { 'foo': 'bar' } replaceExisting: type: boolean nullable: true description: Whether to replace existing document loader with the new upserted chunks. However this does not delete the existing embeddings in the vector store createNewDocStore: type: boolean nullable: true description: Whether to create a new document store docStore: type: object nullable: true description: Only when createNewDocStore is true, pass in the new document store configuration properties: name: type: string example: plainText description: Name of the new document store to be created description: type: string example: plainText description: Description of the new document store to be created required: - files required: true responses: '200': description: Successfully execute upsert operation content: application/json: schema: $ref: '#/components/schemas/VectorUpsertResponse' '400': description: Invalid request body '500': description: Internal server error /document-store/refresh/{id}: post: tags: - document-store security: - bearerAuth: [] summary: Re-process and upsert all documents in document store description: Re-process and upsert all existing documents in document store operationId: refreshDocument parameters: - in: path name: id required: true schema: type: string format: uuid description: Document Store ID requestBody: content: application/json: schema: $ref: '#/components/schemas/DocumentStoreLoaderForRefresh' required: true responses: '200': description: Successfully execute refresh operation content: application/json: schema: type: array items: $ref: '#/components/schemas/VectorUpsertResponse' '400': description: Invalid request body '500': description: Internal server error /document-store/vectorstore/query: post: tags: - document-store security: - bearerAuth: [] summary: Retrieval query description: Retrieval query for the upserted chunks operationId: queryVectorStore requestBody: content: application/json: schema: type: object required: - storeId - query properties: storeId: type: string description: Document Store ID example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766' query: type: string description: Query to search for example: 'What is the capital of France?' required: true responses: '200': description: Successfully executed query on vector store content: application/json: schema: type: object properties: timeTaken: type: number description: Time taken to execute the query (in milliseconds) docs: type: array items: $ref: '#/components/schemas/Document' '400': description: Invalid request body '500': description: Internal server error /document-store/loader/{storeId}/{loaderId}: delete: tags: - document-store security: - bearerAuth: [] summary: Delete specific document loader and associated chunks from document store description: Delete specific document loader and associated chunks from document store. This does not delete data from vector store. operationId: deleteLoaderFromDocumentStore parameters: - in: path name: storeId required: true schema: type: string description: Document Store ID - in: path name: loaderId required: true schema: type: string description: Document Loader ID responses: '200': description: Successfully deleted loader from document store '400': description: Invalid ID provided '404': description: Document Store not found '500': description: Internal server error /document-store/vectorstore/{id}: delete: tags: - document-store security: - bearerAuth: [] summary: Delete data from vector store description: Only data that were upserted with Record Manager will be deleted from vector store operationId: deleteVectorStoreFromStore parameters: - in: path name: id required: true schema: type: string description: Document Store ID responses: '200': description: Successfully deleted data from vector store '400': description: Invalid ID provided '404': description: Document Store not found '500': description: Internal server error /document-store/chunks/{storeId}/{loaderId}/{pageNo}: get: tags: - document-store security: - bearerAuth: [] summary: Get chunks from a specific document loader description: Get chunks from a specific document loader within a document store operationId: getDocumentStoreFileChunks parameters: - in: path name: storeId required: true schema: type: string format: uuid description: Document Store ID - in: path name: loaderId required: true schema: type: string format: uuid description: Document loader ID - in: path name: pageNo required: true schema: type: string description: Pagination number responses: '200': description: Successfully retrieved chunks from document loader content: application/json: schema: $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse' '404': description: Document store not found '500': description: Internal server error /document-store/chunks/{storeId}/{loaderId}/{chunkId}: put: tags: - document-store security: - bearerAuth: [] summary: Update a specific chunk description: Updates a specific chunk from a document loader operationId: editDocumentStoreFileChunk parameters: - in: path name: storeId required: true schema: type: string description: Document Store ID - in: path name: loaderId required: true schema: type: string description: Document Loader ID - in: path name: chunkId required: true schema: type: string description: Document Chunk ID requestBody: content: application/json: schema: $ref: '#/components/schemas/Document' required: true responses: '200': description: Successfully updated chunk content: application/json: schema: $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse' '404': description: Document store not found '500': description: Internal server error delete: tags: - document-store security: - bearerAuth: [] summary: Delete a specific chunk from a document loader description: Delete a specific chunk from a document loader operationId: deleteDocumentStoreFileChunk parameters: - in: path name: storeId required: true schema: type: string description: Document Store ID - in: path name: loaderId required: true schema: type: string description: Document Loader ID - in: path name: chunkId required: true schema: type: string description: Document Chunk ID responses: '200': description: Successfully deleted chunk '400': description: Invalid ID provided '404': description: Document Store not found '500': description: Internal server error /feedback: post: tags: - feedback security: - bearerAuth: [] operationId: createChatMessageFeedbackForChatflow summary: Create new chat message feedback description: Create new feedback for a specific chat flow. requestBody: content: application/json: schema: $ref: '#/components/schemas/ChatMessageFeedback' required: true responses: '200': description: Feedback successfully created content: application/json: schema: $ref: '#/components/schemas/ChatMessageFeedback' '400': description: Invalid input provided '500': description: Internal server error /feedback/{id}: get: tags: - feedback security: - bearerAuth: [] summary: List all chat message feedbacks for a chatflow description: Retrieve all feedbacks for a chatflow operationId: getAllChatMessageFeedback parameters: - in: path name: id required: true schema: type: string description: Chatflow ID - in: query name: chatId schema: type: string description: Chat ID to filter feedbacks (optional) - in: query name: sortOrder schema: type: string enum: [asc, desc] default: asc description: Sort order of feedbacks (optional) - in: query name: startDate schema: type: string format: date-time description: Filter feedbacks starting from this date (optional) - in: query name: endDate schema: type: string format: date-time description: Filter feedbacks up to this date (optional) responses: '200': description: Successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/ChatMessageFeedback' '500': description: Internal server error put: tags: - feedback security: - bearerAuth: [] summary: Update chat message feedback description: Update a specific feedback operationId: updateChatMessageFeedbackForChatflow parameters: - in: path name: id required: true schema: type: string description: Chat Message Feedback ID requestBody: content: application/json: schema: $ref: '#/components/schemas/ChatMessageFeedback' responses: '200': description: Feedback successfully updated content: application/json: schema: $ref: '#/components/schemas/ChatMessageFeedback' '400': description: Invalid input provided '404': description: Feedback with the specified ID was not found '500': description: Internal server error /leads: post: tags: - leads security: - bearerAuth: [] operationId: createLead summary: Create a new lead in a chatflow description: Create a new lead associated with a specific chatflow requestBody: content: application/json: schema: $ref: '#/components/schemas/Lead' required: true responses: '200': description: Lead created successfully content: application/json: schema: $ref: '#/components/schemas/Lead' '400': description: Invalid request body '422': description: Validation error '500': description: Internal server error /leads/{id}: get: tags: - leads security: - bearerAuth: [] summary: Get all leads for a specific chatflow description: Retrieve all leads associated with a specific chatflow operationId: getAllLeadsForChatflow parameters: - in: path name: id required: true schema: type: string description: Chatflow ID responses: '200': description: Successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/Lead' '400': description: Invalid ID provided '404': description: Leads not found '500': description: Internal server error /ping: get: tags: - ping summary: Ping the server description: Ping the server to check if it is running operationId: pingServer responses: '200': description: Server is running content: text/plain: schema: type: string example: pong '500': description: Internal server error /prediction/{id}: post: tags: - prediction security: - bearerAuth: [] operationId: createPrediction summary: Send message to flow and get AI response description: | Send a message to your flow and receive an AI-generated response. This is the primary endpoint for interacting with your flows and assistants. **Authentication**: API key may be required depending on flow settings. parameters: - in: path name: id required: true schema: type: string description: Flow ID - the unique identifier of your flow example: 'your-flow-id' requestBody: content: application/json: schema: $ref: '#/components/schemas/Prediction' multipart/form-data: schema: type: object properties: question: type: string description: Question/message to send to the flow example: 'Analyze this uploaded file and summarize its contents' files: type: array items: type: string format: binary description: Files to be uploaded (images, audio, documents, etc.) streaming: type: boolean description: Enable streaming responses default: false overrideConfig: type: string description: JSON string of configuration overrides example: '{"sessionId":"user-123","temperature":0.7}' history: type: string description: JSON string of conversation history example: '[{"role":"userMessage","content":"Hello"},{"role":"apiMessage","content":"Hi there!"}]' humanInput: type: string description: JSON string of human input for resuming execution example: '{"type":"proceed","feedback":"Continue with the plan"}' required: - question required: true responses: '200': description: Successful prediction response content: application/json: schema: type: object properties: text: type: string description: The AI-generated response text example: 'Artificial intelligence (AI) is a branch of computer science that focuses on creating systems capable of performing tasks that typically require human intelligence.' json: type: object description: The result in JSON format if available (for structured outputs) nullable: true question: type: string description: The original question/message sent to the flow example: 'What is artificial intelligence?' chatId: type: string description: Unique identifier for the chat session example: 'chat-12345' chatMessageId: type: string description: Unique identifier for this specific message example: 'msg-67890' sessionId: type: string description: Session identifier for conversation continuity example: 'user-session-123' nullable: true memoryType: type: string description: Type of memory used for conversation context example: 'Buffer Memory' nullable: true sourceDocuments: type: array description: Documents retrieved from vector store (if RAG is enabled) items: $ref: '#/components/schemas/Document' nullable: true usedTools: type: array description: Tools that were invoked during the response generation items: $ref: '#/components/schemas/UsedTool' nullable: true '400': description: Bad Request - Invalid input provided or request format is incorrect content: application/json: schema: type: object properties: error: type: string example: 'Invalid request format. Check required fields and parameter types.' '401': description: Unauthorized - API key required or invalid content: application/json: schema: type: object properties: error: type: string example: 'Unauthorized access. Please verify your API key.' '404': description: Not Found - Chatflow with specified ID does not exist content: application/json: schema: type: object properties: error: type: string example: 'Chatflow not found. Please verify the chatflow ID.' '413': description: Payload Too Large - Request payload exceeds size limits content: application/json: schema: type: object properties: error: type: string example: 'Request payload too large. Please reduce file sizes or split large requests.' '422': description: Validation Error - Request validation failed content: application/json: schema: type: object properties: error: type: string example: 'Validation failed. Check parameter requirements and data types.' '500': description: Internal Server Error - Flow configuration or execution error content: application/json: schema: type: object properties: error: type: string example: 'Internal server error. Check flow configuration and node settings.' /tools: post: tags: - tools security: - bearerAuth: [] operationId: createTool summary: Create a new tool description: Create a new tool requestBody: content: application/json: schema: $ref: '#/components/schemas/Tool' required: true responses: '200': description: Tool created successfully content: application/json: schema: $ref: '#/components/schemas/Tool' '400': description: Invalid request body '422': description: Validation error '500': description: Internal server error get: tags: - tools security: - bearerAuth: [] summary: List all tools description: Retrieve a list of all tools operationId: getAllTools responses: '200': description: Successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/Tool' '500': description: Internal server error /tools/{id}: get: tags: - tools security: - bearerAuth: [] summary: Get a tool by ID description: Retrieve a specific tool by ID operationId: getToolById parameters: - in: path name: id required: true schema: type: string description: Tool ID responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Tool' '400': description: Invalid ID provided '404': description: Tool not found '500': description: Internal server error put: tags: - tools security: - bearerAuth: [] summary: Update a tool by ID description: Update a specific tool by ID operationId: updateTool parameters: - in: path name: id required: true schema: type: string description: Tool ID requestBody: content: application/json: schema: $ref: '#/components/schemas/Tool' required: true responses: '200': description: Tool updated successfully content: application/json: schema: $ref: '#/components/schemas/Tool' '400': description: Invalid ID or request body provided '404': description: Tool not found '500': description: Internal server error delete: tags: - tools security: - bearerAuth: [] summary: Delete a tool by ID description: Delete a specific tool by ID operationId: deleteTool parameters: - in: path name: id required: true schema: type: string description: Tool ID responses: '200': description: Tool deleted successfully '400': description: Invalid ID provided '404': description: Tool not found '500': description: Internal server error /upsert-history/{id}: get: tags: - upsert-history security: - bearerAuth: [] summary: Get all upsert history records description: Retrieve all upsert history records with optional filters operationId: getAllUpsertHistory parameters: - in: path name: id required: true schema: type: string description: Chatflow ID to filter records by - in: query name: order required: false schema: type: string enum: [ASC, DESC] default: ASC description: Sort order of the results (ascending or descending) - in: query name: startDate required: false schema: type: string format: date-time description: Filter records from this start date (inclusive) - in: query name: endDate required: false schema: type: string format: date-time description: Filter records until this end date (inclusive) responses: '200': description: Successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/UpsertHistoryResponse' '500': description: Internal server error patch: tags: - upsert-history security: - bearerAuth: [] summary: Delete upsert history records description: Soft delete upsert history records by IDs operationId: patchDeleteUpsertHistory requestBody: content: application/json: schema: type: object properties: ids: type: array items: type: string format: uuid description: List of upsert history record IDs to delete responses: '200': description: Successfully deleted records '400': description: Invalid request body '500': description: Internal server error /variables: post: tags: - variables security: - bearerAuth: [] operationId: createVariable summary: Create a new variable description: Create a new variable requestBody: content: application/json: schema: $ref: '#/components/schemas/Variable' required: true responses: '200': description: Variable created successfully content: application/json: schema: $ref: '#/components/schemas/Variable' '400': description: Invalid request body '422': description: Validation error '500': description: Internal server error get: tags: - variables security: - bearerAuth: [] summary: List all variables description: Retrieve a list of all variables operationId: getAllVariables responses: '200': description: Successful operation content: application/json: schema: type: array items: $ref: '#/components/schemas/Variable' '500': description: Internal server error /variables/{id}: put: tags: - variables security: - bearerAuth: [] summary: Update a variable by ID description: Update a specific variable by ID operationId: updateVariable parameters: - in: path name: id required: true schema: type: string description: Variable ID requestBody: content: application/json: schema: $ref: '#/components/schemas/Variable' required: true responses: '200': description: Variable updated successfully content: application/json: schema: $ref: '#/components/schemas/Variable' '400': description: Invalid ID or request body provided '404': description: Variable not found '500': description: Internal server error delete: tags: - variables security: - bearerAuth: [] summary: Delete a variable by ID description: Delete a specific variable by ID operationId: deleteVariable parameters: - in: path name: id required: true schema: type: string description: Variable ID responses: '200': description: Variable deleted successfully '400': description: Invalid ID provided '404': description: Variable not found '500': description: Internal server error /vector/upsert/{id}: post: tags: - vector security: - bearerAuth: [] operationId: vectorUpsert summary: Upsert vector embeddings description: Upsert vector embeddings of documents in a chatflow parameters: - in: path name: id required: true schema: type: string description: Chatflow ID requestBody: content: application/json: schema: type: object properties: stopNodeId: type: string description: In cases when you have multiple vector store nodes, you can specify the node ID to store the vectors example: 'node_1' overrideConfig: type: object description: The configuration to override the default vector upsert settings (optional) multipart/form-data: schema: type: object properties: files: type: array items: type: string format: binary description: Files to be uploaded modelName: type: string nullable: true example: '' description: Other override configurations required: - files required: true responses: '200': description: Vector embeddings upserted successfully content: application/json: schema: $ref: '#/components/schemas/VectorUpsertResponse' '400': description: Invalid input provided '404': description: Chatflow not found '422': description: Validation error '500': description: Internal server error components: responses: UnauthorizedError: description: Access token is missing or invalid schemas: ApiKey: type: object properties: apiKey: type: string example: 'vYV8OdUMRzRQbzpp2JzY5DvriBnuVHo3pYpPQ7IJWyw=' apiSecret: type: string example: '50e19a35ee1df775c09628dade1c00f0f680c6e15256e34a6eab350b38b31352df35c4db7925a3e5dd41cc773a0e2529e6c6da18408a8bbeeb0ae4b0f0ab9486.a96478a9225ed6ab' chatFlows: type: array example: [] createdAt: type: string example: '10-Mar-24' id: type: string example: '525e4daa2104f06ffdea5c1af37009be' keyName: type: string example: 'someKeyName' ChatMessage: type: object properties: id: type: string format: uuid example: 'd290f1ee-6c54-4b01-90e6-d701748f0851' role: type: string enum: [apiMessage, userMessage] example: 'apiMessage' chatflowid: type: string format: uuid example: 'd290f1ee-6c54-4b01-90e6-d701748f0852' content: type: string example: 'Hello, how can I help you today?' sourceDocuments: type: array nullable: true items: $ref: '#/components/schemas/Document' usedTools: type: array nullable: true items: $ref: '#/components/schemas/UsedTool' fileAnnotations: type: array nullable: true items: $ref: '#/components/schemas/FileAnnotation' agentReasoning: type: array nullable: true items: $ref: '#/components/schemas/AgentReasoning' fileUploads: type: array nullable: true items: $ref: '#/components/schemas/FileUpload' action: type: array nullable: true items: $ref: '#/components/schemas/Action' chatType: type: string enum: [INTERNAL, EXTERNAL] example: 'INTERNAL' chatId: type: string example: 'chat12345' memoryType: type: string nullable: true sessionId: type: string nullable: true createdDate: type: string format: date-time example: '2024-08-24T14:15:22Z' leadEmail: type: string nullable: true example: 'user@example.com' Chatflow: type: object properties: id: type: string example: 'd290f1ee-6c54-4b01-90e6-d701748f0851' name: type: string example: 'MyChatFlow' flowData: type: string example: '{}' deployed: type: boolean isPublic: type: boolean apikeyid: type: string chatbotConfig: type: string example: '{}' apiConfig: type: string example: '{}' analytic: type: string example: '{}' speechToText: type: string example: '{}' category: type: string example: 'category1;category2' type: type: string enum: [CHATFLOW, MULTIAGENT] createdDate: type: string format: date-time example: '2024-08-24T14:15:22Z' updatedDate: type: string format: date-time example: '2024-08-24T14:15:22Z' Document: type: object properties: pageContent: type: string example: 'This is the content of the page.' metadata: type: object additionalProperties: type: string example: author: 'John Doe' date: '2024-08-24' UsedTool: type: object properties: tool: type: string example: 'Name of the tool' toolInput: type: object additionalProperties: type: string example: input: 'search query' toolOutput: type: string FileAnnotation: type: object properties: filePath: type: string example: 'path/to/file' fileName: type: string example: 'file.txt' FileUpload: type: object properties: data: type: string example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG' type: type: string example: 'image' name: type: string example: 'image.png' mime: type: string example: 'image/png' Action: type: object properties: id: type: string format: uuid example: '61beeb58-6ebe-4d51-aa0b-41d4c546ff08' mapping: type: object properties: approve: type: string example: 'Yes' reject: type: string example: 'No' toolCalls: type: array example: [] elements: type: array AgentReasoning: type: object properties: agentName: type: string example: 'agent' messages: type: array items: type: string example: ['hello'] nodeName: type: string example: 'seqAgent' nodeId: type: string example: 'seqAgent_0' usedTools: type: array items: $ref: '#/components/schemas/UsedTool' sourceDocuments: type: array items: $ref: '#/components/schemas/Document' state: type: object additionalProperties: type: string Assistant: type: object properties: id: type: string example: 'd290f1ee-6c54-4b01-90e6-d701748f0851' details: type: object properties: id: type: string example: 'asst_zbNeYIuXIUSKVHjJkfRo6ilv' name: type: string example: 'assistant' description: type: string model: type: string example: 'gpt-4' instructions: type: string example: 'You are a helpful assistant, do your best to answer question and query' temperature: type: number example: 1 top_p: type: number example: 1 tools: type: array items: type: string example: ['function', 'code_interpreter', 'file_search'] tool_resources: type: object additionalProperties: type: object credential: type: string example: '7db93c02-8d5a-4117-a8f1-3dfb6721b339' iconSrc: type: string example: '/images/assistant.png' createdDate: type: string format: date-time example: '2024-08-24T14:15:22Z' updatedDate: type: string format: date-time example: '2024-08-24T14:15:22Z' Credential: type: object properties: id: type: string example: 'cfd531e0-82fc-11e9-bc42-526af7764f64' name: type: string example: 'My Credential' credentialName: type: string example: 'openAIAPI' encryptedData: type: string example: 'U2FsdGVkX1/3T2gnnsEtX6FJi1DbnYx0VVdS3XWZ5ro=' createdDate: type: string format: date-time example: '2024-08-24T14:15:22Z' updatedDate: type: string format: date-time example: '2024-08-24T14:15:22Z' Prediction: type: object properties: question: type: string description: The question/message to send to the flow example: 'What is artificial intelligence?' form: type: object description: The form object to send to the flow (alternative to question for Agentflow V2) additionalProperties: true example: title: 'Example' count: 1 streaming: type: boolean description: Enable streaming responses for real-time output default: false example: false overrideConfig: type: object description: Override flow configuration and pass variables at runtime additionalProperties: true example: sessionId: 'user-session-123' temperature: 0.7 maxTokens: 500 vars: user_name: 'Alice' history: type: array description: Previous conversation messages for context items: type: object properties: role: type: string enum: [apiMessage, userMessage] description: The role of the message example: apiMessage content: type: string description: The content of the message example: 'Hello, how can I help you?' example: - role: 'apiMessage' content: "Hello! I'm an AI assistant. How can I help you today?" - role: 'userMessage' content: "Hi, my name is Sarah and I'm learning about AI" uploads: type: array description: Files to upload (images, audio, documents, etc.) items: type: object properties: type: type: string enum: [audio, url, file, 'file:rag', 'file:full'] description: The type of file upload example: file name: type: string description: The name of the file or resource example: 'image.png' data: type: string description: The base64-encoded data or URL for the resource example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG' mime: type: string description: The MIME type of the file or resource enum: [ 'image/png', 'image/jpeg', 'image/jpg', 'image/gif', 'image/webp', 'audio/mp4', 'audio/webm', 'audio/wav', 'audio/mpeg', 'audio/ogg', 'audio/aac' ] example: 'image/png' example: - type: 'file' name: 'example.png' data: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG' mime: 'image/png' humanInput: type: object description: Return human feedback and resume execution from a stopped checkpoint properties: type: type: string enum: [proceed, reject] description: Type of human input response example: 'reject' feedback: type: string description: Feedback to the last output example: 'Include more emoji' example: type: 'reject' feedback: 'Include more emoji' Tool: type: object properties: id: type: string format: uuid description: Unique identifier for the tool example: 'cfd531e0-82fc-11e9-bc42-526af7764f64' name: type: string description: Name of the tool example: 'date_time_tool' description: type: string description: Description of the tool example: 'A tool used for date and time operations' color: type: string description: Color associated with the tool example: '#FF5733' iconSrc: type: string nullable: true description: Source URL for the tool's icon example: 'https://example.com/icons/date.png' schema: type: string nullable: true description: JSON schema associated with the tool func: type: string nullable: true description: Functionality description or code associated with the tool createdDate: type: string format: date-time description: Date and time when the tool was created example: '2024-08-24T14:15:22Z' updatedDate: type: string format: date-time description: Date and time when the tool was last updated example: '2024-08-24T14:15:22Z' Variable: type: object properties: id: type: string format: uuid description: Unique identifier for the variable example: 'cfd531e0-82fc-11e9-bc42-526af7764f64' name: type: string description: Name of the variable example: 'API_KEY' value: type: string description: Value of the variable nullable: true example: 'my-secret-key' type: type: string description: Type of the variable (e.g., string, number) example: 'string' createdDate: type: string format: date-time description: Date and time when the variable was created example: '2024-08-24T14:15:22Z' updatedDate: type: string format: date-time description: Date and time when the variable was last updated example: '2024-08-24T14:15:22Z' VectorUpsertResponse: type: object properties: numAdded: type: number description: Number of vectors added example: 1 numDeleted: type: number description: Number of vectors deleted example: 1 numUpdated: type: number description: Number of vectors updated example: 1 numSkipped: type: number description: Number of vectors skipped (not added, deleted, or updated) example: 1 addedDocs: type: array items: $ref: '#/components/schemas/Document' Lead: type: object properties: id: type: string format: uuid description: Unique identifier for the lead example: 'cfd531e0-82fc-11e9-bc42-526af7764f64' name: type: string description: Name of the lead example: 'John Doe' email: type: string description: Email address of the lead example: 'john.doe@example.com' phone: type: string description: Phone number of the lead example: '+1234567890' chatflowid: type: string description: ID of the chatflow the lead is associated with example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02' chatId: type: string description: ID of the chat session the lead is associated with example: 'd7b0b5d8-85e6-4f2a-9c1f-9d9a0e2ebf6b' createdDate: type: string format: date-time description: Date and time when the lead was created example: '2024-08-24T14:15:22Z' UpsertHistoryResponse: type: object properties: id: type: string format: uuid description: Unique identifier for the upsert history record example: 'cfd531e0-82fc-11e9-bc42-526af7764f64' chatflowid: type: string description: ID of the chatflow associated with the upsert history example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02' result: type: string description: Result of the upsert operation, stored as a JSON string example: '{"status":"success","data":{"key":"value"}}' flowData: type: string description: Flow data associated with the upsert operation, stored as a JSON string example: '{"nodes":[],"edges":[]}' date: type: string format: date-time description: Date and time when the upsert operation was performed example: '2024-08-24T14:15:22Z' DocumentStore: type: object properties: id: type: string format: uuid description: Unique identifier for the document store name: type: string description: Name of the document store description: type: string description: Description of the document store loaders: type: string description: Loaders associated with the document store, stored as JSON string whereUsed: type: string description: Places where the document store is used, stored as JSON string status: type: string enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED] description: Status of the document store vectorStoreConfig: type: string description: Configuration for the vector store, stored as JSON string embeddingConfig: type: string description: Configuration for the embedding, stored as JSON string recordManagerConfig: type: string description: Configuration for the record manager, stored as JSON string createdDate: type: string format: date-time description: Date and time when the document store was created updatedDate: type: string format: date-time description: Date and time when the document store was last updated DocumentStoreFileChunk: type: object properties: id: type: string format: uuid description: Unique identifier for the file chunk docId: type: string format: uuid description: Document ID within the store storeId: type: string format: uuid description: Document Store ID chunkNo: type: integer description: Chunk number within the document pageContent: type: string description: Content of the chunk metadata: type: string description: Metadata associated with the chunk DocumentStoreLoaderForPreview: type: object properties: id: type: string format: uuid description: Unique identifier for the document store loader loaderId: type: string description: ID of the loader loaderName: type: string description: Name of the loader loaderConfig: type: object description: Configuration for the loader splitterId: type: string description: ID of the text splitter splitterName: type: string description: Name of the text splitter splitterConfig: type: object description: Configuration for the text splitter totalChunks: type: number description: Total number of chunks totalChars: type: number description: Total number of characters status: type: string enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED] description: Status of the document store loader storeId: type: string description: ID of the document store files: type: array items: $ref: '#/components/schemas/DocumentStoreLoaderFile' source: type: string description: Source of the document store loader credential: type: string description: Credential associated with the document store loader rehydrated: type: boolean description: Whether the loader has been rehydrated preview: type: boolean description: Whether the loader is in preview mode previewChunkCount: type: number description: Number of chunks in preview mode DocumentStoreLoaderFile: type: object properties: id: type: string format: uuid description: Unique identifier for the file name: type: string description: Name of the file mimePrefix: type: string description: MIME prefix of the file size: type: number description: Size of the file status: type: string enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED] description: Status of the file uploaded: type: string format: date-time description: Date and time when the file was uploaded DocumentStoreFileChunkPagedResponse: type: object properties: chunks: type: array items: $ref: '#/components/schemas/DocumentStoreFileChunk' count: type: number example: 1 file: $ref: '#/components/schemas/DocumentStoreLoaderForPreview' currentPage: type: number storeName: type: string description: type: string DocumentStoreLoaderForUpsert: type: object properties: docId: type: string format: uuid nullable: true description: Document ID within the store. If provided, existing configuration from the document will be used for the new document metadata: type: object nullable: true description: Metadata associated with the document example: { 'foo': 'bar' } replaceExisting: type: boolean nullable: true description: Whether to replace existing document loader with the new upserted chunks. However this does not delete the existing embeddings in the vector store createNewDocStore: type: boolean nullable: true description: Whether to create a new document store docStore: type: object nullable: true description: Only when createNewDocStore is true, pass in the new document store configuration properties: name: type: string example: plainText description: Name of the new document store to be created description: type: string example: plainText description: Description of the new document store to be created loader: type: object nullable: true properties: name: type: string example: plainText description: Name of the loader (camelCase) config: type: object description: Configuration for the loader splitter: type: object nullable: true properties: name: type: string example: recursiveCharacterTextSplitter description: Name of the text splitter (camelCase) config: type: object description: Configuration for the text splitter embedding: type: object nullable: true properties: name: type: string example: openAIEmbeddings description: Name of the embedding generator (camelCase) config: type: object description: Configuration for the embedding generator vectorStore: type: object nullable: true properties: name: type: string example: faiss description: Name of the vector store (camelCase) config: type: object description: Configuration for the vector store recordManager: type: object nullable: true properties: name: type: string example: postgresRecordManager description: Name of the record manager (camelCase) config: type: object description: Configuration for the record manager DocumentStoreLoaderForRefresh: type: object properties: items: type: array items: $ref: '#/components/schemas/DocumentStoreLoaderForUpsert' ChatMessageFeedback: type: object properties: id: type: string format: uuid description: Unique identifier for the feedback chatflowid: type: string format: uuid description: Identifier for the chat flow chatId: type: string description: Identifier for the chat messageId: type: string format: uuid description: Identifier for the message rating: type: string enum: [THUMBS_UP, THUMBS_DOWN] description: Rating for the message content: type: string description: Feedback content createdDate: type: string format: date-time description: Date and time when the feedback was created CreateAttachmentResponse: type: object properties: name: type: string description: Name of the file mimeType: type: string description: Mime type of the file size: type: string description: Size of the file content: type: string description: Content of the file in string format securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT # optional, for documentation purposes only