---
name: metabase_export_card
kind: function
lang: py
domain: infra
version: "1.0.0"
purity: impure
signature: "def metabase_export_card(client: MetabaseClient, card_id: int, format: str = 'csv') -> bytes"
description: "Exporta los resultados de una card de Metabase en CSV, XLSX o JSON. Endpoint: POST /api/card/:id/query/:format."
tags: [metabase, card, export, csv, xlsx, api, python, pendiente-usar, sink]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: [httpx]
params:
  - name: client
    desc: "instancia autenticada de MetabaseClient"
  - name: card_id
    desc: "ID de la card cuyos resultados se exportan"
  - name: format
    desc: "formato de exportacion: 'csv', 'xlsx' o 'json'. Default: 'csv'"
output: "bytes con el contenido del archivo exportado listo para escribir a disco"
tested: false
tests: []
test_file_path: ""
file_path: "python/functions/metabase/cards.py"
---

## Ejemplo

```python
# Exportar a CSV
data = metabase_export_card(client, 42, format="csv")
with open("export.csv", "wb") as f:
    f.write(data)

# Exportar a Excel
data = metabase_export_card(client, 42, format="xlsx")
with open("export.xlsx", "wb") as f:
    f.write(data)

# Exportar a JSON
import json
data = metabase_export_card(client, 42, format="json")
rows = json.loads(data)
```

## Notas

Usa `client._http` directamente para acceder al objeto httpx.Client y obtener `.content` en bytes sin que el wrapper de `client.request` intente parsear la respuesta como JSON.

Para cards con queries parametrizadas, este endpoint no acepta parametros — ejecuta la query con los valores por defecto. Para pasar parametros, usar `metabase_execute_card` que devuelve JSON estructurado.
