NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1306 most downloaded on PyPI
Kusto Data Client
Last release 5 months ago
06 May 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
9 years old
95 releases · first in 2018
Bumped dependencies: azure-identity ≥ 1.25.3 and msal ≥ 1.35.1 for sovereign cloud support.
*Allow transformation functions for CSV and SCSV formats as well by Ramachandran A G (@ag-ramachandran) in #629
Full Changelog: v6.0.2...v6.0.3
One column per quarter.
KustoApiError crashing when no message is provided by defaulting to "Unknown Kusto service error".KustoApiError.__init__ message parameter type to Optional[str].Fixed dataframe_from_result_table crashing with pandas 3.0 when a datetime column contains all null values.
dataframe_from_result_table crashing with pandas 3.0 when a datetime column contains all null values.parse_datetime (minimum supported pandas is now 2.3.1).Managed Streaming Should Handle Throttling Events Correctly
aioingest_from_dataframe when using csv data format.[BREAKING] Minimum supported Python version is now 3.9, to align with other Azure SDKs.
uv is used to manage packagesruff is used for linting and formattingbasedpyright is used for type checkingpoe is used to manage taskspdoc is used to generate documentationMore endpoints supported by default.
CloudSettings will now reuse the HTTP session from the query client for sync clients.
Fixed Fixed Ingest from dataframe Dependency issues Typing issues
Fixed bug in ingest_from_dataframe with some ingestion properties combinations.
ingest_from_dataframe with some ingestion properties combinations.Fixed Dependency issues
[BREAKING] Dropped support for python version 3.7, as it is on EOL for over year.
msi_auth / msi_authenticationmsi_params / msi_typeinteractive_loginaz_cliingest_from_dataframe - Added data_format parameter. It can be None (default), 'json' or 'csv'.
Based on how panda's csv serialization works, dynamic data will not be serialized correctly.
By default, the data will be serialized as json to avoid this issue.
However, that may break if a CSV mapping is used.
Therefore, when passing the None value, the data will be json by default, or csv if a csv mapping is used.
Also, it is possible to pass 'csv' or 'json' to force the serialization type.Explicitly export members in __init__.py via __all__
__init__.py via __all__### Fixed - Added py.typed markers - Fixed semantic error handling
py.typed markersSupport more kusto endpoints by default
Nothing published for this version
Fixed bug in dataframe_from_result_table with some command results.
dataframe_from_result_table with some command results.dataframe_from_result_table now accepts optional converters for specific columns or types.
dataframe_from_result_table now accepts optional converters for specific columns or types.Fixed bug in ManagedIdentity close method
Changed binary files data format compression to false
Pandas now correctly parses all dates
Added smart retry ability for queued ingestion.
Urls with one item after the path (i.e https://test.com/abc) will now be treated as cluster and initial catalog (ie. the cluster is "https://test.com"
Unicode headers are now espaced using '?', to align with the service
Add new trident endpoint support
Fixed resource parsing to be inline with other SDKs
Full Changelog: https://github.com/Azure/azure-kusto-python/compare/v4.1.1...v4.1.2
Fixed context not awaited in traces, caused warning
Full Changelog: https://github.com/Azure/azure-kusto-python/compare/v4.1.0...v4.1.1
Use opentelemetry to trace the flow of operations when querying or ingesting
KustoConnectionStringBuilder.with_token_provider() /KustoConnectionStringBuilder.with_async_token_provider()Full Changelog: https://github.com/Azure/azure-kusto-python/compare/v4.0.2...v4.1.0
Fixes #439 - Added more serialization options for "msi authentication" and "msi params" correctly
Full Changelog: https://github.com/Azure/azure-kusto-python/compare/v4.0.1...v4.0.2
Added flag to handle nullable bools in pandas, fixes #436.
Full Changelog: https://github.com/Azure/azure-kusto-python/compare/v4.0.0...v4.0.1
[BREAKING] Trusted endpoints validation - by default, kusto will only connect to known endpoints.
Full Changelog: https://github.com/Azure/azure-kusto-python/compare/v3.1.3...v3.2.0
Allow passing service url with port
Full Changelog: https://github.com/Azure/azure-kusto-python/compare/v3.1.2...v3.1.3
Fix bug when cluster URI ends with a slash '/' sign by @yogilad in https://github.com/Azure/azure-kusto-python/pull/392
Full Changelog: https://github.com/Azure/azure-kusto-python/compare/v3.1.1...v3.1.2
Limit service client operations to 10 minutes by @AsafMah in https://github.com/Azure/azure-kusto-python/pull/384
Full Changelog: https://github.com/Azure/azure-kusto-python/compare/v3.1.0...v3.1.1
Added proxy support for all ingest clients, using the set_proxy method
set_proxy methoddataframe_from_result_table will now save space by using int32 as the type for ADX's intDataFormat is now directly exported from azure.kusto.data, and is recommended to be imported this way.
This is a major release. It brings many new features, but also includes breaking changes.
This is a major release. It brings many new features, but also includes breaking changes.
IngestionMappingType to IngestionMappingKind to align with other SDKs.ingestion_mapping parameter to column_mappings for clarity and alignment.KustoMissingMappingReferenceError and KustoMappingAndMappingReferenceError are now KustoMissingMappingError.DataFormat is now exported directly from azure-kusto-data, and no longer exported from azure-kusto-ingest (use azure-kusto-data).DataFormat's internal representation changed from a string to an enum, including the Kusto service's formatting, whether a mapping is required, relevant IngestionMappingKind, and whether it's compressible.SStream, ApacheAvro).KustoClient (sync and async) - execute_streaming_query.execute call waits for all the data to arrive, parse it in memory, and provide Python objects to access it.azure-kusto-data/tests/sample.py.ManagedStreamingIngestClient.ingest_from_blobazure-kusto-ingest/tests/sample.py.BaseIngestClient.ingest_from_file, ingest_from_stream, ingest_from_dataframe (only Queued and ManagedStreaming support ingest_from_blob).IngestionResult is now returned from ingest_* methods. The result contains some details about the ingestion.ManagedStreamingIngestClient, you can query whether the data was ingested via queued or streaming using IngestionStatus (== QUEUED for queued, == SUCCESS for streaming).KustoServiceError now has two new subclasses - KustoApiError, KustoMultiApiError.
OneApiError class, which has detailed information about the exception, for a consistent structure between SDKs.KustoApiError is raised on a server error in the web request, and contains within it 1 OneApiError.KustoMultiApiError is raised while reading the data, and can contain multiple OneApiErrors within.KustoClientError has a new subclass KustoBlobError, for when uploading a blob fails.set_proxy(proxy_url: str) method.CloudInfo when needed.Removed NoReturn reference, Solves #340
Widened supported msal versions (>=1.9.0, <2) and azure-identity vesions (>=1.5.0,<1.7.0). Closes #333 #336
Improvements:
Fixes:
Added support for async callback to retrieve a token. use KustoConnectionStringBuilder.with_async_token_provider
Features:
KustoConnectionStringBuilder.with_async_token_providerFixes:
Fixed possible race condition when running multiple async queries at once
Fixes:
Kusto now queries the provided cluster for metadata. This fixes incompatibility issues with other clouds, or services like Synapse. The results are ca
Improvements:
Fixed status addressing between async and sync
Return awaitable object from aio client __aexit__
Fixes:
Improvements:
Fixed imports when aiohttp isn't installed. (Fixes #312)
Fixes:
Add async io options using aiohttp to azure-kusto-data. This feature enables asynchronous calls that work with the built-in python coroutines Use the
Features:
aio extra to include the client, and then access it via the azure.kusto.data.aio namespace.Fixes:
The main change in this release is using MSAL instead of ADAL as an authentication library.
The main change in this release is using MSAL instead of ADAL as an authentication library.
BREAKING CHANGES:
FEATURES:
FIXES:
Wrong endpoint detection - If the ingest client is constructed with a non-DataManagement endpoint, the user will receive a KustoClientError with a sug
BREAKING CHANGES:
FEATURES:
FIXES:
OTHERS:
Bug: SNI auth option is ignored
FIXES:
MSI auth throws exception due to change in token result format
FIXES:
This release include some miscellaneous changes and features.
This release include some miscellaneous changes and features.
BREAKING CHANGES:
azure.identity instead of msrestazure.
This library caches tokens which would resolve some issues for high capacity users.
At the moment however, it only supports obtaining user managed service identities via the client_id hint.
Attempting to provide KustoConnectionStringBuilder with an object_id or msi_res_id will result in a ValueError exception being thrown.FEATURES:
KustoConnectionStringBuilder.with_aad_application_certificate_sni_authentication(cluster, client_id, PEM, public_certificate, thumbprint, authority_id)FIXES:
Fix a bug where the exception text description reported to KustoServiceError were not saved due to a change in the syntax for explicitly calling a Super class constructor. Please mind that,
-- The exception text description is saved in the args field of the Exception class.
-- The message field no long exists in Python 3
Raise descriptive exception when az cli token not found when using az cli authentication.
Release is mostly around changing the dependency for Azure Storage on the azure-kusto-ingest package.
Release is mostly around changing the dependency for Azure Storage on the azure-kusto-ingest package.
It also includes various changes, which are mostly cosmetic, as well as adding E2E tests and adding them to the build pipeline as a check.
BREAKING CHANGES:
azure.kusto.data.request to azure.kusto.data.client - old import of from azure.kusto.data.request import KustoClient will now break. should change them to `rom azure.kusto.data import KustoClientFEATURES:
None
FIXES:
test_kusto_streaming_ingest_client.py)OTHERS:
New option to authenticate by providing a function callback to KustoConnectionStringBuilder which returns a valid authentication token as a string, e.
BREAKING CHANGES:
FEATURES:
KustoConnectionStringBuilder which returns a valid authentication token as a string, e.g.token_provider = lambda: "{caller token}"
kcsb = KustoConnectionStringBuilder.with_token_provider("http://mykusto.kusto.windows.net", token_provider)
When ingesting zip and gzip files, and uncompressed file size is not provided by the caller, attempt to detect uncompressed size from the file metadata.
When ingesting, a user can provide inline ingestion mapping in the ingestion command instead of creating it in advance.
We suggest to use the new columnMapping class instead of CsvColumnMapping or JsonColumnMapping.
FIXES:
BREAKING CHANGES: None FEATURES: None FIXES: * Minor fix for MSI auth
BREAKING CHANGES:
None
FEATURES:
None
FIXES:
removed six - should reduce size when installing
BREAKING CHANGES:
FEATURES:
six - should reduce size when installingFIXES:
az login and then requests an access token using az account get-access-token, the client will be able to pick up the token and use it.
client = KustoClient(KustoConnectionStringBuilder.with_az_cli_authentication('https://cluster'))fixed bug described in https://github.com/Azure/azure-kusto-python/issues/150 when calling str() on KustoResultTable.
BREAKING CHANGES:
None.
FEATURES:
None.
FIXES:
str() on KustoResultTable.Added support of authentication with Azure Managed Service Identity (MSI) via a new API KustoConnectionStringBuilder.with_aad_managed_service_identity
BREAKING CHANGES:
None.
FEATURES:
FIXES:
Support ingestion of Orc format files
BREAKING CHANGES:
None.
FEATURES:
Support ingestion of Orc format files
FIXES:
None.
Fix parsing of streaming ingest service errors.
BREAKING CHANGES:
None.
FEATURES:
None.
FIXES:
Fix parsing of streaming ingest service errors.
Locked Azure-Storage-* versions to 2.1.0.
BREAKING CHANGES:
None.
FEATURES:
None.
FIXES:
Azure-Storage-* versions to 2.1.0.If the use of a non-default AadAuthorityUri is needed, set environment variable AadAuthorityUri to the required uri.
BREAKING CHANGES:
None
FEATURES:
AadAuthorityUri to the required uri.FIXES:
None
Your coding agent can read these notes before it upgrades. Set up the MCP server →