---
title: "List revisions of an artifact"
method: GET
path: "/artifacts/{id}/revisions"
tags: ["Artifact"]
---

# List revisions of an artifact

`GET /artifacts/{id}/revisions`

## Request

- Base URL: `https://api.nullplatform.com`
- URL: `https://api.nullplatform.com/artifacts/{id}/revisions`
- Auth: HTTP bearer

List the revisions of one artifact, newest first. Each revision carries the full meta blob it pins.

## Path parameters

- `id` string, uuid, required

## Response `200`

The artifact's revisions.

- ArtifactRevisionListResponse
  - `paging` Paging
    - `offset` integer: The offset of this page.
    - `limit` integer: The maximum number of results in this page.
  - `results` ArtifactRevision[]
    - `resource_id` string, uuid: The parent artifact id (a package component's resource_id).
    - `resource_revision_id` string, uuid: The revision id (a package component's resource_revision_id).
    - `type` 'oci_image' | 'oras_artifact' | 'git_repository' | 'blob': The parent artifact's type.
    - `meta` ArtifactMeta: Flat meta blob. Its shape depends on `type`: - `oci_image`: `registry` and `repository` (strings), `digest` (`sha256:` followed by 64 lowercase hex characters), and an optional `tag` (an OCI tag, up to 128 characters). - `oras_artifact`: `registry`, `repository` and `digest` (same rules as `oci_image`), and an optional `artifact_media_type` string. - `git_repository`: `url` and `reference` (any non-empty ref, such as a commit SHA, tag or branch), and an optional `path`: the directory of a monorepo the artifact stands for. When present, `path` is part of the artifact identity, so the same `url` under different paths registers different artifacts, each with its own revisions. Omit it for the repository root. It must be relative to the repository root, use `/` as separator, have no `.` or `..` segments and no trailing slash; a path that doesn't follow these rules is rejected, never normalized. The url must not embed credentials: a password is rejected in any form, a user is rejected over http(s) (a user such as `git@` is allowed over ssh and the scp-like `user@host:path` form), and a url with a scheme must not carry a query string or fragment. - `blob`: `location` (starting with `s3://`, `gs://`, `https://` or `http://`), `sha256` (64 lowercase hex characters), and an optional `size_bytes` (non-negative integer). Any key not listed for the type is rejected, and so is an explicit `null` value: omit the key instead. > ℹ️ **Note:** A `git_repository` artifact is a pointer only. nullplatform never stores the repository content, so never commit secrets to a referenced repository.
    - `annotations` object, nullable: The revision's annotations (see the registration body), or null when it has none.
    - `nrn` string: The parent artifact's owning NRN.
    - `visible_to` string[]: The parent artifact's visibility.
    - `created_at` string, date-time: When the revision was registered.

## Other responses

- `4XX`: Client error responses due to invalid input, missing parameters or insufficient permissions.
- `5XX`: Server error responses.

## Changes

- **2026-09-17** `43b3c1ecdfd8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/nullplatform/apis/nullplatform-api/changes/artifacts/:id/revisions/get.md)

---

[API](https://skmtc.dev/nullplatform/apis/nullplatform-api.md) - [All operations](https://skmtc.dev/nullplatform/apis/nullplatform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nullplatform/apis/nullplatform-api/revisions/d3f66bc633d4?raw)
