MATIH Platform is in active MVP development. Documentation reflects current implementation status.
20. Appendices & Reference
Complete API Reference

Complete API Reference

This section provides a comprehensive reference for every REST API endpoint exposed by the MATIH Enterprise Platform. Endpoints are organized by service, grouped into Control Plane and Data Plane categories. Each endpoint listing includes the HTTP method, path, description, authentication requirements, and example request/response payloads.


API Conventions

All MATIH APIs follow consistent conventions across every service.

Base URL Pattern

# Control Plane services (via API Gateway)
https://{domain}/api/v1/{service-prefix}/{resource}

# Data Plane services (via tenant ingress)
https://{tenant}.{domain}/api/v1/{resource}

# Direct service access (within cluster)
http://{service}.{namespace}.svc.cluster.local:{port}/api/v1/{resource}

Authentication

Every API request (except health checks and public endpoints) requires a valid JWT bearer token in the Authorization header:

Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...

Tokens are obtained from the IAM Service authentication endpoints and contain tenant context, user identity, and role claims.

Common Headers

HeaderRequiredDescription
AuthorizationYesBearer token from IAM Service
X-Tenant-IDConditionalTenant identifier; required for data plane APIs
X-Request-IDNoClient-generated correlation ID for tracing
Content-TypeYes (POST/PUT/PATCH)Always application/json unless uploading files
AcceptNoDefaults to application/json
X-Idempotency-KeyNoIdempotency key for mutating operations

Pagination

All list endpoints support cursor-based or offset-based pagination:

{
  "data": [...],
  "pagination": {
    "page": 1,
    "size": 20,
    "total": 145,
    "totalPages": 8,
    "hasNext": true,
    "hasPrevious": false
  }
}

Query parameters: ?page=1&size=20&sort=created_at&order=desc

Standard Error Response

{
  "error": {
    "code": "MATIH-IAM-1001",
    "message": "Authentication token has expired",
    "details": "Token expiry: 2026-02-12T10:00:00Z, Current time: 2026-02-12T12:30:00Z",
    "timestamp": "2026-02-12T12:30:00.000Z",
    "requestId": "req-abc123",
    "path": "/api/v1/users/me"
  }
}

Rate Limiting

All endpoints are subject to rate limiting. Rate limit information is returned in response headers:

HeaderDescription
X-RateLimit-LimitMaximum requests per window
X-RateLimit-RemainingRemaining requests in current window
X-RateLimit-ResetEpoch timestamp when the window resets
Retry-AfterSeconds to wait (returned with 429 responses)

Control Plane Services

IAM Service (Port 8081)

The Identity and Access Management Service handles authentication, authorization, user management, multi-factor authentication, OAuth2 provider integration, and SCIM provisioning.

Authentication Endpoints

MethodPathDescriptionAuth
POST/api/v1/auth/loginAuthenticate with email and passwordPublic
POST/api/v1/auth/refreshRefresh an expired access tokenRefresh Token
POST/api/v1/auth/logoutInvalidate the current sessionBearer
POST/api/v1/auth/forgot-passwordInitiate password reset flowPublic
POST/api/v1/auth/reset-passwordComplete password reset with tokenPublic
POST/api/v1/auth/change-passwordChange password for authenticated userBearer
POST/api/v1/auth/verify-emailVerify email address with tokenPublic
GET/api/v1/auth/sessionGet current session informationBearer

Login Request Example:

POST /api/v1/auth/login
Content-Type: application/json
 
{
  "email": "admin@acme.matih.ai",
  "password": "********",
  "tenantSlug": "acme"
}

Login Response Example:

{
  "accessToken": "eyJhbGciOiJSUzI1NiIs...",
  "refreshToken": "eyJhbGciOiJSUzI1NiIs...",
  "tokenType": "Bearer",
  "expiresIn": 3600,
  "user": {
    "id": "usr-a1b2c3d4",
    "email": "admin@acme.matih.ai",
    "firstName": "Jane",
    "lastName": "Admin",
    "roles": ["TENANT_ADMIN", "DATA_ENGINEER"],
    "tenantId": "tnt-xyz789"
  }
}

Multi-Factor Authentication Endpoints

MethodPathDescriptionAuth
POST/api/v1/auth/mfa/setupInitialize MFA setup (returns QR code)Bearer
POST/api/v1/auth/mfa/verifyVerify MFA code during setupBearer
POST/api/v1/auth/mfa/challengeSubmit MFA challenge during loginMFA Token
DELETE/api/v1/auth/mfa/disableDisable MFA for current userBearer + MFA
GET/api/v1/auth/mfa/recovery-codesGenerate recovery codesBearer + MFA
POST/api/v1/auth/mfa/recoveryAuthenticate with recovery codeMFA Token

OAuth2 / SSO Endpoints

