Infobip Metrics API

Metrics API is a way to access aggregated traffic information. By integrating this API, you can retrieve analytics related to your communications and build your own reporting facilities. — 2 operation path(s) and 1 webhook(s) in Infobip's published OpenAPI.

OpenAPI Specification

infobip-metrics-api-openapi.json Raw ↑
{
 "openapi":"3.1.0",
 "info":{
  "title":"Infobip OpenAPI Specification",
  "description":"OpenAPI Specification that contains all public endpoints and webhooks.",
  "contact":{
   "name":"Infobip support",
   "email":"support@infobip.com"
  },
  "version":"3.210.0",
  "x-generatedAt":"2026-07-23T15:24:04.713988125Z"
 },
 "tags":[
  {
   "name":"platform",
   "description":"Modular tools to scale and automate your business.\n",
   "x-type":"category",
   "x-displayName":"Platform"
  },
  {
   "name":"metrics-api",
   "description":"Metrics API is a way to access aggregated traffic information. By integrating this API, you can retrieve analytics related to your communications and build your own reporting facilities.",
   "x-type":"product",
   "x-displayName":"Metrics"
  }
 ],
 "paths":{
  "/metrics/1/query-aggregate-data":{
   "post":{
    "tags":[
     "platform",
     "metrics-api"
    ],
    "summary":"Query aggregated traffic data",
    "description":"Start process for traffic data aggregation. The result will be posted to `callbackURL` provided in the request. The response format is described in [Receive aggregated data result](#platform/metrics-api/receive-aggregate-data-result) operation.",
    "operationId":"query-aggregate-data",
    "requestBody":{
     "content":{
      "application/json":{
       "schema":{
        "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.QueryAggregateDataRequest"
       },
       "examples":{
        "A simple request":{
         "summary":"A simple request",
         "value":{
          "callbackUrl":"https://example.com/receive",
          "request":{
           "filterBy":{
            "accountKeys":[
             "565C2852060F94BC771F692C04C055E1"
            ],
            "includeSubaccounts":true,
            "sentSince":"2023-04-01T00:00:00.000+0000",
            "sentUntil":"2023-04-01T01:00:00.000+0000",
            "channelCodes":[
             "SMS"
            ],
            "directions":[
             "OUTBOUND"
            ],
            "communicationIds":[
             12354646546,
             45534466546,
             754564654689
            ],
            "campaignReferenceIds":[
             "CAMPAIGNNAME-20240612-001",
             "CAMPAIGNNAME-20240612-002"
            ],
            "entityId":"",
            "statusGroups":[
             "REJECTED",
             "UNDELIVERABLE"
            ],
            "statuses":[
             "UNDELIVERABLE_REJECTED_OPERATOR",
             "REJECTED_NETWORK",
             "REJECTED_SENDER"
            ],
            "errorGroups":[
             "OPERATOR_ERRORS",
             "USER_ERRORS"
            ],
            "errorCodes":[
             "NO_ERROR",
             "EC_UNKNOWN_SUBSCRIBER",
             "EC_UNKNOWN_BASE_STATION"
            ]
           },
           "aggregateBy":[
            "ACCOUNT_KEY",
            "HOUR",
            "DIRECTION",
            "STATUS"
           ],
           "metrics":[
            "TOTAL_TRAFFIC_COUNT"
           ]
          }
         }
        },
        "Request using multiple date/time aggregates":{
         "summary":"Request using multiple date/time aggregates",
         "description":"When using multiple date/time aggregates, only the finest one will be presented in the response. In this case, when one queries for DAY and HOUR, only HOUR will be present.",
         "value":{
          "callbackUrl":"https://example.com/receive",
          "request":{
           "filterBy":{
            "accountKeys":[
             "565C2852060F94BC771F692C04C055E1"
            ],
            "includeSubaccounts":false,
            "sentSince":"2023-04-01T00:00:00.000+0000",
            "sentUntil":"2023-04-01T01:00:00.000+0000",
            "channelCodes":[
             "SMS"
            ],
            "entityId":""
           },
           "aggregateBy":[
            "DAY",
            "HOUR",
            "STATUS"
           ],
           "metrics":[
            "TOTAL_TRAFFIC_COUNT"
           ]
          }
         }
        }
       }
      }
     },
     "required":true
    },
    "responses":{
     "201":{
      "description":"Data querying process is started.",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.QueryAggregateDataResponse"
        },
        "examples":{
         "A successful response":{
          "summary":"A successful response",
          "value":{
           "requestId":"B61D150B0F6596F68D88D253886432B5"
          }
         }
        }
       }
      }
     },
     "400":{
      "description":"Request is malformed or invalid.",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/ApiError"
        },
        "examples":{
         "Bad request":{
          "summary":"Bad request",
          "value":{
           "errorCode":"E400",
           "description":"Request cannot be processed.",
           "action":"Check the syntax, violations and adjust the request.",
           "violations":[
            {
             "property":"property.path",
             "violation":"Violation message."
            }
           ],
           "resources":[]
          }
         }
        }
       }
      }
     },
     "401":{
      "$ref":"#/components/responses/ApiError401"
     },
     "403":{
      "$ref":"#/components/responses/ApiError403"
     },
     "429":{
      "$ref":"#/components/responses/ApiError429"
     },
     "500":{
      "$ref":"#/components/responses/ApiError500"
     }
    },
    "security":[
     {
      "IBSSOTokenHeader":[]
     },
     {
      "APIKeyHeader":[]
     },
     {
      "Basic":[]
     },
     {
      "OAuth2":[]
     }
    ],
    "x-scopes":[
     "metrics:manage"
    ],
    "x-is-early-access":true,
    "x-throttling-info":[
     {
      "type":"time",
      "numberOfRequests":60,
      "numberOfTimeUnits":0,
      "timeUnit":"s"
     }
    ]
   }
  },
  "/metrics/1/requests/{requestId}":{
   "get":{
    "tags":[
     "platform",
     "metrics-api"
    ],
    "summary":"Get status of query aggregate data request",
    "description":"Return the status of ongoing request, started by invoking [Query aggregated traffic data](#platform/metrics-api/query-aggregate-data).",
    "operationId":"get-aggregate-request-status",
    "parameters":[
     {
      "name":"requestId",
      "in":"path",
      "required":true,
      "style":"simple",
      "explode":false,
      "schema":{
       "type":"string"
      }
     }
    ],
    "responses":{
     "200":{
      "description":"Request status retrieved.",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.RequestInfo"
        }
       }
      }
     },
     "401":{
      "$ref":"#/components/responses/ApiError401"
     },
     "403":{
      "$ref":"#/components/responses/ApiError403"
     },
     "404":{
      "description":"Request with provided id not found.",
      "content":{
       "application/json":{
        "schema":{
         "$ref":"#/components/schemas/ApiError"
        },
        "examples":{
         "Not found":{
          "summary":"Not found",
          "value":{
           "errorCode":"E404",
           "description":"Not found - request URL doesn't exist on the API server or resource is not found.",
           "action":"Check the resources and adjust your request.",
           "violations":[
            {
             "property":"requestId",
             "violation":"Request with id \"B61D150B0F6596F68D88D253886432B5\" not found"
            }
           ],
           "resources":[]
          }
         }
        }
       }
      }
     },
     "429":{
      "$ref":"#/components/responses/ApiError429"
     },
     "500":{
      "$ref":"#/components/responses/ApiError500"
     }
    },
    "security":[
     {
      "IBSSOTokenHeader":[]
     },
     {
      "APIKeyHeader":[]
     },
     {
      "Basic":[]
     },
     {
      "OAuth2":[]
     }
    ],
    "x-scopes":[
     "metrics:manage"
    ],
    "x-is-early-access":true,
    "x-throttling-info":[
     {
      "type":"time",
      "numberOfRequests":60,
      "numberOfTimeUnits":0,
      "timeUnit":"s"
     }
    ]
   }
  }
 },
 "components":{
  "schemas":{
   "99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.AggregateDataFilter":{
    "type":"object",
    "description":"\nA JSON object specifying the criteria to filter the results. Each field in the object represents a different filter\ncriterion, enabling detailed and complex filtering.\n        ",
    "properties":{
     "accountKeys":{
      "type":"array",
      "description":"\nSpecifies a list of unique account keys (identifiers).\n\nIf not provided, the metrics data for the requester's account will be used by default.\n\nExample:\n\n```\n\"accountKeys\": [\"account_key_1\", \"account_key_2\"]\n```\n\nTo retrieve all available account keys, refer to the\n[Account list endpoint](https://www.infobip.com/docs/api/platform/account-management/get-all-accounts).\n        ",
      "items":{
       "type":"string",
       "description":"\nSpecifies a list of unique account keys (identifiers).\n\nIf not provided, the metrics data for the requester's account will be used by default.\n\nExample:\n\n```\n\"accountKeys\": [\"account_key_1\", \"account_key_2\"]\n```\n\nTo retrieve all available account keys, refer to the\n[Account list endpoint](https://www.infobip.com/docs/api/platform/account-management/get-all-accounts).\n        "
      },
      "uniqueItems":true
     },
     "includeSubaccounts":{
      "type":"boolean",
      "default":false,
      "description":"\nDetermines whether to include traffic data from sub-accounts (children accounts) along with the specified accounts in\n `accountKeys`.\n\nIf set to true, the traffic data for the specified accounts and their sub-accounts is aggregated.\n\nIf set to false, only the traffic data for the specified accounts in `accountKeys` is considered.\n\nThis parameter is optional. If not provided, it defaults to false.\n\nExample:\n\n```\n\"includeSubaccounts\": true\n```\n        ",
      "example":true
     },
     "sentSince":{
      "type":"string",
      "format":"date-time",
      "description":"\nThe start date-time for filtering sent traffic (inclusive).\n\nHas the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.\n        "
     },
     "sentUntil":{
      "type":"string",
      "format":"date-time",
      "description":"\nThe end date-time for filtering sent traffic (exclusive).\n\nHas the following format: `yyyy-MM-dd'T'HH:mm:ss.SSSZ`.\n        "
     },
     "timeToDeliver":{
      "type":"array",
      "description":"\nRepresents the time within which a message is delivered using time buckets.\n\nFor example, you can filter only for messages delivered within a second. The `from` bucket is inclusive, while the `to` bucket is exclusive.\n        ",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.TimeSpan"
      },
      "uniqueItems":true
     },
     "timeToAnswer":{
      "type":"array",
      "description":"\nRepresents the time it took for the call to be answered using time buckets.\n\nFor example, you can filter only for calls answered within a second. The `from` bucket is inclusive, while the `to` bucket is exclusive.\n    ",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.TimeSpan"
      },
      "uniqueItems":true
     },
     "timeToClickFromSeen":{
      "type":"array",
      "description":"\nRepresents the time within which a URL is clicked after the message is seen using time buckets.\n\nFor example, you can filter only messages whose URLs were clicked within 1 second after they were seen. The `from`\nbucket is inclusive, while the `to` bucket is exclusive.\n        ",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.TimeSpan"
      },
      "uniqueItems":true
     },
     "timeToClickFromDelivered":{
      "type":"array",
      "description":"\nRepresents the time within which a URL is clicked after the message is delivered using time buckets.\n\nFor example, you can filter only for messages whose URLs were clicked within 1 second after delivery. The `from` bucket\n is inclusive, while the `to` bucket is exclusive.\n        ",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.TimeSpan"
      },
      "uniqueItems":true
     },
     "timeToSeenFromDelivered":{
      "type":"array",
      "description":"\nRepresents the time within which a message is seen after the message is delivered using time buckets.\n\nFor example, you can filter only for messages seen within 1 second after they were delivered. The `from` bucket is\ninclusive, while the `to` bucket is exclusive.\n        ",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.TimeSpan"
      },
      "uniqueItems":true
     },
     "timeToOpenFromDelivered":{
      "type":"array",
      "description":"\nRepresents the time within which a message is opened after the message is delivered using time buckets.\n\nFor example, you can filter only for messages opened within 1 second after they were delivered. The `from` bucket is inclusive, while the `to` bucket is exclusive.\n    ",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.TimeSpan"
      },
      "uniqueItems":true
     },
     "channelCodes":{
      "type":"array",
      "description":"\nSpecifies communication channels and/or services. This is a list of available channels/services and their codes:\n\n* `SMS` - SMS\n* `EMAIL` - Email\n* `FACEBOOK` - Facebook Messenger\n* `INSTAGRAM` - Instagram Messaging\n* `KAKAO` - Kakao\n* `LINE` - Line\n* `MMS` - MMS\n* `RCS` - RCS\n* `TELEGRAM` - Telegram\n* `VIBER` - Viber\n* `VOICE_VIDEO` - Voice and Video\n* `WHATSAPP` - WhatsApp\n* `ZALO` - Zalo\n* `APPLE_MB` - Apple Messages for Business\n",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.ChannelCode"
      },
      "minLength":1,
      "uniqueItems":true
     },
     "capabilities":{
      "type":"array",
      "description":"\nSpecifies the function, technology, or flavor within the selected channelCodes, making it easier to identify similar\nservices across channels or services.\n\nAvailable capabilities and their codes:\n\n* `PHONE` – Phone\n* `WEBRTC` – WebRTC\n* `SIPTRUNK` – SIP Trunks\n* `VIBER_BC` – Viber Business Calls\n* `WHATSAPP_BC` – WhatsApp Business Calls\n* `LINE_OA` – LINE Official Account\n* `LINE_ON` – LINE Official Notifications\n* `KAKAO_A` – Kakao Alim\n* `KAKAO_B` – Kakao Brand Message\n* `KAKAO_S` – Kakao Sangdam\n* `ZALO_NS` – Zalo Notification Services\n* `ZALO_F` – Zalo Follower\n* `VIBER_BM` – Viber Business Messages\n* `VIBER_BOTS` – Viber Bots\n* `MESSENGER` – Messenger\n* `INSTAGRAM_DM` – Instagram Direct Messaging\n    ",
      "items":{
       "type":"string",
       "description":"\nSpecifies the function, technology, or flavor within the selected channelCodes, making it easier to identify similar\nservices across channels or services.\n\nAvailable capabilities and their codes:\n\n* `PHONE` – Phone\n* `WEBRTC` – WebRTC\n* `SIPTRUNK` – SIP Trunks\n* `VIBER_BC` – Viber Business Calls\n* `WHATSAPP_BC` – WhatsApp Business Calls\n* `LINE_OA` – LINE Official Account\n* `LINE_ON` – LINE Official Notifications\n* `KAKAO_A` – Kakao Alim\n* `KAKAO_B` – Kakao Brand Message\n* `KAKAO_S` – Kakao Sangdam\n* `ZALO_NS` – Zalo Notification Services\n* `ZALO_F` – Zalo Follower\n* `VIBER_BM` – Viber Business Messages\n* `VIBER_BOTS` – Viber Bots\n* `MESSENGER` – Messenger\n* `INSTAGRAM_DM` – Instagram Direct Messaging\n    "
      },
      "uniqueItems":true
     },
     "directions":{
      "type":"array",
      "description":"\nSpecifies the direction of traffic, indicating whether the message was sent to the user (OUTBOUND) or received from the user (INBOUND).\n    ",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.Direction"
      },
      "uniqueItems":true
     },
     "trafficTypes":{
      "type":"array",
      "description":"\nSpecifies the types of traffic. For a full list of values, refer to\n[traffic types](https://www.infobip.com/docs/metrics-api/metrics-and-filters#traffictypes).\n        ",
      "items":{
       "type":"string",
       "description":"\nSpecifies the types of traffic. For a full list of values, refer to\n[traffic types](https://www.infobip.com/docs/metrics-api/metrics-and-filters#traffictypes).\n        "
      },
      "uniqueItems":true
     },
     "senders":{
      "type":"array",
      "description":"\nSpecifies the sender IDs, which can be alphanumeric or numeric.\n\nExample:\n\n```\n\"senders\": [\"mySender\", \"12345\", \"15551234567\", \"jane.smith@somecompany.com\"]\n```\n        ",
      "items":{
       "type":"string",
       "description":"\nSpecifies the sender IDs, which can be alphanumeric or numeric.\n\nExample:\n\n```\n\"senders\": [\"mySender\", \"12345\", \"15551234567\", \"jane.smith@somecompany.com\"]\n```\n        "
      },
      "uniqueItems":true
     },
     "senderTypes":{
      "type":"array",
      "description":"\nSpecifies the types of senders. For a full list of values, refer to\n[sender types](https://www.infobip.com/docs/metrics-api/metrics-and-filters#sendertypes).\n\nExample:\n\n```\n\"senderTypes\": [\"ALPHANUMERIC\", \"SHORT_CODE\", \"VIRTUAL_LONG_NUMBER\", \"DOMAIN\"]\n```\n        ",
      "items":{
       "type":"string",
       "description":"\nSpecifies the types of senders. For a full list of values, refer to\n[sender types](https://www.infobip.com/docs/metrics-api/metrics-and-filters#sendertypes).\n\nExample:\n\n```\n\"senderTypes\": [\"ALPHANUMERIC\", \"SHORT_CODE\", \"VIRTUAL_LONG_NUMBER\", \"DOMAIN\"]\n```\n        "
      },
      "uniqueItems":true
     },
     "communicationIds":{
      "type":"array",
      "description":"\nSpecifies the list of communication IDs associated with either a Broadcast or a Moments/Flow campaign.\n\nUse communication IDs to filter data related to specific campaigns.\n\nFor detailed information on the differences between Broadcast and Flow campaigns, refer to the\n[Broadcast](https://www.infobip.com/docs/broadcast) and [Flow overview](https://www.infobip.com/docs/moments).\n\nExample:\n\n```\n\"communicationIds\": [12354646546, 45534466546, 754564654689]\n```\n        ",
      "items":{
       "type":"integer",
       "format":"int64",
       "description":"\nSpecifies the list of communication IDs associated with either a Broadcast or a Moments/Flow campaign.\n\nUse communication IDs to filter data related to specific campaigns.\n\nFor detailed information on the differences between Broadcast and Flow campaigns, refer to the\n[Broadcast](https://www.infobip.com/docs/broadcast) and [Flow overview](https://www.infobip.com/docs/moments).\n\nExample:\n\n```\n\"communicationIds\": [12354646546, 45534466546, 754564654689]\n```\n        "
      },
      "uniqueItems":true
     },
     "campaignReferenceIds":{
      "type":"array",
      "description":"\nSpecifies the list of campaign reference IDs used for traffic sent over Infobip APIs.\n\nUse `campaignReferenceIDs` to filter data related to specific campaigns.\n        ",
      "items":{
       "type":"string",
       "description":"\nSpecifies the list of campaign reference IDs used for traffic sent over Infobip APIs.\n\nUse `campaignReferenceIDs` to filter data related to specific campaigns.\n        "
      },
      "uniqueItems":true
     },
     "networkIds":{
      "type":"array",
      "description":"\nList of network IDs.\n        ",
      "items":{
       "type":"integer",
       "format":"int32",
       "description":"\nList of network IDs.\n        "
      },
      "uniqueItems":true
     },
     "countryIds":{
      "type":"array",
      "description":"\nList of country IDs.\n    ",
      "items":{
       "type":"integer",
       "format":"int32",
       "description":"\nList of country IDs.\n    "
      },
      "uniqueItems":true
     },
     "platforms":{
      "type":"array",
      "description":"\nSpecifies the platform object, which is a combination of an applicationId and entityId. These IDs uniquely identify each application and entity configured on the Infobip platform.\n\nUse this object and its related parameters to filter data for a specific application and entity combination. Note that these parameters should only be used if you leverage CPaaS X applications and entities to manage your traffic.\n\nFor detailed information on applications and entities in the CPaaS X ecosystem, refer to the\n[CPaaSX overview](https://www.infobip.com/docs/cpaas-x/application-and-entity-management).\n        ",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.Platform"
      },
      "uniqueItems":true
     },
     "applicationId":{
      "type":"string",
      "deprecated":true,
      "description":"\nA unique identifier assigned to an application, use case, or environment within the Infobip CPaaS X ecosystem.\n\nUse this parameter to filter data for a specific application.\n\nTo retrieve all available application IDs, refer to the\n[Application list endpoint](https://www.infobip.com/docs/api/platform/application-entity/get-applications).\n\nExample:\n\n```\n\"applicationId\": \"your_application_id\"\n```\n        "
     },
     "entityId":{
      "type":"string",
      "deprecated":true,
      "description":"\nA unique identifier assigned to an entity, such as a brand, customer, or other defined component, within the Infobip CPaaS X ecosystem.\n\nUse this parameter to filter data for a specific entity.\n\nTo retrieve all available entity IDs, refer to the\n[Entity list endpoint](https://www.infobip.com/docs/api/platform/application-entity/get-entities).\n\nExample:\n\n```\n\"entityId\": \"your_entity_id\"\n```\n        "
     },
     "statusGroups":{
      "type":"array",
      "description":"\nSpecifies the general status code groups.\n\nFor the list of possible values, refer to\n[general status codes](https://www.infobip.com/docs/essentials/response-status-and-error-codes#general-error-codes).\n        ",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.GeneralStatus"
      },
      "uniqueItems":true
     },
     "statuses":{
      "type":"array",
      "description":"\nSpecifies the message status reason.\n\nFor the list of possible values, refer to\n[message status reasons](https://www.infobip.com/docs/essentials/response-status-and-error-codes).\n        ",
      "items":{
       "type":"string",
       "description":"\nSpecifies the message status reason.\n\nFor the list of possible values, refer to\n[message status reasons](https://www.infobip.com/docs/essentials/response-status-and-error-codes).\n        "
      },
      "uniqueItems":true
     },
     "errorGroups":{
      "type":"array",
      "description":"\nSpecifies the general error code groups.\n\nFor the list of possible values, refer to\n[error codes groups](https://www.infobip.com/docs/essentials/response-status-and-error-codes#general-error-codes).\n        ",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.ErrorCodeGroup"
      },
      "uniqueItems":true
     },
     "errorCodes":{
      "type":"array",
      "description":"\nSpecifies the error codes.\n\nFor the list of possible values, refer to\n[error codes](https://www.infobip.com/docs/essentials/response-status-and-error-codes#general-error-codes).\n        ",
      "items":{
       "type":"string",
       "description":"\nSpecifies the error codes.\n\nFor the list of possible values, refer to\n[error codes](https://www.infobip.com/docs/essentials/response-status-and-error-codes#general-error-codes).\n        "
      },
      "uniqueItems":true
     }
    },
    "required":[
     "channelCodes",
     "sentSince",
     "sentUntil"
    ],
    "title":"AggregateDataFilter"
   },
   "99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.AggregateDataRequest":{
    "type":"object",
    "properties":{
     "filterBy":{
      "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.AggregateDataFilter"
     },
     "aggregateBy":{
      "type":"array",
      "description":"\nAn array of strings that defines the properties used for data aggregation. Each item in the array represents an aggregation parameter, with a corresponding column in the response showing values for the chosen aggregate.\n`CHANNEL_CODE` is always included in results for metric accuracy, even if not specified in aggregateBy. For further details,\nrefer to our [documentation](https://www.infobip.com/docs/metrics-api/metrics-and-filters#aggregationdimensions).\n\nAvailable aggregates:\n* `ACCOUNT_KEY` - groups the results by account key, displaying account-specific values.\n* `HOUR` - groups the results by hour, showing corresponding hourly timestamp values.\n* `DAY` - groups the results by day, showing corresponding day values.\n* `WEEK_SATURDAY_START` - groups the results by week, starting on Saturday, with corresponding timestamp values.\n* `WEEK_SUNDAY_START` - groups the results by week, starting on Sunday, with corresponding timestamp values.\n* `WEEK_MONDAY_START` - groups the results by week, starting on Monday, with corresponding timestamp values.\n* `MONTH` - groups the results by month, showing monthly values.\n* `QUARTER` - groups the results by quarter, showing quarterly values.\n* `YEAR` - groups the results by year, displaying annual values.\n* `TIME_TO_DELIVER` - groups the results by message delivery time, showing time-to-deliver period descriptions.\n* `TIME_TO_ANSWER` - groups the results by call answer time, showing time-to-answer period descriptions.\n* `TIME_TO_CLICK_FROM_SEEN` - groups the results by the time (in seconds) between a message being seen and a URL being clicked, showing calculated values.\n* `TIME_TO_CLICK_FROM_DELIVERED` - groups the results by the time (in seconds) between message delivery and a URL being clicked, showing calculated values.\n* `TIME_TO_SEEN_FROM_DELIVERED` - groups the results by the time (in seconds) between message delivery and the message being seen, showing calculated values.\n* `TIME_TO_OPEN_FROM_DELIVERED` - groups the results by the time (in seconds) between message delivery and the message being opened, showing calculated values.\n* `CHANNEL_CODE` - groups the results by channel, showing corresponding channel code values.\n* `CHANNEL_NAME` - groups the results by channel name, showing corresponding channel name values.\n* `CAPABILITY` - groups the results by capability, showing corresponding capability code values.\n* `DIRECTION` - groups the results by traffic direction, showing whether it was OUTBOUND (sent to a client) or INBOUND (received from a client).\n* `TRAFFIC_TYPE` - groups the results by traffic type, showing specific traffic type values.\n* `SENDER` - groups the results by sender, showing sender-specific values.\n* `SENDER_TYPE` - groups the results by type of sender, showing sender type values.\n* `SENDER_DOMAIN` - groups the results by sender domain, showing domain-specific values.\n* `RECIPIENT_DOMAIN` - groups the results by recipient domain, showing domain-specific values.\n* `URL` - groups the results by initial URL in a message, showing URL-specific values.\n* `COMMUNICATION` - groups the results by communication ID, showing the unique ID associated with each message.\n* `CAMPAIGN_REFERENCE` - groups the results by campaign reference ID, showing associated campaign reference values.\n* `NETWORK_ID` - groups the results by network, showing network ID values.\n* `NETWORK_NAME` - groups the results by network name, showing the name associated with each network ID.\n* `COUNTRY_ID` - groups the results by country, showing country ID values.\n* `COUNTRY_NAME` - groups the results by country name, showing the name associated with each country.\n* `APPLICATION_ID` - groups the results by application, showing corresponding application ID values.\n* `ENTITY_ID` - groups the results by entity, showing corresponding entity ID values.\n* `STATUS_GROUP` - groups response results by status group, showing corresponding status group values.\n* `STATUS` - groups response results by status name, showing corresponding status values.\n* `ERROR_GROUP` - groups response results by error group, showing corresponding error group values.\n* `ERROR_CODE` - groups response results by error code, showing corresponding error code values.\n            ",
      "items":{
       "$ref":"#/components/schemas/99c561addf74bb07fd67942658f68818323ce564cc5eef645d487517ca1425f2.TrafficAggregate"
      },
      "uniqueItems":true
     },
     "metrics":{
      "type":"array",
      "description":"\nThe metrics parameter accepts an array of non-empty strings that specify the metrics to retrieve. Each column in the response will contain values corresponding to the selected metric type.\n\nFor detailed information on the metrics available through the API, including specific details, limitations, and channel applicability, please refer to our comprehensive\n[documentation](https://www.infobip.com/docs/metrics-api/metrics-and-filters) on available metrics.\n\nAvailable metrics:\n* `TOTAL_TRAFFIC_COUNT` - Total number of messages or message segments sent to and received from customers (inbound and outbound).\n* `TOTAL_ACCEPTED_TRAFFIC_COUNT` - The total number of accepted Email messages sent to your customers (outbound).\n* `TOTAL_SMS_MESSAGES_COUNT` - Total number of SMS messages sent to and received from customers (inbound and outbound). Messages split into multiple segments due to length are counted as a single distinct message.\n* `INTERACTION_COUNT` - Number of distinct messaging interactions. Combined with the `TRAFFIC_TYPE` dimension, it helps analyze specific messaging traffic by breaking down interactions into different WhatsApp or RCS categories, such as conversations or sessions.\n* `TOTAL_SENT_TRAFFIC_COUNT` - Total number of messages submitted for delivery (outbound).\n* `DELIVERED_TRAFFIC_COUNT` - Total number of messages delivered to a recipient.\n* `TRAFFIC_DELIVERY_RATE` - Percentage of messages successfully delivered to recipients. Calculated using the formula: Total delivered / (Total sent - Total rejected) for all channels except Email, where it is calculated as Total delivered / Total sent.\n* `TRAFFIC_DELIVERED_IN_5_SEC_RATE` - Percentage of messages delivered within a 5-second timeframe.\n* `TOTAL_RECEIVED_TRAFFIC_COUNT` - Total number of messages received from customers (inbound).\n* `RECEIVED_TO_SENT_TRAFFIC_RATIO` - Ratio of received (inbound) to sent (outbound) messages that were not rejected.\n* `FAILED_TRAFFIC_COUNT` - Total number of sent (outbound) messages that were not delivered to recipients.\n* `TOTAL_BOUNCE_COUNT` - Total number of emails not delivered, including soft (temporary) and hard (permanent) bounces.\n* `TOTAL_BOUNCE_RATE` - Percentage of emails that were not delivered, calculated by summing soft and hard bounces and dividing by the total sent.\n* `TOTAL_DROPPED_COUNT` - Submitted emails that were dropped before delivery due to factors such as unsubscribes, bounced addresses, spam marking, or sender errors.\n* `TOTAL_DROPPED_RATE` - Percentage of dropped emails, calculated by dividing the number of dropped emails by the accepted emails.\n* `TOTAL_SUPPRESSED_COUNT` - Number of emails not sent due to a bounce or recipient actions like spam marking.\n* `SOFT_BOUNCE_COUNT` - Number of emails temporarily undeliverable due to reasons like full inboxes, temporary domain unavailability, or lack of recipient opt-in.\n* `SOFT_BOUNCE_RATE` - Percentage of temporarily undeliverable emails, calculated by dividing soft bounces by total sent.\n* `HARD_BOUNCE_COUNT` - Number of emails permanently undeliverable to specific recipients.\n* `HARD_BOUNCE_RATE` - Percentage of permanently undeliverable emails, ca

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/infobip/refs/heads/main/openapi/infobip-metrics-api-openapi.json