Azure Data Explorer API Overview

The Azure Data Explorer service supports the following communication endpoints:

  1. A REST API endpoint, through which you can query and manage the data in Azure Data Explorer. This endpoint supports the Kusto Query Language for queries and management commands.
  2. An MS-TDS endpoint that implements a subset of the Microsoft Tabular Data Stream (TDS) protocol, used by the Microsoft SQL Server products. The endpoint supports TDS versions 7.x and 8.0. This endpoint is useful for tools that know how to communicate with a SQL Server endpoint for queries.
  3. An Azure Resource Manager (ARM) endpoint that is the standard means for Azure services. The endpoint is used to manage resources, such as Azure Data Explorer clusters.

REST API

The primary means of communicating with any Azure Data Explorer service is by using the service's REST API. With this fully documented endpoint, callers can:

  • Query data
  • Query and modify metadata
  • Ingest data
  • Query the service health status
  • Manage resources

The different Azure Data Explorer services communicate among themselves, via the same publicly available REST API.

A number of client libraries are also available to use the service, without dealing with the REST API protocol.

MS-TDS

Azure Data Explorer supports the Microsoft SQL Server communication protocol (MS-TDS), and includes a limited support for running T-SQL queries. The supported versions of MS-TDS include 7.x and 8.0. This protocol enables users to run queries on Azure Data Explorer using a well-known query syntax (T-SQL) and database client tools such as LINQPad, sqlcmd, Tableau, Excel, and Power BI.

For more information, see MS-TDS.

Client libraries

Azure Data Explorer provides a number of client libraries that make use of the above endpoints, to make programmatic access easy.

  • .NET SDK
  • Python SDK
  • R
  • Java SDK
  • Node SDK
  • Go SDK
  • PowerShell

Tip

You can use the sample app generator wizard to create a working app tailored to your cluster, to ingest and query your data in your preferred programming language. The generated code can be used as a baseline to write your own apps, alter the code as you go, or you can copy sections of code into your own apps. For more information, see sample app generator wizard.

.NET Framework Libraries

.NET Framework Libraries are the recommended way to interact with your cluster programmatically. A number of different libraries are available.

The above libraries use Azure APIs, such as Azure Storage API and Microsoft Entra API.

Python Libraries

The Python client library permits callers to send data queries and management commands. For more information, see Kusto Python SDK.

R Library

The R client library permits callers to send data queries and management commands. For more information, see Kusto R SDK.

Java SDK

The Java client library provides the capability to query clusters using Java. For more information, see Kusto Java SDK.

Node SDK

The Node SDK is compatible with Node LTS (currently v6.14) and built with ES6. For more information, see Kusto Node SDK.

Go SDK

The Go Client library provides the capability to query, control and ingest into your cluster using Go. For more information, see Kusto Golang SDK.

PowerShell

The .NET Framework Libraries can be used by PowerShell scripts. For more information, see Use Kusto .NET client libraries from PowerShell.

Monaco IDE integration

The monaco-kusto package supports integration with the Monaco web editor. The Monaco Editor, developed by Microsoft, is the basis for Visual Studio Code. For more information, see monaco-kusto package.