Privacidad y analítica

Utilizamos cookies técnicas necesarias y, solo si das tu consentimiento, analítica y pixels de marketing para mejorar la web y medir campañas.

Política de privacidadPolítica de cookies
Docs
Español
EspañolEnglishFrançaisDeutschItaliano

Primeros pasos

  • ¿Qué es Nömad?
  • Cómo empezar en Nömad
  • Crear tu marca y completar el Genoma
  • Invitar a tu equipo
  • Glosario

Brand OS

  • Qué incluye Brand OS
  • ¿Qué es el Genoma?
  • ¿Quién es Nödo?
  • Hablar con Nödo: voz, tarjetas y pedir a la Tienda
  • Conversaciones: tu equipo y Nödo
  • ¿Qué hace un Brand Manager?
  • Kit de marca y Biblioteca
  • Publicaciones y calendario
  • Conexiones
  • Reuniones
  • Archivos que te enviamos con NödoTransfer
  • Tus presupuestos

Trabajos

  • Trabajos y tareas
  • Encargar un trabajo
  • Seguir, revisar y aprobar entregas
  • Aprobar las publicaciones que prepara Nömad
  • Presupuestos a medida
  • Historial de la marca
  • Sí, hay humanos detrás

Cuenta y facturación

  • Planes y precios
  • Facturación y pagos
  • Pagar desde las apps (iPhone y Android)
  • Personas y accesos
  • Roles de la organización y de la marca
  • Workspaces y varias marcas
  • Tu nombre y tu @usuario
  • Idiomas, apps y datos
  • Salir, cerrar o eliminar: cuenta, marcas y workspaces
  • Eliminar y recuperar: qué se borra y qué se queda
  • Bandeja de entrada y notificaciones: cómo te avisamos
  • Avisos push en el móvil y el navegador
  • Correos de Nömad y tus preferencias

Ayuda

  • Cómo pedir ayuda

API

  • API de marca
    • Errores
    • Permisos y roles
    • Eventos y webhooks
    • Marca
    • Genoma
    • Brand Kit
    • Biblioteca
    • Trabajos
    • Calendario
    • Conexiones
    • Publicaciones
    • Avisos
    • Equipo
    • Cuenta y equipo
    • Conversación
    • Memoria
    • Preguntas
    • Imagen
    • Store
    • Plan
    • Pedidos
    • Actividad
    • Workspace
    • Tu cuenta
    • Facturación
    • Sincronización
    • Web y dominios
    • Estadísticas
    • Eventos

MCP

  • Servidor MCP

Conectores

  • Conectores de una marca

Nödo y agentes

  • Nödo en la marca

Genoma

  • Especificación del Genoma
API/API de marca
Referencia39 min de lectura

Publicaciones

Borradores y programación en redes.

En esta página
  • publishing.posts.list · Ver publicaciones
  • publishing.posts.get · Ver una publicación
  • publishing.posts.draft · Preparar una publicación
  • publishing.posts.request_review · Pedir revisión
