Streaming ingestion HTTP request
Request verb and resource
| Action | HTTP verb | HTTP resource |
|---|---|---|
| Ingest | POST | /v1/rest/ingest/{database}/{table}?{additional parameters} |
Request parameters
| Parameter | Description | Required/Optional |
|---|---|---|
{database} | Name of the target database for the ingestion request | Required |
{table} | Name of the target table for the ingestion request | Required |
Additional parameters
Additional parameters are formatted as URL query {name}={value} pairs, separated by the & character.
| Parameter | Description | Required/Optional |
|---|---|---|
streamFormat | Specifies the format of the data in the request body. The value should be one of: CSV, TSV, SCsv, SOHsv, PSV, JSON, MultiJSON, Avro. For more information, see Supported Data Formats. | Required |
streamFormat | Specifies the format of the data in the request body. The value should be one of: CSV, TSV, SCsv, SOHsv, PSV, JSON, MultiJSON, Avro. For more information, see Supported Data Formats. | Required |
mappingName | The name of the pre-created ingestion mapping defined on the table. For more information, see Data Mappings. The way to manage pre-created mappings on the table is described here. | Optional, but Required if streamFormat is one of JSON, MultiJSON, or Avro |
mappingName | The name of the pre-created ingestion mapping defined on the table. For more information, see Data Mappings. The way to manage pre-created mappings on the table is described here. | Optional, but Required if streamFormat is one of JSON, MultiJSON, or Avro |
For example, to ingest CSV-formatted data into table Logs in database Test, use:
POST https://help.kusto.windows.net/v1/rest/ingest/Test/Logs?streamFormat=Csv HTTP/1.1
To ingest JSON-formatted data with pre-created mapping mylogmapping, use:
POST https://help.kusto.windows.net/v1/rest/ingest/Test/Logs?streamFormat=Json&mappingName=mylogmapping HTTP/1.1
Request headers
The following table contains the common headers for query and management operations.
| Standard header | Description | Required/Optional |
|---|---|---|
Accept | Set this value to application/json. | Optional |
Accept-Encoding | Supported encodings are gzip and deflate. | Optional |
Authorization | See authentication. | Required |
Authorization | See authentication. | Required |
Connection | Enable Keep-Alive. | Optional |
Content-Length | Specify the request body length, when known. | Optional |
Content-Encoding | Set to gzip but the body must be gzip-compressed | Optional |
Expect | Set to 100-Continue. | Optional |
Host | Set to the domain name to which you sent the request (such as, help.kusto.windows.net). | Required |
The following table contains the common custom headers for query and management operations. Unless otherwise indicated, the headers are for telemetry purposes only, and have no functionality impact.
|Custom header |Description | Required/Optional |
|————————|———————————————————————————————————-|
|x-ms-app |The (friendly) name of the application making the request. | Optional |
|x-ms-user |The (friendly) name of the user making the request. | Optional |
|x-ms-user-id |Same as x-ms-user. | Optional |
|x-ms-client-request-id|A unique identifier for the request. | Optional |
|x-ms-client-version |The (friendly) version identifier for the client making the request. Required in scenarios, where it’s used to identify the request, such as canceling a running query. | Optional/Required |
Body
The body is the actual data to be ingested. The textual formats should use UTF-8 encoding.
Examples
The following example shows the HTTP POST request for ingesting JSON content:
POST https://help.kusto.windows.net/v1/rest/ingest/Test/Logs?streamFormat=Json&mappingName=mylogmapping HTTP/1.1
Request headers:
Authorization: Bearer ...AzureActiveDirectoryAccessToken...
Accept-Encoding: deflate
Accept-Encoding: gzip
Connection: Keep-Alive
Content-Length: 161
Host: help.kusto.windows.net
x-ms-client-request-id: MyApp.Ingest;5c0656b9-37c9-4e3a-a671-5f83e6843fce
x-ms-user-id: alex@contoso.com
x-ms-app: MyApp
Request body:
{"Timestamp":"2018-11-14 11:34","Level":"Info","EventText":"Nothing Happened"}
{"Timestamp":"2018-11-14 11:35","Level":"Error","EventText":"Something Happened"}
The following example shows the HTTP POST request for ingesting the same compressed data.
POST https://help.kusto.windows.net/v1/rest/ingest/Test/Logs?streamFormat=Json&mappingName=mylogmapping HTTP/1.1
Request headers:
Authorization: Bearer ...AzureActiveDirectoryAccessToken...
Accept-Encoding: deflate
Accept-Encoding: gzip
Connection: Keep-Alive
Content-Length: 116
Content-Encoding: gzip
Host: help.kusto.windows.net
x-ms-client-request-id: MyApp.Ingest;5c0656b9-37c9-4e3a-a671-5f83e6843fce
x-ms-user-id: alex@contoso.com
x-ms-app: MyApp
Request body:
... binary data ...
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.