---
id: package-read
title: "Read a package"
description: "Read a package: its envelope plus the components of its resolved revision (`default_revision_id` when it's set, otherwise `latest_revision_id`)."
sidebar_label: "Read a package"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/api/package
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 package"}
>
</Heading>

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



Read a package: its envelope plus the components of its resolved revision (`default_revision_id` when it's set, otherwise `latest_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 package id.","example":"1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"}]}
>
  
</ParamsDetails>

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

<StatusCodes
  id={undefined}
  label={undefined}
  responses={{"200":{"description":"The package.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The package id.","example":"1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"},"nrn":{"type":"string","description":"The owning NRN.","example":"organization=1:account=2"},"slug":{"type":"string","description":"URL-safe identifier, unique per NRN. Derived from name when omitted on create.","example":"my-scope"},"name":{"type":"string","description":"Human-readable display name.","example":"My scope"},"visible_to":{"type":"array","items":{"type":"string"},"description":"NRNs allowed to consume (read and link) this package. Supports trailing-wildcard scopes (for example, \"organization=1:account=*\") and the global wildcard \"organization=*\". Defaults to [nrn]. Modifications stay gated on the owning NRN.","example":["organization=1:account=2"]},"default_revision_id":{"type":"string","format":"uuid","nullable":true,"description":"Pinned revision UUID, or null to follow latest_revision_id.","example":"e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"},"default_version":{"type":"string","nullable":true,"description":"Server-derived semver of default_revision_id.","example":"1.4.0"},"latest_revision_id":{"type":"string","format":"uuid","nullable":true,"description":"Highest-semver revision UUID. Server-managed.","example":"e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"},"latest_version":{"type":"string","nullable":true,"description":"Server-derived semver of latest_revision_id.","example":"1.4.0"},"components":{"type":"array","items":{"type":"object","required":["name","resource_type","resource_id","resource_revision_id"],"description":"One entry of the bill of materials: a pinned (resource, revision) pair.","properties":{"name":{"type":"string","minLength":1,"description":"Name of the component within the revision, for example \"spec\" or \"runtime:main\". Unique within the revision; opaque to the package server.","example":"spec"},"resource_type":{"type":"string","minLength":1,"description":"Routing key that identifies which owning service resolves resource_id, for example \"service_specification\", \"action_specification\", \"link_specification\" or \"artifact\".","example":"service_specification"},"resource_id":{"type":"string","format":"uuid","description":"UUID of the underlying resource at its owning service.","example":"7b2d1c5e-8f4a-4e3b-9c6d-1a2b3c4d5e6f"},"resource_revision_id":{"type":"string","format":"uuid","description":"UUID of the revision this component pins: a specification snapshot for service, action and link specifications, or an artifact revision for artifacts.","example":"0c9e8d7f-6a5b-4c3d-8e2f-1a0b9c8d7e6f"},"parent_id":{"type":"string","format":"uuid","nullable":true,"description":"The resource_id of the parent component within this revision. Required for action_specification components (the parent is a service or link specification component) and link_specification components (the parent is a service specification component); null for service_specification and artifact components.","example":null}},"title":"packageComponent"},"description":"The bill of materials of the resolved revision (default_revision_id, or latest_revision_id when no default is pinned)."},"created_at":{"type":"string","format":"date-time","description":"When the package was created.","example":"2026-09-14T12:00:00.000Z"},"updated_at":{"type":"string","format":"date-time","description":"When the package envelope last changed.","example":"2026-09-14T12:00:00.000Z"}},"title":"package"}}}},"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":"Revision '1.4.0' exists with a different bill of materials (revision e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b)"}},"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":"Revision '1.4.0' exists with a different bill of materials (revision e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b)"}},"title":"errorResponse"}}}}}}
>
  
</StatusCodes>


      