Composway Docs
Tool reference

Find new and lost keywords

Query-level `/breakdown` rows classified per engine as new, lost, improved, declined, or stable between the current window and the immediately preceding one of the same length.

Tool name: find_new_and_lost_keywords

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.

Query-level /breakdown rows classified per engine as new, lost, improved, declined, or stable between the current window and the immediately preceding one of the same length. Rows where neither engine shows a real signal are omitted. On Bing, a query going quiet cannot be told apart from it simply falling out of Bing's top-N-by-traffic feed - a would-be 'lost' verdict on Bing is reported as status: "unsupported" instead of inferred. Above Google's row ceiling the same applies to Google: on a window Google truncated, a 'lost' verdict is downgraded the same way, and so is 'new' when the comparison window was the truncated one. 'improved' and 'declined' are never downgraded - they compare two rows that both exist. Google stores only about 5,000 rows per day per single-dimension breakdown once a day is more than roughly three days old, so on a large site these rows are a top-N by impressions rather than a complete list. When that applies to the window you asked for, the response says so in unsupportedInputs with the dates - there is nothing to fetch, so read a missing row as 'not in the top ~5,000', never as 'zero'.

Parameters

ParameterTypeRequiredNotes
sitestringYesThe site to look up, as a bare domain ("example.com") or a URL - scheme, www., path and trailing slash are all stripped. Must resolve to a workspace the caller owns; call list_sites first if unsure of the exact domain.
windowDaysintegerNoLength of the current window, in days. Defaults to 28.
tostringNoLast day of the current window (YYYY-MM-DD). Defaults to the most recent date either engine has data for.
minImpressionsintegerNoA period needs at least this many impressions to count as 'visible' - below it, a row reads as insufficient data rather than a guessed new/lost verdict. Defaults to 5.
limitintegerNoMaximum rows to return, sorted by relevance. Defaults to 50.
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": {
		"site": {
			"type": "string",
			"minLength": 1,
			"description": "The site to look up, as a bare domain (\"example.com\") or a URL - scheme, www., path and trailing slash are all stripped. Must resolve to a workspace the caller owns; call list_sites first if unsure of the exact domain."
		},
		"windowDays": {
			"default": 28,
			"description": "Length of the current window, in days.",
			"type": "integer",
			"exclusiveMinimum": 0,
			"maximum": 365
		},
		"to": {
			"description": "Last day of the current window (YYYY-MM-DD). Defaults to the most recent date either engine has data for.",
			"type": "string"
		},
		"minImpressions": {
			"default": 5,
			"description": "A period needs at least this many impressions to count as 'visible' - below it, a row reads as insufficient data rather than a guessed new/lost verdict.",
			"type": "integer",
			"minimum": 0,
			"maximum": 9007199254740991
		},
		"limit": {
			"default": 50,
			"description": "Maximum rows to return, sorted by relevance.",
			"type": "integer",
			"exclusiveMinimum": 0,
			"maximum": 500
		},
		"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": ["site"]
}

Response

