View as Markdown
Google Search Console icon

Google Search Console ACTION

List Sites

Lists every Google Search Console property the connected Google account can access, plus that account's email address.

Call this first on any per-site task, unless the user already gave an exact identifier such as sc-domain:example.com: every other tool needs the identifier byte-for-byte, and it must be copied from here, never constructed. Call it again after a 403 to see what the account really has.

Do NOT call it when Search Console cannot do the task at all — backlinks or the Links report, requesting indexing of an ordinary page, adding or removing property owners. Say that first, and call this only if the user then asks for something the tools do cover.

Returns { account_email, sites: [{ siteUrl, permissionLevel, property_type }], count }, domain properties first then alphabetical. The list is complete — the API has no pagination. property_type is "domain" for an sc-domain: identifier (covers every subdomain and both schemes — prefer it for traffic questions unless the user names a specific prefix) and "url_prefix" otherwise (an exact scheme + host + path prefix, trailing slash included). account_email is null if the email could not be read; the site list still returns.

Permission levels. siteOwner and siteFullUser can submit and delete sitemaps and inspect URLs (only an owner can manage users); siteRestrictedUser is read-only on reports and cannot submit sitemaps or inspect URLs (403); siteUnverifiedUser has no data at all. Check the level here before promising a write.

Mistakes. A URL-prefix identifier with the wrong scheme or subdomain, or missing its trailing slash, returns 403 "User does not have sufficient permission for site" even when the account is authorized — so copy siteUrl verbatim. This action takes no parameters.

See the documentation

  • Action
  • Read only
  • OAuth
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's Google Search Console account once, then configure and run List Sites from your backend or agent.

import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "google_search_console-list-sites",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    google_search_console: { authProvisionId: "apn_xxxxxxx" },
  },
})

console.log(result)

SCHEMA

Inputs

Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.

List Sites inputs
Property Type Description

REFERENCE

Tool details

Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.

Registry key
google_search_console-list-sites
Version
0.0.1
App
Google Search Console
Authentication
OAuth
Read-only
Yes
Destructive
No
Open world
Yes