Composway Docs
Tool reference

Generate search performance report

A Google + Bing performance report for one site or several, assembled by calling the other tools and embedding their responses whole - so a section here is the same answer the tool gives on its own, and you can read it the same way, `unsup…

Tool name: generate_search_performance_report

Cost: Free - not billed, and does not draw on a plan quota.

Read-only

This tool only reads. It never creates or changes anything, so an assistant may call it without asking you first.

A Google + Bing performance report for one site or several, assembled by calling the other tools and embedding their responses whole - so a section here is the same answer the tool gives on its own, and you can read it the same way, unsupportedInputs included.

sites is comma-separated and capped at 10; they are read one after another, so a wide report is a slow call. Sections default to summary + trend + topMovers; the other four (opportunities, siteSections, brandSplit, crossEngine) each cost at least one more lake scan per site, so ask for them only when the report is about them.

Partial results are normal and are labelled, never hidden: a site you cannot reach comes back as a status: "error" row and a section that failed as status: "failed" in that site's sections. Report those rather than presenting the rest as the whole picture. portfolio is a cross-site total of clicks and impressions only, and is null unless every counted site resolved to the same window - pass to to pin them and get one.

Parameters

ParameterTypeRequiredNotes
sitesstringYesComma-separated sites (bare domains or URLs), at most 10. Each must resolve to a workspace you own; call list_sites if unsure of the exact domains.
sectionsstringNoComma-separated sections: summary, trend, topMovers, opportunities, siteSections, brandSplit, crossEngine. Defaults to "summary,trend,topMovers".
windowDaysintegerNoLength of the current window, in days. Defaults to 28.
tostringNoLast day of the window (YYYY-MM-DD), applied to every site. Omitted, each site anchors to its own latest measured day - which is what the standalone tools do, but leaves the sites on different windows and suppresses the portfolio total.
trendGranularity"daily" | "weekly" | "monthly"NoBucket size for the trend section. Weekly by default: a daily series per site makes a multi-site report very large for no extra signal at report altitude. Defaults to "weekly".
rowLimitintegerNoRows per table-shaped section, per site. Defaults to 10.
searchVertical"web" | "image" | "video"NoWhich Google search vertical to read: web (default), image, or video. Google-only - Bing Webmaster Tools does not split verticals on any traffic endpoint, so anything other than 'web' returns Google alone, with Bing excluded and declared in unsupportedInputs. A null or absent Bing figure then means 'not measurable', never 'zero'. Defaults to "web".
Full input JSON Schema
{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "object",
	"properties": {
		"sites": {
			"type": "string",
			"minLength": 1,
			"description": "Comma-separated sites (bare domains or URLs), at most 10. Each must resolve to a workspace you own; call list_sites if unsure of the exact domains."
		},
		"sections": {
			"default": "summary,trend,topMovers",
			"description": "Comma-separated sections: summary, trend, topMovers, opportunities, siteSections, brandSplit, crossEngine.",
			"type": "string"
		},
		"windowDays": {
			"default": 28,
			"description": "Length of the current window, in days.",
			"type": "integer",
			"exclusiveMinimum": 0,
			"maximum": 365
		},
		"to": {
			"description": "Last day of the window (YYYY-MM-DD), applied to every site. Omitted, each site anchors to its own latest measured day - which is what the standalone tools do, but leaves the sites on different windows and suppresses the portfolio total.",
			"type": "string"
		},
		"trendGranularity": {
			"default": "weekly",
			"description": "Bucket size for the trend section. Weekly by default: a daily series per site makes a multi-site report very large for no extra signal at report altitude.",
			"type": "string",
			"enum": ["daily", "weekly", "monthly"]
		},
		"rowLimit": {
			"default": 10,
			"description": "Rows per table-shaped section, per site.",
			"type": "integer",
			"exclusiveMinimum": 0,
			"maximum": 100
		},
		"searchVertical": {
			"default": "web",
			"description": "Which Google search vertical to read: web (default), image, or video. Google-only - Bing Webmaster Tools does not split verticals on any traffic endpoint, so anything other than 'web' returns Google alone, with Bing excluded and declared in `unsupportedInputs`. A null or absent Bing figure then means 'not measurable', never 'zero'.",
			"type": "string",
			"enum": ["web", "image", "video"]
		}
	},
	"required": ["sites"]
}

Response

Full output JSON Schema
{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "object",
	"properties": {
		"requestedSites": {
			"type": "array",
			"items": {
				"type": "string"
			}
		},
		"sections": {
			"type": "array",
			"items": {
				"type": "string"
			}
		},
		"searchVertical": {
			"type": "string",
			"enum": ["web", "image", "video"]
		},
		"windowDays": {
			"type": "integer",
			"minimum": -9007199254740991,
			"maximum": 9007199254740991
		},
		"dateTo": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"type": "null"
				}
			]
		},
		"siteReports": {
			"type": "array",
			"items": {
				"type": "object",
				"properties": {
					"site": {
						"type": "string"
					},
					"workspaceId": {
						"anyOf": [
							{
								"type": "string",
								"format": "uuid",
								"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
							},
							{
								"type": "null"
							}
						]
					},
					"status": {
						"type": "string"
					},
					"error": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"type": "null"
							}
						]
					},
					"searchVertical": {
						"type": "string",
						"enum": ["web", "image", "video"]
					},
					"summary": {
						"anyOf": [
							{
								"type": "object",
								"properties": {},
								"additionalProperties": {}
							},
							{
								"type": "null"
							}
						]
					},
					"trend": {
						"anyOf": [
							{
								"type": "object",
								"properties": {},
								"additionalProperties": {}
							},
							{
								"type": "null"
							}
						]
					},
					"topMovers": {
						"anyOf": [
							{
								"type": "object",
								"properties": {},
								"additionalProperties": {}
							},
							{
								"type": "null"
							}
						]
					},
					"opportunities": {
						"anyOf": [
							{
								"type": "object",
								"properties": {},
								"additionalProperties": {}
							},
							{
								"type": "null"
							}
						]
					},
					"siteSections": {
						"anyOf": [
							{
								"type": "object",
								"properties": {},
								"additionalProperties": {}
							},
							{
								"type": "null"
							}
						]
					},
					"brandSplit": {
						"anyOf": [
							{
								"type": "object",
								"properties": {},
								"additionalProperties": {}
							},
							{
								"type": "null"
							}
						]
					},
					"crossEngine": {
						"anyOf": [
							{
								"type": "object",
								"properties": {},
								"additionalProperties": {}
							},
							{
								"type": "null"
							}
						]
					},
					"sections": {
						"type": "array",
						"items": {
							"type": "object",
							"properties": {
								"section": {
									"type": "string"
								},
								"status": {
									"type": "string"
								},
								"reason": {
									"anyOf": [
										{
											"type": "string"
										},
										{
											"type": "null"
										}
									]
								}
							},
							"required": ["section", "status"],
							"additionalProperties": {}
						}
					}
				},
				"required": [
					"site",
					"workspaceId",
					"status",
					"searchVertical",
					"sections"
				],
				"additionalProperties": {}
			}
		},
		"portfolio": {
			"anyOf": [
				{
					"type": "object",
					"properties": {
						"sitesCounted": {
							"type": "integer",
							"minimum": -9007199254740991,
							"maximum": 9007199254740991
						},
						"window": {
							"type": "object",
							"properties": {
								"start": {
									"type": "string"
								},
								"end": {
									"type": "string"
								}
							},
							"required": ["start", "end"],
							"additionalProperties": false
						},
						"comparisonWindow": {
							"type": "object",
							"properties": {
								"start": {
									"type": "string"
								},
								"end": {
									"type": "string"
								}
							},
							"required": ["start", "end"],
							"additionalProperties": false
						},
						"totalClicks": {
							"type": "integer",
							"minimum": -9007199254740991,
							"maximum": 9007199254740991
						},
						"totalImpressions": {
							"type": "integer",
							"minimum": -9007199254740991,
							"maximum": 9007199254740991
						},
						"ctr": {
							"anyOf": [
								{
									"type": "number"
								},
								{
									"type": "null"
								}
							]
						},
						"previousTotalClicks": {
							"type": "integer",
							"minimum": -9007199254740991,
							"maximum": 9007199254740991
						},
						"previousTotalImpressions": {
							"type": "integer",
							"minimum": -9007199254740991,
							"maximum": 9007199254740991
						},
						"deltaClicks": {
							"type": "integer",
							"minimum": -9007199254740991,
							"maximum": 9007199254740991
						},
						"deltaImpressions": {
							"type": "integer",
							"minimum": -9007199254740991,
							"maximum": 9007199254740991
						}
					},
					"required": [
						"sitesCounted",
						"window",
						"comparisonWindow",
						"totalClicks",
						"totalImpressions",
						"ctr",
						"previousTotalClicks",
						"previousTotalImpressions",
						"deltaClicks",
						"deltaImpressions"
					],
					"additionalProperties": {}
				},
				{
					"type": "null"
				}
			]
		},
		"unsupportedInputs": {
			"type": "array",
			"items": {
				"type": "object",
				"properties": {
					"field": {
						"type": "string"
					},
					"engine": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"type": "null"
							}
						]
					},
					"reason": {
						"type": "string"
					}
				},
				"required": ["field", "reason"],
				"additionalProperties": {}
			}
		}
	},
	"required": [
		"requestedSites",
		"sections",
		"searchVertical",
		"windowDays",
		"siteReports",
		"portfolio",
		"unsupportedInputs"
	],
	"additionalProperties": false
}

On this page