WAFV2 / Client / get_revenue_statistics

get_revenue_statistics

WAFV2.Client.get_revenue_statistics(**kwargs)

Retrieves ranked monetization statistics. Use the StatisticType parameter to specify the ranking: TOP_SOURCES_BY_REVENUE for top sources by revenue, or TOP_PATHS_BY_REVENUE for top content paths by revenue. This operation is only available for CLOUDFRONT scope. The maximum supported time window is 90 days. When no CurrencyMode filter is provided, results default to REAL. To retrieve test data, include a CurrencyMode filter with the value TEST.

See also: AWS API Documentation

Request Syntax

response = client.get_revenue_statistics(
    StatisticType='TOP_SOURCES_BY_REVENUE'|'TOP_PATHS_BY_REVENUE',
    TimeWindow={
        'StartTime': datetime(2015, 1, 1),
        'EndTime': datetime(2015, 1, 1)
    },
    Scope='CLOUDFRONT'|'REGIONAL',
    Currency='USDC',
    GroupBy='NAME'|'CATEGORY'|'INTENT'|'ORGANIZATION'|'WEBACL',
    Filters=[
        {
            'Name': 'string',
            'Values': [
                'string',
            ]
        },
    ],
    NextMarker='string',
    Limit=123,
    SortBy='REVENUE'|'PERCENTAGE'|'NAME',
    SortOrder='ASC'|'DESC'
)
Parameters:
  • StatisticType (string) –

    [REQUIRED]

    TOP_SOURCES_BY_REVENUE ranks revenue from AI bot traffic, grouped by the dimension you specify in the GroupBy parameter ( NAME, CATEGORY, INTENT, ORGANIZATION, or WEBACL); GroupBy is required for this statistic type. TOP_PATHS_BY_REVENUE ranks revenue by path.

  • TimeWindow (dict) –

    [REQUIRED]

    The time range for the query. Specify start and end timestamps.

    • StartTime (datetime) – [REQUIRED]

      The beginning of the time range from which you want GetSampledRequests to return a sample of the requests that your Amazon Web Services resource received. You must specify the times in Coordinated Universal Time (UTC) format. UTC format includes the special designator, Z. For example, "2016-09-27T14:50Z". You can specify any time range in the previous three hours.

    • EndTime (datetime) – [REQUIRED]

      The end of the time range from which you want GetSampledRequests to return a sample of the requests that your Amazon Web Services resource received. You must specify the times in Coordinated Universal Time (UTC) format. UTC format includes the special designator, Z. For example, "2016-09-27T14:50Z". You can specify any time range in the previous three hours.

  • Scope (string) –

    [REQUIRED]

    Specifies whether this is for a Amazon CloudFront distribution ( CLOUDFRONT) or for a regional application ( REGIONAL).

  • Currency (string) –

    [REQUIRED]

    The currency for the revenue amounts in the response.

  • GroupBy (string) – The dimension to group results by: NAME, CATEGORY, INTENT, ORGANIZATION, or WEBACL. Required when StatisticType is TOP_SOURCES_BY_REVENUE. Not required for TOP_PATHS_BY_REVENUE, where results are grouped by content path. If StatisticType is TOP_SOURCES_BY_REVENUE and GroupBy is omitted, the request is rejected with a WAFInvalidParameterException.

  • Filters (list) –

    Optional filters to narrow the results.

    • (dict) –

      A filter for narrowing monetization statistics and settlement record results. Specify a filter name and one or more values to match.

      Filter behavior:

      • Multiple values within one filter: OR (match any)

      • Multiple filters: AND (all must match)

      • No duplicate filter names allowed (rejected with error)

      • Duplicate values within a filter are silently deduplicated

      • If no CurrencyMode filter is specified, defaults to REAL

      • Name (string) – [REQUIRED]

        The filter name. Format: Key is a string, Value is a list of strings.

        Enum-restricted (invalid values rejected):

        • CurrencyMode: REAL, TEST

        • ChainName: BASE, SOLANA, BASE_SEPOLIA, SOLANA_DEVNET

        • SettlementStatus: SETTLED, PENDING, FAILED, SERVICE_ERROR, SKIPPED_ORIGIN_ERROR, DUPLICATE

        • HttpSourceName: CF, ALB, APIGW, APPRUNNER, COGNITO, VERIFIED_ACCESS

        ARN-validated:

        • WebACLArn: valid WAFv2 web ACL ARN

        Free-text (any string up to 256 chars):

        • SourceName: The name of the bot. Populated from Bot Control verified bot labels.

        • SourceCategory: The category classification of the bot. From Bot Control categorization.

        • Intent: The declared intent of the bot request.

        • Organization: The organization operating the bot.

        • UriPathPrefix: The URI path of the request that was monetized.

        • RequestId: The WAF request ID associated with the transaction. Matches the requestId in WAF logs. Pattern: ^[a-zA-Z0-9:._\-=+/]+$

        • TransactionId: The blockchain transaction identifier. Pattern: ^[a-zA-Z0-9:._\-=+/]+$

        • TerminatingRuleName: The name of the WAF rule that triggered the Monetize action.

        • PayerAddress: The blockchain wallet address of the paying client. Pattern: ^[a-zA-Z0-9:._\-=+/]+$

        • HttpSourceId: The identifier of the Amazon Web Services resource associated with the web ACL (for example, CloudFront distribution ID).

      • Values (list) – [REQUIRED]

        The values to filter on. Specify as a list of strings. Results match any of the specified values (OR logic). Duplicate values are silently deduplicated. Maximum: 20 values per filter.

        • (string) –

  • NextMarker (string) – When you get a paginated response, this marker indicates that additional results are available. Use it in a subsequent request to retrieve the next page of results.

  • Limit (integer) – The maximum number of results to return.

  • SortBy (string) – The field to sort results by: REVENUE, PERCENTAGE, or NAME.

  • SortOrder (string) – The sort order: ASC for ascending or DESC for descending.

