digitalpublic-com Reports API
The Reports API from digitalpublic-com — 5 operation(s) for reports.
The Reports API from digitalpublic-com — 5 operation(s) for reports.
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-reports-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 Reports 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: Reports
paths:
/api/reports/agent-query:
post:
summary: Query structured reports and deterministic rendering capabilities
description: Project-scoped read tools for report designs, blueprints, the ReportDocumentV1 schema, validation, report state and immutable artifacts.
tags:
- Reports
security:
- bearerAuth: []
x-tools:
- name: list_reports
description: List all active project reports across sources, with purpose, authorization and delivery status ENVIADO, OMITIDO, AUTORIZADO or PENDIENTE. Paginated; deleted reports are explicitly outside coverage. Read each record with get_report.
params:
limit:
type: number
optional: true
default: 50
offset:
type: number
optional: true
default: 0
x-mcp:
channel: reports
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_report_capabilities
description: 'Return supported blocks, chart types, legend positions, limits, renderer version and effective presets. Each preset reports its usable blueprintKey, enabled, strictDesignEnabled and mode; STANDARD_FALLBACK remains creatable. Agents provide structured content and data; DigitalPublic owns every visual decision. Blobic 2026 is opt-in: select its designId and blueprintKey blobic-2026-seo. metadata.variant seo_geo requires AEO active in the same project.'
params: {}
x-mcp:
channel: reports
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: list_report_designs
description: List designs allowed by project, group or global inheritance, including non-sensitive logo asset key, MIME type and SHA-256. Optionally filter by reportType.
params:
reportType:
type: string
optional: true
enum:
- SEO
- GOOGLE_ADS
- CHATGPT_ADS
- AEO
- ANALYTICS
- EXECUTIVE
- CUSTOM
x-mcp:
channel: reports
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: get_report_design
description: Read metadata, published versions, the effective non-alert chartPalette and the associated non-sensitive logo asset identity for an allowed design. Visual tokens remain controlled by DigitalPublic.
params:
designId:
type: string
required: true
x-mcp:
channel: reports
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: list_report_blueprints
description: List effective report blueprints, versions, minimum blocks and design mode. A STANDARD_FALLBACK blueprint remains available for draft creation.
params: {}
x-mcp:
channel: reports
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: get_report_document_schema
description: 'Return ReportDocumentV1 JSON Schema and deterministic renderer limits. The canonical project name is shown on the cover by default; only metadata.showProjectNameOnCover=false explicitly hides it. metadata.author is the optional cover signature; omitting it or sending an empty value hides the signature without falling back to the design name. pageChrome.showRepeatedHeader=false hides the repeated title and project header for this report. pageChrome.showFooterBrand=false hides only the footer brand and preserves page numbering. Omitted pageChrome options keep the published design behavior. Categorical chart encodings accept sort arrays to fix chronological month or year order. Charts accept legend.position as right, left, top, bottom or none; side positions reserve vertical space outside the plot and long labels are truncated. showLegend remains supported and false always hides the legend. Data-table columns accept emphasis=bold; an individual row or total cell accepts { value, emphasis: bold }. Emphasis applies to the fully formatted value while content remains escaped as plain text. palette.chartOrder and chart.colorIndex select only indexed colors from the published design palette; warning and error colors require declared tones. Blobic 2026 adds metadata.website/area/variant, section conclusion/description/readingNote/part (google or ai), data_table.presentation (positions, first_page_distance, ai_answers) and recommendations.presentation=featured. Positions use positive numeric previous/current or null; ai_answers rows use question, mention boolean or null, citationSourceId referencing sources or null, and companies. The platform paginates the index and preserves older designs.'
params: {}
x-mcp:
channel: reports
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: inspect_external_report
description: 'Read an existing uploaded PDF without creating or authorizing anything. Return extracted text, page count, SHA-256 and report version. Limits: 20 MB, 100 pages, 2 MB text and 30 seconds per Poppler command. Use the returned identity in the same SEO create_report node; approval and evidence remain mandatory.'
params:
reportId:
type: string
required: true
expectedSha256:
type: string
optional: true
x-mcp:
channel: reports
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_report
description: Read a structured report or a project-scoped historical report record. Historical records declare contentUnavailable and a stable reason when their binary is missing.
params:
reportId:
type: string
required: true
x-mcp:
channel: reports
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_report_preview_pages
description: 'Inspect the current cached PDF and return its page count and one-based page indices. Requires the current expectedContentHash; stale previews return REPORT_CONTENT_CONFLICT. Run preview_report first. Limits: 20 MB PDF, 100 pages, 1600 pixels per PNG dimension, 8 MB PNG, 30 seconds per renderer command.'
params:
reportId:
type: string
required: true
expectedContentHash:
type: string
required: true
x-mcp:
channel: reports
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: get_report_preview_page
description: Read one PNG rasterized from the current cached PDF, with base64, contentHash, PDF SHA-256, PNG SHA-256, one-based pageIndex, width and height. The server rechecks content identity after rasterization and never returns a stale preview.
params:
reportId:
type: string
required: true
expectedContentHash:
type: string
required: true
pageIndex:
type: number
required: true
x-mcp:
channel: reports
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
- name: verify_tabular_report
description: Verify project ownership, file existence, XLSX MIME, size, SHA-256, period and required or forbidden column contracts.
params:
reportId:
type: string
required: true
expectedPeriod:
type: string
optional: true
expectedSha256:
type: string
optional: true
requiredColumns:
type: array
optional: true
forbiddenColumns:
type: array
optional: true
x-mcp:
channel: reports
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: validate_report_document
description: Validate ReportDocumentV1 without saving. Optional designId also validates the project design, active AEO service and palette restrictions. Errors include JSON path, keyword, expected and received values, sectionId and blockId plus supported alternatives.
params:
document:
type: object
required: true
designId:
type: string
optional: true
x-mcp:
channel: reports
effect: read
requiredScope: read
approval: none
requestShape: tool_params
workload:
executionMode: INLINE
resourceClass: LIGHT
priority: INTERACTIVE
costModel: FIXED
idempotencyMode: READ_BEFORE_WRITE
operationId: postApiReportsAgentQuery
x-operation-id-source: derived
/api/reports/agent-mutate:
post:
summary: Create and update deterministic structured reports
description: Project-scoped structured report mutations. HTML, CSS, JavaScript, SVG and external image URLs are rejected. Real email sending remains subject to human report and email authorization.
tags:
- Reports
security:
- bearerAuth: []
x-tools:
- name: create_report_draft
description: Create a visible report draft with the published standard design as a non-blocking fallback. Design selection always fails closed against the project brand; MARCA_BLANCA never falls back to a DigitalPublic or Blobic design. CRM_LEAD targets are resolved from the project CRM and agents cannot provide arbitrary recipient addresses. The complete route is required when authorization is requested. The canonical project name is supplied for the cover. Invalid documents return localized validation details.
params:
blueprintKey:
type: string
required: true
designId:
type: string
optional: true
strictDesign:
type: boolean
optional: true
title:
type: string
required: true
period:
type: string
required: true
audience:
type: string
optional: true
enum:
- CLIENT_FINAL
- DISTRIBUTOR
description: Required to prepare static delivery for FLEXIBLE projects. CRM_ONLY projects must use targetType CRM_LEAD and leadId instead.
purpose:
type: string
optional: true
enum:
- MONTHLY_REPORT
- TECHNICAL_REPORT
- COMMERCIAL_PROPOSAL
- QUOTE
targetType:
type: string
optional: true
enum:
- STATIC_AUDIENCE
- CRM_LEAD
leadId:
type: string
optional: true
description: Required when targetType is CRM_LEAD.
description:
type: string
optional: true
document:
type: object
required: true
metricReferences:
type: object
optional: true
x-mcp:
channel: reports
effect: write
requiredScope: write
approval: none
requestShape: tool_params
workload:
executionMode: AUTO
resourceClass: STANDARD
priority: NORMAL
costModel: ITEMS
idempotencyMode: READ_BEFORE_WRITE
- name: create_tabular_report
description: Create a native visible and attachable XLSX report without the legacy upload route. Accept rows or base64 workbook content and enforce required and forbidden columns.
params:
title:
type: string
required: true
period:
type: string
required: true
filename:
type: string
optional: true
reportType:
type: string
optional: true
enum:
- SEO
- SEM
- AEO
- ANALYTICS
- DASHBOARD
rows:
type: array
optional: true
contentBase64:
type: string
optional: true
requiredColumns:
type: array
optional: true
forbiddenColumns:
type: array
optional: true
x-mcp:
channel: reports
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: replace_tabular_report
description: Replace a native XLSX with optimistic concurrency. Resets report authorization and any linked unsent authorized email to DRAFT.
params:
reportId:
type: string
required: true
expectedContentHash:
type: string
required: true
title:
type: string
required: true
period:
type: string
required: true
rows:
type: array
optional: true
contentBase64:
type: string
optional: true
requiredColumns:
type: array
optional: true
forbiddenColumns:
type: array
optional: true
x-mcp:
channel: reports
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: update_report_draft
description: Update an unlocked draft. expectedContentHash is mandatory to protect concurrent human or agent edits.
params:
reportId:
type: string
required: true
expectedContentHash:
type: string
required: true
document:
type: object
optional: true
title:
type: string
optional: true
period:
type: string
optional: true
description:
type: string
optional: true
data:
type: object
optional: true
refreshCommunicationRoute:
type: boolean
optional: true
description: Explicitly refresh the same unlocked draft to its current published route and policy design. Revalidates target, content and design, invalidates previews and pending authorization, and preserves previous route snapshots.
x-mcp:
channel: reports
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: set_report_design
description: Switch an unlocked draft to another allowed design without changing its content.
params:
reportId:
type: string
required: true
expectedContentHash:
type: string
required: true
designId:
type: string
required: true
x-mcp:
channel: reports
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: preview_report
description: Render and cache a deterministic preview. The web preview and PDF use the same document, design palette and block registry.
params:
reportId:
type: string
required: true
x-mcp:
channel: reports
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: request_report_authorization
description: Validate the current structured PDF or native XLSX hash and request human authorization. Do not consider it authorized until get_report returns authorizedAt.
params:
reportId:
type: string
required: true
expectedContentHash:
type: string
required: true
x-mcp:
channel: reports
effect: write
requiredScope: write
approval: human
requestShape: tool_params
processEligible: true
workload:
executionMode: AUTO
resourceClass: STANDARD
priority: NORMAL
costModel: ITEMS
idempotencyMode: READ_BEFORE_WRITE
- name: propose_report_block
description: Record a missing visual need for administrator review. Use figure immediately when the report cannot wait for development.
params:
reportId:
type: string
optional: true
title:
type: string
required: true
description:
type: string
required: true
exampleData:
type: object
optional: true
x-mcp:
channel: reports
effect: write
requiredScope: write
approval: none
requestShape: tool_params
workload:
executionMode: AUTO
resourceClass: STANDARD
priority: NORMAL
costModel: ITEMS
idempotencyMode: READ_BEFORE_WRITE
operationId: postApiReportsAgentMutate
x-operation-id-source: derived
/api/reports/upload:
post:
summary: Upload external report file
description: Exceptional legacy upload for externally produced files. Monthly agent reports should use create_report_draft and ReportDocumentV1 instead.
tags:
- Reports
security:
- bearerAuth: []
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
required:
- file
- title
- period
properties:
file:
type: string
format: binary
description: Report file in any format (max 20 MB)
title:
type: string
description: Report title, e.g. 'Informe Q1 2026 - Agencia X'
period:
type: string
description: Reporting period, e.g. 'Enero 2026', 'Q1 2026', '01/01/2026 - 31/03/2026'
notes:
type: string
description: Optional description or context. Shown as a snippet in the reports list.
projectId:
type: string
description: Project ID to associate the report with. Defaults to the user's active project.
audience:
type: string
enum:
- CLIENT_FINAL
- DISTRIBUTOR
description: Audience for a static governed delivery.
purpose:
type: string
enum:
- MONTHLY_REPORT
- TECHNICAL_REPORT
- COMMERCIAL_PROPOSAL
- QUOTE
description: Intended delivery purpose. Defaults to MONTHLY_REPORT when a route is resolved.
targetType:
type: string
enum:
- STATIC_AUDIENCE
- CRM_LEAD
description: Use CRM_LEAD for a report intended for a variable CRM contact.
leadId:
type: string
description: CRM lead in the same project. Required when targetType is CRM_LEAD.
responses:
'201':
description: Report created
content:
application/json:
schema:
type: object
properties:
id:
type: string
title:
type: string
period:
type: string
createdAt:
type: string
format: date-time
'400':
description: Validation error (missing file, title, or period; file too large)
'401':
description: Unauthorized
'403':
description: Forbidden — CLIENT role cannot upload reports
x-tools:
- name: upload_report
description: Exceptional legacy upload for a report produced outside DigitalPublic. Do not use for recurring monthly agent reports; use create_report_draft.
params:
filename:
type: string
required: true
contentType:
type: string
optional: true
default: application/octet-stream
title:
type: string
required: true
period:
type: string
required: true
notes:
type: string
optional: true
fileBase64:
type: string
required: true
audience:
type: string
optional: true
enum:
- CLIENT_FINAL
- DISTRIBUTOR
purpose:
type: string
optional: true
enum:
- MONTHLY_REPORT
- TECHNICAL_REPORT
- COMMERCIAL_PROPOSAL
- QUOTE
targetType:
type: string
optional: true
enum:
- STATIC_AUDIENCE
- CRM_LEAD
leadId:
type: string
optional: true
x-mcp:
channel: reports
effect: write
requiredScope: write
approval: none
requestShape: multipart_upload
workload:
executionMode: AUTO
resourceClass: STANDARD
priority: NORMAL
costModel: ITEMS
idempotencyMode: READ_BEFORE_WRITE
operationId: postApiReportsUpload
x-operation-id-source: derived
/api/reports/omit-send/{reportId}:
post:
summary: Omit report email sending
description: Marks a generated or uploaded report as no longer pending email sending while preserving it in the report history. Requires write scope.
tags:
- Reports
security:
- bearerAuth: []
parameters:
- in: path
name: reportId
required: true
schema:
type: string
description: Report ID
responses:
'200':
description: Report send omitted
content:
application/json:
schema:
type: object
properties:
ok:
type: boolean
report:
type: object
properties:
id:
type: string
sendOmittedAt:
type: string
format: date-time
nullable: true
'401':
description: Unauthorized
'403':
description: Forbidden
'404':
description: Report not found
x-tools:
- name: omit_report_send
description: Mark a report as no longer pending email sending without deleting it from report history.
params:
reportId:
type: string
required: true
x-mcp:
channel: reports
effect: write
requiredScope: write
approval: none
requestShape: direct_body
workload:
executionMode: AUTO
resourceClass: STANDARD
priority: NORMAL
costModel: ITEMS
idempotencyMode: READ_BEFORE_WRITE
operationId: postApiReportsOmitSendByReportId
x-operation-id-source: derived
/api/reports/file/{reportId}:
get:
summary: Download current structured PDF or external report file
description: Returns an uploaded file or the current cached structured PDF. Structured files require preview_report first, are size limited and include content identity headers.
tags:
- Reports
parameters:
- in: path
name: reportId
required: true
schema:
type: string
description: Project report ID
- in: query
name: expectedContentHash
required: false
schema:
type: string
description: Reject an outdated structured PDF identity
responses:
'200':
description: Report file
content:
application/octet-stream:
schema:
type: string
format: binary
'404':
description: Report or stored file not found
x-tools:
- name: get_report_file
description: Download an uploaded file or the current cached structured PDF. The MCP returns filename, contentType, base64 and structured PDF identity. Optional expectedContentHash rejects outdated structured previews.
params:
reportId:
type: string
required: true
expectedContentHash:
type: string
optional: true
x-mcp:
channel: reports
effect: read
requiredScope: read
approval: none
requestShape: file_download
processEligible: true
operationId: getApiReportsFileByReportId
x-operation-id-source: derived
components:
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
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://artifacts.apis.io/digitalpublic-com/openapi/digitalpublic-com-reports-api-openapi.yml