digitalpublic-com Research Data API

The Research Data API from digitalpublic-com — 3 operation(s) for research data.

Operations 3

POST /api/research-data/agent-query Shared research database #
POST /api/research-data/import Preview a historical research workbook #
POST /api/research-data/agent-mutate Import research data or promote selected records #

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-research-data-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-research-data-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DigitalPublic Agent Research Data 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: Research Data
paths:
  /api/research-data/agent-query:
    post:
      summary: Shared research database
      description: Read canonical companies, contacts, collections, observations and import status from the project's private or current group data space.
      tags:
      - Research Data
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentRequest'
      responses:
        '200':
          description: Success
        '403':
          description: DATA_ACCESS_DENIED
      x-tools:
      - name: list_research_collections
        description: List visible collections.
        params:
          limit:
            type: number
            default: 50
          cursor:
            type: string
            optional: true
        x-mcp:
          channel: research_data
          effect: read
          requiredScope: read
          approval: none
          requestShape: tool_params
          processEligible: true
          workload:
            executionMode: INLINE
            resourceClass: LIGHT
            priority: INTERACTIVE
            costModel: FIXED
            idempotencyMode: READ_BEFORE_WRITE
      - name: get_research_collection
        description: Collection detail and provenance.
        params:
          collectionId:
            type: string
            required: true
        x-mcp:
          channel: research_data
          effect: read
          requiredScope: read
          approval: none
          requestShape: tool_params
          processEligible: true
          workload:
            executionMode: INLINE
            resourceClass: LIGHT
            priority: INTERACTIVE
            costModel: FIXED
            idempotencyMode: READ_BEFORE_WRITE
      - name: list_collection_items
        description: Paginate sanitized original items.
        params:
          collectionId:
            type: string
            required: true
          limit:
            type: number
            default: 20
          cursor:
            type: string
            optional: true
        x-mcp:
          channel: research_data
          effect: read
          requiredScope: read
          approval: none
          requestShape: tool_params
          processEligible: false
          workload:
            executionMode: INLINE
            resourceClass: LIGHT
            priority: INTERACTIVE
            costModel: FIXED
            idempotencyMode: READ_BEFORE_WRITE
      - name: search_companies
        description: Search deduplicated companies.
        params:
          q:
            type: string
            optional: true
          country:
            type: string
            optional: true
          sector:
            type: string
            optional: true
          limit:
            type: number
            default: 20
          cursor:
            type: string
            optional: true
        x-mcp:
          channel: research_data
          effect: read
          requiredScope: read
          approval: none
          requestShape: tool_params
          processEligible: false
          workload:
            executionMode: INLINE
            resourceClass: LIGHT
            priority: INTERACTIVE
            costModel: FIXED
            idempotencyMode: READ_BEFORE_WRITE
      - name: search_contacts
        description: Search deduplicated contacts.
        params:
          q:
            type: string
            optional: true
          limit:
            type: number
            default: 20
          cursor:
            type: string
            optional: true
        x-mcp:
          channel: research_data
          effect: read
          requiredScope: read
          approval: none
          requestShape: tool_params
          processEligible: false
          workload:
            executionMode: INLINE
            resourceClass: LIGHT
            priority: INTERACTIVE
            costModel: FIXED
            idempotencyMode: READ_BEFORE_WRITE
      - name: get_research_entity
        description: Entity detail with observations and conflicts.
        params:
          id:
            type: string
            required: true
        x-mcp:
          channel: research_data
          effect: read
          requiredScope: read
          approval: none
          requestShape: tool_params
          processEligible: false
          workload:
            executionMode: INLINE
            resourceClass: LIGHT
            priority: INTERACTIVE
            costModel: FIXED
            idempotencyMode: READ_BEFORE_WRITE
      - name: list_research_imports
        description: List visible workbook imports.
        params:
          limit:
            type: number
            default: 50
        x-mcp:
          channel: research_data
          effect: read
          requiredScope: read
          approval: none
          requestShape: tool_params
          processEligible: false
          workload:
            executionMode: INLINE
            resourceClass: LIGHT
            priority: INTERACTIVE
            costModel: FIXED
            idempotencyMode: READ_BEFORE_WRITE
      - name: get_research_import_status
        description: Import status, mapping and statistics.
        params:
          importBatchId:
            type: string
            required: true
        x-mcp:
          channel: research_data
          effect: read
          requiredScope: read
          approval: none
          requestShape: tool_params
          processEligible: false
          workload:
            executionMode: INLINE
            resourceClass: LIGHT
            priority: INTERACTIVE
            costModel: FIXED
            idempotencyMode: READ_BEFORE_WRITE
      - name: get_research_import_errors
        description: Row-level import errors.
        params:
          importBatchId:
            type: string
            required: true
          limit:
            type: number
            default: 100
        x-mcp:
          channel: research_data
          effect: read
          requiredScope: read
          approval: none
          requestShape: tool_params
          processEligible: false
          workload:
            executionMode: INLINE
            resourceClass: LIGHT
            priority: INTERACTIVE
            costModel: FIXED
            idempotencyMode: READ_BEFORE_WRITE
      - name: get_visibility_progress
        description: Aggregate distinct domains, valid observations, explicit failures, engines and methodology versions against panel targets.
        params:
          stableKey:
            type: string
            required: true
          targetDomains:
            type: number
            default: 30
          targetObservations:
            type: number
            default: 300
        x-mcp:
          channel: research_data
          effect: read
          requiredScope: read
          approval: none
          requestShape: tool_params
          processEligible: true
          workload:
            executionMode: INLINE
            resourceClass: LIGHT
            priority: INTERACTIVE
            costModel: FIXED
            idempotencyMode: READ_BEFORE_WRITE
      - name: list_visibility_observations
        description: Paginate traceable AI Visibility observations. UNAVAILABLE and ERROR remain distinct from numeric zero.
        params:
          stableKey:
            type: string
            required: true
          limit:
            type: number
            default: 50
          cursor:
            type: string
            optional: true
        x-mcp:
          channel: research_data
          effect: read
          requiredScope: read
          approval: none
          requestShape: tool_params
          processEligible: true
          workload:
            executionMode: INLINE
            resourceClass: LIGHT
            priority: INTERACTIVE
            costModel: FIXED
            idempotencyMode: READ_BEFORE_WRITE
      operationId: postApiResearchDataAgentQuery
      x-operation-id-source: derived
  /api/research-data/import:
    post:
      summary: Preview a historical research workbook
      description: Accepts XLSX, XLS or CSV up to configured limits. It never evaluates formulas, macros, links or code and only creates an AWAITING_MAPPING preview.
      tags:
      - Research Data
      responses:
        '201':
          description: Mapping preview
        '400':
          description: INVALID_WORKBOOK
        '413':
          description: IMPORT_LIMIT_EXCEEDED
      x-tools:
      - name: upload_research_workbook
        description: Upload a historical workbook and receive sheet previews plus proposed Spanish/English column mappings.
        params:
          file:
            type: string
            format: binary
            required: true
          filename:
            type: string
            required: true
        x-mcp:
          channel: research_data
          effect: write
          requiredScope: write
          approval: none
          requestShape: multipart_upload
          workload:
            executionMode: AUTO
            resourceClass: STANDARD
            priority: NORMAL
            costModel: ITEMS
            idempotencyMode: READ_BEFORE_WRITE
      operationId: postApiResearchDataImport
      x-operation-id-source: derived
  /api/research-data/agent-mutate:
    post:
      summary: Import research data or promote selected records
      description: Workbook execution requires preview and human approval by default. Promotion is limited to visible selected entities and is idempotent.
      tags:
      - Research Data
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentRequest'
      responses:
        '200':
          description: Executed or validated
        '202':
          description: Pending approval
        '400':
          description: IMPORT_MAPPING_REQUIRED
      x-tools:
      - name: execute_research_import
        description: Request asynchronous import of a previously previewed workbook.
        params:
          importBatchId:
            type: string
            required: true
          collectionName:
            type: string
            required: true
          selectedSheets:
            type: array
            required: true
          mappingBySheet:
            type: object
            required: true
          purpose:
            type: string
            required: true
          legalBasis:
            type: string
            required: true
          retentionDays:
            type: number
            optional: true
          tags:
            type: array
            optional: true
          idempotency_key:
            type: string
            required: true
          agent_note:
            type: string
            optional: true
          validate_only:
            type: boolean
            default: false
        x-mcp:
          channel: research_data
          effect: write
          requiredScope: write
          approval: auto_approval_possible
          requestShape: tool_params
          workload:
            executionMode: AUTO
            resourceClass: STANDARD
            priority: NORMAL
            costModel: ITEMS
            idempotencyMode: READ_BEFORE_WRITE
      - name: promote_records_to_crm
        description: Promote selected visible research entities into CRM with researchEntityId and email deduplication.
        params:
          researchEntityIds:
            type: array
            required: true
            maxItems: 100
          tags:
            type: array
            optional: true
        x-mcp:
          channel: research_data
          effect: write
          requiredScope: write
          approval: none
          requestShape: tool_params
          workload:
            executionMode: AUTO
            resourceClass: STANDARD
            priority: NORMAL
            costModel: ITEMS
            idempotencyMode: READ_BEFORE_WRITE
      - name: resolve_visibility_collection
        description: Create or resolve a stable project or group scoped collection for an AI Visibility Index panel.
        params:
          stableKey:
            type: string
            required: true
          name:
            type: string
            optional: true
          description:
            type: string
            optional: true
          purpose:
            type: string
            required: true
          legalBasis:
            type: string
            required: true
          retentionDays:
            type: number
            default: 365
            minimum: 30
            maximum: 3650
        x-mcp:
          channel: research_data
          effect: write
          requiredScope: write
          approval: none
          requestShape: tool_params
          processEligible: true
          workload:
            executionMode: AUTO
            resourceClass: STANDARD
            priority: NORMAL
            costModel: ITEMS
            idempotencyMode: READ_BEFORE_WRITE
      - name: append_visibility_observations
        description: Append a PII-free incremental batch with idempotency and mandatory deduplication by domain, prompt, engine, date and methodology version.
        params:
          stableKey:
            type: string
            required: true
          source:
            type: string
            required: true
          sourceRunId:
            type: string
            optional: true
          piiFree:
            type: boolean
            required: true
          observations:
            type: array
            required: true
            maxItems: 300
          idempotency_key:
            type: string
            required: true
        x-mcp:
          channel: research_data
          effect: write
          requiredScope: write
          approval: none
          requestShape: tool_params
          processEligible: true
          workload:
            executionMode: AUTO
            resourceClass: STANDARD
            priority: NORMAL
            costModel: ITEMS
            idempotencyMode: READ_BEFORE_WRITE
      operationId: postApiResearchDataAgentMutate
      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.
  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