---
id: checklist-specification-read
title: "Read checklist specification"
description: "Returns one version of a checklist specification, including the expression derived from its items."
sidebar_label: "Read checklist specification"
hide_title: true
hide_table_of_contents: true
api: eJzdWFFvGzcS/isDPiXAWpZluwgWyIPrpq37kAa2cy3OMdQROdplzCW3JFeJKui/H4a7knclGXavaA+4FyXeJTnffDPzzSxXQlGQXtdROytycU2x8TaAswQL8kE7C24OCLIk+WB0iBBqknquJfKWDLSVplHaFhBLAvpaewppmyKvF6Rg7l0FOgbQkaowEplwNfm0+0qJXGxPng5Ozj2hEpmIWASR34nLzTJxn4lAsvE6LkV+txIzQk/+oomlyO/u1/eZqNFjRZF8SAs0e1ZjLEUmLFYkcqH56CBLqlDkKxGXNT8N0WtbiHUmPP3eaE9K5NE3lO2wdFsSXH3HxLDPT1DDntJXrGqTjq5JTnEmTyaniuZn598Upf4s1lmH7veG/LIHL5FK0y4E4RDYmXOG0DLaIbqrdjPQgvxyG8W6mRkdSlLQWEU+IQ9YEbBJQKvg/fX7kWD6PIXa2UCBrU3GY/5nn4BtFOELBgiNlBTCvDHst3Q2ko28EevadIwcfw68e7Xvi5t9JhlFJmrPx0bd2tZqPzh73iqyUc81+TYeOgzDsCHgZeEQ1tvnbf5SkqeWwYGp5CuFEVyW2ijwFFzjJQXQtiSvI+g4hOF8gVb/kXa/PclRStfY+HaSc1BCjZLeniZUKS2eg3VToicFs+VO6A/yssNHxELb4khRbdzyqMBIe4n1PCsYW0OPFUF27piBobVLtyCPBWVwY5cPWcq+TUlD0IU9cvN5Bl90LAHh8uJb4A1eKxoxqhAxNuEQILJNxWKBMuoFJYSGIinWjL0QxnJTBoMg6gBGLwicbxPbzeNRd8zQi87IOhMd0T1E2kYqyO9x9K8uJLapZuSTh9omEMMy7Nk5SXGYa6t3wrAtmv3aTFLb8urSczRmCWgBi8JT0To6M04+jNowJ6mePqr389FmM50E9VXfNsbUBuPc+Qqkq+omUkgOuiZKV1HyeUjkK5BdQkw58UY1hkAKLt5/t82KKWeFm883717Dz9cgcTbdJkb7gr2RnjCSms6WL1CPrYo3geNRup5Qplw+KB9np5OTvimMh0wxB/xGKIx0FHVFh5TEDuyknNtCGFqdjCffHI3fHE3e3J6c5SeTfHw6Go/H/2YkTa3+DiQGQ4TKKRbYP4HmC3qrbdGvUfQel3tW3zt7lPKQBwjrNrmyQKMVRufBo+Z4f2nR0QBcwEULKqX7wT6+hXt3/1inz8N691+0TvjZmiVwFwAeXVr1+m23k7/leeK3HmghtZeNQf9qO+Hc9PXoNbuBITip2wDL+CIXLurauwUa6DaAbLwnG80SaqdtZMI3er3J8V0X0uQXtC0M7Y597DXOAtkIHjslZSWo6rhso6VjCpJ1MTVC80SsOhUbxKrt/CdvziZdQ35Zo2T9j2kqFG0fq3gGyUTLwOBp3lauWN+v15mIOrZ96WAExHrNi85+/XV/ELo0mikg7zlXN3MTqIYgOtA2JTJoWzeRG0qlA9MJjwPqX5qWHqfUu64pXjrFpZ3wiExUFAIWxO1vOFn1Vj/ftH68vf0A7Q6QThF4Yr2nNon6HRRkn49XNCpGGZyNx/xzwj+n/HP2eqAkZ+MxS+kQyxN6fQEVylJbOuIExZmhzlbCFXkCkRipcF7/0WlJIL8gD3PUpvE01LAZqimTSKHNwETbC0DMvKZ5BmVToX1E0lu16SotOD5uw8Yn8S0quG6NfhL84KPFJpYJsvokhuT0VzPETUSfB6mUbjs/KIqoTQCcuSY+whra4X7eUZHqtkLDXYMUJHZtRG1JbVO6n8HrdVsh54cq5Kalf7dCtFUpz1mFeOYKDbHwMLiLD1cQ0qz3f1UaoU9ElwznXBrn4wn/nA4Df/6/qwp21ls003bRtKXsH6uPq848dKnzjte0lcJPtCT4aHGB2vCpewVzcPvfWjoXFhpLX2uSkVTnkpOp36oRfDCEgSD6JWCB2oLBSH5TNQlXLB3fhBSUPoH5oiIXx9g18OPt19TxoAcfr7Ra88VAcrO96Wi8EbkoY6xDfnyMtR715/GRdFX6wN9M1TdcPm3W9y9RtvzwQZurhySXaZHIuv98v5kqf/rlVrAn2s4db99+D4mT0Xg0Fo8ddjOVcDxqF2KFqY67a49rHjqeuE7ZjdLqURv+mVurjpNIX+NxbVCnm5dE+KqL2Z3YxIyVa3tflYldR3KdvkhLFyLvWq1mGOijN+s1P27vgjicSgdOcSXyOZqwew3VZ+Av3fk84dsDLQ9fRS3QNLw85dICvWaQfxLwq+tOoF/Di2/TDqLcDMF22Ue2Ra94xMtESajIJ4ztiwspqY69LXvthZ3bluYP7255kByWx045pNMPwlmt2hW37oHser1FF/nvNIOu/wOjnICk
sidebar_class_name: "get api-method"
info_path: docs/api/approval
custom_edit_url: null
---

