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

# Exportación masiva de entidades por correo

> Encola un job asíncrono que exporta entidades filtradas a CSV, XLSX o JSON y envía el archivo resultante por correo electrónico al destinatario.

## Resumen

Exporta entidades según los **mismos filtros que `GET /entities`**, genera un archivo (`csv`, `xlsx` o `json`) y lo entrega por correo. La respuesta es **202** con `jobId`; consultá el estado con `GET /entities/export/jobs/{jobId}`.

## Endpoint

```
POST http://api.gu1.ai/entities/export/jobs
```

## Autenticación, permisos y marketplace

Igual que [Informe PDF por correo](/es/api-reference/entities/report-export-email): `Authorization`, `X-Organization-ID`, permiso **`entities:export`**, integración **`global_sender_email`** activa, cobro **por destinatario** en `recipientEmails`.

## Dominio y remitente

Misma semántica que el PDF por correo:

* **`fromEmail`**: dominio **verificado** en la org; no hace falta fila en Remitentes.
* **`fromSenderId`**: UUID en `organization_email_senders`.
* No enviar ambos a la vez.

## Cuerpo JSON

<ParamField body="recipientEmails" type="string[]" required>
  Destinatarios del correo (máx. **26** deduplicados). Solo estas direcciones; no se fusiona el email del usuario de la API.
</ParamField>

<ParamField body="format" type="string" required>
  `csv`, `xlsx` o `json`.
</ParamField>

<ParamField body="filters" type="object">
  Filtros con la misma forma que el query de `GET /entities` (búsqueda, fechas, tipo, etc.). Por defecto `{}`.
</ParamField>

<ParamField body="emailLocale" type="string">
  `en`, `es` o `pt` para el correo de finalización.
</ParamField>

<ParamField body="columns" type="string[]">
  Columnas snake\_case del layout de exportación; omitir o `[]` = todas las columnas permitidas.
</ParamField>

<ParamField body="fromSenderId" type="string (uuid)">
  Remitente por UUID. Excluyente con `fromEmail`.
</ParamField>

<ParamField body="fromEmail" type="string">
  Remitente por dirección en dominio verificado. Excluyente con `fromSenderId`.
</ParamField>

### Ejemplo

```json theme={null}
{
  "recipientEmails": ["analista@ejemplo.com"],
  "format": "xlsx",
  "emailLocale": "es",
  "fromEmail": "exportaciones@tu-dominio.com",
  "filters": {
    "search": "",
    "type": "person"
  }
}
```

## Respuesta 202

```json theme={null}
{
  "jobId": "uuid-del-job",
  "message": "…"
}
```

## Seguimiento del job

* `GET /entities/export/jobs/{jobId}` — estado (`queued`, `running`, `completed`, `failed`).
* `GET /entities/export/jobs/{jobId}/download` — metadatos de descarga cuando aplica.
* El correo puede incluir enlace firmado al archivo (según configuración S3 del servidor).

## Errores 400

Mismos códigos de pre-flight que [report-export-email](/es/api-reference/entities/report-export-email) (`NO_RECIPIENTS`, `DOMAIN_NOT_VERIFIED`, `INSUFFICIENT_BALANCE`, etc.).

## Relacionado

* [Informe PDF de una entidad por correo](/es/api-reference/entities/report-export-email) — `POST /entities/{id}/report-export/email`.
