Overview
This document lists the MaiAgent platform's API endpoints for integration. Each endpoint includes descriptions of request and response fields, along with examples in Shell, JavaScript, Python, and PHP. For your first integration, complete the four steps below, then find the endpoint you need in the endpoint list.
Getting Started
1. Get an API Key
Organization members can create their own keys in the admin console by selecting the avatar in the upper-right corner → Account → API Keys. Administrators with “API Key management permissions” can also issue keys for specific members under Organization Settings → API Key Management. The full key is displayed only once, when it is created. See API Authentication for how to obtain the two types of keys and their permission scopes.
2. Base URL and Authentication Header
The SaaS API URL is https://api.maiagent.ai/api/v1/. For on-premises and private cloud deployments, replace it with your company's platform domain. Endpoint paths end with /. Include the key in the Authorization header of every request, using the Api-Key prefix (not Bearer):
Authorization: Api-Key <Your API key>See URLs and Version Prefixes for URL rules, and Common Conventions: Authentication for how keys are tied to members and permissions.
3. Make Your First Call
For example, list Agents (GET /api/v1/chatbots/):
curl https://api.maiagent.ai/api/v1/chatbots/ \
-H "Authorization: Api-Key YOUR_API_KEY"The response is paginated (count, next, previous, results), and all field names use camelCase. See Pagination and Field Format. If you receive 401, check the key's status and the header format. See Status Codes for the meaning of each status code.
4. Next Steps
Rules shared across endpoints, such as rate limits, error response formats, and upload size limits: Common API Conventions
Response status codes and error examples: Status Codes
Receive events after a handoff to a human agent: Human Handoff Webhook Events
The complete flow from creating a conversation to receiving a reply: Quick Start in the technical manual
Fields and examples for each endpoint: the endpoint list below, or the category pages under “API Endpoint Documentation” in the left sidebar
Integration Code Examples
For complete API use cases and code examples, visit the following GitHub repository:
C# examples
Python examples
API Categories and Endpoint List
The category pages provide request and response fields and examples in each language for every endpoint. Refer to Status Codes for the meaning of response status codes.
AI Assistants
POSTapi/v1/chatbots: Create a new AI assistantGETapi/v1/embedding-models: List Embedding ModelsGETapi/v1/reranker-models: List Reranker ModelsGETapi/v1/large-language-models: List large language modelsGETapi/v1/chatbots: Get the AI assistant listGETapi/v1/chatbots/{id}: Get a specific AI assistantPUTapi/v1/chatbots/{id}: Update an AI assistantPATCHapi/v1/chatbots/{id}: Partially update an AI assistantDELETEapi/v1/chatbots/{id}: Delete an AI assistantPOSTapi/v1/chatbots/{id}/duplicate: Duplicate an AI assistantPATCHapi/v1/chatbots/{id}/enable-evaluation: Enable or disable evaluationGETapi/v1/hooks: List the organization's HooksPOSTapi/v1/hooks: Create a Hook from a templateGETapi/v1/hooks/{id}: Get a specific HookPATCHapi/v1/hooks/{id}: Partially update a HookDELETEapi/v1/hooks/{id}: Delete a HookGETapi/v1/chatbots/{chatbotId}/hooks: List Hooks attached to an AI assistantPUTapi/v1/chatbots/{chatbotId}/hooks: Replace all Hooks attached to an AI assistantGETapi/v1/schedules: List schedulesPOSTapi/v1/schedules: Create a scheduleGETapi/v1/schedules/{id}: Get a specific schedulePATCHapi/v1/schedules/{id}: Partially update a scheduleDELETEapi/v1/schedules/{id}: Delete a schedulePOSTapi/v1/schedules/{id}/run-now: Run a schedule nowPOSTapi/v1/schedules/{id}/toggle: Enable or disable a schedule
Attachments and Files
POSTapi/v1/attachments-upload: Create a new attachment (integrated)POSTapi/v1/upload-presigned-url: Get a presigned URL for file uploadsPOSTapi/v1/attachments: Upload an attachment using a presigned URLGETapi/v1/attachments/{id}: Get a specific attachmentPOSTapi/v1/conversations/{conversationPk}/attachments: Create a conversation attachmentGETapi/v1/allowed-file-specs: Get allowed file specificationsGETapi/v1/file-library/conversation-attachments: List conversation attachmentsDELETEapi/v1/file-library/conversation-attachments/{id}: Delete a conversation attachment
Knowledge Bases (New Version)
POSTapi/v1/knowledge-bases: Create a knowledge baseGETapi/v1/knowledge-bases: List all knowledge basesGETapi/v1/knowledge-bases/{id}: Get details of a specific knowledge basePOSTapi/v1/knowledge-bases/{id}/search: Search the contents of a specific knowledge basePUTapi/v1/knowledge-bases/{id}: Update a knowledge basePATCHapi/v1/knowledge-bases/{id}: Partially update a knowledge baseDELETEapi/v1/knowledge-bases/{id}: Delete a knowledge baseGETapi/v1/knowledge-bases/{id}/check-rrf-availability: Check RRF availabilityGETapi/v1/knowledge-bases/{id}/export-labels-excel: Export labels to ExcelPOSTapi/v1/knowledge-bases/{id}/import-labels-excel: Import labels from ExcelGETapi/v1/knowledge-bases/{id}/export-metadata-excel: Export metadata to ExcelPOSTapi/v1/knowledge-bases/{id}/import-metadata-excel: Import metadata from ExcelPOSTapi/v1/knowledge-bases/{knowledgeBasePk}/labels: Create a new labelGETapi/v1/knowledge-bases/{knowledgeBasePk}/labels: List labels in a knowledge baseGETapi/v1/knowledge-bases/{knowledgeBasePk}/labels/{id}: Get details of a specific labelPUTapi/v1/knowledge-bases/{knowledgeBasePk}/labels/{id}: Update a labelPATCHapi/v1/knowledge-bases/{knowledgeBasePk}/labels/{id}: Partially update a labelDELETEapi/v1/knowledge-bases/{knowledgeBasePk}/labels/{id}: Delete a labelPOSTapi/v1/knowledge-bases/{knowledgeBasePk}/metadata-keys: Create a metadata fieldGETapi/v1/knowledge-bases/{knowledgeBasePk}/metadata-keys: List metadata fieldsGETapi/v1/knowledge-bases/{knowledgeBasePk}/metadata-keys/{id}: Get a specific metadata fieldPUTapi/v1/knowledge-bases/{knowledgeBasePk}/metadata-keys/{id}: Update a metadata fieldPOSTapi/v1/knowledge-bases/{knowledgeBasePk}/files: Upload a file to a knowledge basePATCHapi/v1/knowledge-bases/{knowledgeBasePk}/files/{id}/update-metadata: Update file metadataPOSTapi/v1/knowledge-bases/{knowledgeBasePk}/files/batch-delete: Delete files in bulkPATCHapi/v1/knowledge-bases/{knowledgeBasePk}/files/batch-reparse: Reparse files in bulkGETapi/v1/knowledge-bases/{knowledgeBasePk}/files: List files in a knowledge baseGETapi/v1/knowledge-bases/{knowledgeBasePk}/files/{id}: Get details of a specific fileGETapi/v1/knowledge-bases/{knowledgeBasePk}/files/{id}/latest-failed-reason: Get the latest reason for a file failureGETapi/v1/knowledge-bases/{knowledgeBasePk}/files/{id}/transcription: Get a file's transcriptionPUTapi/v1/knowledge-bases/{knowledgeBasePk}/files/{id}: Update file informationPATCHapi/v1/knowledge-bases/{knowledgeBasePk}/files/{id}: Partially update a fileDELETEapi/v1/knowledge-bases/{knowledgeBasePk}/files/{id}: Delete a filePOSTapi/v1/knowledge-bases/{knowledgeBasePk}/files/{knowledgeBaseFilePk}/translations: Create a file translationGETapi/v1/knowledge-bases/{knowledgeBasePk}/files/{knowledgeBaseFilePk}/translations: List file translationsGETapi/v1/knowledge-bases/{knowledgeBasePk}/files/{knowledgeBaseFilePk}/translations/{id}: Get a specific translationDELETEapi/v1/knowledge-bases/{knowledgeBasePk}/files/{knowledgeBaseFilePk}/translations/{id}: Delete a translationGETapi/v1/knowledge-bases/{knowledgeBasePk}/files/{knowledgeBaseFilePk}/translations/{id}/download: Download a translated fileGETapi/v1/knowledge-bases/{knowledgeBasePk}/documents: List knowledge base documentsPUTapi/v1/knowledge-bases/{knowledgeBasePk}/documents/{id}: Update a documentPATCHapi/v1/knowledge-bases/{knowledgeBasePk}/documents/{id}: Partially update a documentDELETEapi/v1/knowledge-bases/{knowledgeBasePk}/documents/{id}: Delete a documentPOSTapi/v1/knowledge-bases/{knowledgeBasePk}/faqs: Create a new FAQPATCHapi/v1/knowledge-bases/{knowledgeBasePk}/faqs/{id}/update-metadata: Update FAQ metadataPOSTapi/v1/knowledge-bases/{knowledgeBasePk}/faqs/batch-delete: Delete FAQs in bulkGETapi/v1/knowledge-bases/{knowledgeBasePk}/faqs: List all FAQs in a specific knowledge baseGETapi/v1/knowledge-bases/{knowledgeBasePk}/faqs/{id}: Get details of a specific FAQPUTapi/v1/knowledge-bases/{knowledgeBasePk}/faqs/{id}: Update an FAQPATCHapi/v1/knowledge-bases/{knowledgeBasePk}/faqs/{id}: Partially update an FAQDELETEapi/v1/knowledge-bases/{knowledgeBasePk}/faqs/{id}: Delete an FAQGETapi/v1/knowledge-bases/{id}/export-faq-excel: Export FAQs to Excel (or a blank template)POSTapi/v1/knowledge-bases/{id}/import-faq-excel: Import FAQs from Excel (asynchronously)GETapi/v1/knowledge-bases/{id}/faq-import-jobs: List FAQ import jobsGETapi/v1/knowledge-bases/{id}/faq-import-jobs/{jobId}: Get a specific FAQ import jobGETapi/v1/parsers: List parsersGETapi/v1/parsers/{id}: Get a specific parser
Knowledge Bases (Legacy Version)
GETapi/v1/chatbots/{id}/knowledge-bases-files: Get the list of an AI assistant's knowledge base filesGETapi/v1/chatbots/{id}/knowledge-bases-faqs: Get the list of an AI assistant's knowledge base FAQsGETapi/v1/chatbot-text-nodes: Get text nodes from all files of an AI assistantGETapi/v1/chatbot-text-nodes/{id}: Get text nodes from a specific file of an AI assistantPOSTapi/v1/chatbots/{id}/search: Test searchGETapi/v1/parsers/supported-file-types: List parsers that support each file type
Conversations and Messages
POSTapi/v1/chatbots/{chatbotId}/completions: Send a message (streaming)POSTapi/v1/messages: Send a message (create)POSTapi/v1/messages/outgoing: Send a proactive messagePOSTapi/v1/conversations: Create a new conversationGETapi/v1/messages: Get the message listGETapi/v1/messages/{id}: Get a specific messageGETapi/v1/conversations: Get the conversation listGETapi/v1/conversations/{id}: Get a specific conversationPATCHapi/v1/conversations/{id}/rename: Rename a conversationDELETEapi/v1/conversations/{id}: Delete a conversationPOSTapi/v1/conversations/{id}/stop-response: Stop an AI responsePOSTapi/v1/conversations/{id}/satisfaction: Submit conversation satisfactionGETapi/v1/conversations/{id}/events: List conversation eventsPATCHapi/v1/conversations/{id}/assign: Assign a conversation to a memberPATCHapi/v1/conversations/{id}/claim: Claim a conversationPATCHapi/v1/conversations/{id}/transfer: Transfer a conversation to another memberPATCHapi/v1/conversations/{id}/return-to-ai: Return to AI responsesGETapi/v1/conversations/{conversationId}/outputs: List conversation output filesPOSTapi/v1/conversations/{conversationPk}/share: Share a conversationPOSTapi/v1/conversations/{conversationPk}/share/quick: Quickly share a conversationGETapi/v1/shared-conversations: List shared conversationsGETapi/v1/shared-conversations/{id}: Get a specific shared conversationPATCHapi/v1/shared-conversations/{id}: Update a shared conversationDELETEapi/v1/shared-conversations/{id}: Delete a shared conversationPOSTapi/v1/shared-conversations/{id}/fork: Duplicate a shared conversationGETapi/v1/shared-conversations/my-shares: Get my share listPOSTapi/v1/messages/{messagePk}/feedback: Create message feedbackPUTapi/v1/messages/{messagePk}/feedback/{id}: Update message feedbackDELETEapi/v1/messages/{messagePk}/feedback/{id}: Delete message feedbackGETapi/v1/records: Get the conversation record listGETapi/v1/records/{id}: Get a specific conversation recordPOSTapi/v1/records/export-excel-requests: Create a conversation record export requestGETapi/v1/records/export-excel-requests/{exportId}: Get the conversation record export status
Chat Widget
POSTapi/v1/web-chats: Create a Web ChatGETapi/v1/web-chats: List Web ChatsGETapi/v1/web-chats/{id}: Get a specific Web ChatPUTapi/v1/web-chats/{id}: Update a Web ChatPATCHapi/v1/web-chats/{id}: Partially update a Web ChatPOSTapi/v1/web-chats/{id}/setup-contact-credentials: Set up contact credentialsPOSTapi/v1/web-chats/{id}/voice-agent/token: Get a voice assistant tokenPOSTapi/v1/web-chats/{webchatPk}/batch-qas: Upload a batch QA fileGETapi/v1/web-chats/{webchatPk}/batch-qas/{id}/export-excel: Export batch QA as ExcelGETapi/v1/chatbots/{chatbotPk}/llm-usage-statistics: Get LLM usage statisticsGETapi/v1/chatbots/{chatbotPk}/statistics: Get AI assistant statistics
Chat Platforms
GETapi/v1/inboxes: List chat platformsPOSTapi/v1/inboxes: Create a chat platformGETapi/v1/inboxes/{id}: Get a specific chat platformPUTapi/v1/inboxes/{id}: Update a chat platformPATCHapi/v1/inboxes/{id}: Partially update a chat platformDELETEapi/v1/inboxes/{id}: Delete a chat platformGETapi/v1/inboxes/{inboxPk}/webhooks: List Webhooks of a chat platformPOSTapi/v1/inboxes/{inboxPk}/webhooks: Create a WebhookGETapi/v1/inboxes/{inboxPk}/webhooks/{id}: Get a specific WebhookPUTapi/v1/inboxes/{inboxPk}/webhooks/{id}: Update a WebhookPATCHapi/v1/inboxes/{inboxPk}/webhooks/{id}: Partially update a WebhookDELETEapi/v1/inboxes/{inboxPk}/webhooks/{id}: Delete a Webhook
Organizations and Members
POSTapi/v1/auth/registration: Register an accountPOSTapi/v1/auth/password/change: Change passwordPOSTapi/v1/organizations: Create a new organizationPOSTapi/v1/organizations/{organizationPk}/members: Add a member to a specific organizationGETapi/v1/organizations: Get the organization listGETapi/v1/organizations/{id}: Get specific organization informationGETapi/v1/users/current: Get current user detailsGETapi/v1/permissions: Get current user permissionsGETapi/v1/organizations/{organizationPk}/members: Get the member list of a specific organizationGETapi/v1/organizations/{organizationPk}/members/{id}: Get specific member detailsPUTapi/v1/organizations/{id}: Update organization informationPUTapi/v1/users/current: Update current user detailsPOSTapi/v1/organizations/{organizationPk}/members/{id}/update-groups: Update a member's rolesGETapi/v1/organizations/{organizationPk}/api-keys: List organization API KeysPOSTapi/v1/organizations/{organizationPk}/api-keys: Issue an API Key for a memberGETapi/v1/organizations/{organizationPk}/api-keys/{id}: Get a specific API KeyPATCHapi/v1/organizations/{organizationPk}/api-keys/{id}: Update API Key settingsDELETEapi/v1/organizations/{organizationPk}/api-keys/{id}: Revoke an API KeyGETapi/v1/users/api-key-context: Look up the organization an API Key belongs toPOSTapi/v1/members/embed-tokens: Reissue a member embed tokenGETapi/v1/oauth/applications: List OAuth applicationsPOSTapi/v1/oauth/applications: Register an OAuth applicationGETapi/v1/oauth/applications/{id}: Get a specific OAuth applicationPATCHapi/v1/oauth/applications/{id}: Update an OAuth applicationDELETEapi/v1/oauth/applications/{id}: Delete an OAuth application and revoke its tokensPOSTapi/v1/oauth/applications/{id}/regenerate-secret: Regenerate the client secretGETapi/v1/oauth/authorized-applications: List OAuth applications I have authorizedDELETEapi/v1/oauth/authorized-applications/{id}: Revoke my authorization for an applicationDELETEapi/v1/organizations/{id}: Delete an organizationDELETEapi/v1/organizations/{organizationPk}/members/{id}: Delete a specific memberGETapi/v1/organizations/{organizationPk}/usage-statistics/members: Get member usage statisticsGETapi/v1/organizations/{organizationPk}/usage-statistics/members/summary: Get the member usage statistics summaryGETapi/v1/organizations/{organizationPk}/usage-statistics/chatbots: Get AI assistant usage statisticsGETapi/v1/organizations/{organizationPk}/usage-statistics/chatbots/summary: Get the AI assistant usage statistics summaryGETapi/v1/me/memories: List my memoriesPOSTapi/v1/me/memories: Create or update my memoryPATCHapi/v1/me/memories/{id}: Modify or re-enable my memoryDELETEapi/v1/me/memories/{id}: Delete my memory
Roles and Permissions
POSTapi/v1/organizations/{organizationPk}/groups: Create a rolePOSTapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-members/bulk-create: Bulk add role membersPOSTapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-chatbots/bulk-create: Bulk assign AI assistants to a rolePOSTapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-inboxes/bulk-create: Bulk assign inboxes to a rolePOSTapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-knowledge-bases/bulk-create: Bulk assign knowledge bases to a rolePOSTapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-databases/bulk-create: Bulk assign databases to a roleGETapi/v1/permissions: List permissionsGETapi/v1/organizations/{organizationPk}/groups: Get the role listGETapi/v1/organizations/{organizationPk}/groups/{id}: Get role detailsGETapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-members: Get the role member listGETapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-members/{id}: View a specific role memberGETapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-chatbots: Get the AI assistant list of a roleGETapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-inboxes: Get the inbox list of a roleGETapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-knowledge-bases: Get the knowledge base list of a roleGETapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-databases: Get the database list of a rolePUTapi/v1/organizations/{organizationPk}/groups/{id}: Update role permissionsPATCHapi/v1/organizations/{organizationPk}/groups/{id}: Partially update role permissionsDELETEapi/v1/organizations/{organizationPk}/groups/{id}: Delete a roleDELETEapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-members/{id}: Remove a role memberDELETEapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-chatbots/{id}: Remove an AI assistant from a roleDELETEapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-inboxes/{id}: Remove an inbox from a roleDELETEapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-knowledge-bases/{id}: Remove a knowledge base from a roleDELETEapi/v1/organizations/{organizationPk}/groups/{groupPk}/group-databases/{id}: Remove a database from a role
Contacts
GETapi/v1/contacts: List contactsPOSTapi/v1/contacts: Create a contactGETapi/v1/contacts/{id}: Get contact detailsPUTapi/v1/contacts/{id}: Update a contactPATCHapi/v1/contacts/{id}: Partially update a contactDELETEapi/v1/contacts/{id}: Delete a contactGETapi/v1/contacts/{id}/conversations: Get a contact's conversation listGETapi/v1/contacts/{id}/conversations/latest: Get a contact's latest conversationPOSTapi/v1/contacts/broadcast-message: Broadcast a messagePOSTapi/v1/contacts/{id}/api-credentials: Create an API credential for a contactPATCHapi/v1/contacts/{id}/api-credentials/{credentialId}: Update a contact's API credentialDELETEapi/v1/contacts/{id}/api-credentials/{credentialId}: Delete a contact's API credentialPOSTapi/v1/contacts/{id}/mcp-credentials: Create an MCP credential for a contactPATCHapi/v1/contacts/{id}/mcp-credentials/{credentialId}: Update a contact's MCP credentialDELETEapi/v1/contacts/{id}/mcp-credentials/{credentialId}: Delete a contact's MCP credentialGETapi/v1/contacts/bulk-import-template: Download the contact bulk import templatePOSTapi/v1/contacts/bulk-import: Bulk import contacts
Tools and Connectors
POSTapi/v1/tools: Create a toolGETapi/v1/tools: List toolsGETapi/v1/tools/{id}: Get a specific toolPUTapi/v1/tools/{id}: Update a toolPATCHapi/v1/tools/{id}: Partially update a toolDELETEapi/v1/tools/{id}: Delete a toolGETapi/v1/tools/available-tools: List available toolsPOSTapi/v1/connectors: Create a connectorGETapi/v1/connectors: List connectorsGETapi/v1/connectors/{id}: Get a specific connectorPUTapi/v1/connectors/{id}: Update a connectorPATCHapi/v1/connectors/{id}: Partially update a connectorDELETEapi/v1/connectors/{id}: Delete a connectorGETapi/v1/connectors/{id}/authorized-members: List connector authorized membersDELETEapi/v1/connectors/{id}/authorized-members/{memberId}: Remove a connector authorized memberGETapi/v1/mcp/registry: List MCP tool registry entriesGETapi/v1/mcp/registry/{id}: Get a specific MCP tool registry entryGETapi/v1/mcp/private-registry: List the organization's self-hosted MCP ServersPOSTapi/v1/mcp/private-registry: Add a self-hosted MCP ServerGETapi/v1/mcp/private-registry/{id}: Get a specific self-hosted MCP ServerPATCHapi/v1/mcp/private-registry/{id}: Partially update a self-hosted MCP ServerDELETEapi/v1/mcp/private-registry/{id}: Delete a self-hosted MCP ServerPOSTapi/v1/mcp/private-registry/test-connection: Test an MCP Server connectionGETapi/v1/tool-execution-records: Get the tool execution record listGETapi/v1/tool-execution-records/{id}: Get a specific tool execution recordGETapi/v1/tool-execution-records/chatbots: Get AI assistant filter options for execution recordsGETapi/v1/tool-execution-records/tools: Get tool filter options for execution recordsGETapi/v1/tools/{toolPk}/tool-execution-records: Get the execution record list of a specific toolGETapi/v1/tools/{toolPk}/tool-execution-records/{id}: Get a specific execution record of a specific toolGETapi/v1/tools/{toolPk}/tool-execution-records/chatbots: Get AI assistant filter options for a specific tool's execution recordsGETapi/v1/tools/{toolPk}/tool-execution-records/tools: Get tool filter options for a specific tool's execution records
Skills
POSTapi/v1/skills/upload: Upload a skillPOSTapi/v1/skills: Create a skillGETapi/v1/skills: List skillsGETapi/v1/skills/{id}: Retrieve a specific skillPUTapi/v1/skills/{id}: Update a skillPATCHapi/v1/skills/{id}: Partially update a skillDELETEapi/v1/skills/{id}: Delete a skillGETapi/v1/skills/{id}/export: Export a skillGETapi/v1/skills/{id}/package-structure: Browse the skill package directory structurePOSTapi/v1/skills/{id}/reupload: Reupload a skillGETapi/v1/skills/{skillPk}/resources: List skill resourcesPOSTapi/v1/skills/{skillPk}/resources: Upload a skill resourceDELETEapi/v1/skills/{skillPk}/resources/{id}: Delete a skill resourceGETapi/v1/skills/{skillPk}/resources/{id}/download: Download a skill resource
Databases
POSTapi/v1/sql-databases: Create a SQL database connectionGETapi/v1/sql-databases: List SQL databasesGETapi/v1/sql-databases/{id}: Retrieve a specific SQL databasePUTapi/v1/sql-databases/{id}: Update a SQL databasePATCHapi/v1/sql-databases/{id}: Partially update a SQL databaseDELETEapi/v1/sql-databases/{id}: Delete a SQL databasePOSTapi/v1/sql-databases/{id}/test-connection: Test a database connectionPOSTapi/v1/sql-databases/{id}/upload-files: Upload files to a databasePOSTapi/v1/sql-databases/batch-delete: Batch delete SQL databasesGETapi/v1/sql-databases/{sqlDatabasePk}/tables: List tablesPOSTapi/v1/sql-databases/{sqlDatabasePk}/tables: Create a tableGETapi/v1/sql-databases/{sqlDatabasePk}/tables/{id}: Retrieve a specific tablePUTapi/v1/sql-databases/{sqlDatabasePk}/tables/{id}: Update a tablePATCHapi/v1/sql-databases/{sqlDatabasePk}/tables/{id}: Partially update a tableDELETEapi/v1/sql-databases/{sqlDatabasePk}/tables/{id}: Delete a tablePOSTapi/v1/sql-databases/{sqlDatabasePk}/tables/batch-delete: Batch delete tablesGETapi/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns: List columnsGETapi/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/{id}: Retrieve a specific columnPUTapi/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/{id}: Update a columnPATCHapi/v1/sql-databases/{sqlDatabasePk}/tables/{tablePk}/columns/{id}: Partially update a columnPOSTapi/v1/database-connection/test: Test a database connection (general)GETapi/v1/database-examples: List example database connection stringsGETapi/v1/database-examples/{id}: Retrieve a specific example connection stringGETapi/v1/chatbots/{chatbotPk}/databases: List database configurations for an AI assistantPOSTapi/v1/chatbots/{chatbotPk}/databases: Add a database configuration for an AI assistantGETapi/v1/chatbots/{chatbotPk}/databases/{id}: Retrieve a specific database configurationPUTapi/v1/chatbots/{chatbotPk}/databases/{id}: Update a database configurationPATCHapi/v1/chatbots/{chatbotPk}/databases/{id}: Partially update a database configurationDELETEapi/v1/chatbots/{chatbotPk}/databases/{id}: Delete a database configuration
Evaluations and Test Datasets
GETapi/v1/dataset: List test datasetsPOSTapi/v1/dataset: Create an empty test datasetPOSTapi/v1/dataset/upload: Upload a CSV or Excel file to create a test datasetPOSTapi/v1/dataset/generate-from-file: Generate a test dataset from a knowledge base fileGETapi/v1/dataset/knowledge-base-files: List knowledge base files available for generating test casesGETapi/v1/dataset/{id}: Retrieve a specific test datasetGETapi/v1/dataset/{id}/details: Retrieve a test dataset and its single-turn test casesPUTapi/v1/dataset/{id}: Update a test datasetPATCHapi/v1/dataset/{id}: Partially update a test datasetDELETEapi/v1/dataset/{id}: Delete a test datasetGETapi/v1/test-case: List single-turn test casesPOSTapi/v1/test-case: Create a single-turn test casePOSTapi/v1/test-case/upload: Upload a CSV or Excel file to add test casesPOSTapi/v1/test-case/generate-from-file: Generate single-turn test cases from a knowledge base fileGETapi/v1/test-case/generation-jobs: List test case generation jobsGETapi/v1/test-case/generation-jobs/{jobId}: Check the progress of a test case generation jobPUTapi/v1/test-case/{id}: Update a single-turn test casePATCHapi/v1/test-case/{id}: Partially update a single-turn test caseDELETEapi/v1/test-case/{id}: Delete a single-turn test casePOSTapi/v1/test-case/bulk-delete: Batch delete single-turn test casesGETapi/v1/multi-turn-test-case: List multi-turn test casesPOSTapi/v1/multi-turn-test-case: Create a multi-turn test casePOSTapi/v1/multi-turn-test-case/generate-from-file: Generate multi-turn test cases from a knowledge base fileGETapi/v1/multi-turn-test-case/{id}: Retrieve a specific multi-turn test casePUTapi/v1/multi-turn-test-case/{id}: Update a multi-turn test casePATCHapi/v1/multi-turn-test-case/{id}: Partially update a multi-turn test caseDELETEapi/v1/multi-turn-test-case/{id}: Delete a multi-turn test caseGETapi/v1/evaluations/evaluation-llms: List available evaluation modelsPOSTapi/v1/evaluations/evaluate: Run a single-turn evaluationPOSTapi/v1/evaluations/multi-turn-evaluate: Run a multi-turn evaluationGETapi/v1/evaluations: List evaluationsGETapi/v1/evaluations/{id}: Retrieve evaluation resultsGETapi/v1/evaluations/{id}/details: Retrieve per-question results for a single-turn evaluationGETapi/v1/evaluations/{id}/multi-turn-results: Retrieve per-conversation results for a multi-turn evaluationPOSTapi/v1/evaluations/{id}/cancel: Cancel a running evaluationPOSTapi/v1/evaluations/{id}/resume: Resume an unfinished evaluationPOSTapi/v1/evaluations/{id}/export: Export an evaluation reportGETapi/v1/evaluations/{id}/export-status: Check the latest export statusGETapi/v1/evaluations/{id}/exports: List export recordsPATCHapi/v1/evaluations/{id}: Edit an evaluation's name and descriptionDELETEapi/v1/evaluations/{id}: Delete an evaluation
Credit
GETapi/v1/credit/wallets: Check the Credit balanceGETapi/v1/credit/wallets/{id}: Retrieve wallet detailsGETapi/v1/credit/wallets/{id}/balance: Retrieve the wallet balanceGETapi/v1/credit/wallets/{id}/expiring-credits: Check credits that are about to expireGETapi/v1/credit/wallets/{id}/topup-history: Check top-up recordsGETapi/v1/credit/transactions: List usage detailsGETapi/v1/credit/transactions/{id}: Retrieve a single usage entryGETapi/v1/credit/transactions/history: Check usage historyGETapi/v1/credit/transactions/history-summary: Check total usageGETapi/v1/organizations/{organizationPk}/usage-statistics/credit-categories: Check Credit usage by categoryGETapi/v1/organizations/{organizationPk}/usage-statistics/credit-categories/{id}: Check Credit usage for a specific categoryGETapi/v1/organizations/{organizationPk}/usage-statistics/credit-categories/{itemPk}/members: Check members' usage for a billable itemGETapi/v1/organizations/{organizationPk}/usage-statistics/credit-categories/{itemPk}/members/{id}: Check a specific member's usage for a billable itemGETapi/v1/organizations/{organizationPk}/credit-quota-members: List current member quotasGETapi/v1/organizations/{organizationPk}/credit-quota-groups: List current role quotasGETapi/v1/organizations/{organizationPk}/credit-quota-inboxes: List current conversation platform quotasGETapi/v1/organizations/{organizationPk}/members/{memberPk}/credit-quotas: List a member's quota settingsGETapi/v1/organizations/{organizationPk}/members/{memberPk}/credit-quotas/{id}: Retrieve a specific quota setting for a memberPOSTapi/v1/organizations/{organizationPk}/members/{memberPk}/credit-quotas: Set a quota for a memberPATCHapi/v1/organizations/{organizationPk}/members/{memberPk}/credit-quotas/{id}: Update a member's quota settingsDELETEapi/v1/organizations/{organizationPk}/members/{memberPk}/credit-quotas/{id}: Deactivate a member's quota settingsGETapi/v1/organizations/{organizationPk}/groups/{groupPk}/credit-quotas: List a role's quota settingsGETapi/v1/organizations/{organizationPk}/groups/{groupPk}/credit-quotas/{id}: Retrieve a specific quota setting for a rolePOSTapi/v1/organizations/{organizationPk}/groups/{groupPk}/credit-quotas: Set a quota for a rolePATCHapi/v1/organizations/{organizationPk}/groups/{groupPk}/credit-quotas/{id}: Update a role's quota settingsDELETEapi/v1/organizations/{organizationPk}/groups/{groupPk}/credit-quotas/{id}: Deactivate a role's quota settingsPATCHapi/v1/organizations/{organizationPk}/credit-quota-groups/{id}/credit-quota-required: Set whether a role requires a quotaGETapi/v1/organizations/{organizationPk}/groups/{id}/credit-quota-stats: Check quota statistics for role membersPOSTapi/v1/organizations/{organizationPk}/groups/{id}/batch-distribute-credit-quota: Batch distribute quotas by rolePOSTapi/v1/organizations/{organizationPk}/groups/{id}/batch-deactivate-credit-quota: Batch deactivate quotas by roleGETapi/v1/inboxes/{inboxPk}/credit-quotas: List a conversation platform's quota settingsGETapi/v1/inboxes/{inboxPk}/credit-quotas/{id}: Retrieve a specific quota setting for a conversation platformPOSTapi/v1/inboxes/{inboxPk}/credit-quotas: Set a quota for a conversation platformPATCHapi/v1/inboxes/{inboxPk}/credit-quotas/{id}: Update a conversation platform's quota settingsDELETEapi/v1/inboxes/{inboxPk}/credit-quotas/{id}: Deactivate a conversation platform's quota settingsPATCHapi/v1/organizations/{organizationPk}/credit-quota-inboxes/{id}/credit-quota-required: Set whether a conversation platform requires a quotaGETapi/v1/organizations/{organizationPk}/me/credit-quota: Check your own quotaGETapi/v1/organizations/{organizationPk}/me/group-credit-quotas: Check quotas for your rolesGETapi/v1/credit/pricing-rules: List pricing rulesGETapi/v1/credit/pricing-rules/{id}: Retrieve a specific pricing ruleGETapi/v1/credit/items: List billable itemsGETapi/v1/credit/items/{id}: Retrieve a specific billable item
AI Gateway
GETapi/v1/models: List available modelsPOSTapi/v1/chat/completions: Chat completions (supports streaming and tool calls)POSTapi/v1/embeddings: Generate text embeddings
SCIM
GETapi/v1/scim/{orgUuid}/ServiceProviderConfig: Retrieve service provider configuration (for IdP discovery)GETapi/v1/scim/{orgUuid}/Users: List or query members (supportsfilter,startIndex, andcount)POSTapi/v1/scim/{orgUuid}/Users: Create a memberGETapi/v1/scim/{orgUuid}/Users/{userId}: Retrieve a specific memberPUTapi/v1/scim/{orgUuid}/Users/{userId}: Replace an entire member recordPATCHapi/v1/scim/{orgUuid}/Users/{userId}: Partially update a member (deactivate, rename, or change externalId)DELETEapi/v1/scim/{orgUuid}/Users/{userId}: Deactivate a memberGETapi/v1/scim/{orgUuid}/Groups: List groups (corresponding to MaiAgent roles)POSTapi/v1/scim/{orgUuid}/Groups: Create a groupGETapi/v1/scim/{orgUuid}/Groups/{groupId}: Retrieve a specific groupPUTapi/v1/scim/{orgUuid}/Groups/{groupId}: Replace an entire group recordPATCHapi/v1/scim/{orgUuid}/Groups/{groupId}: Partially update a group (rename, add or remove members)DELETEapi/v1/scim/{orgUuid}/Groups/{groupId}: Delete a group
Meeting Records
GETapi/v1/meeting-records: List meeting recordsPOSTapi/v1/meeting-records: Create a meeting recordGETapi/v1/meeting-records/{id}: Retrieve a specific meeting recordPATCHapi/v1/meeting-records/{id}: Partially update a meeting recordDELETEapi/v1/meeting-records/{id}: Delete a meeting recordPOSTapi/v1/meeting-records/import-audio: Import an audio file and start transcriptionGETapi/v1/meeting-records/{id}/transcript: Retrieve the meeting transcript (JSON)GETapi/v1/meeting-records/{meetingRecordPk}/summaries: List meeting summariesPOSTapi/v1/meeting-records/{meetingRecordPk}/summaries/generate: Generate a meeting summaryGETapi/v1/meeting-records/{meetingRecordPk}/summaries/{id}: Retrieve a specific meeting summaryPOSTapi/v1/meeting-records/{id}/upload-transcript: Upload the transcript to a knowledge baseGETapi/v1/meeting-records/{id}/download-srt: Download the SRT subtitle fileGETapi/v1/meeting-records/{id}/download-mp3: Download the MP3 audio file
Last updated
Was this helpful?