Skip to main content

Analytics | Developer Documentation

Analytics

Updated: Feb 12, 2026
Starting December 1, 2025, the maximum lookback window for messaging, conversation, and pricing analytics is changing from 10 years to 1 year. The lookback window for template and template group analytics will be unaffected and will continue to be 90 days.
This document describes how to get messaging, conversation, template, and group analytics, such as the number of messages sent from a business phone number, the number of conversations and their costs for a WhatsApp Business Account (WABA), or the number of times a given template has been read.
Only metrics for business phone numbers and templates associated with your WABA at the time of the request will be included in responses.

Get data

Use the GET /<WHATSAPP_BUSINESS_ACCOUNT_ID> endpoint to get analytics.

Request parameters

Placeholder Description Example Value
<FIELD>
analytics
<FILTERS>
.start(1543543200).end(1544148000).granularity(DAY)

Pricing analytics

The pricing_analytics field allows you to get pricing breakdowns for any messages delivered within a specified date range.

Request syntax


GET /<WHATSAPP_BUSINESS_ACCOUNT_ID>
  ?fields=pricing_analytics
  .start(<START>)
  .end(<END>)
  .granularity(<GRANULARITY>)
  .phone_numbers(<PHONE_NUMBERS>)
  .country_codes(<COUNTRY_CODES>)
  .metric_types(<METRIC_TYPES>)
  .pricing_types(<PRICING_TYPES>)
  .pricing_categories(<PRICING_CATEGORIES>)
  .dimensions(<DIMENSIONS>)

Pricing analytics parameters