Return type:

dict

Returns:

Response Syntax

{
    'SourceStatistics': [
        {
            'SourceName': 'string',
            'Percentage': 123.0,
            'Amount': 'string',
            'RequestCount': 123,
            'SourceCategory': 'string',
            'Intent': 'string',
            'Organization': 'string',
            'Verified': True|False,
            'GroupByValue': 'string'
        },
    ],
    'RevenuePathStatistics': [
        {
            'Path': 'string',
            'Percentage': 123.0,
            'Amount': 'string',
            'RequestCount': 123
        },
    ],
    'NextMarker': 'string'
}

Response Structure

  • (dict) –

    • SourceStatistics (list) –

      Statistics for top revenue sources (AI bots). Populated when StatisticType is TOP_SOURCES_BY_REVENUE.

      • (dict) –

        Revenue statistics for a single AI bot source, including the bot name, revenue amount, request count, and verification status.

        • SourceName (string) –

          The name of the AI bot.

        • Percentage (float) –

          The percentage of total revenue from this source.

        • Amount (string) –

          The total revenue amount from this source in the specified currency.

        • RequestCount (integer) –

          The number of monetized requests from this source.

        • SourceCategory (string) –

          The category of this AI bot source.

        • Intent (string) –

          The declared intent of the AI bot (for example, summarize, index, or train).

        • Organization (string) –

          The organization associated with the AI bot.

        • Verified (boolean) –

          Indicates whether the AI bot’s identity was verified — for example, through a cryptographically signed request (Web Bot Auth) or another published verification method. This value is meaningful only when GroupBy is NAME, where each result represents a single, identifiable bot. For all other GroupBy values (CATEGORY, INTENT, ORGANIZATION, or WEBACL), a result aggregates multiple bots that may have different verification states, so Verified is always returned as false and should be ignored. Type and required-ness are unchanged (Boolean, optional).

        • GroupByValue (string) –

          The value for the group-by dimension, when grouping is applied.

    • RevenuePathStatistics (list) –

      Statistics for top revenue paths. Populated when StatisticType is TOP_PATHS_BY_REVENUE.

      • (dict) –

        Revenue statistics for a single content path, including the path, revenue amount, and request count.

        • Path (string) –

          The URI path.

        • Percentage (float) –

          The percentage of total revenue from this path.

        • Amount (string) –

          The total revenue amount from this path in the specified currency.

        • RequestCount (integer) –

          The number of monetized requests to this path.

    • NextMarker (string) –

      When you get a paginated response, this marker indicates that additional results are available.

Exceptions