Skip to main content

API Endpoints Reference

Overview

This document provides a comprehensive reference of all API endpoints in the Kai platform, including their access control settings and rate limit configurations. This serves as both implementation documentation and a reference for administrators.

Important Note: All endpoint access settings are fully configurable through the Network Access Control panel in the admin dashboard. No endpoints have hardcoded access restrictions.

Access Control Configuration

Each API endpoint can be configured with the following access settings:

SettingDescription
Internal AccessWhen enabled, the endpoint can be accessed from defined internal networks
External AccessWhen enabled, the endpoint can be accessed from external networks
Rate LimitPer-endpoint rate limits based on source network

Rate Limit Configuration

Rate limits can be configured for different networks:

  • Default Rate Limit: Applied to all requests from undefined networks (default: 30 req/min)
  • Custom Rate Limits: Specific limits for particular IP addresses or CIDR ranges
  • Endpoint Category Multipliers: Different endpoint categories have different rate limit multipliers

Authentication APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/auth/loginPOSTUser loginInternal & External20 req/min
/api/auth/registerPOSTUser registrationInternal & External10 req/min
/api/auth/refresh-tokenPOSTRefresh authentication tokenInternal & External60 req/min
/api/auth/forgot-passwordPOSTRequest password resetInternal & External5 req/min
/api/auth/reset-passwordPUTReset password with tokenInternal & External5 req/min
/api/auth/verify-emailPOSTVerify user email addressInternal & External5 req/min
/api/auth/change-passwordPUTChange user passwordInternal & External5 req/min

User Management APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/users/profileGETGet user profileInternal & External30 req/min
/api/users/profilePUTUpdate user profileInternal & External10 req/min
/api/users/preferencesGETGet user preferencesInternal & External30 req/min
/api/users/preferencesPUTUpdate user preferencesInternal & External10 req/min
/api/users/:userIdGETGet user by IDInternal Only30 req/min
/api/usersGETList all usersInternal Only20 req/min
/api/users/historyGETGet user activity historyInternal & External20 req/min

Material APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/materialsGETList materialsInternal & External60 req/min
/api/materials/:idGETGet material by IDInternal & External60 req/min
/api/materialsPOSTCreate new materialInternal & External30 req/min
/api/materials/:idPUTUpdate materialInternal & External20 req/min
/api/materials/:idDELETEDelete materialInternal Only10 req/min
/api/materials/searchPOSTSearch materialsInternal & External60 req/min
/api/materials/batch-importPOSTImport multiple materialsInternal Only5 req/min
/api/materials/metadataGETGet material metadata fieldsInternal & External30 req/min

Recognition APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/recognitionPOSTRecognize materialInternal & External20 req/min
/api/recognition/batchPOSTBatch recognitionInternal & External5 req/min
/api/recognition/historyGETGet recognition historyInternal & External30 req/min
/api/recognition/feedbackPOSTSubmit recognition feedbackInternal & External20 req/min
/api/recognition/confidenceGETGet recognition confidence scoresInternal Only30 req/min
/api/recognition/retrainPOSTStart recognition model retrainingInternal Only1 req/10min

Search APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/searchGETUnified searchInternal & External60 req/min
/api/search/vectorPOSTVector similarity searchInternal & External30 req/min
/api/search/hybridPOSTHybrid (text + vector) searchInternal & External30 req/min
/api/search/autocompleteGETSearch autocomplete suggestionsInternal & External100 req/min
/api/search/configGETGet search configurationInternal & External10 req/min
/api/search/configPUTUpdate search configurationInternal Only5 req/min
/api/search/reindexPOSTRebuild search indexInternal Only1 req/hour

Analytics APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/analytics/eventsPOSTTrack analytics eventInternal & External100 req/min
/api/analytics/eventsGETGet analytics eventsInternal Only30 req/min
/api/analytics/trendsGETGet analytics trendsInternal Only20 req/min
/api/analytics/statsGETGet analytics statisticsInternal Only20 req/min
/api/analytics/dataDELETEClear analytics dataInternal Only1 req/day
/api/analytics/dashboardGETGet analytics dashboard dataInternal Only20 req/min
/api/analytics/exportPOSTExport analytics dataInternal Only3 req/hour

ML Service APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/ml/modelsGETList ML modelsInternal Only10 req/min
/api/ml/models/:idGETGet ML model detailsInternal Only10 req/min
/api/ml/training/startPOSTStart model trainingInternal Only3 req/hour
/api/ml/training/:jobId/statusGETGet training job statusInternal Only30 req/min
/api/ml/training/:jobId/stopPOSTStop training jobInternal Only5 req/min
/api/ml/inferencePOSTRun model inferenceInternal & External30 req/min
/api/ml/embeddingsPOSTGenerate embeddingsInternal & External30 req/min

Dataset APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/admin/datasetsGETList all datasetsInternal Only30 req/min
/api/admin/datasets/:idGETGet dataset detailsInternal Only30 req/min
/api/admin/datasets/upload/zipPOSTUpload ZIP datasetInternal Only5 req/min
/api/admin/datasets/upload/csvPOSTUpload CSV datasetInternal Only5 req/min
/api/admin/datasets/import/premadePOSTImport premade datasetInternal Only3 req/hour
/api/admin/datasets/:id/splitPOSTSplit dataset into train/validation/test setsInternal Only10 req/min
/api/admin/datasets/:id/trainPOSTStart training job for datasetInternal Only3 req/hour
/api/admin/datasets/:id/qualityGETGet dataset quality metricsInternal Only20 req/min
/api/admin/datasets/:idDELETEDelete datasetInternal Only5 req/min
/api/admin/datasets/:id/classesGETList dataset classesInternal Only30 req/min
/api/admin/datasets/:id/imagesGETList dataset imagesInternal Only30 req/min
/api/admin/training/:jobId/statusGETGet training job statusInternal Only30 req/min
/api/admin/training/:jobId/stopPOSTStop training jobInternal Only5 req/min
/api/admin/training/:jobId/metricsGETGet training job metricsInternal Only30 req/min