Filter Description Example Value
<COUNTRY_CODES>
Array of strings
Optional.
The countries for which you would like to retrieve analytics. Provide an array with 2 letter country codes for the countries you would like to include. If not provided, analytics will be returned for all countries you have communicated with.
[
US,
BR
]
<DIMENSIONS>
Array of strings
Optional.
List of breakdowns you would like to apply to your metrics. If you send an empty list, we return results without any breakdowns.
Values can be:
    COUNTRYPHONEPRICING_CATEGORYPRICING_TYPETIER
    [
    PRICING_CATEGORY,
    PRICING_TYPE,
    COUNTRY
    ]
    <END>
    UNIX timestamp
    Required.
    UNIX timestamp indicating the end date for the date range you are retrieving analytics for.
    1728581152
    <GRANULARITY>
    String
    Required.
    The granularity at which you would like to retrieve the analytics. Value can be one of:
      DAILYHALF_HOURMONTHLY
      DAILY
      <METRIC_TYPES>
      Array of strings
      Optional.
      Array of metrics you would like to receive. If you send an empty array, we return results for all metric types.
      Values can be:
        COST: Approximate charges for messages delivered in that time range, in your WABA's currency.VOLUME: Includes the number of messages delivered for that time range.
        Note that COST will not be returned for WABAs that share a Solution Partner's credit line. If your WABA shares a Solution Partner's credit line, reach out to your Solution Partner to understand your charges.
        [COST, VOLUME]
        <PHONE_NUMBERS>
        Array of strings
        Optional.
        An array of phone numbers for which you would like to retrieve analytics. If not provided, data for all business phone numbers associated with your WABA are included.
        [
        15550783881,
        15550783882,
        15550783883
        ]
        <PRICING_CATEGORIES>
        Array of strings
        Optional.
        Array of pricing categories. If you send an empty array, we return results for all pricing categories.
        Values can be:
          AUTHENTICATION: Messages charged the authentication rate.AUTHENTICATION_INTERNATIONAL: Messages charged the authentication-international rate.MARKETING: Messages charged the marketing rate.SERVICE: Messages that were not charged. Includes all non-template messages and utility messages sent inside of a customer service window.UTILITY: Messages charged the utility rate.REFERRAL_CONVERSION: Messages that have been received through a free entry point
          [
          AUTHENTICATION,
          MARKETING,
          UTILITY
          ]
          <PRICING_TYPES>
          Array of strings
          Optional.
          Array of pricing types. If you send an empty array, we return results for all pricing types.
          Values can be:
            FREE_CUSTOMER_SERVICE: Free messages. These are non-template messages and utility messages sent within customer service windows.FREE_ENTRY_POINT: All messages sent within free entry point customer service windows.REGULAR: Billable messages. Includes all authentication and marketing template messages, and any utility template messages sent outside of a customer service window. Excludes all messages sent within free entry point customer service windows.
            [
            REGULAR,
            FREE_CUSTOMER_SERVICE
            ]
            <START>
            UNIX timestamp
            Required.
            UNIX timestamp indicating the start date for the date range you are retrieving analytics for.
            1726014453
            <WABA_ID>
            String
            Required.
            WhatsApp Business Account ID.
            102290129340398

            Volume tier information

            Include the TIER, PRICING_CATEGORY, and COUNTRY parameters in the dimensions array to get volume tier information. Data points representing messages affected by volume tier pricing will have a tier property in the response.
            Example response syntax with tier information
            
            
            The tier property value represents a concatenation of the lower and upper bounds for the tier specific to the market-category pair (country and pricing_category) that that data point represents.
              <LOWER> - An integer representing the lower bound of the tier (inclusive).<UPPER> - An integer representing the upper bound of the tier (inclusive), or the string MAX.
              Notes
                To determine your current volume tier, read the tier, country, and pricing_category values. The tier value's <UPPER> integer (the integer after the colon) tells you your current tier for the country and pricing_category (for example, (India and utility, respectively).To determine how many messages you need to send to reach the next tier for a given country and pricing_category, subtract the volume integer from the tier value's <UPPER> integer.Volume tiers will only be available for utility and authentication template messages. For marketing template messages (where volume tiers will not apply), tier will be set to 0:MAX.The tier property will be omitted for data points that represent free messages, since free messages don't contribute to tiering counts.Volume tiers will be determined solely by Meta. All insights data is approximate due to small variations in data processing. Undue reliance should not be placed on insights data.

                Template analytics

                Template analytics describe the number of times a template has been sent, delivered, and read, and the number of times URL buttons or Quick Reply buttons in the template have been clicked. Additionally, onboarded MM API for WhatsApp businesses can track offsite conversion metrics.
                Data is returned with a daily granularity in the default timezone of UTC and WABA's timezone, with a lookback window of up to 90 days. To show data in the WABA's configured timezone, pass in the use_waba_timezone param with a value of true.
                Display data in the WABA's configured timezone by passing in the use_waba_timezone param with a value of true.
                
                

                Limitations

                  Button click analytics are only available for templates categorized as MARKETING or UTILITY.WABAs owned by or shared with Meta Business Accounts in the European Union, United Kingdom, or Japan, or that have a business phone number with a country calling code from any of those countries or regions, are not supported.Offsite conversion metrics are available exclusively for businesses onboarded to MM API for WhatsApp.Read and click event data for WhatsApp template messages is only available for up to 7 days from the date the message is sent. After this 7-day window, the corresponding read/click counts reset to zero and no further updates are recorded for those messages.

                  Confirming template analytics

                  You must confirm template analytics on your WhatsApp Business Account before you can get template analytics. You can confirm template analytics using the WhatsApp Manager or the API.
                  By confirming access via the API, you direct Meta to add insights to your WhatsApp Business Account. These insights include link tracking to report website clicks. You can turn off link tracking on each message template. You also direct Meta to collect and anonymize data from your chats with customers. Meta will anonymize this data to improve services it provides you and other businesses.
                  To confirm via API, send the following request:
                  
                  
                  POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>?is_enabled_for_insights=true
                  Once confirmed, we will begin capturing template analytics for the WhatsApp Business Account. Once confirmed, template analytics cannot be disabled.
                  Upon success, the API will respond with your WhatsApp Business Account ID. For example:
                  
                  
                  {
                    "id": 102290129340398
                  }

                  Template analytics parameters

                  Name Description Example Value
                  start
                  UNIX Timestamp or date string
                  Required.
                  The start time for the date range you are retrieving analytics for. Can be represented as either a unix timestamp integer or a date string in the format YYYY-MM-DD. As template analytics are being provided with a daily granularity in the UTC timezone, a start unix timestamp that does not correspond to 0:00 UTC will be adjusted back to the current day's 00:00 UTC.
                  If use_waba_timezone param has a value of true, this value must be a date string in the format YYYY-MM-DD.
                  1543536000
                  end
                  UNIX Timestamp or date string
                  Required.
                  The end time for the date range you are retrieving analytics for. Can be represented as either a unix timestamp integer or a date string in the format YYYY-MM-DD. As template analytics are being provided with a daily granularity in the UTC timezone, an end unix timestamp that does not correspond to 0:00 UTC will be adjusted back to the current day's 00:00 UTC.
                  If use_waba_timezone param has a value of true, this value must be a date string in the format YYYY-MM-DD.
                  1543708800
                  granularity
                  Enum
                  Required.
                  The granularity at which you would like to retrieve the analytics. Value must be DAILY.
                  DAILY
                  template_ids
                  Array of IDs
                  Required.
                  An array of template IDs for which you would like to retrieve analytics for.
                  Maximum 10.
                  [1924084211297547,954638012257287,969725530748535]
                  metric_types
                  Array of enums
                  Optional.
                  The types of metrics which you want to retrieve. If omitted or an empty array, analytics for all metric types will be returned.
                  Possible values:
                    COSTCLICKEDDELIVEREDREADSENTAPP_ACTIVATIONS (MM API for WhatsApp only)APP_ADD_TO_CART (MM API for WhatsApp only)APP_CHECKOUTS_INITIATED (MM API for WhatsApp only)APP_PURCHASES (MM API for WhatsApp only)APP_PURCHASES_CONVERSION_VALUE (MM API for WhatsApp only)WEBSITE_ADD_TO_CART (MM API for WhatsApp only)WEBSITE_CHECKOUTS_INITIATED (MM API for WhatsApp only)WEBSITE_PURCHASES (MM API for WhatsApp only)WEBSITE_PURCHASES_CONVERSION_VALUE (MM API for WhatsApp only)
                    Note that COST will not be returned for WABAs that share a Solution Partner's credit line. If your WABA shares a Solution Partner's credit line, reach out to your Solution Partner to understand your charges.
                    [SENT,DELIVERED,READ]
                    product_type
                    Enum
                    Optional.
                    The product type of the metrics you want to retrieve. If omitted, only analytics for Cloud API will be returned.
                    Possible values:
                      CLOUD_API: Use this product type to filter for template metrics sent via Cloud APIMARKETING_MESSAGES_API_FOR_WHATSAPP: Use this product type to filter for template metrics sent via Marketing Messages API for WhatsApp
                      MARKETING_MESSAGES_API_FOR_WHATSAPP
                      <USE_WABA_TIMEZONE>
                      Boolean
                      Optional.
                      Whether to show metrics in the WABA's configured timezone. If false or omitted, metrics will be shown in UTC.
                      If true, params start and end must be in the format YYYY-MM-DD.
                      true

                      Template analytics cost and click metrics

                      Cost metrics are returned as an array of cost objects, each with a type and value. Types can be:
                        amount_spent - Total amount spent on conversations opened within the start and end timeframe as a result of sending the template. See Opening Conversations.cost_per_delivered - The amount_spent value divided by the number of times the template was delivered within the start and end timeframe.cost_per_url_button_click - The amount_spent value divided by the number of times the template's URL button was clicked, within the start and end timeframe. Quick reply button clicks are not included. Object omitted if the template does not have a URL button.
                        Click metrics are returned as an array of JSON objects each with a type and value. Clicks are only returned for URL buttons and quick-reply buttons in templates categorized as MARKETING or UTILITY.
                        Types can be:
                          url_button - The total number of clicks on the url button.unique_url_button - Unique clicks track the number of distinct WhatsApp accounts that have clicked on a button. This metric helps you understand how many individual users are engaging with your CTAs, while eliminating duplicate clicks from the same recipient and providing an accurate measurement of engagement.

                          Disabling button click analytics

                          You can disable button click tracking on an individual template by setting its cta_url_link_tracking_opted_out field to true. Once disabled, the API will no longer return the clicked property in template analytics or display button engagement/clicks in the WhatsApp Manager when viewing the template's insights.
                          Request parameters
                          Placeholder Description Example Value
                          <WHATSAPP_TEMPLATE_ID>
                          Template ID
                          Required.
                          Template ID.
                          245435364965041
                          <OPT_OUT>
                          Boolean
                          Required.
                          Indicates if template button click tracking is disabled. Set to true to disable button click tracking on the template, or false to enable.
                          This value is set to false upon template creation.
                          true
                          <TEMPLATE_CATEGORY>
                          String
                          Required.
                          Template's current category.
                          If you set the template category to a value other than its current category, the template status will be set to PENDING and the template must undergo template review to be approved.
                          marketing

                          Template group analytics

                          The template_group_analytics field allows you to get the number of times templates within a template group have been sent, delivered, and read, and the number of times their URL buttons or Quick Reply buttons have been clicked.
                          Data is returned with a daily granularity in the default timezone of UTC and WABA's timezone, with a lookback window of up to 90 days. To show data in the WABA's configured timezone, pass in the use_waba_timezone param with a value of true.
                          
                          

                          Limitations

                          Button click analytics are only available for templates categorized as marketing or utility. WABAs owned by or shared with Meta Business Accounts in the European Union, United Kingdom, or Japan, or that have a business phone number with a country calling code from any of those countries or regions, are not supported.

                          Enabling template analytics

                          You must enable template analytics on your WhatsApp Business Account before you can get template group analytics. You can confirm template analytics enablement using the WhatsApp Manager or the API.
                          By confirming access via the API, you direct Meta to add insights to your WhatsApp Business Account. These insights include link tracking to report website clicks. You can turn off link tracking on each message template. You also direct Meta to collect and anonymize data from your chats with customers. Meta will anonymize this data to improve services it provides you and other businesses.
                          To confirm enablement via API, send the following request:
                          POST /<WHATSAPP_BUSINESS_ACCOUNT_ID>?is_enabled_for_insights=true
                          Upon success, the API will respond with your WhatsApp Business Account ID and we will begin capturing template group analytics for the WhatsApp Business Account.
                          Once enabled, template analytics cannot be disabled.

                          Template group analytics parameters

                          Placeholder Description Example value
                          <WABA_ID>String
                          Required.
                          WhatsApp Business Account ID.
                          102290129340398
                          <START_TIME>
                          UNIX Timestamp or date string
                          Required.
                          The start time for the date range you are retrieving analytics for. Can be represented as either a unix timestamp integer or a date string in the format YYYY-MM-DD.
                          As template group analytics are being provided with a daily granularity in the UTC timezone, a start unix timestamp that does not correspond to 0:00 UTC will be adjusted back to the current day's 00:00 UTC.
                          If use_waba_timezone param has a value of true, this value must be a date string in the format YYYY-MM-DD.
                          1738465116
                          <END_TIME>
                          UNIX Timestamp or date string
                          Required.
                          The end time for the date range you are retrieving analytics for. Can be represented as either a unix timestamp integer or a date string in the format YYYY-MM-DD.
                          As template group analytics are being provided with a daily granularity in the UTC timezone, an end unix timestamp that does not correspond to 0:00 UTC will be adjusted back to the current day's 00:00 UTC.
                          If use_waba_timezone param has a value of true, this value must be a date string in the format YYYY-MM-DD.
                          1739559516
                          <METRIC_TYPES>
                          Array of strings
                          Optional.
                          Array of metrics you would like to receive. If you send an empty array, the API returns results for all metric types.
                          Values can be:
                            costclickeddeliveredreadsent
                            Note that COST is not accessible to business customers who are billed through a Solution Partner.
                            See Cost and click metrics to learn more about cost and click metrics.
                            [
                              sent,
                              delivered,
                              read
                            ]
                            
                            <TEMPLATE_GROUP_IDS>
                            Required.
                            An array of template group IDs for which you wish to get template group metrics.
                            Maximum 10 IDs.
                            102290129340398
                            <USE_WABA_TIMEZONE>`
                            Boolean
                            Optional.
                            Whether to show metrics in the WABA's configured timezone. If false or omitted, metrics will be shown in UTC.
                            If true, params start and end must be in the format YYYY-MM-DD.
                            true

                            Template group cost and click metrics

                            Cost metrics are returned as an array of cost objects, each with a type and value. Types can be:
                              amount_spent - Total amount spent on conversations opened within the start and end timeframe as a result of sending the template. See Opening Conversations.cost_per_delivered - The amount_spent value divided by the number of times the template was delivered within the start and end timeframe.cost_per_url_button_click - The amount_spent value divided by the number of times the template's URL button was clicked, within the start and end timeframe. Quick reply button clicks are not included. Object omitted if the template does not have a URL button.
                              Click metrics are returned as an array of JSON objects each with a type and value. Clicks are only returned for URL buttons and quick-reply buttons in templates categorized as marketing or utility.
                              Types can be:
                                url_button - The total number of clicks on the url button.unique_url_button - Unique clicks track the number of distinct WhatsApp accounts that have clicked on a button. This metric helps you understand how many individual users are engaging with your CTAs, while eliminating duplicate clicks from the same recipient and providing an accurate measurement of engagement.