digitalpublic-com Research Data API
The Research Data API from digitalpublic-com — 3 operation(s) for research data.
The Research Data API from digitalpublic-com — 3 operation(s) for research data.
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-research-data-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 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