MethodPathDescriptionAuth
GET/api/v1/auth/oauth2/authorize/{provider}Initiate OAuth2 flow (Google, Azure AD, Okta)Public
POST/api/v1/auth/oauth2/callback/{provider}Handle OAuth2 callbackPublic
GET/api/v1/auth/saml/metadataSAML SP metadata documentPublic
POST/api/v1/auth/saml/acsSAML Assertion Consumer ServicePublic
GET/api/v1/auth/oauth2/providersList configured OAuth2 providersBearer (Admin)
POST/api/v1/auth/oauth2/providersRegister a new OAuth2 providerBearer (Admin)
PUT/api/v1/auth/oauth2/providers/{id}Update an OAuth2 providerBearer (Admin)
DELETE/api/v1/auth/oauth2/providers/{id}Remove an OAuth2 providerBearer (Admin)

SCIM 2.0 Provisioning Endpoints

MethodPathDescriptionAuth
GET/api/v1/scim/v2/UsersList SCIM usersSCIM Bearer
GET/api/v1/scim/v2/Users/{id}Get SCIM user by IDSCIM Bearer
POST/api/v1/scim/v2/UsersCreate a SCIM userSCIM Bearer
PUT/api/v1/scim/v2/Users/{id}Replace a SCIM userSCIM Bearer
PATCH/api/v1/scim/v2/Users/{id}Partial update of a SCIM userSCIM Bearer
DELETE/api/v1/scim/v2/Users/{id}Deactivate a SCIM userSCIM Bearer
GET/api/v1/scim/v2/GroupsList SCIM groupsSCIM Bearer
POST/api/v1/scim/v2/GroupsCreate a SCIM groupSCIM Bearer
PATCH/api/v1/scim/v2/Groups/{id}Update SCIM group membershipSCIM Bearer
GET/api/v1/scim/v2/ServiceProviderConfigSCIM service provider configurationPublic
GET/api/v1/scim/v2/SchemasList supported SCIM schemasPublic

User Management Endpoints

MethodPathDescriptionAuth
GET/api/v1/usersList users in tenantBearer (Admin)
GET/api/v1/users/{id}Get user by IDBearer
POST/api/v1/usersCreate a new userBearer (Admin)
PUT/api/v1/users/{id}Update user profileBearer
DELETE/api/v1/users/{id}Deactivate userBearer (Admin)
GET/api/v1/users/meGet current user profileBearer
PUT/api/v1/users/meUpdate current user profileBearer
GET/api/v1/users/{id}/rolesList roles assigned to userBearer (Admin)
POST/api/v1/users/{id}/rolesAssign roles to userBearer (Admin)
DELETE/api/v1/users/{id}/roles/{roleId}Remove role from userBearer (Admin)

Role and Permission Endpoints

MethodPathDescriptionAuth
GET/api/v1/rolesList all rolesBearer
GET/api/v1/roles/{id}Get role details with permissionsBearer
POST/api/v1/rolesCreate a custom roleBearer (Admin)
PUT/api/v1/roles/{id}Update a roleBearer (Admin)
DELETE/api/v1/roles/{id}Delete a custom roleBearer (Admin)
GET/api/v1/permissionsList all permissionsBearer
GET/api/v1/roles/{id}/permissionsList permissions for a roleBearer
POST/api/v1/roles/{id}/permissionsAdd permissions to a roleBearer (Admin)

Tenant Service (Port 8082)

The Tenant Service manages tenant lifecycle, data source connectors, billing integration, tenant settings, and DNS provisioning.

Tenant Lifecycle Endpoints

MethodPathDescriptionAuth
GET/api/v1/tenantsList all tenants (platform admin)Bearer (Platform Admin)
GET/api/v1/tenants/{id}Get tenant detailsBearer (Tenant Admin)
POST/api/v1/tenantsCreate (provision) a new tenantBearer (Platform Admin)
PUT/api/v1/tenants/{id}Update tenant settingsBearer (Tenant Admin)
DELETE/api/v1/tenants/{id}Deprovision a tenantBearer (Platform Admin)
POST/api/v1/tenants/{id}/activateActivate a provisioned tenantBearer (Platform Admin)
POST/api/v1/tenants/{id}/suspendSuspend a tenantBearer (Platform Admin)
GET/api/v1/tenants/{id}/statusGet provisioning statusBearer (Admin)
GET/api/v1/tenants/{id}/healthTenant health summaryBearer (Admin)

Create Tenant Request Example:

POST /api/v1/tenants
Content-Type: application/json
 
{
  "name": "Acme Corporation",
  "slug": "acme",
  "plan": "ENTERPRISE",
  "region": "eastus2",
  "adminEmail": "admin@acme.com",
  "settings": {
    "maxUsers": 500,
    "maxConnectors": 50,
    "gpuEnabled": true,
    "dedicatedIngress": true
  }
}

Connector Management Endpoints

