{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/google-analytics/json-schema/google-analytics-google-analytics-admin-v1beta-run-access-report-request-schema.json",
  "title": "GoogleAnalyticsAdminV1betaRunAccessReportRequest",
  "description": "The request for a Data Access Record Report.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/google-analytics-accounts-api-openapi.yml#/components/schemas/GoogleAnalyticsAdminV1betaRunAccessReportRequest",
  "type": "object",
  "properties": {
    "offset": {
      "format": "int64",
      "description": "The row count of the start row. The first row is counted as row 0. If offset is unspecified, it is treated as 0. If offset is zero, then this method will return the first page of results with `limit` entries. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).",
      "type": "string"
    },
    "metrics": {
      "description": "The metrics requested and displayed in the response. Requests are allowed up to 10 metrics.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessMetric"
      }
    },
    "metricFilter": {
      "description": "Metric filters allow you to restrict report response to specific metric values which match the filter. Metric filters are applied after aggregating the report's rows, similar to SQL having-clause. Dimensions cannot be used in this filter.",
      "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessFilterExpression"
    },
    "includeAllUsers": {
      "description": "Optional. Determines whether to include users who have never made an API call in the response. If true, all users with access to the specified property or account are included in the response, regardless of whether they have made an API call or not. If false, only the users who have made an API call will be included.",
      "type": "boolean"
    },
    "limit": {
      "description": "The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 100,000 rows per request, no matter how many you ask for. `limit` must be positive. The API may return fewer rows than the requested `limit`, if there aren't as many remaining rows as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can't get more than 300 rows, even if you set `limit` to a higher value. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).",
      "type": "string",
      "format": "int64"
    },
    "timeZone": {
      "description": "This request's time zone if specified. If unspecified, the property's time zone is used. The request's time zone is used to interpret the start & end dates of the report. Formatted as strings from the IANA Time Zone database (https://www.iana.org/time-zones); for example \"America/New_York\" or \"Asia/Tokyo\".",
      "type": "string"
    },
    "returnEntityQuota": {
      "description": "Toggles whether to return the current state of this Analytics Property's quota. Quota is returned in [AccessQuota](#AccessQuota). For account-level requests, this field must be false.",
      "type": "boolean"
    },
    "orderBys": {
      "description": "Specifies how rows are ordered in the response.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessOrderBy"
      }
    },
    "expandGroups": {
      "description": "Optional. Decides whether to return the users within user groups. This field works only when include_all_users is set to true. If true, it will return all users with access to the specified property or account. If false, only the users with direct access will be returned.",
      "type": "boolean"
    },
    "dimensionFilter": {
      "description": "Dimension filters let you restrict report response to specific dimension values which match the filter. For example, filtering on access records of a single user. To learn more, see [Fundamentals of Dimension Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) for examples. Metrics cannot be used in this filter.",
      "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessFilterExpression"
    },
    "dimensions": {
      "description": "The dimensions requested and displayed in the response. Requests are allowed up to 9 dimensions.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessDimension"
      }
    },
    "dateRanges": {
      "description": "Date ranges of access records to read. If multiple date ranges are requested, each response row will contain a zero based date range index. If two date ranges overlap, the access records for the overlapping days is included in the response rows for both date ranges. Requests are allowed up to 2 date ranges.",
      "type": "array",
      "items": {
        "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessDateRange"
      }
    }
  },
  "$defs": {
    "GoogleAnalyticsAdminV1betaAccessBetweenFilter": {
      "description": "To express that the result needs to be between two numbers (inclusive).",
      "type": "object",
      "properties": {
        "fromValue": {
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaNumericValue",
          "description": "Begins with this number."
        },
        "toValue": {
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaNumericValue",
          "description": "Ends with this number."
        }
      }
    },
    "GoogleAnalyticsAdminV1betaAccessDateRange": {
      "description": "A contiguous range of days: startDate, startDate + 1, ..., endDate.",
      "type": "object",
      "properties": {
        "startDate": {
          "description": "The inclusive start date for the query in the format `YYYY-MM-DD`. Cannot be after `endDate`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the current time in the request's time zone.",
          "type": "string"
        },
        "endDate": {
          "description": "The inclusive end date for the query in the format `YYYY-MM-DD`. Cannot be before `startDate`. The format `NdaysAgo`, `yesterday`, or `today` is also accepted, and in that case, the date is inferred based on the current time in the request's time zone.",
          "type": "string"
        }
      }
    },
    "GoogleAnalyticsAdminV1betaAccessDimension": {
      "properties": {
        "dimensionName": {
          "description": "The API name of the dimension. See [Data Access Schema](https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema) for the list of dimensions supported in this API. Dimensions are referenced by name in `dimensionFilter` and `orderBys`.",
          "type": "string"
        }
      },
      "description": "Dimensions are attributes of your data. For example, the dimension `userEmail` indicates the email of the user that accessed reporting data. Dimension values in report responses are strings.",
      "type": "object"
    },
    "GoogleAnalyticsAdminV1betaAccessFilter": {
      "properties": {
        "inListFilter": {
          "description": "A filter for in list values.",
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessInListFilter"
        },
        "stringFilter": {
          "description": "Strings related filter.",
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessStringFilter"
        },
        "fieldName": {
          "description": "The dimension name or metric name.",
          "type": "string"
        },
        "numericFilter": {
          "description": "A filter for numeric or date values.",
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessNumericFilter"
        },
        "betweenFilter": {
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessBetweenFilter",
          "description": "A filter for two values."
        }
      },
      "description": "An expression to filter dimension or metric values.",
      "type": "object"
    },
    "GoogleAnalyticsAdminV1betaAccessFilterExpression": {
      "properties": {
        "andGroup": {
          "description": "Each of the FilterExpressions in the and_group has an AND relationship.",
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessFilterExpressionList"
        },
        "orGroup": {
          "description": "Each of the FilterExpressions in the or_group has an OR relationship.",
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessFilterExpressionList"
        },
        "notExpression": {
          "description": "The FilterExpression is NOT of not_expression.",
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessFilterExpression"
        },
        "accessFilter": {
          "description": "A primitive filter. In the same FilterExpression, all of the filter's field names need to be either all dimensions or all metrics.",
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessFilter"
        }
      },
      "description": "Expresses dimension or metric filters. The fields in the same expression need to be either all dimensions or all metrics.",
      "type": "object"
    },
    "GoogleAnalyticsAdminV1betaAccessFilterExpressionList": {
      "properties": {
        "expressions": {
          "description": "A list of filter expressions.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessFilterExpression"
          }
        }
      },
      "description": "A list of filter expressions.",
      "type": "object"
    },
    "GoogleAnalyticsAdminV1betaAccessInListFilter": {
      "description": "The result needs to be in a list of string values.",
      "type": "object",
      "properties": {
        "values": {
          "description": "The list of string values. Must be non-empty.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "caseSensitive": {
          "description": "If true, the string value is case sensitive.",
          "type": "boolean"
        }
      }
    },
    "GoogleAnalyticsAdminV1betaAccessMetric": {
      "description": "The quantitative measurements of a report. For example, the metric `accessCount` is the total number of data access records.",
      "type": "object",
      "properties": {
        "metricName": {
          "description": "The API name of the metric. See [Data Access Schema](https://developers.google.com/analytics/devguides/config/admin/v1/access-api-schema) for the list of metrics supported in this API. Metrics are referenced by name in `metricFilter` & `orderBys`.",
          "type": "string"
        }
      }
    },
    "GoogleAnalyticsAdminV1betaAccessNumericFilter": {
      "description": "Filters for numeric or date values.",
      "type": "object",
      "properties": {
        "operation": {
          "x-enumDescriptions": [
            "Unspecified.",
            "Equal",
            "Less than",
            "Less than or equal",
            "Greater than",
            "Greater than or equal"
          ],
          "description": "The operation type for this filter.",
          "type": "string",
          "enum": [
            "OPERATION_UNSPECIFIED",
            "EQUAL",
            "LESS_THAN",
            "LESS_THAN_OR_EQUAL",
            "GREATER_THAN",
            "GREATER_THAN_OR_EQUAL"
          ]
        },
        "value": {
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaNumericValue",
          "description": "A numeric value or a date value."
        }
      }
    },
    "GoogleAnalyticsAdminV1betaAccessOrderBy": {
      "properties": {
        "metric": {
          "description": "Sorts results by a metric's values.",
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessOrderByMetricOrderBy"
        },
        "desc": {
          "description": "If true, sorts by descending order. If false or unspecified, sorts in ascending order.",
          "type": "boolean"
        },
        "dimension": {
          "description": "Sorts results by a dimension's values.",
          "$ref": "#/$defs/GoogleAnalyticsAdminV1betaAccessOrderByDimensionOrderBy"
        }
      },
      "description": "Order bys define how rows will be sorted in the response. For example, ordering rows by descending access count is one ordering, and ordering rows by the country string is a different ordering.",
      "type": "object"
    },
    "GoogleAnalyticsAdminV1betaAccessOrderByDimensionOrderBy": {
      "properties": {
        "dimensionName": {
          "description": "A dimension name in the request to order by.",
          "type": "string"
        },
        "orderType": {
          "enum": [
            "ORDER_TYPE_UNSPECIFIED",
            "ALPHANUMERIC",
            "CASE_INSENSITIVE_ALPHANUMERIC",
            "NUMERIC"
          ],
          "x-enumDescriptions": [
            "Unspecified.",
            "Alphanumeric sort by Unicode code point. For example, \"2\" < \"A\" < \"X\" < \"b\" < \"z\".",
            "Case insensitive alphanumeric sort by lower case Unicode code point. For example, \"2\" < \"A\" < \"b\" < \"X\" < \"z\".",
            "Dimension values are converted to numbers before sorting. For example in NUMERIC sort, \"25\" < \"100\", and in `ALPHANUMERIC` sort, \"100\" < \"25\". Non-numeric dimension values all have equal ordering value below all numeric values."
          ],
          "description": "Controls the rule for dimension value ordering.",
          "type": "string"
        }
      },
      "description": "Sorts by dimension values.",
      "type": "object"
    },
    "GoogleAnalyticsAdminV1betaAccessOrderByMetricOrderBy": {
      "properties": {
        "metricName": {
          "description": "A metric name in the request to order by.",
          "type": "string"
        }
      },
      "description": "Sorts by metric values.",
      "type": "object"
    },
    "GoogleAnalyticsAdminV1betaAccessStringFilter": {
      "properties": {
        "value": {
          "description": "The string value used for the matching.",
          "type": "string"
        },
        "matchType": {
          "x-enumDescriptions": [
            "Unspecified",
            "Exact match of the string value.",
            "Begins with the string value.",
            "Ends with the string value.",
            "Contains the string value.",
            "Full match for the regular expression with the string value.",
            "Partial match for the regular expression with the string value."
          ],
          "description": "The match type for this filter.",
          "type": "string",
          "enum": [
            "MATCH_TYPE_UNSPECIFIED",
            "EXACT",
            "BEGINS_WITH",
            "ENDS_WITH",
            "CONTAINS",
            "FULL_REGEXP",
            "PARTIAL_REGEXP"
          ]
        },
        "caseSensitive": {
          "description": "If true, the string value is case sensitive.",
          "type": "boolean"
        }
      },
      "description": "The filter for strings.",
      "type": "object"
    },
    "GoogleAnalyticsAdminV1betaNumericValue": {
      "description": "To represent a number.",
      "type": "object",
      "properties": {
        "int64Value": {
          "description": "Integer value",
          "type": "string",
          "format": "int64"
        },
        "doubleValue": {
          "format": "double",
          "description": "Double value",
          "type": "number"
        }
      }
    }
  }
}