`GET /api/workflows/email-unrouted` -- list messages in Unrouted/ that belong to the caller's workspace. Workspace-admin only.
GET
/api/workflows/email-unrouted
const url = 'https://example.com/api/workflows/email-unrouted?workspace_id=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/api/workflows/email-unrouted?workspace_id=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0'Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”workspace_id
required
string format: uuid
Responses
Section titled “Responses”Media typeapplication/json
Array<object>
Wrapper item used by list_unrouted_messages: the summary + whether this
message looks like it belongs to the given workspace.
object
matches_workspace
required
true when at least one recipient encodes this workspace’s slug as
the body’s first segment (e.g. triggers+acme-...). The admin view
filters on this so cross-workspace leakage is impossible.
boolean
summary
required
A summary of one message in Unrouted/ – the row the admin UI renders.
object
from
required
From: value, verbatim.
string
received_at
required
Best-effort received-at (the Date: header verbatim, since the IMAP
INTERNALDATE differs across providers); empty when absent.
string
recipients
required
The full set of recipient header values (To, Delivered-To,
X-Original-To) so an admin can see which alias was attempted.
Array<string>
subject
required
Subject: value – empty when absent.
string
uid
required
IMAP UID inside the Unrouted/ folder.
integer format: int32
Examplegenerated
[ { "matches_workspace": true, "summary": { "from": "example", "received_at": "example", "recipients": [ "example" ], "subject": "example", "uid": 1 } }]