{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/vee3-io/json-schema/vee3-io-query-google-search-console-search-analytics-request-schema.json",
  "title": "QueryGoogleSearchConsoleSearchAnalyticsRequest",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/vee3-io-openapi.json#/components/schemas/QueryGoogleSearchConsoleSearchAnalyticsRequest",
  "properties": {
    "site_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Site Url",
      "description": "Optional property URL from google-search-console.list_sites. When omitted, the default property is used. The user or agent passes an exact site_url value from that response."
    },
    "start_date": {
      "type": "string",
      "title": "Start Date",
      "description": "Inclusive range start date in YYYY-MM-DD format."
    },
    "end_date": {
      "type": "string",
      "title": "End Date",
      "description": "Inclusive range end date in YYYY-MM-DD format."
    },
    "dimensions": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Dimensions",
      "description": "Optional dimension names to group results. Supported values: date, query, page, country, device, searchAppearance, hour. Grouping by hour uses the hourly feed."
    },
    "search_type": {
      "type": "string",
      "enum": [
        "web",
        "image",
        "video",
        "news",
        "discover",
        "googleNews"
      ],
      "title": "Search Type",
      "description": "Search type filter. Defaults to web.",
      "default": "web"
    },
    "row_limit": {
      "type": "integer",
      "maximum": 25000.0,
      "minimum": 1.0,
      "title": "Row Limit",
      "description": "Maximum number of rows to return. Defaults to 1000.",
      "default": 1000
    },
    "start_row": {
      "type": "integer",
      "minimum": 0.0,
      "title": "Start Row",
      "description": "Zero-based row offset for pagination. Defaults to 0.",
      "default": 0
    },
    "data_state": {
      "type": "string",
      "enum": [
        "final",
        "all",
        "hourly_all"
      ],
      "title": "Data State",
      "description": "Whether to return only finalized data, all available daily data, or hourly data. Use hourly_all when grouping by hour. Defaults to final.",
      "default": "final"
    },
    "dimension_filter_groups": {
      "anyOf": [
        {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "title": "Dimension Filter Groups",
      "description": "Optional filter groups matching the Google Search Console Search Analytics API shape. Each group contains filters that restrict which rows are returned."
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "start_date",
    "end_date"
  ]
}