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

# Crear documento

> Sube un nuevo documento a una base de conocimiento de Famulor mediante la API. Añade PDFs, texto, preguntas frecuentes o datos de producto que los asistentes de voz de IA puedan consultar durante las llamadas.

<Warning>
  **API de Famulor 1.0 (legado).** Esta página se aplica únicamente a Famulor 1.0 (`app.famulor.de`) y se conserva por compatibilidad. Para la plataforma actual, usa la [referencia de la API de Famulor 2.0](/es/api-reference/introduction).
</Warning>

Este endpoint crea un nuevo documento en una base de conocimiento. Los documentos se procesan de forma asíncrona: el endpoint responde de inmediato mientras el procesamiento continúa en segundo plano.

### Parámetros de ruta

<ParamField path="knowledgebaseId" type="integer" required>
  El identificador único de la base de conocimiento
</ParamField>

### Cuerpo de la solicitud

<ParamField body="name" type="string" required>
  El nombre del documento (máx. 255 caracteres)
</ParamField>

<ParamField body="description" type="string">
  Descripción opcional del documento (máx. 255 caracteres)
</ParamField>

<ParamField body="type" type="string" required>
  Tipo de documento: `website`, `pdf`, `txt` o `docx`
</ParamField>

#### Documentos de sitio web

<ParamField body="url" type="string">
  La URL principal a rastrear. Obligatoria si no se proporciona `links`.
</ParamField>

<ParamField body="links" type="array">
  Array de URLs específicas a rastrear. Obligatorio si no se proporciona `url`.

  <Expandable title="Propiedades de los enlaces">
    <ParamField body="link" type="string" required>
      Una URL válida para incluir en el documento
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="relative_links_limit" type="integer" default="10">
  Número máximo de enlaces relativos a seguir durante el rastreo (1-50)
</ParamField>

#### Documentos de archivo (PDF, TXT, DOCX)

<ParamField body="file" type="file" required>
  El archivo a subir (máx. 20 MB). Usa la codificación `multipart/form-data`.
</ParamField>

### Campos de respuesta

<ResponseField name="message" type="string">
  Mensaje de éxito
</ResponseField>

<ResponseField name="data" type="object">
  El objeto del documento creado

  <Expandable title="Propiedades de los datos">
    <ResponseField name="id" type="integer">
      El identificador único del documento
    </ResponseField>

    <ResponseField name="name" type="string">
      El nombre del documento
    </ResponseField>

    <ResponseField name="description" type="string">
      Descripción del documento
    </ResponseField>

    <ResponseField name="type" type="string">
      Tipo de documento
    </ResponseField>

    <ResponseField name="type_label" type="string">
      Etiqueta de tipo legible para humanos
    </ResponseField>

    <ResponseField name="status" type="string">
      Estado de procesamiento (inicialmente será `processing`)
    </ResponseField>

    <ResponseField name="status_label" type="string">
      Etiqueta de estado legible para humanos
    </ResponseField>

    <ResponseField name="created_at" type="string">
      Marca de tiempo ISO 8601 de creación
    </ResponseField>
  </Expandable>
</ResponseField>

### Tipos de documento

| Tipo      | Descripción                                       | Entrada               |
| --------- | ------------------------------------------------- | --------------------- |
| `website` | Rastrea sitios web y extrae el contenido de texto | URL o lista de URLs   |
| `pdf`     | Extrae texto de archivos PDF                      | Carga de archivo PDF  |
| `txt`     | Contenido de texto sin formato                    | Carga de archivo TXT  |
| `docx`    | Extrae texto de documentos de Word                | Carga de archivo DOCX |

<Note>
  El procesamiento de documentos es asíncrono. Llama al endpoint [Obtener documento](/es/api-v1/knowledgebases/get-document) para comprobar cuándo finaliza el procesamiento.
</Note>

<ResponseExample>
  ```json 201 Website Document Created theme={null}
  {
    "message": "Document created successfully. Processing will begin shortly.",
    "data": {
      "id": 1,
      "name": "Company Website",
      "description": "Main website content",
      "type": "website",
      "type_label": "Website",
      "status": "processing",
      "status_label": "Processing",
      "created_at": "2025-01-08T10:30:00.000000Z"
    }
  }
  ```

  ```json 201 PDF Document Created theme={null}
  {
    "message": "Document created successfully. Processing will begin shortly.",
    "data": {
      "id": 2,
      "name": "Product Handbook",
      "description": "User manual for our product",
      "type": "pdf",
      "type_label": "PDF",
      "status": "processing",
      "status_label": "Processing",
      "created_at": "2025-01-08T10:35:00.000000Z"
    }
  }
  ```

  ```json 404 Knowledgebase Not Found theme={null}
  {
    "error": "Knowledgebase not found."
  }
  ```

  ```json 422 Validation Error theme={null}
  {
    "message": "A file is required for this document type.",
    "errors": {
      "file": [
        "A file is required for this document type."
      ]
    }
  }
  ```

  ```json 500 Processing Error theme={null}
  {
    "error": "Failed to create document. Please try again."
  }
  ```
</ResponseExample>
