> ## 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.

# Crear un token de edición en tiempo real

> Un token para una sala, con el que el editor edita en tiempo real en el servidor de Doconda.



## OpenAPI

````yaml /es/openapi.json post /editor/collab/token
openapi: 3.1.0
info:
  title: API de Doconda
  version: 0.1.0
  license:
    name: Proprietary
    url: https://doconda.com/terms
  description: >-
    Convierte, crea y edita documentos de Word, PowerPoint, Excel y PDF para
    agentes de IA. `POST /documents` espera al documento (modo directo, por
    defecto) o responde al momento con `background: true`.

    Los errores siguen el RFC 9457 (application/problem+json). `POST /documents`
    acepta `Idempotency-Key`.
servers:
  - url: https://api.eu.doconda.com/v1
security:
  - apiKey: []
tags:
  - name: Documents
    description: Crea y edita documentos.
  - name: Files
    description: 'Tus propios archivos: conviértelos, o úsalos como fuente o para editarlos.'
  - name: Webhooks
    description: Recibe un aviso cuando un documento está listo.
  - name: Editor
    description: Llamadas que hace tu backend para el plugin de editor.
paths:
  /editor/collab/token:
    post:
      tags:
        - Editor
      summary: >-
        Un token para editar en tiempo real en el servidor de Doconda: lo pide
        tu backend y el editor se conecta con él (`collab.token`)
      operationId: createEditorCollabToken
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                room:
                  type: string
                  minLength: 1
                  maxLength: 200
                  pattern: ^[\w.:-]+$
                  description: >-
                    Tu ID del documento: todos los que tengan un token de la
                    misma sala lo editan juntos.
              required:
                - room
              additionalProperties: false
      responses:
        '200':
          description: Token firmado para esa sala.
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                    description: >-
                      Dáselo al editor (`collab.token`). Solo le deja entrar en
                      esta sala, desde uno de los dominios de la licencia,
                      durante 10 minutos; una conexión ya abierta sigue abierta.
                  expires_at:
                    type: string
                    format: date-time
                    pattern: >-
                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                required:
                  - token
                  - expires_at
        '401':
          description: >-
            unauthorized (falta la key, no existe o está revocada; la sesión ha
            caducado).
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  code:
                    type: string
                    description: >-
                      Código estable para máquinas, por ejemplo input_invalid,
                      insufficient_balance.
                  request_id:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                      required:
                        - path
                        - message
                required:
                  - type
                  - title
                  - status
                  - code
                  - request_id
        '403':
          description: >-
            editor_unlicensed: la organización no tiene una licencia del editor
            activa.
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  code:
                    type: string
                    description: >-
                      Código estable para máquinas, por ejemplo input_invalid,
                      insufficient_balance.
                  request_id:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                      required:
                        - path
                        - message
                required:
                  - type
                  - title
                  - status
                  - code
                  - request_id
        '501':
          description: editor_not_configured
          content:
            application/problem+json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                  title:
                    type: string
                  status:
                    type: integer
                    minimum: -9007199254740991
                    maximum: 9007199254740991
                  code:
                    type: string
                    description: >-
                      Código estable para máquinas, por ejemplo input_invalid,
                      insufficient_balance.
                  request_id:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                      required:
                        - path
                        - message
                required:
                  - type
                  - title
                  - status
                  - code
                  - request_id
      security:
        - apiKey: []
        - session: []
components:
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: '`Authorization: Bearer ak_eu_…`, con una key del panel (API keys).'
    session:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Solo para el panel: el token de ID de Cognito del usuario que ha
        iniciado sesión.

````

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