import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import ParamsDetails from "@theme/ParamsDetails";
import RequestSchema from "@theme/RequestSchema";
import StatusCodes from "@theme/StatusCodes";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";
import Heading from "@theme/Heading";

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Read checklist specification"}
>
</Heading>

<MethodEndpoint
  method={"get"}
  path={"/approval/checklist/specification/{id}"}
  context={"endpoint"}
>
  
</MethodEndpoint>



Returns one version of a checklist specification, including the expression derived from its items.

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
  children={"Request"}
>
</Heading>

<ParamsDetails
  parameters={[{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"The ID of the checklist specification.","example":"spec_abc123def456ghij"},{"in":"query","name":"include_versions","schema":{"type":"boolean"},"description":"Include every version published under the same name and NRN."}]}
>
  
</ParamsDetails>

<RequestSchema
  title={"Body"}
  body={undefined}
>
  
</RequestSchema>

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"The operation was successful.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Identifier of this specification version.","example":"spec_abc123def456ghij"},"nrn":{"type":"string","description":"Where the specification applies. Child resources inherit it.","example":"organization=1:account=2:namespace=3"},"name":{"type":"string","description":"Shared by every version of this specification.","example":"staging-deploy-gate"},"description":{"type":"string","description":"What this checklist enforces.","example":"Coverage, Snyk, and security sign-off, with a CAB override."},"status":{"type":"string","enum":["active","deleted"],"description":"Whether the specification is live or was soft-deleted.","example":"active"},"version":{"type":"integer","description":"Version number within the name and NRN.","example":1},"definition":{"type":"object","description":"The items, and optionally an aggregation block."},"derived_expression":{"type":"string","description":"The boolean expression nullplatform computes the outcome with.","example":"( coverage_gate.passed AND security_signoff.passed ) OR cab_override.passed"},"created_by":{"type":"string","description":"ID of the user who published this version.","example":"4321"},"created_at":{"type":"string","format":"date-time","description":"When this version was published.","example":"2026-08-28T14:12:03.000Z"},"updated_at":{"type":"string","format":"date-time","description":"When this version was last modified.","example":"2026-08-28T14:12:03.000Z"},"warnings":{"type":"array","description":"Non-blocking notes the validator raised when the version was saved.","items":{"type":"string"},"example":[]},"versions":{"type":"array","description":"Every version published under the same name and NRN. Only on a read with `include_versions=true`.","items":"circular(ChecklistSpecification)"},"associated_actions":{"type":"array","description":"Approval actions currently pointing at this version. Only on a read of a single specification, and absent rather than empty when it was not resolved.","items":{"type":"object"},"example":[{"id":1842,"nrn":"organization=1:account=2:namespace=3","entity":"deployment","action":"deployment:create"}]}},"title":"ChecklistSpecification"}}}},"4XX":{"description":"Client error responses due to invalid input or missing parameters.","content":{"application/json":{"schema":{"type":"object","required":["statusCode","error","message"],"properties":{"statusCode":{"type":"integer","description":"HTTP status code representing the specific client error (e.g., 400, 401, 403, 404).","example":400},"code":{"type":"string","description":"A machine-readable error code that categorizes the server failure.","example":"bad_request"},"error":{"type":"string","description":"A brief, human-readable description of the error type (e.g., \"Bad Request\", \"Unauthorized\").","example":"Bad Request"},"message":{"type":"string","description":"Additional details about the error.","example":"The request was malformed or contained invalid parameters."}}}}}},"5XX":{"description":"Server error responses indicating an issue on the API side.","content":{"application/json":{"schema":{"type":"object","required":["statusCode","error","message"],"properties":{"statusCode":{"type":"integer","description":"HTTP status code representing the specific server error (e.g., 500, 502, 503).","example":500},"code":{"type":"string","description":"A machine-readable error code that categorizes the server failure.","example":"internal_server_error"},"error":{"type":"string","description":"A brief, human-readable description of the error type (e.g., \"Internal Server Error\", \"Service Unavailable\").","example":"Internal Server Error"},"message":{"type":"string","description":"Additional details about the error.","example":"An unexpected error occurred. Please try again later."}}}}}}}}
>
  
</StatusCodes>


      