Full output JSON Schema
{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "object",
	"properties": {
		"site": {
			"type": "string"
		},
		"workspaceId": {
			"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)$"
		},
		"searchVertical": {
			"type": "string",
			"enum": ["web", "image", "video"]
		},
		"currentWindow": {
			"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
		},
		"rows": {
			"type": "array",
			"items": {
				"type": "object",
				"properties": {
					"label": {
						"type": "string"
					},
					"google": {
						"type": "object",
						"properties": {
							"status": {
								"type": "string"
							},
							"current": {
								"type": "object",
								"properties": {
									"clicks": {
										"type": "integer",
										"minimum": -9007199254740991,
										"maximum": 9007199254740991
									},
									"impressions": {
										"type": "integer",
										"minimum": -9007199254740991,
										"maximum": 9007199254740991
									},
									"position": {
										"anyOf": [
											{
												"type": "number"
											},
											{
												"type": "null"
											}
										]
									}
								},
								"required": [
									"clicks",
									"impressions",
									"position"
								],
								"additionalProperties": {}
							},
							"previous": {
								"type": "object",
								"properties": {
									"clicks": {
										"type": "integer",
										"minimum": -9007199254740991,
										"maximum": 9007199254740991
									},
									"impressions": {
										"type": "integer",
										"minimum": -9007199254740991,
										"maximum": 9007199254740991
									},
									"position": {
										"anyOf": [
											{
												"type": "number"
											},
											{
												"type": "null"
											}
										]
									}
								},
								"required": [
									"clicks",
									"impressions",
									"position"
								],
								"additionalProperties": {}
							},
							"deltaClicks": {
								"type": "integer",
								"minimum": -9007199254740991,
								"maximum": 9007199254740991
							},
							"deltaImpressions": {
								"type": "integer",
								"minimum": -9007199254740991,
								"maximum": 9007199254740991
							},
							"deltaPosition": {
								"anyOf": [
									{
										"type": "number"
									},
									{
										"type": "null"
									}
								]
							}
						},
						"required": [
							"status",
							"current",
							"previous",
							"deltaClicks",
							"deltaImpressions",
							"deltaPosition"
						],
						"additionalProperties": {}
					},
					"bing": {
						"type": "object",
						"properties": {
							"status": {
								"type": "string"
							},
							"current": {
								"type": "object",
								"properties": {
									"clicks": {
										"type": "integer",
										"minimum": -9007199254740991,
										"maximum": 9007199254740991
									},
									"impressions": {
										"type": "integer",
										"minimum": -9007199254740991,
										"maximum": 9007199254740991
									},
									"position": {
										"anyOf": [
											{
												"type": "number"
											},
											{
												"type": "null"
											}
										]
									}
								},
								"required": [
									"clicks",
									"impressions",
									"position"
								],
								"additionalProperties": {}
							},
							"previous": {
								"type": "object",
								"properties": {
									"clicks": {
										"type": "integer",
										"minimum": -9007199254740991,
										"maximum": 9007199254740991
									},
									"impressions": {
										"type": "integer",
										"minimum": -9007199254740991,
										"maximum": 9007199254740991
									},
									"position": {
										"anyOf": [
											{
												"type": "number"
											},
											{
												"type": "null"
											}
										]
									}
								},
								"required": [
									"clicks",
									"impressions",
									"position"
								],
								"additionalProperties": {}
							},
							"deltaClicks": {
								"type": "integer",
								"minimum": -9007199254740991,
								"maximum": 9007199254740991
							},
							"deltaImpressions": {
								"type": "integer",
								"minimum": -9007199254740991,
								"maximum": 9007199254740991
							},
							"deltaPosition": {
								"anyOf": [
									{
										"type": "number"
									},
									{
										"type": "null"
									}
								]
							}
						},
						"required": [
							"status",
							"current",
							"previous",
							"deltaClicks",
							"deltaImpressions",
							"deltaPosition"
						],
						"additionalProperties": {}
					}
				},
				"required": ["label", "google", "bing"],
				"additionalProperties": {}
			}
		},
		"unsupportedInputs": {
			"type": "array",
			"items": {
				"type": "object",
				"properties": {
					"field": {
						"type": "string"
					},
					"engine": {
						"anyOf": [
							{
								"type": "string"
							},
							{
								"type": "null"
							}
						]
					},
					"reason": {
						"type": "string"
					}
				},
				"required": ["field", "reason"],
				"additionalProperties": {}
			}
		},
		"lastSyncedAt": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"type": "null"
				}
			]
		}
	},
	"required": [
		"site",
		"workspaceId",
		"searchVertical",
		"currentWindow",
		"comparisonWindow",
		"rows",
		"unsupportedInputs"
	],
	"additionalProperties": false
}

On this page