MethodPathDescriptionAuth
GET/api/v1/tenants/{id}/connectorsList connectors for tenantBearer
GET/api/v1/tenants/{id}/connectors/{connectorId}Get connector detailsBearer
POST/api/v1/tenants/{id}/connectorsRegister a new connectorBearer (Admin)
PUT/api/v1/tenants/{id}/connectors/{connectorId}Update connector configurationBearer (Admin)
DELETE/api/v1/tenants/{id}/connectors/{connectorId}Remove a connectorBearer (Admin)
POST/api/v1/tenants/{id}/connectors/{connectorId}/testTest connector connectivityBearer
POST/api/v1/tenants/{id}/connectors/{connectorId}/syncTrigger metadata syncBearer
GET/api/v1/tenants/{id}/connectors/{connectorId}/statusGet sync statusBearer

Billing and Settings Endpoints

MethodPathDescriptionAuth
GET/api/v1/tenants/{id}/billingGet billing summaryBearer (Admin)
GET/api/v1/tenants/{id}/billing/usageGet detailed usage breakdownBearer (Admin)
GET/api/v1/tenants/{id}/billing/invoicesList invoicesBearer (Admin)
GET/api/v1/tenants/{id}/billing/invoices/{invoiceId}Get invoice detailsBearer (Admin)
PUT/api/v1/tenants/{id}/settingsUpdate tenant settingsBearer (Admin)
GET/api/v1/tenants/{id}/settingsGet tenant settingsBearer (Admin)
PUT/api/v1/tenants/{id}/limitsUpdate resource limitsBearer (Platform Admin)

DNS and Ingress Endpoints

MethodPathDescriptionAuth
POST/api/v1/tenants/{id}/dns/zoneCreate DNS zone for tenantBearer (Platform Admin)
GET/api/v1/tenants/{id}/dns/zoneGet DNS zone detailsBearer (Admin)
DELETE/api/v1/tenants/{id}/dns/zoneDelete DNS zoneBearer (Platform Admin)
POST/api/v1/tenants/{id}/ingressCreate tenant ingressBearer (Platform Admin)
GET/api/v1/tenants/{id}/ingressGet ingress configurationBearer (Admin)
POST/api/v1/tenants/{id}/certificatesProvision TLS certificateBearer (Platform Admin)

Config Service (Port 8888)

The Config Service manages centralized configuration, feature flags, and marketplace definitions.

MethodPathDescriptionAuth
GET/api/v1/config/{application}/{profile}Get configuration for application and profileBearer
GET/api/v1/config/{application}/{profile}/{label}Get configuration for specific label/branchBearer
POST/api/v1/config/refreshRefresh configuration cacheBearer (Admin)
GET/api/v1/feature-flagsList all feature flagsBearer
GET/api/v1/feature-flags/{key}Get feature flag valueBearer
PUT/api/v1/feature-flags/{key}Update feature flagBearer (Admin)
POST/api/v1/feature-flagsCreate a new feature flagBearer (Admin)
DELETE/api/v1/feature-flags/{key}Delete feature flagBearer (Admin)
GET/api/v1/marketplace/templatesList marketplace templatesBearer
GET/api/v1/marketplace/connectorsList marketplace connectorsBearer
GET/api/v1/marketplace/extensionsList marketplace extensionsBearer

Audit Service (Port 8086)

The Audit Service captures and queries audit trail events for compliance and forensics.

MethodPathDescriptionAuth
GET/api/v1/audit/eventsQuery audit events (with filters)Bearer (Auditor)
GET/api/v1/audit/events/{id}Get audit event detailsBearer (Auditor)
GET/api/v1/audit/events/exportExport audit events (CSV/JSON)Bearer (Auditor)
GET/api/v1/audit/users/{userId}/eventsGet events for a specific userBearer (Auditor)
GET/api/v1/audit/resources/{resourceType}/{resourceId}Get events for a specific resourceBearer (Auditor)
GET/api/v1/audit/compliance/reportsList compliance reportsBearer (Admin)
POST/api/v1/audit/compliance/reportsGenerate a compliance reportBearer (Admin)
GET/api/v1/audit/compliance/reports/{id}Get compliance reportBearer (Admin)
GET/api/v1/audit/retention/policiesList retention policiesBearer (Admin)
PUT/api/v1/audit/retention/policies/{id}Update retention policyBearer (Admin)

Audit Event Query Example:

GET /api/v1/audit/events?action=LOGIN&startDate=2026-02-01&endDate=2026-02-12&userId=usr-123&page=1&size=50

Billing Service (Port 8087)

