--- name: metabase_copy_document kind: function lang: py domain: infra version: "1.0.0" purity: impure signature: "def metabase_copy_document(client: MetabaseClient, document_id: int, name: str | None = None, collection_id: int | None = None) -> dict" description: "Copia un document usando el endpoint nativo POST /api/document/:id/copy. Un solo request HTTP." tags: [metabase, document, copy, clone, api, python] uses_functions: [] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [httpx] params: - name: client desc: "instancia autenticada de MetabaseClient" - name: document_id desc: "ID del document original a copiar" - name: name desc: "nombre del nuevo document; None = Metabase asigna nombre automatico" - name: collection_id desc: "coleccion destino; None copia a la misma coleccion del original" output: "dict: document nuevo recien creado con id asignado y metadata completa" tested: false tests: [] test_file_path: "" file_path: "python/functions/metabase/documents.py" --- ## Ejemplo ```python # Copia con nombre personalizado a otra coleccion copy = metabase_copy_document(client, 42, name="Backup Q1", collection_id=5) print(copy["id"]) # ID del nuevo document # Copia a la misma coleccion con nombre automatico de Metabase copy = metabase_copy_document(client, 42) print(copy["name"]) # nombre asignado por Metabase ``` ## Notas Usa el endpoint nativo `POST /api/document/:id/copy` — un solo request HTTP. Metabase asigna el nombre automaticamente si no se especifica `name`. El contenido ProseMirror (incluyendo cardEmbeds) se copia tal cual; las cards embebidas no se duplican.