digitalpublic-com Search Console API

The Search Console API from digitalpublic-com — 2 operation(s) for search console.

Operations 2

POST /api/search-console/agent-query Google Search Console data #
POST /api/search-console/agent-mutate Google Search Console mutations #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/digitalpublic-com:digitalpublic-com-search-console-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

digitalpublic-com-search-console-api-openapi.yml Raw ↑
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