> ## Documentation Index
> Fetch the complete documentation index at: https://docs.athenahq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtener detalle del contenido

> Obtiene todos los detalles de un contenido monitorizado, incluido su texto: plan de contenido (`brief`) y cuerpo de artículo o página (`body`). `body` contiene borradores generados, reescrituras de optimize, artículos de snipe, texto redactado y cuerpos extraídos de páginas monitorizadas.

Úsalo tras listar contenido (`POST /api/v1/content`) para leer un `content_id` o consultar `status` durante la generación; `generated_brief` indica que el plan está listo y aún se redacta el artículo. También disponible como herramienta MCP `get_content_detail`.

Las páginas aún sin extraer devuelven campos de texto `null`. Un `content_id` desconocido u oculto devuelve 404.



## OpenAPI

````yaml es/api-reference/openapi.json get /api/v1/content/{content_id}
openapi: 3.1.0
info:
  title: API de AthenaHQ
  description: >-
    La API de AthenaHQ ofrece acceso programático para gestionar tus sitios web
    y consultas para optimizar el contenido con IA.
  version: 1.0.0
  contact:
    email: support@athenahq.ai
servers:
  - url: https://api.athenahq.ai
    description: Servidor de producción
security:
  - apiKey: []
tags:
  - name: Basics
    description: Operaciones principales de la API para gestionar sitios web y consultas
  - name: Metrics
    description: Endpoints de métricas y análisis para monitorizar la visibilidad en IA
  - name: Billing
    description: Endpoints de facturación y créditos para gestionar el uso
  - name: Team Management
    description: Endpoints para gestionar miembros del equipo e invitaciones
  - name: Groups
    description: Endpoints para gestionar grupos de sitios web
  - name: Content
    description: >-
      Endpoints para acceder a los datos del centro de contenidos: pestañas, URL
      monitorizadas y desglose de consultas por URL.
  - name: Pitch Workspace
    description: >-
      Endpoints para acceder a los informes del espacio de propuestas:
      ejecuciones de propuestas con alcance de organización, con competidores,
      consultas, atributos y métricas agregadas.
  - name: Knowledge Base
    description: >-
      Endpoints para leer la base de conocimientos de la marca: datos aprobados
      sobre la marca y los pilares que los organizan.
paths:
  /api/v1/content/{content_id}:
    get:
      tags:
        - Content
      summary: Obtener detalle del contenido
      description: >-
        Obtiene todos los detalles de un contenido monitorizado, incluido su
        texto: plan de contenido (`brief`) y cuerpo de artículo o página
        (`body`). `body` contiene borradores generados, reescrituras de
        optimize, artículos de snipe, texto redactado y cuerpos extraídos de
        páginas monitorizadas.


        Úsalo tras listar contenido (`POST /api/v1/content`) para leer un
        `content_id` o consultar `status` durante la generación;
        `generated_brief` indica que el plan está listo y aún se redacta el
        artículo. También disponible como herramienta MCP `get_content_detail`.


        Las páginas aún sin extraer devuelven campos de texto `null`. Un
        `content_id` desconocido u oculto devuelve 404.
      operationId: getContentDetail
      parameters:
        - name: content_id
          in: path
          description: UUID del elemento de contenido que se consultará.
          required: true
          schema:
            type: string
            format: uuid
        - name: website_id
          in: query
          description: Sitio web al que pertenece el elemento de contenido.
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Respuesta correcta con todos los detalles del elemento de contenido.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentDetailResponse'
              example:
                content_id: 11111111-2222-3333-4444-555555555555
                title: Best CRMs for early-stage startups
                url: https://example.com/blog/best-crms
                normalized_url: example.com/blog/best-crms
                type: draft
                sheet_id: 22222222-3333-4444-5555-666666666666
                status: generated
                brief: |-
                  ## Brief

                  Target the comparison angle for early-stage buyers…
                body: |-
                  # Best CRMs for early-stage startups

                  Choosing a CRM before product-market fit…
                meta_description: A practical comparison of CRMs for early-stage startups.
                cited_urls:
                  - https://example.org/2026-crm-report
                internal_links:
                  - https://example.com/blog/crm-migration
                brief_cited_urls:
                  - https://example.org/2026-crm-report
                brief_internal_links:
                  - https://example.com/blog/crm-migration
                optimize_summary: null
                linkedin_post: null
                x_post: null
                facebook_post: null
                instagram_post: null
                reddit_post: null
                topic_name: CRM
                prompts:
                  - id: 77777777-8888-9999-aaaa-bbbbbbbbbbbb
                    prompt: best CRM for early-stage startups
                    topic_name: CRM
                    status: active
                prompts_total: 1
                mark_as_done_time: null
                created_at: '2026-06-01T12:00:00.000Z'
                updated_at: '2026-06-02T08:30:00.000Z'
        '400':
          description: 'Solicitud incorrecta: parámetros no válidos.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                missing_website_id:
                  value:
                    error: website_id is required
                invalid_content_id:
                  value:
                    error: content_id must be a uuid
        '401':
          description: 'Sin autorización: falta la clave de API o no es válida.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: 'Acceso denegado: no tienes acceso a este sitio web.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Unauthorized access to this website
        '404':
          description: No se ha encontrado contenido para este sitio web.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: Content not found
        '500':
          description: Error interno del servidor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKey: []
