{
  "openapi": "3.2.0",
  "info": {
    "title": "Web Analytics",
    "description": "Web_analytics.",
    "termsOfService": "https://ahrefs.com/terms",
    "contact": {
      "name": "Ahrefs",
      "url": "https://ahrefs.com/",
      "email": "support@ahrefs.com"
    },
    "version": "3.0.0"
  },
  "servers": [
    {
      "url": "https://api.ahrefs.com/v3/web-analytics",
      "description": "Ahrefs Web Analytics"
    }
  ],
  "paths": {
    "/stats": {
      "get": {
        "tags": [ "Overview", "MCP" ],
        "summary": "Stats",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "stats",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/stats" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/stats" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/chart": {
      "get": {
        "tags": [ "Overview", "MCP" ],
        "summary": "Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "chart",
        "parameters": [
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/browsers": {
      "get": {
        "tags": [ "User Agents", "MCP" ],
        "summary": "Browsers",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "browsers",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/browsers" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/browsers" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/browsers-chart": {
      "get": {
        "tags": [ "User Agents", "MCP" ],
        "summary": "Browsers Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "browsers-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "browser_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/browsers-chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/browsers-chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/browser-versions": {
      "get": {
        "tags": [ "User Agents", "MCP" ],
        "summary": "Browser Versions",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "browser-versions",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/browser-versions" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/browser-versions" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/browser-versions-chart": {
      "get": {
        "tags": [ "User Agents", "MCP" ],
        "summary": "Browser Versions Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "browser-versions-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "browser_version_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/browser-versions-chart"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/browser-versions-chart"
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/cities": {
      "get": {
        "tags": [ "Geography", "MCP" ],
        "summary": "Cities",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "cities",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/cities" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/cities" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/cities-chart": {
      "get": {
        "tags": [ "Geography", "MCP" ],
        "summary": "Cities Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "cities-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "cities_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/cities-chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/cities-chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/continents": {
      "get": {
        "tags": [ "Geography", "MCP" ],
        "summary": "Continents",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "continents",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/continents" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/continents" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/continents-chart": {
      "get": {
        "tags": [ "Geography", "MCP" ],
        "summary": "Continents Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "continents-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "continents_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/continents-chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/continents-chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/countries": {
      "get": {
        "tags": [ "Geography", "MCP" ],
        "summary": "Countries",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "countries",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/countries" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/countries" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/countries-chart": {
      "get": {
        "tags": [ "Geography", "MCP" ],
        "summary": "Countries Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "countries-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "countries_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/countries-chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/countries-chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/devices": {
      "get": {
        "tags": [ "User Agents", "MCP" ],
        "summary": "Devices",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "devices",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/devices" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/devices" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/devices-chart": {
      "get": {
        "tags": [ "User Agents", "MCP" ],
        "summary": "Devices Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "devices-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "devices_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/devices-chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/devices-chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/entry-pages": {
      "get": {
        "tags": [ "Pages", "MCP" ],
        "summary": "Entry Pages",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "entry-pages",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/entry-pages" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/entry-pages" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/entry-pages-chart": {
      "get": {
        "tags": [ "Pages", "MCP" ],
        "summary": "Entry Pages Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "entry-pages-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "entry_pages_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/entry-pages-chart"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/entry-pages-chart"
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/exit-pages": {
      "get": {
        "tags": [ "Pages", "MCP" ],
        "summary": "Exit Pages",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "exit-pages",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/exit-pages" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/exit-pages" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/exit-pages-chart": {
      "get": {
        "tags": [ "Pages", "MCP" ],
        "summary": "Exit Pages Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "exit-pages-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "exit_pages_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/exit-pages-chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/exit-pages-chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/languages": {
      "get": {
        "tags": [ "Geography", "MCP" ],
        "summary": "Languages",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "languages",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/languages" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/languages" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/languages-chart": {
      "get": {
        "tags": [ "Geography", "MCP" ],
        "summary": "Languages Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "languages-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "browser_language_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/languages-chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/languages-chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/operating-systems": {
      "get": {
        "tags": [ "User Agents", "MCP" ],
        "summary": "Operating Systems",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "operating-systems",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/operating-systems"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/operating-systems"
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/operating-systems-chart": {
      "get": {
        "tags": [ "User Agents", "MCP" ],
        "summary": "Operating Systems Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "operating-systems-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "os_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/operating-systems-chart"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/operating-systems-chart"
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/operating-systems-versions": {
      "get": {
        "tags": [ "User Agents", "MCP" ],
        "summary": "Operating Systems Versions",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "operating-systems-versions",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/operating-systems-versions"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/operating-systems-versions"
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/operating-systems-versions-chart": {
      "get": {
        "tags": [ "User Agents", "MCP" ],
        "summary": "Operating Systems Versions Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "operating-systems-versions-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "os_versions_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/operating-systems-versions-chart"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/operating-systems-versions-chart"
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/source-channels": {
      "get": {
        "tags": [ "Traffic Sources", "MCP" ],
        "summary": "Source Channels",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "source-channels",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/source-channels" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/source-channels" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/source-channels-chart": {
      "get": {
        "tags": [ "Traffic Sources", "MCP" ],
        "summary": "Source Channels Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "source-channels-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "source_channels_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/source-channels-chart"
                }
              },
              "application/xml": {
                "schema": {
                  "$ref": "#/components/schemas/source-channels-chart"
                }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/sources": {
      "get": {
        "tags": [ "Traffic Sources", "MCP" ],
        "summary": "Sources",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "sources",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/sources" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/sources" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/sources-chart": {
      "get": {
        "tags": [ "Traffic Sources", "MCP" ],
        "summary": "Sources Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "sources-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "sources_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/sources-chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/sources-chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/referrers": {
      "get": {
        "tags": [ "Traffic Sources", "MCP" ],
        "summary": "Referrers",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "referrers",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/referrers" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/referrers" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/referrers-chart": {
      "get": {
        "tags": [ "Traffic Sources", "MCP" ],
        "summary": "Referrers Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "referrers-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "source_referers_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/referrers-chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/referrers-chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/top-pages": {
      "get": {
        "tags": [ "Pages", "MCP" ],
        "summary": "Top Pages",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "top-pages",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/top-pages" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/top-pages" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/top-pages-chart": {
      "get": {
        "tags": [ "Pages", "MCP" ],
        "summary": "Top Pages Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "top-pages-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "pages_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/top-pages-chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/top-pages-chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/utm-params": {
      "get": {
        "tags": [ "Traffic Sources", "MCP" ],
        "summary": "UTM Parameters",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "utm-params",
        "parameters": [
          {
            "description": "The number of results to return.",
            "required": false,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "limit",
            "in": "query"
          },
          {
            "description": "Order by metric, as `metric:desc` or `metric:asc`. The following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "order_by",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Specify a UTM parameter to use as dimension.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [
                "utm_source", "utm_medium", "utm_campaign", "utm_term",
                "utm_content"
              ]
            },
            "name": "utm_param",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/utm-params" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/utm-params" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    },
    "/utm-params-chart": {
      "get": {
        "tags": [ "Traffic Sources", "MCP" ],
        "summary": "UTM Parameters Chart",
        "description": ">Requests to this endpoint are free and do not consume any API units.",
        "operationId": "utm-params-chart",
        "parameters": [
          {
            "description": "Specify which values to chart (as a comma separated list), if not provided then `(top5-by-visitors)` is used by default (which charts top 5 values by visitor count).",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "utm_params_to_chart",
            "in": "query"
          },
          {
            "description": "Filter expression. Can mention dimensions and metrics.\n\nThe following dimensions are supported:\n\n**source_channel**: Source Channel  \ntype: enum (search \\| llm \\| email \\| paid \\| search/paid \\| social \\| unknown \\| direct \\| newsletter \\| shopping/organic \\| shopping/paid \\| audio \\| social/paid \\| cross-network \\| mobile-push-notification \\| sms \\| affiliate \\| referral \\| display \\| internal)\n\n**source**: Source  \ntype: string\n\n**source_referer**: Referer source  \ntype: string\n\n**source_referer_domain**: Referer domain  \ntype: string\n\n**utm_source**: UTM source  \ntype: string\n\n**utm_medium**: UTM medium  \ntype: string\n\n**utm_campaign**: UTM campaign  \ntype: string\n\n**utm_term**: UTM term  \ntype: string\n\n**utm_content**: UTM content  \ntype: string\n\n**page**: Page URL  \ntype: url\n\n**page_domain**: Page domain  \ntype: string\n\n**page_title**: Page title  \ntype: string\n\n**entry_page**: Entry page URL  \ntype: url\n\n**exit_page**: Exit page URL  \ntype: url\n\n**continent**: Continent  \ntype: enum (AF \\| AS \\| EU \\| NA \\| OC \\| SA \\| AN \\| )\n\n**country**: Country  \ntype: string\n\n**city**: City  \ntype: string\n\n**browser_language**: Browser language  \ntype: string\n\n**browser**: Browser  \ntype: string\n\n**browser_version**: Browser version  \ntype: string\n\n**os**: Operating system  \ntype: string\n\n**os_version**: Operating system version  \ntype: string\n\n**device**: Device type  \ntype: string\n\n**screensize**: Screen size  \ntype: string\n\n**event_name**: Event name  \ntype: string\n\n**is_external_link_click**: Is external link click  \ntype: boolean\n\n**event_prop:EVENT_PROP**: a custom event property can be specified by its name  \ntype: string\n\nThe following metrics are supported:\n\n**pageviews**: Number of pageview events  \ntype: integer\n\n**visitors**: Number of visitors  \ntype: integer\n\n**visits**: Number of visits  \ntype: integer\n\n**session_bounce_rate**: Session bounce rate (percentage of sessions that triggered only one request)  \ntype: float\n\n**avg_session_length**: Average session length (in seconds)  \ntype: float\n\n**avg_session_duration_sec**: Average session duration (in seconds)  \ntype: integer\n\n**exit_rate**: Exit rate (percentage of pageviews that were the last in the session)  \ntype: float\n\n**exits**: Number of exits  \ntype: integer\n\n**entries**: Number of entries  \ntype: integer\n\n**avg_page_visit_duration_sec**: Average page visit duration (in seconds)  \ntype: integer\n\nFilter is a JSON string that represents a boolean expression, it should follow the following structure:\n```\n<bool_filter> ::= { \"and\" : <bool_filter>+ }\n              |   { \"or\" : <bool_filter>+ }\n              |   { \"not\" : <bool_filter> }\n              |   <expr>\n\n<expr> ::= {\n             \"field\" : <dimension|metric>,\n             ? \"is\": <condition>,\n           }\n\n<condition> ::= [ \"eq\", <value> ]\n            |   [ \"neq\", <value> ]\n            |   [ \"gt\", <value> ]\n            |   [ \"gte\", <value> ]\n            |   [ \"lt\", <value> ]\n            |   [ \"lte\", <value> ]\n            |   [ \"substring\", <value> ]\n            |   [ \"isubstring\", <value> ]\n            |   [ \"phrase_match\", <value> ]\n            |   [ \"iphrase_match\", <value> ]\n            |   [ \"prefix\", <value> ]\n            |   [ \"suffix\", <value> ]\n```",
            "required": false,
            "explode": false,
            "schema": { "type": "string" },
            "name": "where",
            "in": "query"
          },
          {
            "description": "Time granularity for chart data points.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [ "hourly", "daily", "weekly", "monthly" ]
            },
            "name": "granularity",
            "in": "query"
          },
          {
            "description": "end datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "to",
            "in": "query"
          },
          {
            "description": "start datetime for the data query",
            "required": false,
            "explode": false,
            "schema": { "type": "string", "format": "date-time" },
            "name": "from",
            "in": "query"
          },
          {
            "description": "Specify a UTM parameter to use as dimension.",
            "required": true,
            "explode": false,
            "schema": {
              "type": "string",
              "enum": [
                "utm_source", "utm_medium", "utm_campaign", "utm_term",
                "utm_content"
              ]
            },
            "name": "utm_param",
            "in": "query"
          },
          {
            "description": "Project ID",
            "required": true,
            "explode": false,
            "schema": { "type": "integer" },
            "name": "project_id",
            "in": "query"
          },
          { "$ref": "#/components/parameters/output" }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/utm-params-chart" }
              },
              "application/xml": {
                "schema": { "$ref": "#/components/schemas/utm-params-chart" }
              }
            }
          },
          "400": { "$ref": "#/components/responses/error_400" },
          "401": { "$ref": "#/components/responses/error_401" },
          "403": { "$ref": "#/components/responses/error_403" },
          "429": { "$ref": "#/components/responses/error_429" },
          "500": { "$ref": "#/components/responses/error_500" }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Error response": {
        "properties": { "error": { "type": "string" } },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "stats": {
        "properties": {
          "stats": {
            "properties": {
              "avg_session_duration_sec": {
                "type": "integer",
                "title": "avg_session_duration_sec",
                "description": "Average session duration (in seconds)"
              },
              "avg_session_length": {
                "type": "number",
                "format": "float",
                "title": "avg_session_length",
                "description": "Average session length (in seconds)"
              },
              "pageviews": {
                "type": "integer",
                "title": "pageviews",
                "description": "Number of pageview events"
              },
              "session_bounce_rate": {
                "type": "number",
                "format": "float",
                "title": "session_bounce_rate",
                "description": "Session bounce rate (percentage of sessions that triggered only one request)"
              },
              "visitors": {
                "type": "integer",
                "title": "visitors",
                "description": "Number of visitors"
              },
              "visits": {
                "type": "integer",
                "title": "visits",
                "description": "Number of visits"
              }
            },
            "type": "object"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "avg_session_length": {
                  "type": "number",
                  "format": "float",
                  "title": "avg_session_length",
                  "description": "Average session length (in seconds)"
                },
                "pageviews": {
                  "type": "integer",
                  "title": "pageviews",
                  "description": "Number of pageview events"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                },
                "visits": {
                  "type": "integer",
                  "title": "visits",
                  "description": "Number of visits"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "browsers": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "browser": {
                  "type": "string",
                  "title": "browser",
                  "description": "Browser"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "browsers-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "browser": {
                  "type": "string",
                  "title": "browser",
                  "description": "Browser"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "browser-versions": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "browser_version": {
                  "type": "string",
                  "title": "browser_version",
                  "description": "Browser version"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "browser-versions-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "browser_version": {
                  "type": "string",
                  "title": "browser_version",
                  "description": "Browser version"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "cities": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "city": {
                  "type": "string",
                  "title": "city",
                  "description": "City"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "cities-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "city": {
                  "type": "string",
                  "title": "city",
                  "description": "City"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "continents": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "continent": {
                  "type": "string",
                  "enum": [ "AF", "AS", "EU", "NA", "OC", "SA", "AN", "" ],
                  "title": "continent",
                  "description": "Continent"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "continents-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "continent": {
                  "type": "string",
                  "enum": [ "AF", "AS", "EU", "NA", "OC", "SA", "AN", "" ],
                  "title": "continent",
                  "description": "Continent"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "countries": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "country": {
                  "type": "string",
                  "title": "country",
                  "description": "Country"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "countries-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "country": {
                  "type": "string",
                  "title": "country",
                  "description": "Country"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "devices": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "device": {
                  "type": "string",
                  "title": "device",
                  "description": "Device type"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "devices-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "device": {
                  "type": "string",
                  "title": "device",
                  "description": "Device type"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "entry-pages": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "entries": {
                  "type": "integer",
                  "title": "entries",
                  "description": "Number of entries"
                },
                "entry_page": {
                  "type": "string",
                  "format": "url",
                  "title": "entry_page",
                  "description": "Entry page URL"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "entry-pages-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "entries": {
                  "type": "integer",
                  "title": "entries",
                  "description": "Number of entries"
                },
                "entry_page": {
                  "type": "string",
                  "format": "url",
                  "title": "entry_page",
                  "description": "Entry page URL"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "exit-pages": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "exit_page": {
                  "type": "string",
                  "format": "url",
                  "title": "exit_page",
                  "description": "Exit page URL"
                },
                "exit_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "exit_rate",
                  "description": "Exit rate (percentage of pageviews that were the last in the session)"
                },
                "exits": {
                  "type": "integer",
                  "title": "exits",
                  "description": "Number of exits"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "exit-pages-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "exit_page": {
                  "type": "string",
                  "format": "url",
                  "title": "exit_page",
                  "description": "Exit page URL"
                },
                "exit_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "exit_rate",
                  "description": "Exit rate (percentage of pageviews that were the last in the session)"
                },
                "exits": {
                  "type": "integer",
                  "title": "exits",
                  "description": "Number of exits"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "languages": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "browser_language": {
                  "type": "string",
                  "title": "browser_language",
                  "description": "Browser language"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "languages-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "browser_language": {
                  "type": "string",
                  "title": "browser_language",
                  "description": "Browser language"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "operating-systems": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "os": {
                  "type": "string",
                  "title": "os",
                  "description": "Operating system"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "operating-systems-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "os": {
                  "type": "string",
                  "title": "os",
                  "description": "Operating system"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "operating-systems-versions": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "os_version": {
                  "type": "string",
                  "title": "os_version",
                  "description": "Operating system version"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "operating-systems-versions-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "os_version": {
                  "type": "string",
                  "title": "os_version",
                  "description": "Operating system version"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "source-channels": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "source_channel": {
                  "type": "string",
                  "enum": [
                    "search", "llm", "email", "paid", "search/paid",
                    "social", "unknown", "direct", "newsletter",
                    "shopping/organic", "shopping/paid", "audio",
                    "social/paid", "cross-network",
                    "mobile-push-notification", "sms", "affiliate",
                    "referral", "display", "internal"
                  ],
                  "title": "source_channel",
                  "description": "Source Channel"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "source-channels-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "source_channel": {
                  "type": "string",
                  "enum": [
                    "search", "llm", "email", "paid", "search/paid",
                    "social", "unknown", "direct", "newsletter",
                    "shopping/organic", "shopping/paid", "audio",
                    "social/paid", "cross-network",
                    "mobile-push-notification", "sms", "affiliate",
                    "referral", "display", "internal"
                  ],
                  "title": "source_channel",
                  "description": "Source Channel"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "sources": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "source": {
                  "type": "string",
                  "title": "source",
                  "description": "Source"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "sources-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "source": {
                  "type": "string",
                  "title": "source",
                  "description": "Source"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "referrers": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "source_referer": {
                  "type": "string",
                  "title": "source_referer",
                  "description": "Referer source"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "referrers-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "source_referer": {
                  "type": "string",
                  "title": "source_referer",
                  "description": "Referer source"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "top-pages": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "avg_page_visit_duration_sec": {
                  "type": "integer",
                  "title": "avg_page_visit_duration_sec",
                  "description": "Average page visit duration (in seconds)"
                },
                "page": {
                  "type": "string",
                  "format": "url",
                  "title": "page",
                  "description": "Page URL"
                },
                "pageviews": {
                  "type": "integer",
                  "title": "pageviews",
                  "description": "Number of pageview events"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "top-pages-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_page_visit_duration_sec": {
                  "type": "integer",
                  "title": "avg_page_visit_duration_sec",
                  "description": "Average page visit duration (in seconds)"
                },
                "page": {
                  "type": "string",
                  "format": "url",
                  "title": "page",
                  "description": "Page URL"
                },
                "pageviews": {
                  "type": "integer",
                  "title": "pageviews",
                  "description": "Number of pageview events"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "utm-params": {
        "properties": {
          "stats": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "utm_param": {
                  "type": "string",
                  "title": "utm_param",
                  "description": "UTM parameter value"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      },
      "utm-params-chart": {
        "properties": {
          "points": {
            "items": {
              "properties": {
                "avg_session_duration_sec": {
                  "type": "integer",
                  "title": "avg_session_duration_sec",
                  "description": "Average session duration (in seconds)"
                },
                "session_bounce_rate": {
                  "type": "number",
                  "format": "float",
                  "title": "session_bounce_rate",
                  "description": "Session bounce rate (percentage of sessions that triggered only one request)"
                },
                "timestamp": {
                  "type": "string",
                  "title": "timestamp",
                  "description": "Timestamp of the data point"
                },
                "utm_param": {
                  "type": "string",
                  "title": "utm_param",
                  "description": "UTM parameter value"
                },
                "visitors": {
                  "type": "integer",
                  "title": "visitors",
                  "description": "Number of visitors"
                }
              },
              "type": "object"
            },
            "type": "array"
          }
        },
        "type": "object",
        "xml": { "name": "AhrefsApiResponse" }
      }
    },
    "responses": {
      "error_400": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/Error response" }
          },
          "application/xml": {
            "schema": { "$ref": "#/components/schemas/Error response" }
          }
        }
      },
      "error_401": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/Error response" }
          },
          "application/xml": {
            "schema": { "$ref": "#/components/schemas/Error response" }
          }
        }
      },
      "error_403": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/Error response" }
          },
          "application/xml": {
            "schema": { "$ref": "#/components/schemas/Error response" }
          }
        }
      },
      "error_429": {
        "description": "Too Many Requests",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/Error response" }
          },
          "application/xml": {
            "schema": { "$ref": "#/components/schemas/Error response" }
          }
        }
      },
      "error_500": {
        "description": "Internal Error",
        "content": {
          "application/json": {
            "schema": { "$ref": "#/components/schemas/Error response" }
          },
          "application/xml": {
            "schema": { "$ref": "#/components/schemas/Error response" }
          }
        }
      }
    },
    "parameters": {
      "output": {
        "description": "The output format.",
        "required": false,
        "explode": false,
        "schema": {
          "type": "string",
          "enum": [ "json", "csv", "xml", "php" ]
        },
        "name": "output",
        "in": "query"
      }
    },
    "examples": {},
    "requestBodies": {},
    "headers": {},
    "securitySchemes": { "http": { "type": "http", "scheme": "bearer" } },
    "links": {},
    "callbacks": {},
    "pathItems": {},
    "mediaTypes": {}
  },
  "security": [ { "http": [ "read" ] } ],
  "tags": [
    { "name": "Overview" },
    { "name": "Traffic Sources" },
    { "name": "Pages" },
    { "name": "Geography" },
    { "name": "User Agents" }
  ],
  "externalDocs": {
    "description": "",
    "url": "https://docs.ahrefs.com/docs/api/v3/"
  }
}