# Flowg8 · Read incoming email

Read the complete private message and attachment metadata as an assigned approver.

Returns sender, recipient, complete subject and plain text, textOrigin (plain or html), receivedAt, expiresAt and attachment metadata. Private no-store response. Assigned active approval group required; blocked/future tasks, administrators without assignment, requesters, service keys, other tenants and expired runs are denied. Message content is never copied to general run.data, history or webhook payloads. GET run/document APIs do not grant email access. SDK: getRunEmail(runId).

Only active signed-in members of an assigned approval or acknowledgment group with a pending or completed task can read private content. Blocked/cancelled tasks, unassigned administrators, requesters and all API keys grant no content access. Current membership is checked on every request and replay. Lists and cursors obey the same boundary. New Live executions retain evidence for three calendar months on Free or twelve on paid plans after final completion; open Live executions do not expire by age. Existing longer deadlines remain protected. Sandbox content expires after 30 days from creation.

## GET /v1/flow-runs/{runId}/email

Authentication: FLOWG8_ACCESS_TOKEN from Flowg8 sign-in
Required tenant header: X-Organization-Id.
Required user permissions: Matching approval group required. The API checks current membership, roles, key scopes and resource permissions on every request. Documentation visibility grants no access.

## Request example (replace example IDs)

```sh
curl "https://api.flowg8.io/v1/flow-runs/10000000-0000-4000-8000-000000000004/email" \
  -H "authorization: Bearer $FLOWG8_ACCESS_TOKEN" \
  -H "x-organization-id: 10000000-0000-4000-8000-000000000001"
```

Source: /docs/received-email
Full schemas: /docs/openapi.json
