---
id: service-specification-snapshots-list
title: "List snapshots of a service specification"
description: "List the append-only snapshot history of a service specification, newest first. Snapshot ids are what package components pin as resource_revision_id."
sidebar_label: "List snapshots of a service specification"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/api/nullplatform-api
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={"List snapshots of a service specification"}
>
</Heading>

<MethodEndpoint
  method={"get"}
  path={"/service_specification/{id}/snapshots"}
  context={"endpoint"}
>
  
</MethodEndpoint>



List the append-only snapshot history of a service specification, newest first. Snapshot ids are what package components pin as resource_revision_id.

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

<ParamsDetails
  parameters={[{"in":"path","name":"id","required":true,"schema":{"type":"string","format":"uuid"},"description":"The specification id.","example":"7b2d1c5e-8f4a-4e3b-9c6d-1a2b3c4d5e6f"},{"in":"query","name":"offset","schema":{"type":"integer","minimum":0,"default":0},"description":"The starting point for pagination.","example":0},{"in":"query","name":"limit","schema":{"type":"integer"},"description":"The maximum number of results to return per page.","example":20}]}
>
  
</ParamsDetails>

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

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"The specification's snapshots.","content":{"application/json":{"schema":{"type":"object","properties":{"paging":{"type":"object","properties":{"offset":{"type":"integer","description":"The offset of this page.","example":0},"limit":{"type":"integer","description":"The maximum number of results in this page.","example":20}},"title":"paging"},"results":{"type":"array","items":{"type":"object","description":"Append-only snapshot of a specification at one change of its watched fields. The id is what a package component pins as resource_revision_id.","required":["id","specification_id","sequence_number","content_hash","content","created_at"],"properties":{"id":{"type":"string","format":"uuid","description":"The snapshot id. This is the value a package component pins as `resource_revision_id`.","example":"0c9e8d7f-6a5b-4c3d-8e2f-1a0b9c8d7e6f"},"specification_id":{"type":"string","format":"uuid","description":"The specification this snapshot belongs to.","example":"7b2d1c5e-8f4a-4e3b-9c6d-1a2b3c4d5e6f"},"sequence_number":{"type":"integer","minimum":1,"description":"Per-specification counter; higher is newer.","example":3},"content_hash":{"type":"string","minLength":64,"maxLength":64,"description":"SHA-256 of the specification's watched fields. Identical content never mints a second snapshot in a row.","example":"4f53cda18c2baa0c0354bb5f9a3ecbe5ed12ab4d8e11ba873c2f11161202b945"},"content":{"type":"object","additionalProperties":true,"description":"The specification as it was when this snapshot was minted."},"created_by":{"type":"string","nullable":true,"description":"The user whose write minted the snapshot, or null.","example":"jane.doe@example.com"},"created_at":{"type":"string","format":"date-time","description":"When the snapshot was minted.","example":"2026-09-14T12:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","description":"Snapshots are immutable, so this matches `created_at`.","example":"2026-09-14T12:00:00.000Z"}},"title":"specificationSnapshot"}}},"title":"specificationSnapshotListResponse"}}}},"4XX":{"description":"Client error responses due to invalid input, missing parameters or insufficient permissions.","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","example":400},"code":{"type":"string","example":"bad_request"},"error":{"type":"string","example":"Bad Request"},"message":{"type":"string","description":"Human-readable explanation.","example":"Snapshot 9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d not found for specification 7b2d1c5e-8f4a-4e3b-9c6d-1a2b3c4d5e6f"}},"title":"errorResponse"}}}},"5XX":{"description":"Server error responses.","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","example":400},"code":{"type":"string","example":"bad_request"},"error":{"type":"string","example":"Bad Request"},"message":{"type":"string","description":"Human-readable explanation.","example":"Snapshot 9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d not found for specification 7b2d1c5e-8f4a-4e3b-9c6d-1a2b3c4d5e6f"}},"title":"errorResponse"}}}}}}
>
  
</StatusCodes>


      