MethodPathDescriptionAuth
GET/api/v1/billing/usageGet platform-wide usage summaryBearer (Platform Admin)
GET/api/v1/billing/usage/tenants/{tenantId}Get tenant usage detailsBearer (Admin)
GET/api/v1/billing/usage/tenants/{tenantId}/breakdownDetailed cost breakdown by serviceBearer (Admin)
GET/api/v1/billing/invoicesList all invoicesBearer (Platform Admin)
GET/api/v1/billing/invoices/{id}Get invoice detailBearer (Admin)
POST/api/v1/billing/invoices/{id}/finalizeFinalize a draft invoiceBearer (Platform Admin)
GET/api/v1/billing/plansList available plansPublic
GET/api/v1/billing/plans/{id}Get plan detailsPublic
POST/api/v1/billing/metering/eventsSubmit a metering event (internal)Service Token
GET/api/v1/billing/metering/summaryGet metering summaryBearer (Admin)
GET/api/v1/billing/budgets/{tenantId}Get budget for tenantBearer (Admin)
PUT/api/v1/billing/budgets/{tenantId}Set budget for tenantBearer (Admin)
GET/api/v1/billing/alertsList billing alertsBearer (Admin)

Notification Service (Port 8085)

MethodPathDescriptionAuth
GET/api/v1/notificationsList notifications for current userBearer
GET/api/v1/notifications/{id}Get notification detailsBearer
PUT/api/v1/notifications/{id}/readMark notification as readBearer
PUT/api/v1/notifications/read-allMark all notifications as readBearer
DELETE/api/v1/notifications/{id}Delete a notificationBearer
GET/api/v1/notifications/channelsList notification channelsBearer
POST/api/v1/notifications/channelsCreate notification channel (Slack, email, webhook)Bearer (Admin)
PUT/api/v1/notifications/channels/{id}Update notification channelBearer (Admin)
DELETE/api/v1/notifications/channels/{id}Delete notification channelBearer (Admin)
POST/api/v1/notifications/channels/{id}/testTest notification channelBearer (Admin)
GET/api/v1/notifications/templatesList notification templatesBearer (Admin)
POST/api/v1/notifications/templatesCreate notification templateBearer (Admin)
PUT/api/v1/notifications/templates/{id}Update notification templateBearer (Admin)
GET/api/v1/notifications/preferencesGet user notification preferencesBearer
PUT/api/v1/notifications/preferencesUpdate user notification preferencesBearer

Observability API (Port 8088)

MethodPathDescriptionAuth
GET/api/v1/observability/metricsQuery Prometheus metricsBearer
GET/api/v1/observability/metrics/services/{service}Get metrics for a specific serviceBearer
POST/api/v1/observability/metrics/queryExecute PromQL queryBearer
GET/api/v1/observability/logsQuery aggregated logs (Loki backend)Bearer
GET/api/v1/observability/logs/services/{service}Get logs for a specific serviceBearer
GET/api/v1/observability/tracesQuery distributed traces (Tempo backend)Bearer
GET/api/v1/observability/traces/{traceId}Get trace detailsBearer
GET/api/v1/observability/dashboardsList observability dashboardsBearer
GET/api/v1/observability/alertsList active alertsBearer
GET/api/v1/observability/alerts/rulesList alert rulesBearer (Admin)
POST/api/v1/observability/alerts/rulesCreate alert ruleBearer (Admin)
PUT/api/v1/observability/alerts/rules/{id}Update alert ruleBearer (Admin)
DELETE/api/v1/observability/alerts/rules/{id}Delete alert ruleBearer (Admin)
GET/api/v1/observability/healthPlatform health summaryBearer
GET/api/v1/observability/health/servicesPer-service health statusBearer

Infrastructure Service (Port 8089)

MethodPathDescriptionAuth
POST/api/v1/infrastructure/terraform/planGenerate Terraform planBearer (Platform Admin)
POST/api/v1/infrastructure/terraform/applyApply Terraform configurationBearer (Platform Admin)
GET/api/v1/infrastructure/terraform/stateGet Terraform state summaryBearer (Platform Admin)
GET/api/v1/infrastructure/terraform/outputsGet Terraform outputsBearer (Platform Admin)
POST/api/v1/infrastructure/terraform/destroyDestroy Terraform resourcesBearer (Platform Admin)
GET/api/v1/infrastructure/clustersList Kubernetes clustersBearer (Platform Admin)
GET/api/v1/infrastructure/clusters/{id}Get cluster detailsBearer (Platform Admin)
GET/api/v1/infrastructure/clusters/{id}/nodesList cluster nodesBearer (Platform Admin)
GET/api/v1/infrastructure/namespacesList namespacesBearer (Admin)
POST/api/v1/infrastructure/namespacesCreate namespaceBearer (Platform Admin)
GET/api/v1/infrastructure/resources/usageGet resource usage summaryBearer (Admin)

Platform Registry (Port 8084)