components:
  schemas:
    ContentDetailResponse:
      type: object
      required:
        - content_id
        - title
        - url
        - normalized_url
        - type
        - sheet_id
        - status
        - brief
        - body
        - meta_description
        - cited_urls
        - internal_links
        - brief_cited_urls
        - brief_internal_links
        - optimize_summary
        - linkedin_post
        - x_post
        - facebook_post
        - instagram_post
        - reddit_post
        - topic_name
        - prompts
        - prompts_total
        - mark_as_done_time
        - created_at
        - updated_at
      properties:
        content_id:
          type: string
          format: uuid
          description: ID del elemento de contenido.
        title:
          type: string
          nullable: true
          description: Título del contenido.
        url:
          type: string
          nullable: true
          description: URL visible del contenido.
        normalized_url:
          type: string
          nullable: true
          description: 'URL normalizada: el valor que se cruza con los datos de citas.'
        type:
          type: string
          nullable: true
          description: >-
            Cómo ha llegado el contenido al centro: `draft` (artículo escrito
            por Athena), `optimize` (reescritura de una página), `snipe`,
            `slice`, `manual` (redactado en el editor), `external` (añadido
            manualmente), `imported` (mediante GA4).
          example: draft
        sheet_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            Hoja del centro de contenidos a la que pertenece el elemento.
            Consulta `GET /api/v1/content/sheets`.
        status:
          type: string
          nullable: true
          enum:
            - done
            - generated
            - failed
            - pending
            - generated_brief
            - pending_brief
            - pending_article
            - scheduled
          description: >-
            Estado del ciclo de generación.
            `pending`/`pending_brief`/`pending_article`: trabajo en curso;
            `generated_brief`: plan listo y artículo aún en redacción;
            `generated`: texto listo; `done`: publicado o marcado como
            terminado; `scheduled`: publicación programada. `null` si aún no hay
            registro de generación (p. ej., una página monitorizada aún sin
            extraer).
        brief:
          type: string
          nullable: true
          description: >-
            Plan de contenido en Markdown. Disponible cuando `status` alcanza
            `generated_brief`.
        body:
          type: string
          nullable: true
          description: >-
            Cuerpo del artículo o página en Markdown. Contiene el borrador
            generado, la reescritura de optimize, el artículo de snipe, el texto
            redactado o el cuerpo extraído de una página monitorizada, según
            `type`.
        meta_description:
          type: string
          nullable: true
          description: Metadescripción generada.
        cited_urls:
          type: array
          items:
            type: string
          nullable: true
          description: >-
            URL de fuentes externas citadas en el cuerpo. No debe confundirse
            con `citations` de `POST /api/v1/content`, que es el número de
            respuestas de IA que citan esta URL.
        internal_links:
          type: array
          items:
            type: string
          nullable: true
          description: URLs internas enlazadas desde el cuerpo.
        brief_cited_urls:
          type: array
          items:
            type: string
          nullable: true
          description: >-
            URLs de fuentes externas a las que hace referencia el plan de
            contenido.
        brief_internal_links:
          type: array
          items:
            type: string
          nullable: true
          description: URLs internas sugeridas por el plan de contenido.
        optimize_summary:
          type: object
          nullable: true
          description: >-
            Para elementos `optimize`: resumen de los cambios de la reescritura.
            `null` para otros tipos o si no se ha completado ninguna
            reescritura.
          required:
            - overview
            - changes
          properties:
            overview:
              type: string
              description: Resumen de la reescritura en un párrafo.
            changes:
              type: array
              description: Cambios individuales realizados en la reescritura.
              items:
                type: object
                required:
                  - description
                properties:
                  description:
                    type: string
        linkedin_post:
          type: string
          nullable: true
          description: >-
            Última publicación de LinkedIn terminada y generada para este
            contenido; para contenido antiguo utiliza como alternativa los
            valores guardados anteriormente.
        x_post:
          type: string
          nullable: true
          description: >-
            Última publicación de X terminada y generada para este contenido;
            para contenido antiguo utiliza como alternativa los valores
            guardados anteriormente.
        facebook_post:
          type: string
          nullable: true
          description: >-
            Última publicación de Facebook terminada y generada para este
            contenido; para contenido antiguo utiliza como alternativa los
            valores guardados anteriormente.
        instagram_post:
          type: string
          nullable: true
          description: >-
            Última publicación de Instagram terminada y generada para este
            contenido; para contenido antiguo utiliza como alternativa los
            valores guardados anteriormente.
        reddit_post:
          type: string
          nullable: true
          description: >-
            Última publicación de Reddit terminada y generada para este
            contenido; para contenido antiguo utiliza como alternativa los
            valores guardados anteriormente.
        topic_name:
          type: string
          nullable: true
          description: Nombre del tema al que se dirige el contenido, si se ha asignado.
        prompts:
          type: array
          description: >-
            Consultas a las que se dirige este contenido, con las asociaciones
            más antiguas primero y un máximo de 100 entradas. Si `prompts_total`
            supera 100, el resto no se puede recuperar actualmente. Vacío si no
            tiene consultas objetivo, algo habitual en páginas importadas o
            externas. No son las consultas que citan la página; para ellas,
            consulta POST /api/v1/content/prompts.
          items:
            type: object
            required:
              - id
              - prompt
              - topic_name
              - status
            properties:
              id:
                type: string
                format: uuid
                description: >-
                  ID de la consulta. Se puede resolver mediante GET
                  /api/v1/prompts salvo que la consulta esté eliminada, ya que
                  ese endpoint no la lista.
              prompt:
                type: string
                description: Texto de la consulta.
              topic_name:
                type: string
                nullable: true
                description: >-
                  Nombre del tema al que pertenece la consulta, si se ha
                  asignado.
              status:
                type: string
                enum:
                  - active
                  - paused
                  - deleted
                description: >-
                  Estado actual de la consulta. Las eliminadas siguen
                  apareciendo porque la página se escribió para ellas y el
                  centro de contenidos aún las muestra, pero ya no se
                  monitorizan y GET /api/v1/prompts las omite.
        prompts_total:
          type: integer
          description: >-
            Número total de consultas a las que se dirige este contenido, antes
            de aplicar el límite de 100 entradas a prompts.
        mark_as_done_time:
          type: string
          format: date-time
          nullable: true
          description: Cuándo se marcó el elemento como terminado o publicado.
        created_at:
          type: string
          format: date-time
          description: Cuándo se creó el elemento de contenido.
        updated_at:
          type: string
          format: date-time
          description: >-
            Último cambio del elemento de contenido o de su texto generado (la
            más reciente de las marcas de tiempo de la fila y de generación).
    Error:
      type: object
      description: Objeto de respuesta de error
      required:
        - error
      properties:
        error:
          type: string
          description: Mensaje de error que describe qué ha fallado
          example: Unauthorized
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Clave de API para autenticarse. Puedes crear una
        [aquí](https://app.athenahq.ai/organization?tab=api).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.