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

# Jobs de exportação de relatórios

> Liste e baixe arquivos async gerados a partir de Relatórios, presets ou da ação Gerar relatório.

## Overview

Cada **Gerar** em Relatórios, um preset ou a ação de automation **Gerar relatório** (`send_report`) enfileira um job de exportação e grava o arquivo em object storage. Use estes endpoints para listar **Downloads** e baixar de novo com sessão autenticada (não é um link público permanente).

| Method | Path                                          | Use                                                                     |
| ------ | --------------------------------------------- | ----------------------------------------------------------------------- |
| `GET`  | `/report-export-jobs`                         | Listar jobs de relatórios (filtro `presetId`, `templateCode`, `status`) |
| `GET`  | `/report-export-jobs/{kind}/{jobId}/download` | Download autenticado                                                    |

`kind` é um de: `entities`, `transactions`, `investigations`, `alerts`, `documents` (ficha da entidade em PDF e relatórios de métricas).

A retenção do arquivo é informada por job em `fileExpiresAt`. O valor `null`
significa que o arquivo não expira. Novas exportações de entidades e transações usam
`null`; os demais tipos mantêm o período de retenção configurado. Esse campo é
independente de `linkExpiresAt`, que indica apenas quando expira o link assinado
enviado por e-mail.

## Authentication and tenant

<ParamField header="Authorization" type="string" required>
  `Bearer YOUR_API_KEY` — ver [Authentication](/pt/api-reference/authentication).
</ParamField>

<ParamField header="X-Organization-ID" type="string" required>
  UUID da organização production ou sandbox — ver [Environments](/pt/api-reference/environments).
</ParamField>

## Permissions

| Endpoint       | Granular permission |
| -------------- | ------------------- |
| `GET` list     | `reports:read`      |
| `GET` download | `reports:export`    |

## List jobs

```
GET http://api.gu1.ai/report-export-jobs
```

<ParamField query="presetId" type="string">
  UUID opcional — apenas jobs desse [preset de relatório](/pt/api-reference/entities/report-presets).
</ParamField>

<ParamField query="templateCode" type="string">
  Código de template opcional (por exemplo `alerts_by_rules`).
</ParamField>

<ParamField query="status" type="string">
  Status opcional (`queued`, `running`, `completed`, `completed_email_failed`, `failed`).
</ParamField>

<ParamField query="limit" type="integer">
  Tamanho da página (1–100, default 50).
</ParamField>

<ParamField query="offset" type="integer">
  Offset de paginação (default 0).
</ParamField>

### Response

```json theme={null}
{
  "success": true,
  "jobs": [
    {
      "id": "…",
      "kind": "alerts",
      "status": "completed",
      "outputFilename": "alerts-by-rules-2026-08-06.xlsx",
      "fileExpiresAt": "2026-08-07T12:00:00.000Z",
      "linkExpiresAt": "2026-08-07T12:00:00.000Z",
      "downloadAvailable": true,
      "reportSource": "preset",
      "reportPresetId": "…",
      "reportTemplateCode": "alerts_by_rules",
      "createdAt": "2026-08-06T12:00:00.000Z"
    }
  ],
  "total": 1,
  "limit": 50,
  "offset": 0
}
```

## Download a job file

```
GET http://api.gu1.ai/report-export-jobs/{kind}/{jobId}/download
```

Retorna o binário com `Content-Disposition: attachment`. Códigos:

| Status | Meaning                      |
| ------ | ---------------------------- |
| `200`  | Corpo do arquivo             |
| `404`  | Job não encontrado no tenant |
| `409`  | Job ainda não pronto         |
| `410`  | Arquivo removido             |

Ver também [Templates de relatórios](/pt/api-reference/entities/report-templates) e [Presets de relatórios](/pt/api-reference/entities/report-presets).