Português
Русский
한국어
日本語
中文
हिन्दी
Abrir la app
  • publishing.posts.schedule · Proponer hora de publicación
  • publishing.accounts.list · Cuentas para publicar
  • publishing.formats.describe · Reglas de cada formato
  • publishing.metrics.get · Métricas de publicaciones
  • publishing.ideas.create · Guardar una idea
  • publishing.ideas.list · Ver ideas
  • publishing.mentions.suggest · Sugerir menciones
  • publishing.networks.list · Redes y formatos
  • publishing.posts.save · Guardar una publicación
  • publishing.variants.schedule · Programar o publicar ya
  • publishing.reviews.request · Pedir aprobación
  • publishing.reviews.decide · Aprobar o rechazar una revisión
  • publishing.comments.add · Comentar una publicación
  • publishing.posts.mutate · Cancelar o reintentar publicaciones
  • publishing.variants.mutate · Cancelar, reintentar o completar destinos
  • publishing.variants.mark_published · Marcar como publicado
  • publishing.posts.delete · Eliminar publicaciones
  • publishing.posts.duplicate · Duplicar publicaciones
  • publishing.posts.start_work · Nueva publicación
  • publishing.planned.bind · Elegir la cuenta de una red prevista
  • publishing.remote.delete · Eliminar de la red
  • publishing.media.prepare · Revisar archivos para publicar
  • publishing.media.start_job · Preparar una versión de un archivo
  • publishing.media.accept_derivative · Aceptar una versión adaptada
  • publishing.settings.configure_policy · Cambiar la política de aprobación
  • publishing.settings.configure_queue · Cambiar la cola de una cuenta
  • publishing.settings.pause · Pausar o reanudar la publicación
  • publishing.queue.reorder · Reordenar la cola
  • publishing.external_reviews.issue_links · Crear enlaces de revisión del cliente
  • publishing.external_reviews.revoke_link · Revocar un enlace de revisión
  • publishing.history.rerun_import · Volver a importar el historial
  • publishing.calendar.reschedule · Mover publicaciones en el calendario
  • publishing.calendar.swap · Intercambiar dos horas
  • publishing.calendar.duplicate · Duplicar una publicación
  • publishing.agency.accept · Aceptar una publicación de Nömad
  • publishing.agency.accept_with_changes · Guardar y aceptar
  • publishing.agency.request_changes · Pedir cambios a Nömad
  • publishing.agency.record_approval · Registrar una aprobación
  • publishing.approval_links.create · Enviar para aprobar
  • publishing.approval_links.revoke · Revocar un enlace de aprobación
  • publishing.writer.topics · Proponer temas con Nödo
  • publishing.writer.compose · Escribir con Nödo
  • publishing.writer.refine · Mejorar un texto con Nödo
  • publishing.writer.adapt · Adaptar a cada red con Nödo
  • publishing.writer.mark_assisted · Anotar la ayuda de Nödo
  • publishing.editorial_plan.save_rhythm · Guardar el ritmo editorial
  • publishing.editorial_plan.save_month · Guardar el mes editorial
  • publishing.editorial_plan.improve · Mejorar el plan con Nödo
  • publishing.editorial_plan.propose_rebalance · Equilibrar el mes con Nödo
  • publishing.editorial_plan.approve · Aprobar el plan editorial
  • publishing.themes.update · Editar un tema
  • publishing.themes.delete · Eliminar un tema
  • publishing.themes.restore · Recuperar un tema
  • publishing.themes.create · Añadir un tema
  • publishing.themes.generate · Generar el banco de temas
  • publishing.themes.reset_status · Desbloquear la generación de temas
  • publishing.posts.awaiting · Publicaciones por aprobar
  • publishing.editorial_plan.board · Ver el plan editorial
  • publishing.posts.list · Ver publicaciones

    Publicaciones de la marca con su estado real, calculado de sus destinos: borrador, en revisión, aprobada sin programar, programada, publicándose, publicada, parcial, con fallos, eliminada de la red o cancelada. Filtra por estado, cuenta, origen y fechas; cada destino trae hora, enlace publicado y últimas métricas.

    CampoValor
    TipoLectura
    Método HTTPPOST /api/v1/publishing.posts.list
    Herramienta MCPpublishing_posts_list
    Alcancepublishing.read
    Rol mínimoLector
    Confirmación humanaNo
    PuertasNödo, Voz, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible
    Widgetlist

    Entrada

    {
      status?: "all" | "draft" | "in_review" | "approved_unscheduled" | "scheduled" | "published" | "failed" | "deleted" | "cancelled"  // default "all" · A post matches every state one of its destinations is in; `published` includes partially published posts and excludes destinations deleted from their network, which match `deleted`.
      accountId?: string  // uuid
      source?: "person" | "agent"
      from?: string  // date-time
      to?: string  // date-time
      cursor?: string  // ≤ 512 · Opaque cursor from a previous `nextCursor`.
      limit?: integer  // 1–50 · default 20
    }

    Salida

    {
      items: Array<{
        id: string  // uuid
        title: string | null
        status: "draft" | "in_review" | "approved_unscheduled" | "scheduled" | "publishing" | "published" | "partial" | "failed" | "deleted" | "cancelled"
        channels: string[]
        scheduledAt: string | null  // Earliest planned or proposed time among the destinations.
        publishedAt: string | null  // Latest confirmed publication among the destinations.
        source: "person" | "agent"  // `agent` when an agent drafted it for a person.
        destinations: Array<{
          variantId: string  // uuid
          accountId: string  // uuid · Connected account id, as `publishing.accounts.list` returns it.
          network: string  // Network key: instagram, facebook_pages, threads, linkedin, tiktok, youtube, x, pinterest, bluesky, google_business_profile, wordpress, mailerlite.
          account: string | null
          format: string
          status: string  // Raw destination status: draft, in_review, approved, scheduled, preparing, publishing, processing, published, manual_pending, manual_confirmed, missed, blocked, failed, uncertain or cancelled; `deleted` when it was published and later removed from the network (from Nömad or in the network itself).
          scheduledAt: string | null
          publishedAt: string | null
          permalink: string | null  // Public link on the network; null once the post was deleted there.
          deletedAt?: string | null  // When a published destination was found deleted from its network.
          metrics: {
            observedAt: string
            values: Record<string, number>  // Latest counters the network reports (likes, comments, views…); keys vary per network.
          }
          | null
        }>
        reviewUrl: string  // uri · Where a person reviews, approves or edits the post in Nömad. Show it to them.
        updatedAt: string
      }>
      nextCursor: string | null
    }

    publishing.posts.get · Ver una publicación

    Una publicación entera: texto base, cada destino con su texto, formato, archivos (con vista previa), programación, revisión, intentos de entrega, enlace publicado y métricas.

    CampoValor
    TipoLectura
    Método HTTPPOST /api/v1/publishing.posts.get
    Herramienta MCPpublishing_posts_get
    Alcancepublishing.read
    Rol mínimoLector
    Confirmación humanaNo
    PuertasNödo, Voz, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible
    Widgetrecord

    Entrada

    {
      postId: string  // uuid
    }

    Salida

    {
      id: string  // uuid
      title: string | null
      status: "draft" | "in_review" | "approved_unscheduled" | "scheduled" | "publishing" | "published" | "partial" | "failed" | "deleted" | "cancelled"
      channels: string[]
      scheduledAt: string | null  // Earliest planned or proposed time among the destinations.
      publishedAt: string | null  // Latest confirmed publication among the destinations.
      source: "person" | "agent"  // `agent` when an agent drafted it for a person.
      destinations: Array<{
        variantId: string  // uuid
        accountId: string  // uuid · Connected account id, as `publishing.accounts.list` returns it.
        network: string  // Network key: instagram, facebook_pages, threads, linkedin, tiktok, youtube, x, pinterest, bluesky, google_business_profile, wordpress, mailerlite.
        account: string | null
        format: string
        status: string  // Raw destination status: draft, in_review, approved, scheduled, preparing, publishing, processing, published, manual_pending, manual_confirmed, missed, blocked, failed, uncertain or cancelled; `deleted` when it was published and later removed from the network (from Nömad or in the network itself).
        scheduledAt: string | null
        publishedAt: string | null
        permalink: string | null  // Public link on the network; null once the post was deleted there.
        deletedAt?: string | null  // When a published destination was found deleted from its network.
        metrics: {
          observedAt: string
          values: Record<string, number>  // Latest counters the network reports (likes, comments, views…); keys vary per network.
        }
        | null
        title: string
        text: string
        inheritsText: boolean
        deliveryMethod: "direct" | "manual"
        options: Record<string, unknown>
        media: Array<{
          fileId: string  // uuid
          name: string | null
          mimeType: string | null
          role: string
          altText: string | null
          previewUrl: string | null  // In-app thumbnail; opens for people signed in to the brand.
        }>
        schedule: {
          kind: string
          at: string | null
          timezone: string
          status: string
        }
        | null
        delivery: {
          jobStatus: string | null
          attempts: integer  // -9007199254740991–9007199254740991
          lastError: string | null
          updatedAt: string | null
        }
      }>
      reviewUrl: string  // uri · Where a person reviews, approves or edits the post in Nömad. Show it to them.
      updatedAt: string
      baseText: string
      tags: string[]
      revision: integer  // -9007199254740991–9007199254740991
      createdAt: string
      createdBy: {
        id: string  // uuid
        name: string | null
      }
      | null
      via: {
        door: string
        clientId: string | null
        model: string | null
      }
      | null  // Which agent drafted it, when one did.
      review: {
        policy: "none" | "internal" | "internal_client"
        agentPolicy: "never" | "review"
        requests: Array<{
          id: string  // uuid
          accountId: string | null
          stage: "internal" | "client"
          status: string
          createdAt: string
          decisions: Array<{
            decision: string
            comment: string | null
            decidedAt: string | null
          }>
        }>
      }
    }

    publishing.posts.draft · Preparar una publicación

    Crea en una sola llamada un borrador para varias cuentas conectadas: texto base, texto propio por destino y archivos aprobados de la Biblioteca. Siempre queda en borrador, firmado como hecho por un agente, con el enlace para que una persona lo revise; devuelve los problemas de formato y la revisión de marca de cada texto. Nunca publica ni programa.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.posts.draft
    Herramienta MCPpublishing_posts_draft
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasNödo, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible
    Widgetrecord

    Entrada

    {
      postId?: string  // uuid
      expectedRevision?: integer  // –9007199254740991 · Required with `postId`: the `revision` from `publishing.posts.get`.
      title: string  // ≤ 200 · Name of the post in Nömad. Networks with a title field (YouTube, Pinterest, articles) use it unless a destination sets its own `title`.
      text: string  // ≤ 10000 · Base copy every destination uses unless it sets its own `text`.
      tags?: string[]  // ≤ 20 items · default []
      fileIds?: string[]  // ≤ 10 items · default [] · Approved Library files attached to every destination that does not list its own.
      destinations: Array<{
        accountId: string  // uuid
        format: "text" | "image" | "carousel" | "video" | "reel" | "story" | "document" | "poll" | "article" | "event" | "offer" | "campaign"
        text?: string  // ≤ 10000 · Copy for this network only; omit to use the base copy.
        title?: string  // ≤ 500 · Title where the network has one (YouTube, Pinterest, articles).
        fileIds?: string[]  // ≤ 20 items
        options?: Record<string, string | number | boolean>  // Network options from `publishing.formats.describe`, e.g. { "privacyStatus": "unlisted" }.
      }>  // ≤ 12 items
      idempotencyKey?: string  // ≤ 120 · Any unique string you choose per intended draft. Retrying with the same key returns the first result instead of a duplicate.
      agentModel?: string  // ≤ 80 · Your model name (e.g. claude-opus-4). Recorded as self-reported next to the post, so reviewers know what wrote it.
    }

    Salida

    {
      ok: true
      id: string  // uuid
      title: string
      revision: integer  // -9007199254740991–9007199254740991
      status: "draft"
      replayed: boolean  // True when `idempotencyKey` matched an earlier call and nothing new was created.
      readyForReview: boolean  // No blocking issue: it can be sent to review.
      issues: Array<{
        accountId: string | null
        field: string
        code: string  // Stable key, e.g. text_too_long, media_count_invalid, media_aspect_invalid, format_unavailable, media_check_pending, direct_publishing_unavailable. Account warnings: connection_broken, missing_permissions, connection_paused and expires_before_post (params `cause`, `renewBy`): the account needs reconnecting before the post goes out; tell the person which one and why.
        severity: "error" | "warning"  // Errors must be fixed before review; warnings only inform.
        params?: Record<string, string | number>
      }>
      brandCheck: Array<{
        accountId: string  // uuid
        ok: boolean  // False when the text breaks a blocking brand or sector rule.
        findings: Array<{
          ruleId: string
          source: string  // `brand` for the Genome rules, otherwise the sector pack.
          severity: "block" | "warn"
          match: string
          message: {
            es: string
            en: string
          }
          suggestion?: string
        }>
      }>
      mentionSuggestions?: Array<{
        network: string  // Network key the handle belongs to (instagram, threads, x, tiktok, bluesky, facebook_pages, linkedin, youtube).
        handle: string  // Username without the @.
        name: string | null  // Public display name, when a lookup found the account.
        verified: boolean  // An official lookup found this public account recently.
        uses: integer  // -9007199254740991–9007199254740991 · Times the brand used it in posts, collaborators, tags or its imported history.
        lastUsedAt: string | null
        reason: "named_in_text" | "handle_in_text" | "used_before"  // `named_in_text`: the account's name appears in the text without its @handle; `handle_in_text`: its handle appears without the @; `used_before`: the brand mentioned, tagged or collaborated with it before.
        accountId: string  // uuid
      }>  // Accounts the brand used before that the copy names without their @handle, per destination. Only proposals: tell the person and let them add the mention; never rewrite the draft on your own.
      reviewUrl: string  // uri · Where a person reviews, approves or edits the post in Nömad. Show it to them.
    }

    publishing.posts.request_review · Pedir revisión

    Manda un borrador a revisión: las personas que revisan en la marca (o sus propietarios y administradores) deciden si se publica. Nunca aprueba ni publica, aunque lo pidas en nombre de un propietario. Devuelve el enlace de aprobación.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.posts.request_review
    Herramienta MCPpublishing_posts_request_review
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasNödo, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible
    Widgetrecord

    Entrada

    {
      postId: string  // uuid
      accountIds?: string[]  // ≤ 12 items · Account ids of the destinations to send; omit for every destination still in draft.
    }

    Salida

    {
      ok: true
      id: string  // uuid
      title: string
      state: "in_review" | "needs_changes"  // `needs_changes`: nothing changed; fix `issues` (errors) and ask again.
      proposedAt: string | null  // Time proposed to the reviewer; it only takes effect if a person approves.
      timezone: string | null
      reviewers: integer  // -9007199254740991–9007199254740991 · People asked to decide.
      agentPolicy: "never" | "review"  // Brand rule for agent posts. `never` (default): a person always approves an agent post.
      issues: Array<{
        accountId: string | null
        field: string
        code: string  // Stable key, e.g. text_too_long, media_count_invalid, media_aspect_invalid, format_unavailable, media_check_pending, direct_publishing_unavailable. Account warnings: connection_broken, missing_permissions, connection_paused and expires_before_post (params `cause`, `renewBy`): the account needs reconnecting before the post goes out; tell the person which one and why.
        severity: "error" | "warning"  // Errors must be fixed before review; warnings only inform.
        params?: Record<string, string | number>
      }>
      reviewUrl: string  // uri · Where a person reviews, approves or edits the post in Nömad. Show it to them.
    }

    publishing.posts.schedule · Proponer hora de publicación

    Propone una hora de publicación y manda el borrador a revisión en el mismo paso. La hora solo vale si una persona aprueba la publicación; hasta entonces no hay nada programado. Devuelve el enlace de aprobación.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.posts.schedule
    Herramienta MCPpublishing_posts_schedule
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasNödo, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible
    Widgetrecord

    Entrada

    {
      postId: string  // uuid
      publishAt: string  // date-time
      timezone?: string  // ≤ 100
      accountIds?: string[]  // ≤ 12 items · Account ids of the destinations to send; omit for every destination still in draft.
    }

    Salida

    {
      ok: true
      id: string  // uuid
      title: string
      state: "in_review" | "needs_changes"  // `needs_changes`: nothing changed; fix `issues` (errors) and ask again.
      proposedAt: string | null  // Time proposed to the reviewer; it only takes effect if a person approves.
      timezone: string | null
      reviewers: integer  // -9007199254740991–9007199254740991 · People asked to decide.
      agentPolicy: "never" | "review"  // Brand rule for agent posts. `never` (default): a person always approves an agent post.
      issues: Array<{
        accountId: string | null
        field: string
        code: string  // Stable key, e.g. text_too_long, media_count_invalid, media_aspect_invalid, format_unavailable, media_check_pending, direct_publishing_unavailable. Account warnings: connection_broken, missing_permissions, connection_paused and expires_before_post (params `cause`, `renewBy`): the account needs reconnecting before the post goes out; tell the person which one and why.
        severity: "error" | "warning"  // Errors must be fixed before review; warnings only inform.
        params?: Record<string, string | number>
      }>
      reviewUrl: string  // uri · Where a person reviews, approves or edits the post in Nömad. Show it to them.
    }

    publishing.accounts.list · Cuentas para publicar

    Las cuentas conectadas donde la marca puede publicar, con su salud: credenciales al día, por caducar o caducadas, si la red está activada para publicar por API, los formatos que admite y si la publicación está en pausa.

    CampoValor
    TipoLectura
    Método HTTPPOST /api/v1/publishing.accounts.list
    Herramienta MCPpublishing_accounts_list
    Alcancepublishing.read
    Rol mínimoLector
    Confirmación humanaNo
    PuertasNödo, Voz, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible
    Widgetlist

    Entrada

    {}

    Salida

    {
      publishingActive: boolean  // False while Nömad's publisher is switched off: drafts and reviews still work.
      paused: boolean
      approvalPolicy: "none" | "internal" | "internal_client"
      agentPolicy: "never" | "review"
      items: Array<{
        accountId: string  // uuid
        network: string
        name: string
        handle: string | null
        status: "connected" | "needs_attention"
        credentials: "ok" | "expiring" | "expired" | "error"
        credentialsExpireAt: string | null
        gateActive: boolean  // Nömad has certified API publishing for this network.
        directPublishing: boolean
        reasons: string[]
        formats: string[]
        timezone: string | null
        paused: boolean
      }>
    }

    publishing.formats.describe · Reglas de cada formato

    Lo que admite cada formato en cada cuenta conectada: límite de texto y en qué unidad, número y tipo de archivos, tamaño, proporción, duración y opciones. Léelo antes de escribir un borrador.

    CampoValor
    TipoLectura
    Método HTTPPOST /api/v1/publishing.formats.describe
    Herramienta MCPpublishing_formats_describe
    Alcancepublishing.read
    Rol mínimoLector
    Confirmación humanaNo
    PuertasNödo, Voz, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible

    Entrada

    {
      accountId?: string  // uuid
      format?: "text" | "image" | "carousel" | "video" | "reel" | "story" | "document" | "poll" | "article" | "event" | "offer" | "campaign"
    }

    Salida

    {
      items: Array<{
        accountId: string  // uuid
        network: string
        account: string | null
        format: "text" | "image" | "carousel" | "video" | "reel" | "story" | "document" | "poll" | "article" | "event" | "offer" | "campaign"
        status: "verified" | "candidate" | "unsupported" | "retired"  // `verified`: checked against the network documentation; `candidate`: not certified yet.
        directPublishing: boolean  // True when Nömad can publish this format on this account by API once approved; otherwise a person publishes it by hand.
        text: {
          required: boolean
          max: integer | null
          unit: "characters" | "code_points" | "utf16_units" | "utf8_bytes" | "graphemes" | "threads_weighted" | "x_weighted" | null
        }
        media: {
          min: integer  // -9007199254740991–9007199254740991
          max: integer | null
          mimeTypes: string[]
          maxBytes: number | null
          rules: Record<string, unknown>  // Every other media rule as the catalogue states it: aspect [min,max] (width/height), duration [min,max] seconds, width, fps, codecs, cover.
        }
        options: string[]  // Network options a destination may set in `options`.
        notes: string[]  // Known limits not checked automatically.
      }>
    }

    publishing.metrics.get · Métricas de publicaciones

    Las últimas métricas de lo publicado, por publicación y sumadas por cuenta: lo publicado desde Nömad y, si está importado, el historial de la cuenta. Filtra por publicación, cuenta y fechas.

    CampoValor
    TipoLectura
    Método HTTPPOST /api/v1/publishing.metrics.get
    Herramienta MCPpublishing_metrics_get
    Alcancepublishing.read
    Rol mínimoLector
    Confirmación humanaNo
    PuertasNödo, Voz, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible

    Entrada

    {
      postId?: string  // uuid
      accountId?: string  // uuid
      from?: string
      to?: string
      limit?: integer  // 1–50 · default 20
    }

    Salida

    {
      items: Array<{
        origin: "nomad" | "history"  // `history`: published outside Nömad and imported.
        postId: string | null
        variantId: string | null
        accountId: string | null
        network: string | null
        permalink: string | null
        publishedAt: string | null
        observedAt: string | null
        values: Record<string, number>
        availability: Record<string, string>
      }>
      totals: Array<{
        accountId: string | null
        network: string | null
        posts: integer  // -9007199254740991–9007199254740991
        values: Record<string, number>
      }>
    }

    publishing.ideas.create · Guardar una idea

    Guarda una idea de publicación (título, texto, etiquetas y archivos aprobados) en Ideas, marcada como propuesta de un agente. Una idea es una publicación en su primera fase: sin redes, sin fecha y sin trabajo. Una persona decide si la convierte en publicación, que conserva el mismo id.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.ideas.create
    Herramienta MCPpublishing_ideas_create
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasNödo, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible

    Entrada

    {
      title: string  // ≤ 200
      text?: string  // ≤ 10000 · default ""
      tags?: string[]  // ≤ 20 items · default []
      fileIds?: string[]  // ≤ 10 items · default []
      idempotencyKey?: string  // ≤ 120 · Any unique string you choose per intended draft. Retrying with the same key returns the first result instead of a duplicate.
      agentModel?: string  // ≤ 80 · Your model name (e.g. claude-opus-4). Recorded as self-reported next to the post, so reviewers know what wrote it.
    }

    Salida

    {
      ok: true
      id: string  // uuid
      revision: integer  // -9007199254740991–9007199254740991
      replayed: boolean
      url: string  // uri
    }

    publishing.ideas.list · Ver ideas

    Las ideas de publicación guardadas en la marca, las más recientes primero, con su origen. Una idea convertida en publicación sale de esta lista y sigue con el mismo id en las publicaciones.

    CampoValor
    TipoLectura
    Método HTTPPOST /api/v1/publishing.ideas.list
    Herramienta MCPpublishing_ideas_list
    Alcancepublishing.read
    Rol mínimoLector
    Confirmación humanaNo
    PuertasNödo, Voz, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible
    Widgetlist

    Entrada

    {
      cursor?: string  // ≤ 512 · Opaque cursor from a previous `nextCursor`.
      limit?: integer  // 1–50 · default 20
    }

    Salida

    {
      items: Array<{
        id: string  // uuid
        title: string
        text: string
        tags: string[]
        source: "person" | "agent"
        convertedPostId: string | null  // Always null: an idea is a post in status `idea`, and turning it into a post keeps its id (it then appears in `publishing.posts.list`). Kept for compatibility.
        createdAt: string
      }>
      nextCursor: string | null
    }

    publishing.mentions.suggest · Sugerir menciones

    Cuentas que la marca ya ha mencionado, etiquetado o invitado como colaboradoras, por red y ordenadas por uso y recencia. Con text, las que ese texto nombra sin su @. Solo sugiere: nunca escribe en un borrador; propón la mención y que la persona decida.

    CampoValor
    TipoLectura
    Método HTTPPOST /api/v1/publishing.mentions.suggest
    Herramienta MCPpublishing_mentions_suggest
    Alcancepublishing.read
    Rol mínimoLector
    Confirmación humanaNo
    PuertasNödo, Voz, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible

    Entrada

    {
      network?: string  // Only this network (instagram, threads, x, tiktok, bluesky, facebook_pages, linkedin, youtube).
      text?: string  // ≤ 10000 · Copy to check for names written without their @handle.
      query?: string  // ≤ 120 · Filter by the start of a handle or name.
      limit?: integer  // 1–20 · default 8
    }

    Salida

    {
      items: Array<{
        network: string  // Network key the handle belongs to (instagram, threads, x, tiktok, bluesky, facebook_pages, linkedin, youtube).
        handle: string  // Username without the @.
        name: string | null  // Public display name, when a lookup found the account.
        verified: boolean  // An official lookup found this public account recently.
        uses: integer  // -9007199254740991–9007199254740991 · Times the brand used it in posts, collaborators, tags or its imported history.
        lastUsedAt: string | null
        reason: "named_in_text" | "handle_in_text" | "used_before"  // `named_in_text`: the account's name appears in the text without its @handle; `handle_in_text`: its handle appears without the @; `used_before`: the brand mentioned, tagged or collaborated with it before.
      }>
    }

    publishing.networks.list · Redes y formatos

    Lo que es cada red en la que Nömad publica, aunque la marca no la haya conectado: sus formatos, cuántos archivos y de qué tipo admite cada uno, la proporción recomendada, el límite de texto y en qué unidad se cuenta, y su política de hashtags. Para la cuenta concreta, publishing.formats.describe.

    CampoValor
    TipoLectura
    Método HTTPPOST /api/v1/publishing.networks.list
    Herramienta MCPpublishing_networks_list
    Alcancepublishing.read
    Rol mínimoLector
    Confirmación humanaNo
    PuertasNödo, Voz, MCP, API, Chat, Pantallas, Apps
    EstadoDisponible

    Entrada

    {
      network?: string  // Only this network (instagram, facebook_pages, threads, linkedin, x, tiktok, youtube, pinterest, bluesky, google_business_profile…).
    }

    Salida

    {
      items: Array<{
        network: string
        label: string
        family: "social" | "video" | "local" | "web" | "email"
        clickableLinks: boolean
        mentions: boolean
        hashtags: {
          max: integer  // -9007199254740991–9007199254740991
          placement: "end" | "inline" | "none"
        }
        formats: Array<{
          format: "text" | "image" | "carousel" | "video" | "reel" | "story" | "document" | "poll" | "article" | "event" | "offer" | "campaign"
          media: {
            kind: "none" | "image" | "video" | "image_or_video" | "mixed" | "document"
            min: integer  // -9007199254740991–9007199254740991
            max: integer  // -9007199254740991–9007199254740991
            maxSeconds?: number
          }
          recommendedAspect: string  // Width:height to create files at, e.g. 4:5 or 9:16.
          aspectRange: array  // ≤ 2 items · Width / height the network accepts or crops to.
          textLimit: integer | null
          textUnit: "characters" | "x_weighted" | "threads_weighted" | "utf16" | "utf8_bytes" | "graphemes"
          textRequired: boolean
          titleLimit: integer | null
        }>
      }>
    }

    publishing.posts.save · Guardar una publicación

    Crea o guarda el borrador de una publicación con sus destinos. Devuelve la publicación y, como guía, lo que impediría programarla.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.posts.save
    Herramienta MCPpublishing_posts_save
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      draft: Record<string, unknown>  // The composer draft (`PublishingPostDraft`): id and expectedVersion to edit, title, baseText, tags, media and one variant per destination.
    }

    Salida

    {
      post: {
        id: string  // uuid
        version: integer  // -9007199254740991–9007199254740991
        variants: Array<{
          id: string  // uuid
          status: string
        }>
      }
      issues: Array<{
        code: string
        field: string
        severity: "error" | "warning"
      }>
      unscheduled: boolean
    }

    publishing.variants.schedule · Programar o publicar ya

    Programa los destinos de una publicación a una hora, en la cola o para publicar ya. Repetir la misma petición no vuelve a programar nada.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.variants.schedule
    Herramienta MCPpublishing_variants_schedule
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, Pantallas, Apps
    EstadoDisponible

    Entrada

    {
      schedule: Record<string, unknown>  // `PublishingScheduleInput`: postId, variantIds, expectedVersion, mode (fixed | queue | now), scheduledAt, timezone.
    }

    Salida

    {
      scheduled: boolean
      post: {
        id: string  // uuid
        version: integer  // -9007199254740991–9007199254740991
        variants: Array<{
          id: string  // uuid
          status: string
        }>
      }
      | null
      issues: Array<{
        code: string
        field: string
        severity: "error" | "warning"
      }>
    }

    publishing.reviews.request · Pedir aprobación

    Envía destinos de una publicación a aprobar según la política de la marca. Con errores no envía nada y los devuelve.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.reviews.request
    Herramienta MCPpublishing_reviews_request
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postId: string  // uuid
      variantIds: string[]  // ≤ 50 items
    }

    Salida

    {
      requested: boolean
      reviews: Record<string, unknown>[]
      issues: Array<{
        code: string
        field: string
        severity: "error" | "warning"
      }>
    }

    publishing.reviews.decide · Aprobar o rechazar una revisión

    Aprueba o rechaza una petición de revisión con un comentario. Solo los revisores de la marca; el equipo de Nömad nunca aprueba por la marca.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.reviews.decide
    Herramienta MCPpublishing_reviews_decide
    Alcancepublishing.write
    Rol mínimoLector
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      requestId: string  // uuid
      decision: "approved" | "rejected"
      comment: string  // ≤ 10000
    }

    Salida

    {
      ok: true
    }

    publishing.comments.add · Comentar una publicación

    Añade un comentario al hilo de una publicación (interno, para el cliente o nota de Nömad) y avisa a quien corresponde.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.comments.add
    Herramienta MCPpublishing_comments_add
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postId: string  // uuid
      text: string  // ≤ 10000
      visibility: "internal" | "client" | "nomad"
      mentions?: unknown[]  // ≤ 50 items · default []
      inserts?: unknown[]  // ≤ 20 items · default []
    }

    Salida

    {
      comment: Record<string, unknown>
    }

    publishing.posts.mutate · Cancelar o reintentar publicaciones

    Cancela o reintenta todos los destinos de las publicaciones elegidas. Una negativa no deshace las demás.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.posts.mutate
    Herramienta MCPpublishing_posts_mutate
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, Pantallas, Apps
    EstadoDisponible

    Entrada

    {
      postIds: string[]  // ≤ 100 items
      action: "cancel" | "retry"
    }

    Salida

    {
      results: Array<{
        variantId: string  // uuid
        ok: boolean
        error?: string
      }>
    }

    publishing.variants.mutate · Cancelar, reintentar o completar destinos

    Cancela, reintenta o marca como publicados a mano los destinos elegidos. Cada destino responde por su cuenta.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.variants.mutate
    Herramienta MCPpublishing_variants_mutate
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, Pantallas, Apps
    EstadoDisponible

    Entrada

    {
      variantIds: string[]  // ≤ 100 items
      action: "cancel" | "retry" | "manual_complete"
      permalink?: string  // ≤ 2048
    }

    Salida

    {
      results: Array<{
        variantId: string  // uuid
        ok: boolean
        error?: string
      }>
    }

    publishing.variants.mark_published · Marcar como publicado

    Registra un destino publicado a mano, con su enlace y la hora en que salió cuando se conocen.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.variants.mark_published
    Herramienta MCPpublishing_variants_mark_published
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postId: string  // uuid
      variantId: string  // uuid
      permalink?: string | null
      publishedAt?: string | null
    }

    Salida

    {
      ok: true
    }

    publishing.posts.delete · Eliminar publicaciones

    Elimina publicaciones que nunca llegaron a una red (borradores, programadas, canceladas o fallidas). Una publicación ya publicada se queda en el historial de la marca, también si se retiró de la red. Una negativa no deshace las demás.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.posts.delete
    Herramienta MCPpublishing_posts_delete
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postIds: string[]  // ≤ 100 items
    }

    Salida

    {
      results: Array<{
        postId: string  // uuid
        ok: boolean
        error?: string
        newPostId?: string  // uuid
      }>
    }

    publishing.posts.duplicate · Duplicar publicaciones

    Copia publicaciones en borradores nuevos: contenido, destinos y archivos; nunca fechas, revisiones ni entregas.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.posts.duplicate
    Herramienta MCPpublishing_posts_duplicate
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postIds: string[]  // ≤ 50 items
    }

    Salida

    {
      results: Array<{
        postId: string  // uuid
        ok: boolean
        error?: string
        newPostId?: string  // uuid
      }>
    }

    publishing.posts.start_work · Nueva publicación

    Empieza una publicación: añade el trabajo gratuito «Post» con su tarea y devuelve la ruta que abrir. Con una idea, la convierte en esa publicación.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.posts.start_work
    Herramienta MCPpublishing_posts_start_work
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      at?: string  // date-time
      tz?: string  // ≤ 64
      ideaPostId?: string  // uuid
      attemptId?: string  // uuid
    }

    Salida

    {
      href: string
    }

    publishing.planned.bind · Elegir la cuenta de una red prevista

    Asigna todos los destinos previstos de una red a una de sus cuentas conectadas. Repetirlo no cambia nada.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.planned.bind
    Herramienta MCPpublishing_planned_bind
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      network: string  // ≤ 60
      connectionId: string  // uuid
    }

    Salida

    {
      bound: integer  // -9007199254740991–9007199254740991
      scheduled: integer  // -9007199254740991–9007199254740991
      datePassed: integer  // -9007199254740991–9007199254740991
      skipped: integer  // -9007199254740991–9007199254740991
    }

    publishing.remote.delete · Eliminar de la red

    Elimina de su red un destino publicado y lo registra. Solo se registra si la red lo confirma; si falla, sigue publicado.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.remote.delete
    Herramienta MCPpublishing_remote_delete
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, Pantallas, Apps
    EstadoDisponible

    Entrada

    {
      variantId: string  // uuid
    }

    Salida

    {
      variantId: string  // uuid
      postId: string  // uuid
      outcome: "deleted" | "already_gone" | "already_deleted"
      deletedAt: string | null
    }

    publishing.media.prepare · Revisar archivos para publicar

    Lee los archivos adjuntos como los leerá la entrega y lanza la comprobación de los que no la tienen. Devuelve el estado de cada uno.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.media.prepare
    Herramienta MCPpublishing_media_prepare
    Alcancepublishing.write
    Rol mínimoLector
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      fileIds: string[]  // ≤ 50 items
      start?: boolean
      retry?: boolean
    }

    Salida

    {
      media: Record<string, unknown>[]
    }

    publishing.media.start_job · Preparar una versión de un archivo

    Lanza la comprobación de un archivo o una versión adaptada (medidas, encuadre, formato, fotogramas, peso). El original nunca se sobrescribe.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.media.start_job
    Herramienta MCPpublishing_media_start_job
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      fileId: string  // uuid
      recipe?: {
        width?: integer  // -9007199254740991–9007199254740991
        height?: integer  // -9007199254740991–9007199254740991
        fit?: "cover" | "contain"
        format?: "jpeg" | "mp4"
        fps?: integer  // -9007199254740991–9007199254740991
        maxBytes?: integer  // -9007199254740991–9007199254740991
      }
    }

    Salida

    {
      job: Record<string, unknown>
    }

    publishing.media.accept_derivative · Aceptar una versión adaptada

    Acepta la versión adaptada de un archivo para usarla al publicar. El original se queda como estaba.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.media.accept_derivative
    Herramienta MCPpublishing_media_accept_derivative
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      derivativeId: string  // uuid
    }

    Salida

    {
      media: Record<string, unknown>
    }

    publishing.settings.configure_policy · Cambiar la política de aprobación

    Guarda la política de aprobación de la marca (nadie, equipo, equipo y cliente), sus revisores y la zona horaria.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.settings.configure_policy
    Herramienta MCPpublishing_settings_configure_policy
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      policy: Record<string, unknown>  // `PublishingPolicy` as settings › Publicación edits it.
    }

    Salida

    {
      policy: Record<string, unknown>
    }

    publishing.settings.configure_queue · Cambiar la cola de una cuenta

    Guarda los huecos semanales y la zona horaria de la cola de una cuenta conectada.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.settings.configure_queue
    Herramienta MCPpublishing_settings_configure_queue
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      queue: Record<string, unknown>  // `PublishingQueue`: connectionId, timezone, slots, version, ambiguousTime.
    }

    Salida

    {
      queue: Record<string, unknown>
    }

    publishing.settings.pause · Pausar o reanudar la publicación

    Pausa o reanuda la publicación de toda la marca o de una cuenta. Mientras está en pausa nada sale.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.settings.pause
    Herramienta MCPpublishing_settings_pause
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      paused: boolean
      connectionId?: string  // uuid
    }

    Salida

    {
      policy: Record<string, unknown>
      queues: Record<string, unknown>[]
    }

    publishing.queue.reorder · Reordenar la cola

    Aplica el nuevo orden de la cola de una cuenta tal como se previsualizó. Si algo cambió desde entonces, no aplica nada.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.queue.reorder
    Herramienta MCPpublishing_queue_reorder
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      connectionId: string  // uuid
      variantIds: string[]  // ≤ 100 items
      expectedPlan: Record<string, unknown>[]  // ≤ 100 items
    }

    Salida

    {
      ok: true
    }

    publishing.external_reviews.issue_links · Crear enlaces de revisión del cliente

    Crea un enlace de revisión, válido siete días, para cada correo del cliente que aún no ha decidido.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.external_reviews.issue_links
    Herramienta MCPpublishing_external_reviews_issue_links
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      requestId: string  // uuid
    }

    Salida

    {
      links: Array<{
        email: string
        url: string
        expiresAt: string
      }>
    }

    publishing.external_reviews.revoke_link · Revocar un enlace de revisión

    Revoca el enlace de revisión de un correo del cliente en una petición de revisión.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.external_reviews.revoke_link
    Herramienta MCPpublishing_external_reviews_revoke_link
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      requestId: string  // uuid
      email: string  // email · ≤ 254
    }

    Salida

    {
      ok: true
    }

    publishing.history.rerun_import · Volver a importar el historial

    Vuelve a importar los últimos 90 días de publicaciones de una conexión de Instagram, Facebook o Threads.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.history.rerun_import
    Herramienta MCPpublishing_history_rerun_import
    Alcancepublishing.write
    Rol mínimoAdmin
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      connectionId: string  // uuid
    }

    Salida

    {
      status: "queued" | "running"
      runId: string | null
    }

    publishing.calendar.reschedule · Mover publicaciones en el calendario

    Mueve destinos de una publicación a otra hora, como el compositor. Si el cambio cuesta una aprobación, la pide otra vez.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.calendar.reschedule
    Herramienta MCPpublishing_calendar_reschedule
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      variantIds: string[]  // ≤ 50 items
      scheduledAt: string  // date-time
      timeZone: string  // ≤ 100
    }

    Salida

    {
      variants: Array<{
        variantId: string  // uuid
        status: string
        scheduledAt: string | null
      }>
      reviewRequested: boolean
      needsApproval: boolean
    }

    publishing.calendar.swap · Intercambiar dos horas

    Intercambia las horas de dos publicaciones programadas. Si un paso falla, deshace los anteriores.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.calendar.swap
    Herramienta MCPpublishing_calendar_swap
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      firstVariantId: string  // uuid
      secondVariantId: string  // uuid
    }

    Salida

    {
      variants: Array<{
        variantId: string  // uuid
        status: string
        scheduledAt: string | null
      }>
      reviewRequested: boolean
      needsApproval: boolean
    }

    publishing.calendar.duplicate · Duplicar una publicación

    Crea un borrador nuevo con el mismo texto, archivos y destinos, sin fecha, con el título que se elija.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.calendar.duplicate
    Herramienta MCPpublishing_calendar_duplicate
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postId: string  // uuid
      title: string  // ≤ 500
    }

    Salida

    {
      postId: string  // uuid
    }

    publishing.agency.accept · Aceptar una publicación de Nömad

    La marca aprueba todos los destinos que preparó Nömad; salen a su hora.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.agency.accept
    Herramienta MCPpublishing_agency_accept
    Alcancepublishing.write
    Rol mínimoLector
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postId: string  // uuid
      note?: string  // ≤ 10000 · default ""
    }

    Salida

    {
      state: string
    }

    publishing.agency.accept_with_changes · Guardar y aceptar

    La marca guarda su cambio sobre la publicación de Nömad y la aprueba en un solo paso; puede mover la hora.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.agency.accept_with_changes
    Herramienta MCPpublishing_agency_accept_with_changes
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      draft: Record<string, unknown>  // The composer draft (`PublishingPostDraft`): id and expectedVersion to edit, title, baseText, tags, media and one variant per destination.
      schedule: {
        mode: "fixed" | "now"
        scheduledAt?: string  // date-time
        timezone: string  // ≤ 100
      }
      | null
      note?: string  // ≤ 10000 · default ""
    }

    Salida

    {
      state: string
    }

    publishing.agency.request_changes · Pedir cambios a Nömad

    La marca pide cambios en una publicación de Nömad, siempre diciendo qué cambiar; la tarea de Nömad se reabre.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.agency.request_changes
    Herramienta MCPpublishing_agency_request_changes
    Alcancepublishing.write
    Rol mínimoLector
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postId: string  // uuid
      note: string  // ≤ 10000
    }

    Salida

    {
      state: string
    }

    publishing.agency.record_approval · Registrar una aprobación

    Nömad registra lo que dijo el cliente fuera de la app: quién, por qué canal y cuándo. Solo el equipo de Nömad.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.agency.record_approval
    Herramienta MCPpublishing_agency_record_approval
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postId: string  // uuid
      decision: "approved" | "rejected"
      channel: string  // ≤ 40
      approverName: string  // ≤ 200
      decidedAt: string  // date-time
      note: string  // ≤ 10000
    }

    Salida

    {
      state: string
    }

    publishing.approval_links.create · Enviar para aprobar

    Crea un enlace de aprobación de una publicación para un contacto. Por correo lo envía Nömad; por WhatsApp o para copiar se comparte.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.approval_links.create
    Herramienta MCPpublishing_approval_links_create
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postId: string  // uuid
      channel: "email" | "whatsapp" | "link"
      email?: string | null
      label?: string | null
    }

    Salida

    {
      url: string
      expiresAt: string
      emailed: boolean
    }

    publishing.approval_links.revoke · Revocar un enlace de aprobación

    Revoca un enlace de aprobación de una publicación; deja de funcionar al momento.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.approval_links.revoke
    Herramienta MCPpublishing_approval_links_revoke
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postId: string  // uuid
      linkId: string  // uuid
    }

    Salida

    {
      ok: true
    }

    publishing.writer.topics · Proponer temas con Nödo

    Nödo propone temas para una publicación desde el plan, el briefing y lo publicado. No guarda nada.

    Consume presupuesto de IA de la marca.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.writer.topics
    Herramienta MCPpublishing_writer_topics
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      taskId?: string | null
      postId?: string | null
      exclude?: string[]  // ≤ 30 items
      like?: {
        title: string  // ≤ 200
        angle: string | null
        source: string  // ≤ 40
        pillar: string | null
        date: string | null
      }
      | null
    }

    Salida

    {
      result: Record<string, unknown>
    }

    publishing.writer.compose · Escribir con Nödo

    Nödo escribe un borrador para las redes elegidas con la voz de la marca. No guarda nada: la persona elige y guarda.

    Consume presupuesto de IA de la marca.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.writer.compose
    Herramienta MCPpublishing_writer_compose
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      taskId?: string | null
      postId?: string | null
      prompt: string  // ≤ 2000
      topic?: {
        title: string  // ≤ 200
        angle: string | null
        source: string  // ≤ 40
        pillar: string | null
        date: string | null
      }
      | null
      template?: string | null
      goal?: string | null
      length: string  // ≤ 20
      cta: boolean
      source?: {
        kind: "link"
        url: string  // ≤ 2048
      }
      | {
        kind: "briefing"
      }
      | {
        kind: "text"
        text: string  // ≤ 20000
      }
      | null
      without?: string[]  // ≤ 20 items · default []
      connectionId: string | null
      targets: Array<{
        connectionId: string  // ≤ 80
        format: string  // ≤ 40
      }>  // ≤ 20 items
    }

    Salida

    {
      result: Record<string, unknown>
    }

    publishing.writer.refine · Mejorar un texto con Nödo

    Nödo reescribe un texto (más corto, otro tono, traducido…) respetando las reglas de la marca. No guarda nada.

    Consume presupuesto de IA de la marca.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.writer.refine
    Herramienta MCPpublishing_writer_refine
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      taskId?: string | null
      postId?: string | null
      text: string  // ≤ 10000
      action: string  // ≤ 40
      instruction?: string | null
      language?: string | null
      subject?: string | null
      connectionId: string | null
      targets: Array<{
        connectionId: string  // ≤ 80
        format: string  // ≤ 40
      }>  // ≤ 20 items
      hashtags: string[]  // ≤ 20 items
    }

    Salida

    {
      result: Record<string, unknown>
    }

    publishing.writer.adapt · Adaptar a cada red con Nödo

    Nödo adapta un texto a cada red elegida con sus reglas y la voz de la marca. No guarda nada.

    Consume presupuesto de IA de la marca.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.writer.adapt
    Herramienta MCPpublishing_writer_adapt
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      taskId?: string | null
      postId?: string | null
      text: string  // ≤ 10000
      targets: Array<{
        connectionId: string  // ≤ 80
        format: string  // ≤ 40
      }>  // ≤ 20 items
    }

    Salida

    {
      result: Record<string, unknown>
    }

    publishing.writer.mark_assisted · Anotar la ayuda de Nödo

    Anota en una publicación guardada que Nödo ayudó a escribirla y con qué fuentes y redes.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.writer.mark_assisted
    Herramienta MCPpublishing_writer_mark_assisted
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      postId: string  // uuid
      sources: string[]  // ≤ 20 items
      networks: string[]  // ≤ 20 items
    }

    Salida

    {
      recorded: boolean
    }

    publishing.editorial_plan.save_rhythm · Guardar el ritmo editorial

    Guarda el ritmo semanal (huecos por red y pilar) de una tarea de plan editorial, con su revisión.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.editorial_plan.save_rhythm
    Herramienta MCPpublishing_editorial_plan_save_rhythm
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      taskId: string  // uuid
      slots: unknown[]  // ≤ 42 items
      expectedRevision: integer  // 0–9007199254740991
    }

    Salida

    {
      board: Record<string, unknown>
    }

    publishing.editorial_plan.save_month · Guardar el mes editorial

    Guarda el plan del mes (ideas por fecha) de una tarea de plan editorial, con su revisión.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.editorial_plan.save_month
    Herramienta MCPpublishing_editorial_plan_save_month
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      taskId: string  // uuid
      plan: unknown
      expectedRevision: integer  // 0–9007199254740991
    }

    Salida

    {
      board: Record<string, unknown>
    }

    publishing.editorial_plan.improve · Mejorar el plan con Nödo

    Nödo sustituye el ritmo y las ideas por defecto de un plan editorial por unos propios de la marca.

    Consume presupuesto de IA de la marca.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.editorial_plan.improve
    Herramienta MCPpublishing_editorial_plan_improve
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      taskId: string  // uuid
      locale?: string  // default "es"
    }

    Salida

    {
      board: Record<string, unknown>
    }

    publishing.editorial_plan.propose_rebalance · Equilibrar el mes con Nödo

    Nödo propone un mes más equilibrado como diferencia; no se guarda nada hasta que la marca lo acepta.

    Consume presupuesto de IA de la marca.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.editorial_plan.propose_rebalance
    Herramienta MCPpublishing_editorial_plan_propose_rebalance
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      taskId: string  // uuid
      locale?: string  // default "es"
    }

    Salida

    {
      plan: Record<string, unknown>
      sources: Record<string, unknown>[]
    }

    publishing.editorial_plan.approve · Aprobar el plan editorial

    Aprueba el ritmo o el mes de un plan editorial desde su tablero. En la marca solo quien aprueba el trabajo; el equipo de Nömad aprueba por la marca.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.editorial_plan.approve
    Herramienta MCPpublishing_editorial_plan_approve
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      taskId: string  // uuid
      part: "rhythm" | "month" | "retry"
      expectedRevision: integer  // 0–9007199254740991
    }

    Salida

    {
      board: Record<string, unknown>
    }

    publishing.themes.update · Editar un tema

    Cambia los textos de un tema del banco de temas de la marca (tema, descripción, mensaje, gancho, categoría, etapa, red, formato, notas). Lo que no se envía no cambia.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.themes.update
    Herramienta MCPpublishing_themes_update
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      themeId: string  // uuid
      changes: {
        theme?: string  // ≤ 500
        description?: string | null
        key_message?: string | null
        hook_idea?: string | null
        category?: string  // ≤ 80
        target_stage?: string  // ≤ 80
        recommended_network?: string | null
        content_type?: string | null
        production_notes?: string | null
      }
    }

    Salida

    {
      ok: true
      changed: string[]
    }

    publishing.themes.delete · Eliminar un tema

    Saca un tema activo del banco de temas para todo el mundo. Se puede deshacer con publishing.themes.restore.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.themes.delete
    Herramienta MCPpublishing_themes_delete
    Alcancepublishing.write
    Rol mínimoAdmin
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      themeId: string  // uuid
    }

    Salida

    {
      ok: true
    }

    publishing.themes.restore · Recuperar un tema

    Devuelve al banco de temas un tema eliminado.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.themes.restore
    Herramienta MCPpublishing_themes_restore
    Alcancepublishing.write
    Rol mínimoAdmin
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      themeId: string  // uuid
    }

    Salida

    {
      ok: true
    }

    publishing.themes.create · Añadir un tema

    Añade a mano un tema al banco de temas de la marca. Devuelve el tema creado.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.themes.create
    Herramienta MCPpublishing_themes_create
    Alcancepublishing.write
    Rol mínimoMiembro
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      theme: string  // ≤ 500
      description?: string  // ≤ 4000
      category?: string  // ≤ 80
      target_stage?: string  // ≤ 80
      key_message?: string  // ≤ 2000
      hook_idea?: string  // ≤ 2000
    }

    Salida

    {
      theme: {
        id: string  // uuid
        theme: string
      }
    }

    publishing.themes.generate · Generar el banco de temas

    Pide a la IA un banco de temas nuevo (full) o 60 temas más sin borrar los que hay (append). Corre en segundo plano; devuelve la generación.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.themes.generate
    Herramienta MCPpublishing_themes_generate
    Alcancepublishing.write
    Rol mínimoAdmin
    Confirmación humanaSí
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      mode: "full" | "append"
    }

    Salida

    {
      generationId: string  // uuid
    }

    publishing.themes.reset_status · Desbloquear la generación de temas

    Marca como fallida la última generación del banco de temas que se quedó «generando», para poder lanzar otra.

    CampoValor
    TipoEscritura
    Método HTTPPOST /api/v1/publishing.themes.reset_status
    Herramienta MCPpublishing_themes_reset_status
    Alcancepublishing.write
    Rol mínimoAdmin
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {}

    Salida

    {
      ok: true
      reset: boolean
    }

    publishing.posts.awaiting · Publicaciones por aprobar

    Lo que Nömad preparó y espera la aprobación de la marca, más reciente primero, sin lo que espera a otra persona que aprueba.

    CampoValor
    TipoLectura
    Método HTTPPOST /api/v1/publishing.posts.awaiting
    Herramienta MCPpublishing_posts_awaiting
    Alcancepublishing.read
    Rol mínimoLector
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      limit?: integer  // 1–20 · default 4
    }

    Salida

    {
      items: Record<string, unknown>[]
      total: integer  // 0–9007199254740991
      savedTimeZone: string | null
    }

    publishing.editorial_plan.board · Ver el plan editorial

    El tablero de un paso de plan editorial: ritmo, mes, si puedes editarlo o aprobarlo y quién lo aprueba. Quien puede editar ve el primer ritmo o el mes como vista previa.

    CampoValor
    TipoLectura
    Método HTTPPOST /api/v1/publishing.editorial_plan.board
    Herramienta MCPpublishing_editorial_plan_board
    Alcancepublishing.read
    Rol mínimoLector
    Confirmación humanaNo
    PuertasAPI, MCP, Pantallas, Apps, Nödo
    EstadoDisponible

    Entrada

    {
      taskId: string  // uuid
      fallbackPillars?: string[]  // ≤ 6 items · default []
      preview?: boolean  // Staff previewing the brand as a client: edit controls are left out.
    }

    Salida

    {
      board: {
        canEdit: boolean
        canApprove: boolean
        approverNames: string[]
      }
    }

    Actualizado el 1 de enero de 1970

    AnteriorConexionesSiguienteAvisos

    En esta sección

    • Errores
    • Permisos y roles
    • Eventos y webhooks
    • Marca
    • Genoma
    • Brand Kit
    • Biblioteca
    • Trabajos
    ¿No encuentras lo que buscas? EscríbenosEscríbenosIr a la app
    © 2026 Nömad · Documentación de NömadLinkedInInstagramThreadsFacebookTikTokYouTubeX
    Ir a nomad.oooVolver arriba

    En esta página

    • publishing.posts.list · Ver publicaciones
    • publishing.posts.get · Ver una publicación
    • publishing.posts.draft · Preparar una publicación
    • publishing.posts.request_review · Pedir revisión
    • publishing.posts.schedule · Proponer hora de publicación
    • publishing.accounts.list · Cuentas para publicar
    • publishing.formats.describe · Reglas de cada formato
    • publishing.metrics.get · Métricas de publicaciones
    • publishing.ideas.create · Guardar una idea
    • publishing.ideas.list · Ver ideas
    • publishing.mentions.suggest · Sugerir menciones
    • publishing.networks.list · Redes y formatos
    • publishing.posts.save · Guardar una publicación
    • publishing.variants.schedule · Programar o publicar ya
    • publishing.reviews.request · Pedir aprobación
    • publishing.reviews.decide · Aprobar o rechazar una revisión
    • publishing.comments.add · Comentar una publicación
    • publishing.posts.mutate · Cancelar o reintentar publicaciones
    • publishing.variants.mutate · Cancelar, reintentar o completar destinos
    • publishing.variants.mark_published · Marcar como publicado
    • publishing.posts.delete · Eliminar publicaciones
    • publishing.posts.duplicate · Duplicar publicaciones
    • publishing.posts.start_work · Nueva publicación
    • publishing.planned.bind · Elegir la cuenta de una red prevista
    • publishing.remote.delete · Eliminar de la red
    • publishing.media.prepare · Revisar archivos para publicar
    • publishing.media.start_job · Preparar una versión de un archivo
    • publishing.media.accept_derivative · Aceptar una versión adaptada
    • publishing.settings.configure_policy · Cambiar la política de aprobación
    • publishing.settings.configure_queue · Cambiar la cola de una cuenta
    • publishing.settings.pause · Pausar o reanudar la publicación
    • publishing.queue.reorder · Reordenar la cola
    • publishing.external_reviews.issue_links · Crear enlaces de revisión del cliente
    • publishing.external_reviews.revoke_link · Revocar un enlace de revisión
    • publishing.history.rerun_import · Volver a importar el historial
    • publishing.calendar.reschedule · Mover publicaciones en el calendario
    • publishing.calendar.swap · Intercambiar dos horas
    • publishing.calendar.duplicate · Duplicar una publicación
    • publishing.agency.accept · Aceptar una publicación de Nömad
    • publishing.agency.accept_with_changes · Guardar y aceptar
    • publishing.agency.request_changes · Pedir cambios a Nömad
    • publishing.agency.record_approval · Registrar una aprobación
    • publishing.approval_links.create · Enviar para aprobar
    • publishing.approval_links.revoke · Revocar un enlace de aprobación
    • publishing.writer.topics · Proponer temas con Nödo
    • publishing.writer.compose · Escribir con Nödo
    • publishing.writer.refine · Mejorar un texto con Nödo
    • publishing.writer.adapt · Adaptar a cada red con Nödo
    • publishing.writer.mark_assisted · Anotar la ayuda de Nödo
    • publishing.editorial_plan.save_rhythm · Guardar el ritmo editorial
    • publishing.editorial_plan.save_month · Guardar el mes editorial
    • publishing.editorial_plan.improve · Mejorar el plan con Nödo
    • publishing.editorial_plan.propose_rebalance · Equilibrar el mes con Nödo
    • publishing.editorial_plan.approve · Aprobar el plan editorial
    • publishing.themes.update · Editar un tema
    • publishing.themes.delete · Eliminar un tema
    • publishing.themes.restore · Recuperar un tema
    • publishing.themes.create · Añadir un tema
    • publishing.themes.generate · Generar el banco de temas
    • publishing.themes.reset_status · Desbloquear la generación de temas
    • publishing.posts.awaiting · Publicaciones por aprobar
    • publishing.editorial_plan.board · Ver el plan editorial