> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shilo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Retrieve a Single Coaching Period — Shilo Coaching

> Retrieve a single coaching period and its team digest once processing completes. Check the digest_status field before reading digest content.

Use this endpoint to retrieve the full details of a single coaching period, including its date range, review window status, and team digest. The team digest becomes available once `digest_status` transitions to `completed`. Always check `digest_status` before attempting to read digest content to avoid acting on incomplete data.

## Endpoint

```
GET https://api.shilo.ai/api/v1/coaching/periods/{periodId}
```

## Authentication

Include your API key in the request header:

```
x-api-key: YOUR_API_KEY
```

## Path Parameters

<ParamField path="periodId" type="string" required>
  The unique identifier of the coaching period to retrieve. You can obtain period IDs from the [List Periods](/api-reference/coaching/list-periods) endpoint.
</ParamField>

## Response

### 200 — Success

Returns a `CoachingPeriodDetail` object. This extends the base `CoachingPeriod` fields with digest content once processing is complete.

<ResponseField name="id" type="string">
  Unique identifier for the coaching period (UUID).
</ResponseField>

<ResponseField name="cadence" type="string">
  The cadence for this period: `weekly`, `semimonthly`, or `monthly`.
</ResponseField>

<ResponseField name="period_start" type="string">
  Calendar date on which call data collection begins (inclusive). Format: `YYYY-MM-DD`.
</ResponseField>

<ResponseField name="period_end" type="string">
  Calendar date on which call data collection ends (inclusive). Format: `YYYY-MM-DD`.
</ResponseField>

<ResponseField name="review_period_end" type="string">
  Inclusive UTC calendar-date deadline for agents to complete their coaching agendas. Format: `YYYY-MM-DD`.
</ResponseField>

<ResponseField name="review_status" type="string">
  `open` through the end of `review_period_end` in UTC; `closed` thereafter.
</ResponseField>

<ResponseField name="digest_status" type="string">
  Processing status of the team digest. `pending` while being generated; `completed` when the digest content is available.
</ResponseField>

<ResponseField name="created_date" type="string">
  ISO-8601 timestamp of when the period record was created.
</ResponseField>

<ResponseField name="updated_date" type="string">
  ISO-8601 timestamp of the most recent update to this period record.
</ResponseField>

### 400 — Bad Request

The `periodId` path parameter is malformed.

### 401 — Unauthorized

Your API key is missing or invalid.

### 404 — Not Found

No coaching period with the given `periodId` exists in your organization.

## Example Request

```bash theme={null}
curl --request GET \
  --url "https://api.shilo.ai/api/v1/coaching/periods/ee6f2136-b94a-4438-9335-3acf5b2a0d31" \
  --header "x-api-key: YOUR_API_KEY"
```

## Example Response

```json theme={null}
{
  "id": "ee6f2136-b94a-4438-9335-3acf5b2a0d31",
  "cadence": "weekly",
  "period_start": "2026-06-01",
  "period_end": "2026-06-07",
  "review_period_end": "2026-06-14",
  "review_status": "closed",
  "digest_status": "completed",
  "created_date": "2026-06-08T12:34:56Z",
  "updated_date": "2026-06-15T03:12:00Z"
}
```

<Note>
  Check `digest_status == "completed"` before reading digest content. Digest content is only available on this detail endpoint once processing is complete.
</Note>
