> ## 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 editar un Word con IA sin romper su formato?

> Pide el cambio en una frase con operation edit: Doconda cambia solo lo que pides, lo nuevo copia el formato y el resto queda idéntico.

Para editar un Word con IA sin romper su formato, súbelo y pide el cambio en una frase con `operation: "edit"`.
Doconda cambia solo lo que pides y deja el resto idéntico; lo nuevo copia el formato del documento, así una cláusula
añadida sigue la numeración y el aspecto de las que ya hay.

## Pasos

1. Guarda tu API key en `DOCONDA_API_KEY` e instala el SDK (`pip install doconda` o `npm install @doconda/sdk`).
2. Sube el Word con `files.upload` (o usa el id `doc_…` de un documento que ya hizo Doconda).
3. Pide los cambios, mira el informe y descarga el resultado.

<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
  file = doconda.files.upload("contrato.docx")
  edited = doconda.documents.create(
      operation="edit",
      file=file["id"],
      prompt="Títulos en azul y añade una cláusula de confidencialidad",
  )
  edits = doconda.documents.report(edited["id"])["edits"]
  # cada cambio, con el texto de antes y el de después
  Path("contrato-editado.docx").write_bytes(doconda.documents.download(edited["id"], "docx"))
  ```

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

  const doconda = new Doconda()
  const file = await doconda.files.upload(await readFile("contrato.docx"), "contrato.docx")
  const edited = await doconda.documents.create({
    operation: "edit",
    file: file.id,
    prompt: "Títulos en azul y añade una cláusula de confidencialidad",
  })
  const { edits } = await doconda.documents.report(edited.id)
  // cada cambio, con el texto de antes y el de después
  await writeFile("contrato-editado.docx", await doconda.documents.download(edited.id, "docx"))
  ```
</CodeGroup>

## Qué devuelve

* El mismo Word, con solo los cambios pedidos, y su PDF.
* Un informe: en `edits`, cada cambio con el texto de antes y el de después. Lo que no se pudo hacer aparece como
  `rejected`, con el motivo.
* El resultado se revisa como en [Revisar](/guides/review) (tablas que se salen, numeración con saltos…).
* `status`: `ready`, `ready_with_warnings`, `needs_review` o `failed`. Si la petición no se puede convertir en
  cambios, `failed` con `edit_not_understood`, sin cobrar.

## Límites

* Máximo 50 páginas.
* Control de cambios y comentarios necesitan `quality: "standard"` o `"best"`.
* Acepta `.doc`: el resultado sale en `.docx`.

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Por qué no pedirle al modelo que reescriba el documento?">
    Porque reescribirlo entero suele perder estilos, numeración y tablas. Con `edit` el resto del documento queda
    idéntico y lo nuevo sigue su formato.
  </Accordion>

  <Accordion title="¿Funciona con PowerPoint, Excel y PDF?">
    Sí, con la misma llamada. En un PDF, si pides más que cambiar texto, sale como Word (`pdf.converted`).
  </Accordion>

  <Accordion title="¿Y si alguien corrige el Word a mano después?">
    Guárdalo como versión nueva con `POST /documents/{id}/versions`: no usa IA y no se cobra. Ver
    [Editar](/guides/edit#guardar-una-versión-editada-a-mano).
  </Accordion>
</AccordionGroup>

## Sigue leyendo

* [Editar](/guides/edit) y [SDK: revisar y editar](/sdk/review-edit).
* [Quickstart](/quickstart).


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