Project send logs

Logs belong to a project. /members/send-log/search requires mail.log.search; /members/send-log/view separately requires mail.log.view. Both routes use POST JSON with the same Bearer credential and workspace selection as the send operation. A service role does not grant access to every project's records.

Send /members/send-log/search:

{"project_id":"<project-uuid>","status":"queued","limit":20}
Field Type Required/default
project_id UUID string Required for normal callers; configured app default follows the sending rule.
status string Optional exact value: queued, sent, or failed.
recipient_email string Optional exact-match recipient filter; trimmed, at most 320 bytes.
limit integer Defaults to 20; maximum 100. Values below 1 reset to the default.
cursor string Optional opaque cursor returned by the prior page.
offset integer Optional nonnegative offset.
page_number integer Optional page number starting at 1.

An empty string for either filter omits that filter. A whitespace-only recipient filter is invalid. Prefer one pagination selector; when more than one is present, precedence is cursor, then offset, then page_number. Use the same filters and limit while paging. Offset-based pages can change as new attempts arrive.

The response envelope's data contains project_id, items, limit, total_count, next_offset, page_number, page_total, and next_cursor. Records sort newest first by creation time and ID. Pass the returned next_cursor unchanged for the next page; null ends the search. next_offset is returned even beyond the final page, so it is not an end-of-results signal. Empty searches return items: [] and page_total: 0.

Search items contain id, owner, project_id, source, transport, sender_email, recipient_email, subject, status, provider, error_code, error_message, created, and modified. Search results omit message bodies, display names, Reply-To, and metadata. owner is the effective principal recorded for the attempt; project authority governs current access. Statuses describe stored attempt state, not an assured recipient-delivery receipt.

View a message record

Send /members/send-log/view:

{"project_id":"<project-uuid>","id":"<send-log-uuid>"}

id is the log-record UUID returned by sending or search. The response data is { "project_id": "<project-uuid>", "item": { ... } }. The detailed record also includes sender and recipient names, reply_to_email, body_text, body_html, provider_message_id, and metadata when available. Treat these as message content with the same privacy requirements as the original email. A message ID is separate from the log-record ID.

The same optional status and recipient_email filters can constrain view. A record absent from the selected project or not matching those filters returns 404. Sending owner, owner_scope, organization_id, or client_id as identity overrides returns 400. Keep project and organization selection explicit rather than constructing owner filters.

Return to Mailbox.