## Query analytics summary `client.AnalyticsQuery.Summary(ctx, dataset, params) (*AnalyticsQuerySummaryResponse, error)` **post** `/accounts/{account_id}/analytics/query/{dataset}/summary` Returns aggregate summary stats for a dataset. Includes current-period and previous-period totals for trend comparison. ### Parameters - `dataset string` - `params AnalyticsQuerySummaryParams` - `AccountID param.Field[string]` Path param: Cloudflare account identifier. - `Filters param.Field[[]AnalyticsQuerySummaryParamsFilter]` Body param: Filters to apply before aggregating results. - `Name string` Specifies the column name to filter on. Requires a valid column for the target dataset (e.g. `country`, `allowed`, `appId`). - `Op string` Filter operator. Common values: `eq`, `neq`, `in`, `not_in`, `gt`, `lt`, `gte`, `lte`. - `Values []AnalyticsQuerySummaryParamsFiltersValueUnion` Values to match against. Type depends on the column. - `UnionString` - `UnionBool` - `UnionFloat` - `From param.Field[Time]` Body param: The start of the query time range (inclusive). RFC3339 format with timezone is required (e.g. `2024-11-05T00:00:00Z`). - `GroupBy param.Field[[]string]` Body param: Specifies the column names to group results by. Requires valid columns for the target dataset. - `Stats param.Field[[]string]` Body param: Specifies the stat names to include in results. Requires valid stats for the target dataset (e.g. `attemptsTotal`, `bytesTotal`). - `To param.Field[Time]` Body param: Specifies the end of the query time range (exclusive). Requires RFC3339 format with timezone. ### Returns - `type AnalyticsQuerySummaryResponse struct{…}` - `CurrentTotal []map[string, unknown]` Aggregated stats for the requested time range. - `PreviousTotal []map[string, unknown]` Aggregated stats for the equivalent preceding time range, for trend comparison. ### Example ```go package main import ( "context" "fmt" "time" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.AnalyticsQuery.Summary( context.TODO(), "access-logins", cloudflare.AnalyticsQuerySummaryParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Filters: cloudflare.F([]cloudflare.AnalyticsQuerySummaryParamsFilter{}), From: cloudflare.F(time.Now()), GroupBy: cloudflare.F([]string{}), Stats: cloudflare.F([]string{"attemptsTotal"}), To: cloudflare.F(time.Now()), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.CurrentTotal) } ``` #### Response ```json { "errors": [], "messages": [ { "code": 1000, "message": "API in beta: expect breaking changes." } ], "result": { "currentTotal": [ { "attemptsTotal": 48291 } ], "previousTotal": [ { "attemptsTotal": 41033 } ] }, "success": true } ```