---
id: package-revisions-list
title: "List revisions of a package"
description: "List a package's revisions, newest first. Items don't include components unless you send `name`: then each item carries only the components with that name, which gives you the history of one component across revisions."
sidebar_label: "List revisions of 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={"List revisions of a package"}
>
</Heading>

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



List a package's revisions, newest first. Items don't include components unless you send `name`: then each item carries only the components with that name, which gives you the history of one component across revisions.

<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"},{"in":"query","name":"name","schema":{"type":"string"},"description":"Include the components with this name on each revision.","example":"worker-image"},{"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 package's revisions.","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},"total":{"type":"integer","minimum":0,"description":"The total number of results that match the query.","example":3}},"title":"paging"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The revision id. This is what a service's `package_revision_id` points at.","example":"e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"},"package_id":{"type":"string","format":"uuid","description":"The package this revision belongs to.","example":"1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"},"version":{"type":"string","description":"Semver of this revision.","example":"1.4.0"},"parent_revision_id":{"type":"string","format":"uuid","nullable":true,"description":"The package's latest revision when this one was published.","example":"c3d4e5f6-a7b8-4c9d-8e0f-1a2b3c4d5e6f"},"parent_version":{"type":"string","nullable":true,"description":"Semver of parent_revision_id, or null for a first revision.","example":"1.3.0"},"slug":{"type":"string","description":"The package's slug.","example":"my-scope"},"name":{"type":"string","description":"The package's name.","example":"My scope"},"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 revision's bill of materials. Omitted on `GET /packages/{id}/revisions` unless you filter by `name`."},"created_at":{"type":"string","format":"date-time","description":"When the revision was published.","example":"2026-09-14T12:00:00.000Z"},"created_by":{"type":"string","nullable":true,"description":"The user who published the revision, or null.","example":"jane.doe@example.com"}},"title":"packageRevision"}}},"title":"packageRevisionListResponse"}}}},"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>


      