MethodPathDescriptionAuth
GET/api/v1/registry/servicesList registered servicesBearer
GET/api/v1/registry/services/{name}Get service detailsBearer
POST/api/v1/registry/servicesRegister a serviceBearer (Admin)
PUT/api/v1/registry/services/{name}Update service registrationBearer (Admin)
DELETE/api/v1/registry/services/{name}Deregister a serviceBearer (Admin)
GET/api/v1/registry/services/{name}/instancesList service instancesBearer
GET/api/v1/registry/services/{name}/healthGet service healthBearer
GET/api/v1/registry/services/{name}/endpointsList service endpointsBearer
GET/api/v1/registry/topologyGet service topology graphBearer
GET/api/v1/registry/dependencies/{name}Get service dependenciesBearer

Data Plane Services

AI Service (Port 8000)

The AI Service is the conversational intelligence engine that powers text-to-SQL, multi-agent orchestration, RAG-based Q&A, and streaming responses.

Conversation and Chat Endpoints

MethodPathDescriptionAuth
POST/api/v1/chatSend a chat message (synchronous)Bearer
POST/api/v1/chat/streamSend a chat message (SSE streaming)Bearer
GET/api/v1/conversationsList conversations for current userBearer
GET/api/v1/conversations/{id}Get conversation with messagesBearer
POST/api/v1/conversationsStart a new conversationBearer
DELETE/api/v1/conversations/{id}Delete a conversationBearer
GET/api/v1/conversations/{id}/messagesList messages in conversationBearer
WebSocket/api/v1/ws/chatReal-time chat via WebSocketBearer

Chat Request Example:

POST /api/v1/chat
Content-Type: application/json
X-Tenant-ID: tnt-xyz789
 
{
  "conversationId": "conv-abc123",
  "message": "Show me total revenue by region for Q4 2025",
  "context": {
    "dataSource": "sales_warehouse",
    "dialect": "trino",
    "enableVisualization": true
  }
}

Chat Response Example:

{
  "messageId": "msg-def456",
  "conversationId": "conv-abc123",
  "response": {
    "text": "Here is the total revenue by region for Q4 2025.",
    "sql": "SELECT region, SUM(revenue) AS total_revenue FROM sales.orders WHERE quarter = 'Q4' AND year = 2025 GROUP BY region ORDER BY total_revenue DESC",
    "data": {
      "columns": ["region", "total_revenue"],
      "rows": [
        ["North America", 4520000],
        ["Europe", 3180000],
        ["Asia Pacific", 2740000]
      ]
    },
    "visualization": {
      "type": "bar",
      "config": { "xAxis": "region", "yAxis": "total_revenue" }
    }
  },
  "agentTrace": {
    "agents": ["intent_classifier", "schema_retriever", "sql_generator", "sql_validator", "executor"],
    "totalDurationMs": 2340,
    "tokensUsed": 1820
  }
}

Agent Orchestration Endpoints

MethodPathDescriptionAuth
GET/api/v1/agentsList available agentsBearer
GET/api/v1/agents/{name}Get agent detailsBearer
POST/api/v1/agents/{name}/executeExecute a specific agentBearer
GET/api/v1/agents/tracesList agent execution tracesBearer
GET/api/v1/agents/traces/{traceId}Get detailed agent traceBearer
GET/api/v1/agents/metricsGet agent performance metricsBearer

Text-to-SQL Endpoints

MethodPathDescriptionAuth
POST/api/v1/text-to-sqlGenerate SQL from natural languageBearer
POST/api/v1/text-to-sql/validateValidate generated SQLBearer
POST/api/v1/text-to-sql/explainExplain SQL in natural languageBearer
POST/api/v1/text-to-sql/optimizeSuggest SQL optimizationsBearer
GET/api/v1/text-to-sql/dialectsList supported SQL dialectsBearer

Feedback and Evaluation Endpoints

MethodPathDescriptionAuth
POST/api/v1/feedbackSubmit feedback on a responseBearer
GET/api/v1/feedback/summaryGet feedback summary statsBearer (Admin)
GET/api/v1/evaluationsList evaluation resultsBearer (Admin)
POST/api/v1/evaluations/runRun evaluation suiteBearer (Admin)
GET/api/v1/evaluations/{id}Get evaluation result detailsBearer (Admin)

Studio and DNN Builder Endpoints

MethodPathDescriptionAuth
POST/api/v1/studio/sessionsCreate a new studio sessionBearer
GET/api/v1/studio/sessions/{id}Get studio session stateBearer
POST/api/v1/studio/sessions/{id}/chatChat within studio contextBearer
POST/api/v1/dnn/architecturesCreate a new DNN architectureBearer
GET/api/v1/dnn/architectures/{id}Get DNN architecture detailsBearer
POST/api/v1/dnn/architectures/{id}/generateGenerate code for architectureBearer
POST/api/v1/dnn/architectures/{id}/validateValidate architectureBearer

ML Service (Port 8000)

The ML Service handles model lifecycle management, training, serving, feature engineering, experiments, and monitoring.

Model Management Endpoints

