---
title: "Fetch full outreach detail with emails, replies, and timeline"
method: GET
path: "/credentialing-outreaches/{id}/details"
tags: ["Credentialing Outreach Resource"]
---

# Fetch full outreach detail with emails, replies, and timeline

`GET /credentialing-outreaches/{id}/details`

Returns the complete detail view of a single outreach record, including the full email thread, replies, attachments, and a chronological timeline. Use this when you need to render the outreach history in full - email bodies, recipient statuses, reply chains, or the activity timeline; for a lightweight status check without email content, use GET /credentialing-outreaches/{id} instead. The id is the outreach record ID returned in the 201 body of POST /credentialing-outreaches, or from GET /credentialing-outreaches/workflow/{workflowId}. This endpoint is read-only and has no side effects.

## Path parameters

- `id` string, required

## Headers

- `tenant-id` string, required

## Response `200`

An OutreachDetailResponse containing the outreach's emails (each with direction, deliveryStatus, replies, and attachments - each attachment has an id usable with GET /credentialing-outreaches/attachments/{attachmentId}/download) and a chronological timeline (each entry has a type of "outreach" or "email", and a status).

- OutreachDetailResponse — Response containing outreach details including emails, replies, and timeline
  - `id` string — Outreach record ID
  - `tenantId` string — Tenant that owns this outreach record
  - `workflowId` string — Credentialing workflow (practitioner or facility) this outreach was sent for
  - `outreachType` 'PRACTITIONER_CREDENTIALING' | 'FACILITY_CREDENTIALING' | 'PRACTITIONER_MONITORING' — Outreach category this record was created for
  - `reasons` OutreachReasonWithLabel[] — List of outreach reasons with IDs and labels. Note: This field changed from List<String> to List<OutreachReasonWithLabel> to provide enriched reason information with labels.
    - `id` string — Unique identifier for the outreach reason
    - `label` string — Display label for the outreach reason
  - `active` boolean — Whether this outreach is still open/awaiting a response
  - `attemptsCount` integer — Number of outreach emails sent for this record
  - `lastAttemptedAt` string, date-time
  - `workflowStatus` string — Status of the referenced credentialing workflow at the time of this response
  - `createdBy` string — User ID that created this outreach record
  - `createdByName` string — Display name of the user that created this outreach record
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `emails` EmailWithReplies[] — Full email thread for this outreach, each with its replies and attachments
    - `id` string — Email record ID
    - `subject` string — Email subject line
    - `body` string — Email body content
    - `fromAddress` string[] — Sender email address(es)
    - `toAddresses` string[] — Recipient email addresses
    - `ccAddresses` string[] — CC email addresses
    - `bccAddresses` string[] — BCC email addresses
    - `direction` 'INBOUND' | 'OUTBOUND' — Whether this email was sent by CertifyOS or received from a recipient
    - `deliveryStatus` 'processed' | 'deferred' | 'delivered' — Latest SendGrid delivery status for this email
    - `engagementData` string — Raw engagement event data reported by SendGrid for this email
    - `dispatched` boolean — Whether this email was successfully dispatched via SendGrid
    - `sendgridId` string — SendGrid message ID for this email, null if it was never dispatched
    - `statusCode` integer — HTTP status code returned by SendGrid for this email's send attempt
    - `submitterEmail` string
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `replies` EmailReply[] — Replies received to this email
      - `id` string — Reply record ID
      - `subject` string — Reply subject line
      - `body` string — Reply body content
      - `fromAddress` string[] — Sender email address(es) of the reply
      - `toAddresses` string[] — Recipient email addresses of the reply
      - `ccAddresses` string[] — CC email addresses of the reply
      - `direction` 'INBOUND' | 'OUTBOUND' — Whether this reply was sent by CertifyOS or received from a recipient
      - `deliveryStatus` string — Delivery status for this reply, when applicable
      - `submitterEmail` string
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
      - `attachments` Attachment[] — Files attached to this reply; each id is usable with the attachment download endpoint
        - `id` string — Attachment ID, usable with GET /{outreach-resource}/attachments/{attachmentId}/download
        - `name` string — Original file name of the attachment
        - `type` string — MIME type of the attachment
        - `size` integer — File size in bytes
        - `reasonId` string — Outreach reason this attachment answers (provider portal submissions only)
    - `attachments` Attachment[] — Files attached to this email; each id is usable with the attachment download endpoint
      - `id` string — Attachment ID, usable with GET /{outreach-resource}/attachments/{attachmentId}/download
      - `name` string — Original file name of the attachment
      - `type` string — MIME type of the attachment
      - `size` integer — File size in bytes
      - `reasonId` string — Outreach reason this attachment answers (provider portal submissions only)
  - `timeline` TimelineItem[] — Chronological activity entries recording status transitions and key events
    - `id` string — ID of the underlying outreach or email record this timeline entry describes
    - `title` string — Human-readable label for this timeline entry
    - `date` string, date-time
    - `type` 'outreach' | 'email' — Kind of record this entry describes
    - `status` string — Status label at this point in the timeline

## Other responses

- `401` — Unauthorized - Authentication required
- `403` — Forbidden - User does not have required permissions
- `404` — The outreach ID does not exist, or it belongs to a different tenant than the one supplied in the tenant-id header. Verify the outreachId via GET /credentialing-outreaches/workflow/{workflowId} before retrying. The body is a plain string, not the ApiError shape.
- `500` — Internal Server Error - An unexpected error occurred

---

[API](https://skmtc.net/certifyos/apis/certify-api-layer.md) · [All operations](https://skmtc.net/certifyos/apis/certify-api-layer/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/certifyos/certify-api-layer/revisions/563848e0ecc0/schema)
