---
title: "Get cached EXPLAIN plan for a PFS digest"
method: GET
path: "/api/clusters/{clusterName}/servers/{serverName}/queries/{queryDigest}/actions/explain-pfs-cached"
tags: ["DatabaseQueries"]
---

# Get cached EXPLAIN plan for a PFS digest

`GET /api/clusters/{clusterName}/servers/{serverName}/queries/{queryDigest}/actions/explain-pfs-cached`

Returns the explain plan that was captured at snapshot time for the given digest.

## Path parameters

- `clusterName` string, required
- `serverName` string, required
- `queryDigest` string, required

## Headers

- `Authorization` string, required

## Response `200`

Cached explain plan

- ClusterPFSExplainRecord
  - `capturedAt` string — RFC3339 timestamp of first EXPLAIN
  - `digest` string — PFS digest hash
  - `digestText` string — normalised template e.g. SELECT * FROM t WHERE id = ?
  - `sampleQuery` string — concrete SQL instance used for EXPLAIN
  - `schemaName` string

## Other responses

- `403` — No valid ACL
- `404` — Digest not found in explain cache
- `500` — Cluster Not Found" or "Server Not Found" or "Encoding error

## Changes

- **2026-07-17** `7465ea0ee21a` — 1 info
  - endpoint added
- **2023-03-31** `b57fc7b9446e` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/signal18/apis/untitled-api/changes/api/clusters/:clusterName/servers/:serverName/queries/:queryDigest/actions/explain-pfs-cached/get.md)

---

[API](https://skmtc.dev/signal18/apis/untitled-api.md) · [All operations](https://skmtc.dev/signal18/apis/untitled-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/signal18/untitled-api/revisions/ee076c6fc8dc/schema)