MethodPathDescriptionAuth
GET/api/v1/modelsList registered modelsBearer
GET/api/v1/models/{id}Get model detailsBearer
POST/api/v1/modelsRegister a new modelBearer
PUT/api/v1/models/{id}Update model metadataBearer
DELETE/api/v1/models/{id}Delete a modelBearer (Admin)
GET/api/v1/models/{id}/versionsList model versionsBearer
POST/api/v1/models/{id}/versionsCreate a new model versionBearer
POST/api/v1/models/{id}/versions/{versionId}/stageTransition model stageBearer

Training and Experiment Endpoints

MethodPathDescriptionAuth
POST/api/v1/training/jobsSubmit a training jobBearer
GET/api/v1/training/jobsList training jobsBearer
GET/api/v1/training/jobs/{id}Get training job detailsBearer
POST/api/v1/training/jobs/{id}/cancelCancel a training jobBearer
GET/api/v1/training/jobs/{id}/logsGet training logsBearer
GET/api/v1/training/jobs/{id}/metricsGet training metricsBearer
GET/api/v1/experimentsList experimentsBearer
POST/api/v1/experimentsCreate an experimentBearer
GET/api/v1/experiments/{id}Get experiment detailsBearer
GET/api/v1/experiments/{id}/runsList experiment runsBearer
POST/api/v1/experiments/{id}/compareCompare experiment runsBearer

Model Serving Endpoints

MethodPathDescriptionAuth
POST/api/v1/serving/deploymentsDeploy a model for servingBearer
GET/api/v1/serving/deploymentsList serving deploymentsBearer
GET/api/v1/serving/deployments/{id}Get deployment detailsBearer
DELETE/api/v1/serving/deployments/{id}Undeploy a modelBearer
POST/api/v1/serving/deployments/{id}/predictRun inferenceBearer
POST/api/v1/serving/deployments/{id}/predict/batchBatch inferenceBearer
PUT/api/v1/serving/deployments/{id}/scaleScale deployment replicasBearer (Admin)

Feature Store Endpoints

MethodPathDescriptionAuth
GET/api/v1/featuresList feature groupsBearer
POST/api/v1/featuresCreate a feature groupBearer
GET/api/v1/features/{id}Get feature group detailsBearer
POST/api/v1/features/{id}/materializeMaterialize featuresBearer
POST/api/v1/features/serveGet online featuresBearer
POST/api/v1/features/historicalGet historical featuresBearer

Model Monitoring Endpoints

MethodPathDescriptionAuth
GET/api/v1/monitoring/models/{id}/driftGet data drift metricsBearer
GET/api/v1/monitoring/models/{id}/performanceGet model performance metricsBearer
GET/api/v1/monitoring/models/{id}/predictionsGet prediction logBearer
POST/api/v1/monitoring/alertsCreate monitoring alertBearer (Admin)
GET/api/v1/monitoring/alertsList monitoring alertsBearer

Query Engine (Port 8080)

MethodPathDescriptionAuth
POST/api/v1/query/executeExecute a SQL queryBearer
POST/api/v1/query/execute/asyncSubmit async queryBearer
GET/api/v1/query/jobs/{jobId}Get async query statusBearer
GET/api/v1/query/jobs/{jobId}/resultsGet async query resultsBearer
POST/api/v1/query/jobs/{jobId}/cancelCancel an async queryBearer
POST/api/v1/query/explainGet query execution planBearer
POST/api/v1/query/optimizeOptimize a SQL queryBearer
GET/api/v1/query/historyGet query historyBearer
GET/api/v1/query/catalogsList available catalogsBearer
GET/api/v1/query/catalogs/{catalog}/schemasList schemas in catalogBearer
GET/api/v1/query/catalogs/{catalog}/schemas/{schema}/tablesList tablesBearer
POST/api/v1/query/validateValidate SQL syntaxBearer

BI Service (Port 8084)

MethodPathDescriptionAuth
GET/api/v1/dashboardsList dashboardsBearer
GET/api/v1/dashboards/{id}Get dashboard detailsBearer
POST/api/v1/dashboardsCreate a dashboardBearer
PUT/api/v1/dashboards/{id}Update a dashboardBearer
DELETE/api/v1/dashboards/{id}Delete a dashboardBearer
POST/api/v1/dashboards/{id}/cloneClone a dashboardBearer
POST/api/v1/dashboards/{id}/shareShare a dashboardBearer
GET/api/v1/dashboards/{id}/widgetsList widgets on dashboardBearer
POST/api/v1/dashboards/{id}/widgetsAdd widget to dashboardBearer
PUT/api/v1/dashboards/{id}/widgets/{widgetId}Update widgetBearer
DELETE/api/v1/dashboards/{id}/widgets/{widgetId}Remove widgetBearer
GET/api/v1/dashboards/{id}/filtersGet global dashboard filtersBearer
PUT/api/v1/dashboards/{id}/filtersUpdate global filtersBearer
POST/api/v1/dashboards/{id}/exportExport dashboard (PDF/PNG)Bearer
POST/api/v1/dashboards/{id}/scheduleSchedule report deliveryBearer
GET/api/v1/widgets/typesList available widget typesBearer

