## Query analytics top-N `analytics_query.top_n(strdataset, AnalyticsQueryTopNParams**kwargs) -> SyncSinglePage[AnalyticsQueryTopNResponse]` **post** `/accounts/{account_id}/analytics/query/{dataset}/top-n` Returns the top N results for a dataset by a specified stat. Includes an array of result rows, each containing the requested stats and group-by dimensions. ### Parameters - `account_id: str` - `dataset: str` - `filters: Iterable[Filter]` Filters to apply before aggregating results. - `name: str` Specifies the column name to filter on. Requires a valid column for the target dataset (e.g. `country`, `allowed`, `appId`). - `op: str` Filter operator. Common values: `eq`, `neq`, `in`, `not_in`, `gt`, `lt`, `gte`, `lte`. - `values: Sequence[Union[str, bool, float]]` Values to match against. Type depends on the column. - `str` - `bool` - `float` - `from_: Union[str, datetime]` The start of the query time range (inclusive). RFC3339 format with timezone is required (e.g. `2024-11-05T00:00:00Z`). - `group_by: Sequence[str]` Specifies the column names to group results by. Requires valid columns for the target dataset. - `n: int` Maximum number of results to return. - `order_by: str` Specifies the stat name for sorting results in descending order. Requires a valid stat for the target dataset. - `stats: Sequence[str]` Specifies the stat names to include in results. Requires valid stats for the target dataset (e.g. `attemptsTotal`, `bytesTotal`). - `to: Union[str, datetime]` Specifies the end of the query time range (exclusive). Requires RFC3339 format with timezone. ### Returns - `Dict[str, object]` Maps field names to values. Keys represent stat names and group-by column names. Values depend on the dataset (strings, numbers, booleans). ### Example ```python import os from datetime import datetime from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.analytics_query.top_n( dataset="gateway-http", account_id="023e105f4ecef8ad9ca31a8372d0c353", filters=[], from_=datetime.fromisoformat("2024-11-05T00:00:00"), group_by=["appName", "appCategory"], n=10, order_by="bytesTotal", stats=["bytesTotal", "requestsTotal"], to=datetime.fromisoformat("2024-11-06T00:00:00"), ) page = page.result[0] print(page) ``` #### Response ```json { "errors": [], "messages": [ { "code": 1000, "message": "API in beta: expect breaking changes." } ], "result": [ { "appCategory": "Collaboration", "appName": "Slack", "bytesTotal": 10485760, "requestsTotal": 1024 }, { "appCategory": "File Storage", "appName": "Dropbox", "bytesTotal": 5242880, "requestsTotal": 512 } ], "success": true } ```