digitalpublic-com Web Editorial API
The Web Editorial API from digitalpublic-com — 1 operation(s) for web editorial.
The Web Editorial API from digitalpublic-com — 1 operation(s) for web editorial.
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-web-editorial-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 Web Editorial 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: Web Editorial
paths:
/api/web-editorial/agent:
post:
summary: Web editorial automation
description: Prepare immutable web drafts and revisions for WordPress or repository-backed external sites, including Cloudflare Pages. Repository-backed drafts do not require a DigitalPublic LandingPage. Use a project API key or select an authorized project when using a global agent credential. Agents never approve, publish, merge, or deploy. Administrative approval always targets the exact SHA-256 revision.
tags:
- Web Editorial
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AgentRequest'
responses:
'200':
description: Read completed
content:
application/json:
schema:
$ref: '#/components/schemas/AgentResponse'
'201':
description: Immutable draft or revision stored
content:
application/json:
schema:
$ref: '#/components/schemas/AgentResponse'
'401':
description: Invalid credential or missing project selection for a global agent
'403':
description: The credential lacks the declared read or write scope
x-tools:
- x-mcp:
channel: web_editorial
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: submit_review_draft
description: Guarda texto completo para revisión en Redes sociales, Blog o Sitio web aunque falte el destino. Conserva revisión y hash, devuelve reviewUrls. Relee get_web_content_status y aporta evidence.reviewContentIds antes de completar la ejecución. La aprobación editorial conserva el borrador; publicar requiere destino y autorización posteriores.
params:
taskExecutionId:
type: string
required: true
cycleKey:
type: string
required: true
idempotencyKey:
type: string
required: true
payload:
type: object
required:
- channel
- title
- body
$schema: https://json-schema.org/draft/2020-12/schema
properties:
channel:
type: string
enum:
- social
- blog
- site
title:
type: string
minLength: 1
maxLength: 240
body:
type: string
minLength: 1
maxLength: 100000
locale:
default: es-ES
type: string
minLength: 1
maxLength: 35
mediaFileIds:
default: []
maxItems: 20
type: array
items:
type: string
minLength: 1
maxLength: 200
additionalProperties: false
- x-mcp:
channel: web_editorial
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: recover_review_draft
description: Recupera explícitamente un mensaje de una ejecución como borrador visible para revisión. Copia contenido y technicalDetails, preserva el original y deduplica por mensaje. Requiere comprobar antes que el borrador siga pendiente y que no exista otra ficha.
params:
sourceMessageId:
type: string
required: true
expectedSourceHash:
type: string
optional: true
pattern: ^[a-f0-9]{64}$
channel:
type: string
required: true
enum:
- social
- blog
- site
title:
type: string
required: true
locale:
type: string
optional: true
- x-mcp:
channel: web_editorial
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_editorial_publication_readiness
description: Consulta el bloqueo editorial de una revisión WordPress con el mismo guard del publicador. Relee aprobación vigente de cada brief y entregas anteriores; conserva todas las reservas y entregas.
params:
variantId:
type: string
required: true
- x-mcp:
channel: web_editorial
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_editorial_sequence
description: Consulta la decisión administrativa vigente con revisiones y hashes exactos y el enlace autenticado para decidir el orden. Los agentes consultan la decisión y solicitan al administrador su aprobación.
params:
processRunId:
type: string
required: true
- x-mcp:
channel: web_editorial
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: claim_editorial_stage
description: Reserva RESEARCH o WRITING de un brief adicional aprobado, en el mismo ciclo y orden administrativo exacto. Bloquea hasta completar las piezas anteriores. Duración por etapa o tarea según política del proyecto, quince minutos por defecto, con duración efectiva y vencimiento visibles. Renueva con heartbeat_editorial_stage. La caducidad recupera abandono; la calidad editorial puede requerir renovaciones sucesivas. Reintento exacto conserva token y vencimiento.
params:
durationMinutes:
type: number
optional: true
processRunId:
type: string
required: true
variantId:
type: string
required: true
orderRevisionId:
type: string
required: true
orderHash:
type: string
required: true
stage:
type: string
required: true
idempotencyKey:
type: string
required: true
- x-mcp:
channel: web_editorial
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: heartbeat_editorial_stage
description: Renueva la reserva vigente del propietario autenticado conservando token, fencing, ciclo, etapa y aprobación exacta. durationMinutes opcional, dentro de la política del proyecto; devuelve duración y vencimiento. Reintento idempotente devuelve el vencimiento registrado. Una reserva caducada requiere recuperación cercada.
params:
claimToken:
type: string
required: true
fence:
type: number
required: true
durationMinutes:
type: number
optional: true
processRunId:
type: string
required: true
variantId:
type: string
required: true
orderRevisionId:
type: string
required: true
orderHash:
type: string
required: true
stage:
type: string
required: true
idempotencyKey:
type: string
required: true
- x-mcp:
channel: web_editorial
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: submit_editorial_stage
description: Conserva resultado inmutable de investigación o redacción con fuentes, decisión exacta, lease y fencing. La redacción requiere investigación previa. El resultado permanece no publicable hasta su preparación y aprobación editorial posterior.
params:
processRunId:
type: string
required: true
variantId:
type: string
required: true
orderRevisionId:
type: string
required: true
orderHash:
type: string
required: true
stage:
type: string
required: true
idempotencyKey:
type: string
required: true
claimToken:
type: string
required: true
fence:
type: number
required: true
output:
type: object
required: true
- x-mcp:
channel: web_editorial
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: register_editorial_brief
description: Registra un brief previo a redacción, no publicable, con fuentes y hash, asociado al checkpoint conservado del mismo ciclo en WAITING_HUMAN o WAITING_AGENT. Conserva el checkpoint. El orden requiere decisión administrativa.
params:
processRunId:
type: string
required: true
nodeRunId:
type: string
required: true
checkpointHash:
type: string
required: true
briefKey:
type: string
required: true
idempotencyKey:
type: string
required: true
title:
type: string
required: true
body:
type: string
required: true
sources:
type: array
required: true
locale:
type: string
optional: true
- x-mcp:
channel: web_editorial
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_editorial_briefs
description: Consulta briefs no publicables y la decisión de orden del ciclo existente, con revisiones y hashes.
params:
processRunId:
type: string
required: true
- x-mcp:
channel: web_editorial
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: submit_web_draft
description: Crea un borrador web inmutable. additionalBrief prepara la revisión española de un brief adicional desde WRITING, con investigación y orden exactos, en el ciclo existente. Requiere processRunId y una variante EDITORIAL_ADDITIONAL_DRAFT cuyo destinationKey sea briefVariantId; omite nodeRunId. Conserva checkpoint y aprobación propios. Las traducciones requieren aprobación del español. Nunca aprueba, publica, fusiona ni despliega.
params:
cycleKey:
type: string
required: true
idempotencyKey:
type: string
required: true
taskExecutionId:
type: string
optional: true
processRunId:
type: string
optional: true
nodeRunId:
type: string
optional: true
additionalBrief:
type: object
optional: true
$schema: https://json-schema.org/draft/2020-12/schema
properties:
briefVariantId:
type: string
minLength: 1
writingRevisionId:
type: string
minLength: 1
writingHash:
type: string
pattern: ^[a-f0-9]{64}$
researchRevisionId:
type: string
minLength: 1
orderRevisionId:
type: string
minLength: 1
orderHash:
type: string
pattern: ^[a-f0-9]{64}$
required:
- briefVariantId
- writingRevisionId
- writingHash
- researchRevisionId
- orderRevisionId
- orderHash
additionalProperties: false
topic:
type: string
optional: true
objective:
type: string
optional: true
producer:
type: string
optional: true
variants:
type: array
required: true
minItems: 1
items:
type: object
properties:
provider:
type: string
enum:
- WORDPRESS
- REPOSITORY
- INTERNAL_REVIEW
- EDITORIAL_ADDITIONAL_DRAFT
destinationKey:
type: string
minLength: 1
locale:
type: string
payload:
anyOf:
- $schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
title:
type: string
minLength: 1
maxLength: 500
body:
type: string
minLength: 1
maxLength: 100000
sources:
minItems: 1
maxItems: 100
type: array
items:
type: string
format: uri
locale:
type: string
const: es-ES
kind:
type: string
const: editorial-additional-draft-v1
required:
- title
- body
- sources
- locale
- kind
additionalProperties: false
- type: object
metadata:
type: object
required:
- provider
- destinationKey
- payload
additionalProperties: true
- x-mcp:
channel: web_editorial
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: submit_web_revision
description: Entrega una revisión nueva y deja obsoleta cualquier autorización anterior. Para EDITORIAL_ADDITIONAL_DRAFT exige CHANGES_REQUESTED y baseRevisionNumber exacto; conserva procedencia WRITING, kind editorial-additional-draft-v1, locale es-ES y crea revisión inmutable PENDING_REVIEW para aprobación propia.
params:
variantId:
type: string
required: true
baseRevisionNumber:
type: number
required: true
idempotencyKey:
type: string
required: true
payload:
type: object
required: true
- x-mcp:
channel: web_editorial
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_web_content_status
description: Consulta revisiones, decisiones y entregas de un contenido web del proyecto.
params:
contentId:
type: string
required: true
- x-mcp:
channel: web_editorial
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_web_revision_requests
description: Lista variantes web que requieren una revisión nueva del agente.
params: {}
operationId: postApiWebEditorialAgent
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