PDF Processing APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/pdf/extractPOSTExtract text from PDFInternal & External10 req/min
/api/pdf/processPOSTProcess PDF documentInternal & External5 req/min
/api/pdf/analyzePOSTAnalyze PDF structureInternal & External5 req/min
/api/pdf/ocrPOSTRun OCR on PDFInternal & External3 req/min
/api/pdf/queueGETGet PDF processing queue statusInternal Only30 req/min
/api/pdf/jobs/:jobIdGETGet PDF job statusInternal & External30 req/min

3D Designer APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/3d-designer/scenePOSTCreate new 3D sceneInternal & External10 req/min
/api/3d-designer/scene/:idGETGet 3D sceneInternal & External30 req/min
/api/3d-designer/scene/:idPUTUpdate 3D sceneInternal & External10 req/min
/api/3d-designer/scene/:idDELETEDelete 3D sceneInternal & External5 req/min
/api/3d-designer/renderPOSTRender 3D sceneInternal & External5 req/min
/api/3d-designer/exportPOSTExport 3D sceneInternal & External5 req/min

Agent APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/agents/chatPOSTSend message to agentInternal & External30 req/min
/api/agents/sessionsGETList agent sessionsInternal & External30 req/min
/api/agents/sessions/:idGETGet agent sessionInternal & External30 req/min
/api/agents/sessions/:idDELETEDelete agent sessionInternal & External10 req/min
/api/agents/feedbackPOSTSubmit agent feedbackInternal & External10 req/min
/api/agents/configGETGet agent configurationInternal Only10 req/min
/api/agents/configPUTUpdate agent configurationInternal Only5 req/min

Admin APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/admin/usersGETList all users (admin)Internal Only20 req/min
/api/admin/users/:idPUTUpdate user (admin)Internal Only10 req/min
/api/admin/users/:idDELETEDelete user (admin)Internal Only5 req/min
/api/admin/settingsGETGet system settingsInternal Only10 req/min
/api/admin/settingsPUTUpdate system settingsInternal Only5 req/min
/api/admin/metadata-fieldsGETGet metadata fieldsInternal Only10 req/min
/api/admin/metadata-fieldsPOSTCreate metadata fieldInternal Only5 req/min
/api/admin/metadata-fields/:idPUTUpdate metadata fieldInternal Only5 req/min
/api/admin/metadata-fields/:idDELETEDelete metadata fieldInternal Only5 req/min
/api/admin/jobsGETList background jobsInternal Only20 req/min
/api/admin/jobs/:idGETGet job detailsInternal Only30 req/min
/api/admin/jobs/:idDELETECancel jobInternal Only10 req/min

Network Access Control APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/admin/network/internal-networksGETList internal networksInternal Only10 req/min
/api/admin/network/internal-networksPOSTAdd internal networkInternal Only5 req/min
/api/admin/network/internal-networks/:idDELETERemove internal networkInternal Only5 req/min
/api/admin/network/endpointsGETList endpoint permissionsInternal Only10 req/min
/api/admin/network/endpoints/:idPUTUpdate endpoint permissionsInternal Only5 req/min
/api/admin/network/rate-limitsGETGet rate limit settingsInternal Only10 req/min
/api/admin/network/rate-limitsPUTUpdate default rate limitInternal Only5 req/min
/api/admin/network/rate-limits/customGETList custom rate limitsInternal Only10 req/min
/api/admin/network/rate-limits/customPOSTAdd custom rate limitInternal Only5 req/min
/api/admin/network/rate-limits/custom/:idDELETERemove custom rate limitInternal Only5 req/min

Subscription APIs

EndpointMethodDescriptionDefault AccessDefault Rate Limit
/api/subscription/plansGETList subscription plansInternal & External30 req/min
/api/subscription/subscribePOSTSubscribe to planInternal & External10 req/min
/api/subscription/statusGETGet subscription statusInternal & External30 req/min
/api/subscription/cancelPOSTCancel subscriptionInternal & External10 req/min
/api/subscription/upgradePOSTUpgrade subscriptionInternal & External10 req/min
/api/subscription/invoicesGETList subscription invoicesInternal & External20 req/min
/api/admin/subscription/plansGETList all plans (admin)Internal Only10 req/min
/api/admin/subscription/plansPOSTCreate plan (admin)Internal Only5 req/min
/api/admin/subscription/plans/:idPUTUpdate plan (admin)Internal Only5 req/min
/api/admin/subscription/plans/:idDELETEDelete plan (admin)Internal Only5 req/min

How to Configure Access Settings

Access settings for each endpoint can be configured through the admin panel under SettingsNetwork Access:

  1. Navigate to the API Endpoint Access Control section
  2. Use the search box to find specific endpoints
  3. Enable or disable internal/external access using the checkboxes
  4. Save your changes

How to Configure Rate Limits

Rate limits can be configured:

  1. Default Rate Limit: Set the default requests per minute allowed from undefined networks
  2. Custom Rate Limits: Define specific rate limits for particular IP addresses or CIDR ranges
  3. Per-endpoint limits: Contact development team if specific endpoints need custom rate limits

Implementation Notes

All endpoints in this document have the default recommended access settings that can be modified through the admin interface. The system provides a full audit trail of access changes for security monitoring purposes.