digitalpublic-com Search Console API
The Search Console API from digitalpublic-com — 2 operation(s) for search console.
The Search Console API from digitalpublic-com — 2 operation(s) for search console.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/digitalpublic-com:digitalpublic-com-search-console-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: DigitalPublic Agent Search Console API
version: 2026-09-10-trial-active-projects-v1
description: API for external AI agents to interact with DigitalPublic projects. Provides discovery, project context, Google Ads, Meta Ads, LinkedIn organic and LinkedIn Ads, Merchant Center, SEO, AEO, Search Console, WordPress, Analytics, Tag Manager, Business Profile, mailings, CRM, comments, reports, and scheduling.
contact:
email: soporte@digitalpublic.com
servers:
- url: https://platform.digitalpublic.com
description: Production
security:
- bearerAuth: []
tags:
- name: Search Console
paths:
/api/search-console/agent-query:
post:
summary: Google Search Console data
description: Query Search Console performance metrics and supported management state for the project's configured site.
tags:
- Search Console
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AgentRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AgentResponse'
x-tools:
- name: search_overview
description: 'Search Console overview: clicks, impressions, CTR, average position. Exact from/to ranges are applied without silent truncation.'
params:
days:
type: number
default: 28
from:
type: string
optional: true
description: YYYY-MM-DD, inclusive. Requires to. Applied exactly, without silent truncation.
to:
type: string
optional: true
description: YYYY-MM-DD, inclusive. Requires from. Applied exactly, without silent truncation.
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: top_queries
description: Top organic queries. Exact from/to ranges are applied without silent truncation. Data remains an array; pagination and coverage are additive envelope fields. Opportunities evaluates every collected row (up to 50000); coverage.complete is always false because Google does not guarantee all rows.
params:
limit:
type: integer
optional: true
minimum: 1
maximum: 1000
anyOf:
- type: integer
minimum: 1
maximum: 1000
description: 'Integer page size, 1..1000. Defaults: queries 20, pages 10, opportunities 8.'
cursor:
type: string
optional: true
description: Opaque nextCursor for the same project, exact range, dimensions, filters and order. Changed source returns SEARCH_CONSOLE_CURSOR_STALE (409); restart without cursor.
orderBy:
type: string
optional: true
enum:
- clicks
- impressions
- ctr
- position
description: 'Descending clicks/impressions/ctr; ascending position. Dimension keys break ties. Defaults: clicks, opportunities impressions. Ordered over at most 50000 source rows, subject to Google top-row limits.'
dimensions:
type: array
optional: true
minItems: 1
maxItems: 2
uniqueItems: true
items:
type: string
enum:
- query
- page
description: Unique query/page dimensions, including the tool dimension. Use [query,page] for combined results. Defaults to query, or page for top_pages.
filters:
type: array
optional: true
maxItems: 10
items:
type: object
properties:
dimension:
type: string
enum:
- query
- page
operator:
type: string
enum:
- contains
- equals
expression:
type: string
minLength: 1
maxLength: 4096
required:
- dimension
- operator
- expression
additionalProperties: false
description: Up to 10 provider filters joined with AND. contains is case insensitive; equals is case sensitive. Can filter dimensions outside the grouping.
days:
type: number
default: 28
from:
type: string
optional: true
description: YYYY-MM-DD, inclusive. Requires to. Applied exactly, without silent truncation.
to:
type: string
optional: true
description: YYYY-MM-DD, inclusive. Requires from. Applied exactly, without silent truncation.
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: top_pages
description: Top pages from Search Console. Exact from/to ranges are applied without silent truncation. Data remains an array; pagination and coverage are additive envelope fields. Opportunities evaluates every collected row (up to 50000); coverage.complete is always false because Google does not guarantee all rows.
params:
limit:
type: integer
optional: true
minimum: 1
maximum: 1000
anyOf:
- type: integer
minimum: 1
maximum: 1000
description: 'Integer page size, 1..1000. Defaults: queries 20, pages 10, opportunities 8.'
cursor:
type: string
optional: true
description: Opaque nextCursor for the same project, exact range, dimensions, filters and order. Changed source returns SEARCH_CONSOLE_CURSOR_STALE (409); restart without cursor.
orderBy:
type: string
optional: true
enum:
- clicks
- impressions
- ctr
- position
description: 'Descending clicks/impressions/ctr; ascending position. Dimension keys break ties. Defaults: clicks, opportunities impressions. Ordered over at most 50000 source rows, subject to Google top-row limits.'
dimensions:
type: array
optional: true
minItems: 1
maxItems: 2
uniqueItems: true
items:
type: string
enum:
- query
- page
description: Unique query/page dimensions, including the tool dimension. Use [query,page] for combined results. Defaults to query, or page for top_pages.
filters:
type: array
optional: true
maxItems: 10
items:
type: object
properties:
dimension:
type: string
enum:
- query
- page
operator:
type: string
enum:
- contains
- equals
expression:
type: string
minLength: 1
maxLength: 4096
required:
- dimension
- operator
- expression
additionalProperties: false
description: Up to 10 provider filters joined with AND. contains is case insensitive; equals is case sensitive. Can filter dimensions outside the grouping.
days:
type: number
default: 28
from:
type: string
optional: true
description: YYYY-MM-DD, inclusive. Requires to. Applied exactly, without silent truncation.
to:
type: string
optional: true
description: YYYY-MM-DD, inclusive. Requires from. Applied exactly, without silent truncation.
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: device_breakdown
description: Performance by device. Exact from/to ranges are applied without silent truncation.
params:
days:
type: number
default: 28
from:
type: string
optional: true
description: YYYY-MM-DD, inclusive. Requires to. Applied exactly, without silent truncation.
to:
type: string
optional: true
description: YYYY-MM-DD, inclusive. Requires from. Applied exactly, without silent truncation.
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: opportunities
description: Queries with SEO opportunity (positions 4-15). Exact from/to ranges are applied without silent truncation. Data remains an array; pagination and coverage are additive envelope fields. Opportunities evaluates every collected row (up to 50000); coverage.complete is always false because Google does not guarantee all rows.
params:
limit:
type: integer
optional: true
minimum: 1
maximum: 1000
anyOf:
- type: integer
minimum: 1
maximum: 1000
description: 'Integer page size, 1..1000. Defaults: queries 20, pages 10, opportunities 8.'
cursor:
type: string
optional: true
description: Opaque nextCursor for the same project, exact range, dimensions, filters and order. Changed source returns SEARCH_CONSOLE_CURSOR_STALE (409); restart without cursor.
orderBy:
type: string
optional: true
enum:
- clicks
- impressions
- ctr
- position
description: 'Descending clicks/impressions/ctr; ascending position. Dimension keys break ties. Defaults: clicks, opportunities impressions. Ordered over at most 50000 source rows, subject to Google top-row limits.'
dimensions:
type: array
optional: true
minItems: 1
maxItems: 2
uniqueItems: true
items:
type: string
enum:
- query
- page
description: Unique query/page dimensions, including the tool dimension. Use [query,page] for combined results. Defaults to query, or page for top_pages.
filters:
type: array
optional: true
maxItems: 10
items:
type: object
properties:
dimension:
type: string
enum:
- query
- page
operator:
type: string
enum:
- contains
- equals
expression:
type: string
minLength: 1
maxLength: 4096
required:
- dimension
- operator
- expression
additionalProperties: false
description: Up to 10 provider filters joined with AND. contains is case insensitive; equals is case sensitive. Can filter dimensions outside the grouping.
days:
type: number
default: 28
from:
type: string
optional: true
description: YYYY-MM-DD, inclusive. Requires to. Applied exactly, without silent truncation.
to:
type: string
optional: true
description: YYYY-MM-DD, inclusive. Requires from. Applied exactly, without silent truncation.
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: list_sitemaps
description: List registered sitemaps for the Search Console property.
params: {}
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: inspect_url
description: Inspect one URL with the URL Inspection API.
params:
url:
type: string
required: true
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: index_coverage_summary
description: Return support status and alternatives because public API has no aggregate coverage inventory.
params:
since:
type: string
optional: true
until:
type: string
optional: true
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: removal_url
description: Return support status because public API has no Removal Tool endpoint.
params:
url:
type: string
optional: true
type:
type: string
optional: true
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: check_mutation_status
description: Check a Search Console mutation by mutationId, including execution result and actionable errors.
params:
mutationId:
type: string
required: true
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: list_pending_mutations
description: List Search Console mutations pending human approval.
params:
limit:
type: number
default: 20
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: list_mutation_history
description: List Search Console mutation history and execution results.
params:
status:
type: string
default: all
limit:
type: number
default: 20
x-mcp:
channel: search_console
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
operationId: postApiSearchConsoleAgentQuery
x-operation-id-source: derived
/api/search-console/agent-mutate:
post:
summary: Google Search Console mutations
description: Link the project's Search Console property or queue official sitemap mutations. Requires write scope and admin approval unless Search Console auto-approval is enabled for the project.
tags:
- Search Console
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AgentRequest'
responses:
'200':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/AgentResponse'
x-resources:
- resource: sc_sitemap
operations:
- submit
- delete
description: Submit or delete sitemaps of the linked property with [{ url }], where url is the absolute sitemap URL.
x-mcp:
channel: search_console
effect: write
requiredScope: write
approval: auto_approval_possible
requestShape: resource_operation
workload:
executionMode: AUTO
resourceClass: STANDARD
priority: NORMAL
costModel: ITEMS
idempotencyMode: READ_BEFORE_WRITE
- resource: seo_config
operations:
- update
description: Link or update the project's Search Console site, SEO domain, target keywords, and competitors with { domain?, searchConsoleSiteUrl?, targetKeywords?, competitors? }.
x-mcp:
channel: search_console
effect: write
requiredScope: write
approval: auto_approval_possible
requestShape: resource_operation
workload:
executionMode: AUTO
resourceClass: STANDARD
priority: NORMAL
costModel: ITEMS
idempotencyMode: READ_BEFORE_WRITE
operationId: postApiSearchConsoleAgentMutate
x-operation-id-source: derived
components:
schemas:
AgentRequest:
type: object
required:
- tool
properties:
tool:
type: string
description: Tool name to execute
params:
type: object
description: Tool-specific parameters
default: {}
projectId:
type: string
description: Required when using a dpa_ global agent token. dpk_ project API keys infer the project automatically.
AgentResponse:
type: object
properties:
ok:
type: boolean
status:
type: string
description: executed, queued, pending_approval, or a domain-specific status
operationId:
type: string
description: Persistent operation id when work continues in the background.
resourceClass:
type: string
enum:
- LIGHT
- STANDARD
- HEAVY
retryAfterSeconds:
type: integer
data:
type: object
error:
type: string
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Project API key starting with dpk_ or global agent token starting with dpa_. dpa_ requests must include projectId or X-DigitalPublic-Project-Id for project-scoped endpoints.
x-commercial-channels:
- key: google_ads
label:
es: Google Ads
en: Google Ads
commercialModule: google_ads
services:
- googleAds
mcpChannels:
- google_ads
public: true
availability: generally_available
access: read_write
requiresConnection: true
acceptedAliases:
- google-ads
- key: wordpress
label:
es: WordPress
en: WordPress
commercialModule: seo_aeo
services:
- wordpressSeo
mcpChannels:
- wordpress
public: true
availability: generally_available
access: read_write
requiresConnection: true
acceptedAliases:
- wordpress-seo
- key: crm
label:
es: CRM
en: CRM
commercialModule: crm
services:
- crm
mcpChannels:
- crm
public: true
availability: generally_available
access: read_write
requiresConnection: true
acceptedAliases: []
- key: websites
label:
es: Sitios web
en: Websites
commercialModule: content_web
services:
- landingPages
mcpChannels:
- landing_pages
public: true
availability: generally_available
access: read_write
requiresConnection: true
acceptedAliases:
- landing-pages
- landing_pages
- sites-web
- sites_web
- key: social
label:
es: Redes sociales
en: Social media
commercialModule: social
services:
- socialOrganic
- socialX
- socialLinkedIn
mcpChannels:
- social
public: true
availability: generally_available
access: read_write
requiresConnection: true
acceptedAliases: []
- key: blog
label:
es: Blog
en: Blog
commercialModule: content_web
services:
- blog
mcpChannels:
- blog
public: true
availability: generally_available
access: read_write
requiresConnection: true
acceptedAliases: []
- key: meta_ads
label:
es: Meta Ads
en: Meta Ads
commercialModule: meta_ads
services:
- metaAds
mcpChannels:
- meta_ads
public: true
availability: limited
access: read_write
requiresConnection: true
acceptedAliases:
- meta-ads
- meta
- key: linkedin_ads
label:
es: LinkedIn Ads
en: LinkedIn Ads
commercialModule: linkedin_ads
services:
- linkedinAds
mcpChannels:
- linkedin_ads
public: true
availability: limited
access: read_write
requiresConnection: true
acceptedAliases:
- linkedin-ads
- linkedin
- key: seo
label:
es: SEO y AEO
en: SEO and AEO
commercialModule: seo_aeo
services:
- seo
- aeo
mcpChannels:
- seo_tools
- aeo
public: true
availability: limited
access: read_write
requiresConnection: false
acceptedAliases: []
- key: analytics
label:
es: Analítica
en: Analytics
commercialModule: analytics
services:
- analytics
mcpChannels:
- analytics
public: true
availability: limited
access: read
requiresConnection: true
acceptedAliases: []
- key: search_console
label:
es: Search Console
en: Search Console
commercialModule: search_console
services:
- searchConsole
mcpChannels:
- search_console
public: true
availability: limited
access: read_write
requiresConnection: true
acceptedAliases:
- search-console
- key: email
label:
es: Email y newsletters
en: Email and newsletters
commercialModule: email_marketing
services:
- mailings
mcpChannels:
- mailings
public: true
availability: limited
access: read_write
requiresConnection: true
acceptedAliases:
- brevo