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

# ¿Cómo generar un PowerPoint desde una frase por API?

> Llama a documents.create con format pptx y un prompt: recibes un .pptx 16:9 editable, con gráficos nativos y su PDF.

Para generar un PowerPoint desde una frase, llama a `documents.create` con `format: "pptx"` y la presentación
descrita en `prompt`. Recibes un `.pptx` editable en 16:9, con gráficos nativos y un tema que siguen las diapositivas
que añadas después, más su PDF.

## Pasos

1. Guarda tu API key en `DOCONDA_API_KEY` e instala el SDK (`pip install doconda` o `npm install @doconda/sdk`).
2. Describe la presentación y, si quieres, el estilo.
3. Descarga el `.pptx`.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  from pathlib import Path
  from doconda import Doconda

  doconda = Doconda()  # lee la key de DOCONDA_API_KEY
  doc = doconda.documents.create(
      format="pptx",
      prompt="Resultados del trimestre para el comité",
      style="títulos azul oscuro, fuente Lora",
      quality="best",
  )
  Path("comite.pptx").write_bytes(doconda.documents.download(doc["id"], "pptx"))
  ```

  ```ts TypeScript theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  import { writeFile } from "node:fs/promises"
  import { Doconda } from "@doconda/sdk"

  const doconda = new Doconda()
  const doc = await doconda.documents.create({
    format: "pptx",
    prompt: "Resultados del trimestre para el comité",
    style: "títulos azul oscuro, fuente Lora",
    quality: "best",
  })
  await writeFile("comite.pptx", await doconda.documents.download(doc.id, "pptx"))
  ```
</CodeGroup>

Si los datos están en tus ficheros (un Excel de ventas, un PDF), súbelos con `files.upload` y pásalos en `sources`:
Doconda los lee antes de escribir.

## Qué devuelve

* Un `.pptx` en 16:9, con textos, tablas y gráficos editables (no imágenes), y su PDF.
* `status`: `ready`, `ready_with_warnings`, `needs_review` o `failed` (no se cobra).
* Un informe (`documents.report(id)`), con avisos como `content.unsupported_fact` si aparece una cifra que no está en
  tu petición ni en tus fuentes.
* `quality`: qué nivel se usó y por qué (`requested`, `level`, `reason`).

## Límites

* Gráficos y copiar el diseño de tu plantilla necesitan `standard` o `best`. En `fast` el estilo es el básico.
* Tiempo orientativo: `standard`, unos 3 min de mediana; `best`, unos 5-10 min. Con `"stream": true` ves los eventos
  mientras se hace.
* Imágenes propias: hasta 10 en `sources` (PNG, JPEG, GIF o WebP).

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Puedo usar la plantilla de mi empresa?">
    Sí. Pasa tu presentación en `sources` y di «con el diseño de nuestra plantilla»: el resultado parte de sus
    diapositivas. Necesita `standard` o `best`.
  </Accordion>

  <Accordion title="¿Puedo cambiarla después?">
    Sí, con `operation: "edit"` y el id `doc_…`: añadir, ordenar o quitar diapositivas manteniendo el diseño.
  </Accordion>

  <Accordion title="¿Cómo no espero en la misma llamada?">
    Usa `createInBackground` (`create_in_background` en Python) y después `wait(id)`, o los
    [webhooks](/guides/webhooks).
  </Accordion>
</AccordionGroup>

## Sigue leyendo

* [Crear](/guides/create) y [SDK: crear documentos](/sdk/create).
* [Quickstart](/quickstart).


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