Azure Monitor Log Analytics API request format

There are two endpoints through which you can communicate with the Log Analytics API:

  • A direct URL for the API: https://api.loganalytics.azure.com
  • Through Azure Resource Manager (ARM).

While the URLs are different, the query parameters are the same for each endpoint. Both endpoints require authorization through Microsoft Entra ID.

The API supports the POST and GET methods.

Public API format

The Public API format is:

    https://api.loganalytics.azure.com/{api-version}/workspaces/{workspaceId}/query?[parameters]

where:

  • api-version: The API version. The current version is "v1"
  • workspaceId: Your workspace ID
  • parameters: The data required for this query

GET /query

When the HTTP method executed is GET, the parameters are included in the query string.

For example, to count AzureActivity events by Category, make this call:

    GET https://api.loganalytics.azure.com/v1/workspaces/{workspace-id}/query?query=AzureActivity%20|%20summarize%20count()%20by%20Category
    Authorization: Bearer <access token>

POST /query

When the HTTP method executed is POST:

  • The body MUST be valid JSON.
  • The request must include the header: Content-Type: application/json
  • The parameters are included as properties in the JSON body.
  • If the timespan parameter is included in both the query string and the JSON body, the timespan will be the intersection of the two values.

For example, to count AzureActivity events by Category, make this call:

    POST https://api.loganalytics.azure.com/v1/workspaces/{workspace-id}/query
    
    Authorization: Bearer <access token>
    Content-Type: application/json
    
    {
      "query": "AzureActivity | summarize count() by Category"
    }