{
  "openapi": "3.1.0",
  "info": {
    "title": "Twilio SendGrid Marketing Campaigns Statistics API",
    "summary": "The Marketing Campaigns Stats API allows you to retrieve statistics for both Automations and Single Sends. The statistics provided include bounces, clicks, opens, and more.",
    "description": "The Marketing Campaigns Stats API allows you to retrieve statistics for both Automations and Single Sends. The statistics provided include bounces, clicks, opens, and more. You can export stats in CSV format for use in other applications. You can also retrieve Marketing Campaigns stats in the [Marketing Campaigns application user interface](https://mc.sendgrid.com/).\n\nThis API provides statistics for Marketing Campaigns only. For stats related to event tracking, please see the [Stats API](https://docs.sendgrid.com/api-reference/stats).",
    "termsOfService": "https://www.twilio.com/legal/tos",
    "contact": {
      "name": "Twilio SendGrid Support",
      "url": "https://support.sendgrid.com/hc/en-us"
    },
    "license": {
      "name": "MIT",
      "url": "https://code.hq.twilio.com/twilio/sendgrid-oas/blob/main/LICENSE"
    },
    "version": "1.0.0",
    "x-sendgrid": {
      "libraryPackage": "mc_stats"
    },
    "x-jentic-source-url": "https://raw.githubusercontent.com/twilio/sendgrid-oai/main/spec/json/tsg_mc_stats_v3.json"
  },
  "servers": [
    {
      "url": "https://api.sendgrid.com",
      "description": "The Twilio SendGrid v3 API"
    }
  ],
  "paths": {
    "/v3/marketing/stats/automations": {
      "get": {
        "operationId": "ListAutomationStat",
        "summary": "Get All Automation Stats",
        "tags": [
          "Stats"
        ],
        "description": "**This endpoint allows you to retrieve stats for all your Automations.**\n\nBy default, all of your Automations will be returned, but you can specify a selection by passing in a comma-separated list of Automation IDs as the value of the query string parameter `automation_ids`.\n\nResponses are paginated. You can limit the number of responses returned per batch using the `page_size` query string parameter. The default is 25, but you can specify a value between 1 and 50.\n\nYou can retrieve a specific page of responses with the `page_token` query string parameter.",
        "parameters": [
          {
            "name": "automation_ids",
            "in": "query",
            "description": "This endpoint returns all automation IDs if no `automation_ids` are specified.",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "minItems": 1,
              "maxItems": 25
            }
          },
          {
            "$ref": "#/components/parameters/PaginationPageSize"
          },
          {
            "$ref": "#/components/parameters/PaginationPageToken"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationsResponse"
                }
              }
            }
          },
          "400": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/marketing/stats/automations/{id}": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "The ID of the Automation for which you want to retrieve statistics. ",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "operationId": "GetAutomationStat",
        "summary": "Get Automation Stats by ID",
        "tags": [
          "Stats"
        ],
        "description": "**This endpoint allows you to retrieve stats for a single Automation using its ID.**\n\nMultiple Automation IDs can be retrieved using the \"Get All Automation Stats\" endpoint. Once you have an ID, this endpoint will return detailed stats for the single automation specified.\n\nYou may constrain the stats returned using the `start_date` and `end_date` query string parameters. You can also use the `group_by` and `aggregated_by` query string parameters to further refine the stats returned.",
        "parameters": [
          {
            "$ref": "#/components/parameters/AutomationQueryParamsGroupBy"
          },
          {
            "$ref": "#/components/parameters/AutomationQueryParamsStepId"
          },
          {
            "$ref": "#/components/parameters/AggregatedByBaseProps"
          },
          {
            "$ref": "#/components/parameters/StartDateBaseProps"
          },
          {
            "$ref": "#/components/parameters/EndDateBaseProps"
          },
          {
            "$ref": "#/components/parameters/TimezoneBaseProps"
          },
          {
            "$ref": "#/components/parameters/PaginationPageSize"
          },
          {
            "$ref": "#/components/parameters/PaginationPageToken"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutomationsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Stats400"
          },
          "404": {
            "description": ""
          }
        }
      }
    },
    "/v3/marketing/stats/automations/{id}/links": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "The ID of the Automation you want to get click tracking stats for. ",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        }
      ],
      "get": {
        "operationId": "ListClickTrackingStat",
        "summary": "Get Automation Click Tracking Stats by ID",
        "tags": [
          "Stats"
        ],
        "description": "**This endpoint lets you retrieve click-tracking stats for a single Automation**.\n\nThe stats returned list the URLs embedded in your Automation and the number of clicks each one received.",
        "parameters": [
          {
            "$ref": "#/components/parameters/AutomationQueryParamsGroupBy"
          },
          {
            "$ref": "#/components/parameters/AutomationQueryParamsStepId"
          },
          {
            "$ref": "#/components/parameters/PaginationPageSize"
          },
          {
            "$ref": "#/components/parameters/PaginationPageToken"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AutmoationsLinkStatsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Stats400"
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v3/marketing/stats/automations/export": {
      "get": {
        "operationId": "ExportAutomationStat",
        "summary": "Export Single Send Stats",
        "tags": [
          "Stats"
        ],
        "description": "**This endpoint allows you to export Single Send stats as .CSV data**.\n\nYou can specify one Single Send or many: include as many Single Send IDs as you need, separating them with commas, as the value of the `ids` query string parameter.\n\nThe data is returned as plain text response but in .CSV format, so your application making the call can present the information in whatever way is most appropriate, or just save the data as a .csv file.",
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "description": "The IDs of Single Sends for which to export stats.",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "minItems": 1,
              "maxItems": 50
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The [IANA Area/Region](https://en.wikipedia.org/wiki/Tz_database#Names_of_timezones) string representing the timezone in which the stats are to be presented; i.e. `\"America/Chicago\"`. This parameter changes the timezone format only; it does not alter which stats are returned.",
            "schema": {
              "type": "string",
              "default": "UTC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "description": "CSV data"
                }
              }
            }
          },
          "400": {
            "description": ""
          }
        }
      }
    },
    "/v3/marketing/stats/singlesends": {
      "get": {
        "operationId": "ListSingleSendStat",
        "summary": "Get All Single Sends Stats",
        "tags": [
          "Stats"
        ],
        "description": "**This endpoint allows you to retrieve stats for all your Single Sends.**\n\nBy default, all of your Single Sends will be returned, but you can specify a selection by passing in a comma-separated list of Single Send IDs as the value of the query string parameter `singlesend_ids`.\n\nResponses are paginated. You can limit the number of responses returned per batch using the `page_size` query string parameter. The default is 25, but you specify a value between 1 and 50.\n\nYou can retrieve a specific page of responses with the `page_token` query string parameter.",
        "parameters": [
          {
            "name": "singlesend_ids",
            "in": "query",
            "description": "This endpoint returns all Single Send IDs if no IDs are included in `singlesend_ids`.",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "minItems": 1,
              "maxItems": 25
            }
          },
          {
            "$ref": "#/components/parameters/PaginationPageSize"
          },
          {
            "$ref": "#/components/parameters/PaginationPageToken"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SinglesendsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Stats400"
          }
        }
      }
    },
    "/v3/marketing/stats/singlesends/{id}": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "The ID of Single Send for which you want to retrieve stats.",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "operationId": "GetSingleSendStat",
        "summary": "Get Single Send Stats by ID",
        "tags": [
          "Stats"
        ],
        "description": "**This endpoint allows you to retrieve stats for an individual Single Send using a Single Send ID.**\n\nMultiple Single Send IDs can be retrieved using the \"Get All Single Sends Stats\" endpoint. Once you have an ID, this endpoint will return detailed stats for the Single Send specified.\n\nYou may constrain the stats returned using the `start_date` and `end_date` query string parameters. You can also use the `group_by` and `aggregated_by` query string parameters to further refine the stats returned.",
        "parameters": [
          {
            "$ref": "#/components/parameters/AggregatedByBaseProps"
          },
          {
            "$ref": "#/components/parameters/StartDateBaseProps"
          },
          {
            "$ref": "#/components/parameters/EndDateBaseProps"
          },
          {
            "$ref": "#/components/parameters/TimezoneBaseProps"
          },
          {
            "$ref": "#/components/parameters/PaginationPageSize"
          },
          {
            "$ref": "#/components/parameters/PaginationPageToken"
          },
          {
            "$ref": "#/components/parameters/SinglesendQueryParamsGroupBy"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SinglesendsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Stats400"
          },
          "404": {
            "description": ""
          }
        }
      }
    },
    "/v3/marketing/stats/singlesends/{id}/links": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "description": "The ID of Single Send for which you want to retrieve link stats.",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "operationId": "ListSingleSendTrackingStat",
        "summary": "Get Single Send Click Tracking Stats by ID",
        "tags": [
          "Stats"
        ],
        "description": "**This endpoint lets you retrieve click-tracking stats for one Single Send**.\n\nThe stats returned list the URLs embedded in the specified Single Send and the number of clicks each one received.",
        "parameters": [
          {
            "$ref": "#/components/parameters/PaginationPageSize"
          },
          {
            "$ref": "#/components/parameters/PaginationPageToken"
          },
          {
            "$ref": "#/components/parameters/SinglesendQueryParams2GroupBy"
          },
          {
            "$ref": "#/components/parameters/SinglesendQueryParams2VariationId"
          },
          {
            "$ref": "#/components/parameters/SinglesendQueryParams2PhaseId"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SinglesendsLinkStatsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Stats400"
          },
          "404": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/v3/marketing/stats/singlesends/export": {
      "get": {
        "operationId": "ExportSingleSendStat",
        "summary": "Export Single Send Stats",
        "tags": [
          "Stats"
        ],
        "description": "**This endpoint allows you to export Single Send stats as .CSV data**.\n\nYou can specify one Single Send or many: include as many Single Send IDs as you need, separating them with commas, as the value of the `ids` query string parameter.\n\nThe data is returned as plain text response but in .CSV format, so your application making the call can present the information in whatever way is most appropriate, or just save the data as a .csv file.",
        "parameters": [
          {
            "name": "ids",
            "in": "query",
            "description": "The IDs of Single Sends for which to export stats.",
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "minItems": 1,
              "maxItems": 50
            }
          },
          {
            "name": "timezone",
            "in": "query",
            "description": "The [IANA Area/Region](https://en.wikipedia.org/wiki/Tz_database#Names_of_timezones) string representing the timezone in which the stats are to be presented; i.e. `\"America/Chicago\"`. This parameter changes the timezone format only; it does not alter which stats are returned.",
            "schema": {
              "type": "string",
              "default": "UTC"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "description": "CSV data"
                }
              }
            }
          },
          "400": {
            "description": ""
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AutomationsResponse": {
        "title": "AutomationsResponse",
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "This is the ID of the Automation you are requesting stats for.",
                  "format": "uuid"
                },
                "aggregation": {
                  "type": "string",
                  "description": "This describes the time unit to which the stat is rolled up. It is based on the `aggregated_by` parameter included in the request. It can be \"total\" or the date (in YYYY-MM-DD format) the stats are for.",
                  "default": "total"
                },
                "step_id": {
                  "type": "string",
                  "description": "This is the ID of the step if the stats were requested to be grouped by `step_id`.",
                  "default": "all"
                },
                "stats": {
                  "$ref": "#/components/schemas/Metrics"
                }
              },
              "required": [
                "id",
                "aggregation",
                "step_id"
              ]
            }
          },
          "_metadata": {
            "$ref": "#/components/schemas/Metadata"
          }
        },
        "required": [
          "results"
        ]
      },
      "AutmoationsLinkStatsResponse": {
        "title": "AutmoationsLinkStatsResponse",
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "description": "",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "description": "This is the URL of the link clicked. If `{{custom_fields}}` are part of the URL, they will be included.",
                  "format": "uri"
                },
                "url_location": {
                  "type": "integer",
                  "description": "This is the location of the link clicked in each Automation step. Links are located according to their position within the message; the topmost link has index `0`.",
                  "minimum": 0
                },
                "step_id": {
                  "type": "string",
                  "description": "This is the ID of the step if the stats were requested to be grouped by `step_id`.",
                  "format": "uuid"
                },
                "clicks": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "The number of clicks on this particular link."
                }
              },
              "required": [
                "url",
                "step_id",
                "clicks"
              ]
            }
          },
          "total_clicks": {
            "type": "integer"
          },
          "_metadata": {
            "$ref": "#/components/schemas/LinkTrackingMetadata"
          }
        },
        "required": [
          "results",
          "total_clicks",
          "_metadata"
        ]
      },
      "SinglesendsResponse": {
        "title": "SinglesendsResponse",
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "This is the ID of the Single Send you require stats for.",
                  "format": "uuid"
                },
                "ab_variation": {
                  "type": "string",
                  "default": "a14dcc63-d651-4c57-9826-4a3705f5c78d",
                  "description": "This is the A/B variation of the Single Send stat returned. If the `group_by` parameter doesn't include `ab_variation` in the request, then the value is \"all\".",
                  "format": "uuid"
                },
                "ab_phase": {
                  "type": "string",
                  "default": "all",
                  "description": "This is the A/B phase of the Single Send stat returned. If the `group_by` parameter doesn't include `ab_phase` in the request, then the value is \"all\".",
                  "$ref": "#/components/schemas/AbPhase"
                },
                "aggregation": {
                  "type": "string",
                  "description": "This describes the time unit to which the stat is rolled up. It is based on the `aggregated_by` parameter included in the request. It can be \"total\" or the date (in YYYY-MM-DD format) the stats are for.",
                  "default": "total"
                },
                "stats": {
                  "$ref": "#/components/schemas/Metrics"
                }
              },
              "required": [
                "id",
                "ab_variation",
                "ab_phase"
              ]
            }
          },
          "_metadata": {
            "$ref": "#/components/schemas/Metadata"
          }
        },
        "required": [
          "results",
          "_metadata"
        ]
      },
      "SinglesendsLinkStatsResponse": {
        "title": "SinglesendsLinkStatsResponse",
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "description": "This is the index of the link's location in the email contents.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string",
                  "description": "This is the URL of the link clicked. If `{{custom_fields}}` are part of the URL, they will be included.",
                  "format": "uri"
                },
                "url_location": {
                  "type": "integer",
                  "description": "This is the location of the link clicked in each Single Send A/B variation, or in the Single Send itself if there are no variations. Links are numbered from the top down; the topmost link is index `0`.",
                  "minimum": 0
                },
                "ab_variation": {
                  "type": "string",
                  "description": "This is the A/B variation of the Single Send stat returned. It is set to `\"all\"` if the `ab_variation` query parameter was not set in the request and `group_by` doesn't contain `ab_variation`.",
                  "format": "uuid"
                },
                "ab_phase": {
                  "type": "string",
                  "description": "This is the A/B phase of the Single Send stat returned. If the `ab_phase` query parameter was not provided, it will return `\"all\"`.",
                  "$ref": "#/components/schemas/AbPhase1"
                },
                "clicks": {
                  "type": "integer",
                  "minimum": 1,
                  "description": "the number of clicks on this particular link"
                }
              },
              "required": [
                "url",
                "ab_variation",
                "ab_phase",
                "clicks"
              ]
            }
          },
          "_metadata": {
            "$ref": "#/components/schemas/LinkTrackingMetadata"
          },
          "total_clicks": {
            "type": "integer"
          }
        },
        "required": [
          "results",
          "_metadata"
        ]
      },
      "Metrics": {
        "title": "metrics",
        "type": "object",
        "properties": {
          "bounce_drops": {
            "type": "integer"
          },
          "bounces": {
            "type": "integer"
          },
          "clicks": {
            "type": "integer"
          },
          "delivered": {
            "type": "integer"
          },
          "invalid_emails": {
            "type": "integer"
          },
          "opens": {
            "type": "integer"
          },
          "requests": {
            "type": "integer"
          },
          "spam_report_drops": {
            "type": "integer"
          },
          "spam_reports": {
            "type": "integer"
          },
          "unique_clicks": {
            "type": "integer"
          },
          "unique_opens": {
            "type": "integer"
          },
          "unsubscribes": {
            "type": "integer"
          }
        },
        "required": [
          "bounce_drops",
          "bounces",
          "clicks",
          "delivered",
          "invalid_emails",
          "opens",
          "requests",
          "spam_report_drops",
          "spam_reports",
          "unique_clicks",
          "unique_opens",
          "unsubscribes"
        ]
      },
      "Metadata": {
        "title": "metadata",
        "type": "object",
        "properties": {
          "prev": {
            "type": "string",
            "format": "uri",
            "description": "The URL of the previous page of results. If this field isn't present, you're at the start of the list."
          },
          "self": {
            "type": "string",
            "format": "uri",
            "description": "The URL of the current page of results."
          },
          "next": {
            "type": "string",
            "format": "uri",
            "description": "The URL of the next page of results. If this field isn't present, you're at the end of the list."
          },
          "count": {
            "type": "number",
            "description": "The number of items in the entire list, i.e., across all pages."
          }
        }
      },
      "LinkTrackingMetadata": {
        "title": "link tracking metadata",
        "type": "object",
        "properties": {
          "prev": {
            "type": "string",
            "format": "uri",
            "description": "The URL of the previous page of results. If this field isn't present, you're at the start of the list."
          },
          "self": {
            "type": "string",
            "format": "uri",
            "description": "The URL of the current page of results."
          },
          "next": {
            "type": "string",
            "format": "uri",
            "description": "The URL of the next page of results. If this field isn't present, you're at the end of the list."
          },
          "count": {
            "type": "number",
            "description": "The number of items in the entire list, i.e., across all pages."
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "message": {
                  "type": "string",
                  "description": "An error message."
                },
                "field": {
                  "description": "When applicable, this property value will be the field that generated the error.",
                  "nullable": true,
                  "type": "string"
                },
                "help": {
                  "type": "object",
                  "description": "When applicable, this property value will be helper text or a link to documentation to help you troubleshoot the error."
                }
              }
            }
          },
          "id": {
            "type": "string",
            "description": "When applicable, this property value will be an error ID."
          }
        },
        "example": {
          "errors": [
            {
              "field": "field_name",
              "message": "error message"
            }
          ]
        }
      },
      "AbPhase": {
        "type": "string",
        "enum": [
          "send",
          "test",
          "all"
        ]
      },
      "AbPhase1": {
        "type": "string",
        "enum": [
          "send",
          "test",
          "all"
        ]
      },
      "Items": {
        "type": "string",
        "enum": [
          "step_id"
        ]
      },
      "AggregatedBy": {
        "type": "string",
        "enum": [
          "day",
          "total"
        ]
      },
      "Items1": {
        "type": "string",
        "enum": [
          "ab_variation",
          "ab_phase"
        ]
      },
      "Items2": {
        "type": "string",
        "enum": [
          "ab_variation",
          "ab_phase"
        ]
      },
      "AbPhaseId": {
        "type": "string",
        "enum": [
          "test",
          "send"
        ]
      }
    },
    "responses": {
      "Stats400": {
        "description": "",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            }
          }
        }
      }
    },
    "parameters": {
      "PaginationPageSize": {
        "name": "page_size",
        "in": "query",
        "description": "The number of elements you want returned on each page.",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "maximum": 50,
          "default": 25
        }
      },
      "PaginationPageToken": {
        "name": "page_token",
        "in": "query",
        "description": "The stats endpoints are paginated. To get the next page, call the passed `_metadata.next` URL. If `_metadata.prev` doesn't exist, you're at the first page. Similarly, if `_metadata.next` is not present, you're at the last page.",
        "schema": {
          "type": "string"
        }
      },
      "AutomationQueryParamsGroupBy": {
        "name": "group_by",
        "in": "query",
        "description": "Automations can have multiple steps. Including `step_id` as a `group_by` metric allows further granularity of stats.",
        "style": "form",
        "explode": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "$ref": "#/components/schemas/Items"
          }
        }
      },
      "AutomationQueryParamsStepId": {
        "name": "step_ids",
        "in": "query",
        "description": "Comma-separated list of `step_ids` that you want the link stats for.",
        "style": "form",
        "explode": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uuid"
          },
          "uniqueItems": true
        }
      },
      "AggregatedByBaseProps": {
        "name": "aggregated_by",
        "in": "query",
        "description": "Dictates how the stats are time-sliced. Currently, `\"total\"` and `\"day\"` are supported.",
        "schema": {
          "type": "string",
          "default": "total",
          "$ref": "#/components/schemas/AggregatedBy"
        }
      },
      "StartDateBaseProps": {
        "name": "start_date",
        "in": "query",
        "description": "Format: `YYYY-MM-DD`. If this parameter is included, the stats' start date is included in the search.",
        "schema": {
          "type": "string",
          "format": "date",
          "default": "2021-01-01"
        }
      },
      "EndDateBaseProps": {
        "name": "end_date",
        "in": "query",
        "description": "Format: `YYYY-MM-DD`.If this parameter is included, the stats' end date is included in the search.",
        "schema": {
          "type": "string",
          "format": "date",
          "default": "2021-12-31"
        }
      },
      "TimezoneBaseProps": {
        "name": "timezone",
        "in": "query",
        "description": "[IANA Area/Region](https://en.wikipedia.org/wiki/Tz_database#Names_of_timezones) string representing the timezone in which the stats are to be presented, e.g., \"America/Chicago\".",
        "schema": {
          "type": "string",
          "default": "UTC"
        }
      },
      "SinglesendQueryParamsGroupBy": {
        "name": "group_by",
        "in": "query",
        "description": "A/B Single Sends have multiple variation IDs and phase IDs. Including these additional fields allows further granularity of stats by these fields.",
        "style": "form",
        "explode": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "$ref": "#/components/schemas/Items1"
          }
        }
      },
      "SinglesendQueryParams2GroupBy": {
        "name": "group_by",
        "in": "query",
        "description": "A/B Single Sends have multiple variation IDs and phase IDs. Including these additional fields allows further granularity of stats by these fields.",
        "style": "form",
        "explode": false,
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "$ref": "#/components/schemas/Items2"
          }
        }
      },
      "SinglesendQueryParams2VariationId": {
        "name": "ab_variation_id",
        "in": "query",
        "schema": {
          "type": "string",
          "format": "uuid"
        }
      },
      "SinglesendQueryParams2PhaseId": {
        "name": "ab_phase_id",
        "in": "query",
        "schema": {
          "type": "string",
          "$ref": "#/components/schemas/AbPhaseId"
        }
      }
    },
    "examples": {},
    "requestBodies": {},
    "headers": {},
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Twilio SendGrid requires you to authenticate with its APIs using an API key. The API key must be sent as a bearer token in the Authorization header."
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Stats",
      "description": "Twilio SendGrid Marketing Campaigns Stats API"
    }
  ],
  "externalDocs": {
    "description": "Twilio SendGrid's official developer documentation.",
    "url": "https://www.twilio.com/docs/sendgrid"
  }
}