---
id: service-specification-snapshots-read
title: "Read a snapshot of a service specification"
description: "Read a single snapshot of a service specification, including its full content."
sidebar_label: "Read a snapshot of a service specification"
hide_title: true
hide_table_of_contents: true
api: eJztV9tu3DYQ/RWCL20BaVfai71WX+oGvaQoisB2kaCGsR6RoxUTiVRIyhcs9O/FSNqL1ps4cPJSoE+rpcjRmXNmhjNrLtEJqyqvjOYJv0CQDJhTelUgcxoqlxvPTEaLaO+UQOYqFCpTAuhMwJQWRS2VXjHlHcvqomDCaI/aj3jATYW23fha8oT3JpYDE8nmMy6xCJIH3MPK8eSaX3bb+U3AK7BQokdLL9ZcEdgKfM4DrqFEnnBFJy1+rJVFyRNvawy4EzmWwJM1948V7XLeKr3iAc+MLcHzhNe1krwJDoi4yg8cZUqSP/gAZVWQpdN0ImMxx3CRzSCc4TQNz8SJDGOYpFMxk3M8yXgTHMW68fj1t8e8kewQbiTOcCFPs/AE5mk4E1MZLnCShTFE6ZlYyNMW7k3AHYraKv/Y8pwiWLTntc95cn1Dry26ymiHjgBOooh+Pg3jufDoH8kIVFXRcz1+78jS+ikVJn2PwvNDz8+rCrUMjS4eD4N2oCF4ZjQykYNeIW0gTPfgRY6SZQoL6UaM8CvJlGP3OXgGrALxAVbIhCkro1F7VintGDhm0ZnaClxavFNOGb3saN9Jet3F5QDGslvCjzVqgUtdlynaHRnLHFy+x03AhUXwKJfg21SwlFRedRIo+XykPBco7CpXjhz2ObI7KGr8rNe3x9y+fUm4HSHmZc4MVPbkzda/FAujV45586L8faLTDqDSHletcqXSqqxLnsSH6N6gDYfohKm1R/sjy9UqR0u0a7xHO0A3bQ7C4QgtpdJ/ol5Rap7MAl7Cw/7fIYzL38/DyfyEQt4f8vXd0xR4LVF7JWCbq0zjHVpWKu1dexUIo+VeDGkGzJr7IcOzbD4VEuKFmKQAkYim81mazrMzmKJIcY4ynkA6kwuM4xQWp1MxyeI4Pokn0SQ9m815MygQhyUApFSEH4o3exnR1dDnQgQcU57dA+U4HkYMLZOnKEcthD770sdjKui6KCAlfz/15dqhZfe5ccjurfLY2+6E2NZJYxmZGjL4HjSOpMGf+qWRMOU+JPCfzRcJHkOvSnySNG87r/G40/sQJtHkJIzOwnh2FU+SKEqiaBRF0T8Eo67k18G43Nz8DCwyVZa1Jy4D5kynSdkGpmO3O49vvxRfE3CvfLtpIP7mo7xpaM/s3bund9irQlHUo7XGsu2Vx2SNzBum9B0UdEXoqvYBK5WjhontehRSU2lXZ5kSraEKbbvLaPdV196w9jsPvnavjMSjVWlL0iyK2lQa7NvqtOMyBbmkqwudJ3lb7z9/4meQ7GJ3okTnYHX0K0N+f69L0CG1e6Q3w4eqAN2SMFR3oxU7g0V6SuV5jrMsnEFbrScyjDHKNu+YNp5lptaSZcYeZPyXlfu9mGm9v+il72NlfixWqEtFexgr/8v8X5W5ddDnhgaWFbZyUPOe8PHR8WW8VrIZb2eY8XrX3Ddtm0fR0U0ttS14wnPvK5eMx1CpEZX8qgBPtbIr7nsd+CXFRxcC+334lnQyxPt5odW13cSD/uHXTf394+1V67LSmaHjhKfTJx5Fo4jvyPhrDw47f/OaxK6M8yW0AdtPL5sh8fnp8DAg1ruU+PajZs+Kxwc/rgpQur2iiPJ1r+D18QGUBzzpWvKNiLSyN6PdBDw3zpOB9ToFh3/bomlo+WONlialm4DfgVVdI3C95lI5epY8yaBwh23BPg3fX/Szwg/sUzPnUcf6RdCPnL5d1PSPB/wDPnbDMI2eL4cxHCNfgGCPvuamCXiOIKl7vl73G86FwMrvHX1SIikXtpn42y9X1PMNM+Ag4lvrR2Gt192OK/MBddNsUXr6TwCb5l9hw9Vz
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={"Read a snapshot of a service specification"}
>
</Heading>

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



Read a single snapshot of a service specification, including its full content.

<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":"path","name":"snapshotId","required":true,"schema":{"type":"string","format":"uuid"},"description":"The snapshot id.","example":"0c9e8d7f-6a5b-4c3d-8e2f-1a0b9c8d7e6f"}]}
>
  
</ParamsDetails>

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

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"The snapshot, including its full content.","content":{"application/json":{"schema":{"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"}}}},"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>


      