Catalog Service (Port 8086)

MethodPathDescriptionAuth
GET/api/v1/catalog/databasesList databasesBearer
GET/api/v1/catalog/databases/{db}/tablesList tables in databaseBearer
GET/api/v1/catalog/tables/{id}Get table metadataBearer
GET/api/v1/catalog/tables/{id}/columnsGet column metadataBearer
GET/api/v1/catalog/tables/{id}/profileGet data profile (statistics)Bearer
POST/api/v1/catalog/tables/{id}/profileTrigger data profilingBearer
GET/api/v1/catalog/tables/{id}/lineageGet table lineageBearer
GET/api/v1/catalog/tables/{id}/lineage/upstreamGet upstream lineageBearer
GET/api/v1/catalog/tables/{id}/lineage/downstreamGet downstream lineageBearer
GET/api/v1/catalog/tables/{id}/tagsGet table tagsBearer
POST/api/v1/catalog/tables/{id}/tagsAdd tags to tableBearer
GET/api/v1/catalog/searchSearch metadataBearer
GET/api/v1/catalog/glossaryList business glossary termsBearer
POST/api/v1/catalog/glossaryCreate glossary termBearer (Admin)
GET/api/v1/catalog/glossary/{id}Get glossary termBearer

Semantic Layer (Port 8086)

MethodPathDescriptionAuth
GET/api/v1/semantic/modelsList semantic modelsBearer
GET/api/v1/semantic/models/{id}Get semantic model detailsBearer
POST/api/v1/semantic/modelsCreate a semantic modelBearer
PUT/api/v1/semantic/models/{id}Update a semantic modelBearer
DELETE/api/v1/semantic/models/{id}Delete a semantic modelBearer (Admin)
GET/api/v1/semantic/models/{id}/metricsList metrics in modelBearer
POST/api/v1/semantic/models/{id}/metricsCreate a metricBearer
PUT/api/v1/semantic/models/{id}/metrics/{metricId}Update a metricBearer
DELETE/api/v1/semantic/models/{id}/metrics/{metricId}Delete a metricBearer
POST/api/v1/semantic/queryExecute semantic queryBearer
GET/api/v1/semantic/models/{id}/dimensionsList dimensionsBearer
GET/api/v1/semantic/models/{id}/entitiesList entities in modelBearer

Pipeline Service (Port 8092)

MethodPathDescriptionAuth
GET/api/v1/pipelinesList pipelines (DAGs)Bearer
GET/api/v1/pipelines/{id}Get pipeline detailsBearer
POST/api/v1/pipelinesCreate a pipelineBearer
PUT/api/v1/pipelines/{id}Update pipeline definitionBearer
DELETE/api/v1/pipelines/{id}Delete a pipelineBearer
POST/api/v1/pipelines/{id}/triggerManually trigger pipeline runBearer
GET/api/v1/pipelines/{id}/runsList pipeline runsBearer
GET/api/v1/pipelines/{id}/runs/{runId}Get run detailsBearer
POST/api/v1/pipelines/{id}/runs/{runId}/cancelCancel a running pipelineBearer
GET/api/v1/pipelines/{id}/runs/{runId}/logsGet run logsBearer
POST/api/v1/pipelines/{id}/runs/{runId}/retryRetry a failed runBearer
GET/api/v1/jobsList scheduled jobsBearer
POST/api/v1/jobsCreate a scheduled jobBearer
PUT/api/v1/jobs/{id}Update job scheduleBearer
DELETE/api/v1/jobs/{id}Delete a scheduled jobBearer
POST/api/v1/jobs/{id}/pausePause a scheduled jobBearer
POST/api/v1/jobs/{id}/resumeResume a paused jobBearer

Data Quality Service (Port 8000)

MethodPathDescriptionAuth
GET/api/v1/quality/rulesList quality rulesBearer
POST/api/v1/quality/rulesCreate a quality ruleBearer
GET/api/v1/quality/rules/{id}Get rule detailsBearer
PUT/api/v1/quality/rules/{id}Update a quality ruleBearer
DELETE/api/v1/quality/rules/{id}Delete a quality ruleBearer
POST/api/v1/quality/rules/{id}/runExecute a quality checkBearer
GET/api/v1/quality/resultsList quality check resultsBearer
GET/api/v1/quality/results/{id}Get quality result detailsBearer
GET/api/v1/quality/slasList SLA definitionsBearer
POST/api/v1/quality/slasCreate an SLABearer (Admin)
GET/api/v1/quality/slas/{id}Get SLA detailsBearer
GET/api/v1/quality/slas/{id}/statusGet SLA compliance statusBearer
GET/api/v1/quality/dashboards/{tableId}Get quality dashboard for tableBearer
GET/api/v1/quality/score/{tableId}Get quality score for tableBearer

Governance Service (Port 8080)

MethodPathDescriptionAuth
GET/api/v1/governance/policiesList governance policiesBearer
POST/api/v1/governance/policiesCreate a governance policyBearer (Admin)
GET/api/v1/governance/policies/{id}Get policy detailsBearer
PUT/api/v1/governance/policies/{id}Update a policyBearer (Admin)
DELETE/api/v1/governance/policies/{id}Delete a policyBearer (Admin)
POST/api/v1/governance/policies/{id}/evaluateEvaluate policy against dataBearer
GET/api/v1/governance/masking/rulesList data masking rulesBearer
POST/api/v1/governance/masking/rulesCreate masking ruleBearer (Admin)
PUT/api/v1/governance/masking/rules/{id}Update masking ruleBearer (Admin)
DELETE/api/v1/governance/masking/rules/{id}Delete masking ruleBearer (Admin)
GET/api/v1/governance/classificationsList data classificationsBearer
POST/api/v1/governance/classificationsCreate data classificationBearer (Admin)
POST/api/v1/governance/classifications/auto-detectAuto-detect PII classificationsBearer
GET/api/v1/governance/access/requestsList access requestsBearer
POST/api/v1/governance/access/requestsSubmit access requestBearer
PUT/api/v1/governance/access/requests/{id}/approveApprove access requestBearer (Admin)
PUT/api/v1/governance/access/requests/{id}/denyDeny access requestBearer (Admin)

Ontology Service (Port 8101)

MethodPathDescriptionAuth
GET/api/v1/ontology/entitiesList ontology entitiesBearer
POST/api/v1/ontology/entitiesCreate an entityBearer
GET/api/v1/ontology/entities/{id}Get entity detailsBearer
PUT/api/v1/ontology/entities/{id}Update an entityBearer
DELETE/api/v1/ontology/entities/{id}Delete an entityBearer
GET/api/v1/ontology/relationshipsList relationshipsBearer
POST/api/v1/ontology/relationshipsCreate a relationshipBearer
GET/api/v1/ontology/relationships/{id}Get relationship detailsBearer
PUT/api/v1/ontology/relationships/{id}Update a relationshipBearer
DELETE/api/v1/ontology/relationships/{id}Delete a relationshipBearer
GET/api/v1/ontology/graphGet ontology graphBearer
POST/api/v1/ontology/importImport ontology (OWL/RDF)Bearer (Admin)
GET/api/v1/ontology/exportExport ontologyBearer
POST/api/v1/ontology/validateValidate ontology (SHACL)Bearer
GET/api/v1/ontology/searchSearch ontology entitiesBearer
GET/api/v1/ontology/namespacesList ontology namespacesBearer

Health Check Endpoints

Every service exposes a standard health check endpoint that does not require authentication:

ServiceHealth EndpointPort
IAM ServiceGET /api/v1/actuator/health8081
Tenant ServiceGET /api/v1/actuator/health8082
API GatewayGET /actuator/health8080
Config ServiceGET /api/v1/actuator/health8888
Audit ServiceGET /api/v1/actuator/health8086
Billing ServiceGET /api/v1/actuator/health8087
Notification ServiceGET /api/v1/actuator/health8085
Observability APIGET /api/v1/actuator/health8088
Infrastructure ServiceGET /api/v1/actuator/health8089
Platform RegistryGET /api/v1/actuator/health8084
AI ServiceGET /health and GET /api/v1/health8000
ML ServiceGET /health8000
Query EngineGET /api/v1/actuator/health8080
BI ServiceGET /api/v1/actuator/health8084
Catalog ServiceGET /api/v1/actuator/health8086
Semantic LayerGET /api/v1/actuator/health8086
Pipeline ServiceGET /api/v1/actuator/health8092
Data Quality ServiceGET /health8000
Governance ServiceGET /health8080
Ontology ServiceGET /health8101
Render ServiceGET /health8098
Data Plane AgentGET /api/v1/actuator/health8085
Ops Agent ServiceGET /health8080

Health check response format for Spring Boot services:

{
  "status": "UP",
  "components": {
    "db": { "status": "UP" },
    "redis": { "status": "UP" },
    "kafka": { "status": "UP" },
    "diskSpace": { "status": "UP" }
  }
}

Health check response format for Python FastAPI services:

{
  "status": "healthy",
  "version": "1.0.0",
  "uptime_seconds": 86400,
  "checks": {
    "database": "connected",
    "redis": "connected",
    "llm_provider": "available"
  }
}

API Versioning

All MATIH APIs are versioned using URL path versioning (e.g., /api/v1/). When breaking changes are introduced, a new version (e.g., /api/v2/) will be created. Previous versions are supported for a minimum of two major platform releases, providing at least six months of overlap for migration.