---
title: "Get artifact version references as a graph"
method: GET
path: "/groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}/references/graph"
tags: ["Versions"]
---

# Get artifact version references as a graph

`GET /groups/{groupId}/artifacts/{artifactId}/versions/{versionExpression}/references/graph`

Retrieves a graph representation of all references for a single version of an artifact. The graph includes nodes representing artifacts, edges representing references between them, and metadata about the graph structure including cycle detection.

This operation can fail for the following reasons:

* No artifact with this `artifactId` exists (HTTP error `404`)
* No version with this `version` exists (HTTP error `404`)
* A server error occurred (HTTP error `500`)

## Response `200`

A graph representation of all artifact references.

- ReferenceGraph — A graph representation of artifact references.
  - `root` ReferenceGraphNode, required — A node in the reference graph representing an artifact version.
    - `id` string, required — A unique identifier for this node within the graph.
    - `groupId` string, required — The group ID of the artifact.
    - `artifactId` string, required — The artifact ID.
    - `version` string, required — The version of the artifact.
    - `artifactType` string — The type of the artifact.
    - `name` string — The name of the artifact version.
    - `isRoot` boolean — Whether this node is the root node of the graph.
    - `isCycleNode` boolean — Whether this node is part of a circular reference.
  - `nodes` ReferenceGraphNode[], required — All nodes in the graph, including the root.
    - `id` string, required — A unique identifier for this node within the graph.
    - `groupId` string, required — The group ID of the artifact.
    - `artifactId` string, required — The artifact ID.
    - `version` string, required — The version of the artifact.
    - `artifactType` string — The type of the artifact.
    - `name` string — The name of the artifact version.
    - `isRoot` boolean — Whether this node is the root node of the graph.
    - `isCycleNode` boolean — Whether this node is part of a circular reference.
  - `edges` ReferenceGraphEdge[], required — All edges (references) in the graph.
    - `sourceNodeId` string, required — The ID of the source node (the artifact that has the reference).
    - `targetNodeId` string, required — The ID of the target node (the artifact being referenced).
    - `name` string — The name of the reference as defined in the source artifact.
  - `metadata` ReferenceGraphMetadata, required — Metadata about the reference graph.
    - `totalNodes` integer — The total number of nodes in the graph.
    - `totalEdges` integer — The total number of edges in the graph.
    - `maxDepth` integer — The maximum depth reached in the graph.
    - `hasCycles` boolean — Whether the graph contains circular references.

## Other responses

- `400` — Common response for all operations that can return a `400` error.
- `401` — Common response for all operations that can return a `401` error indicating authentication is required.
- `403` — Common response for all operations that can return a `403` error indicating the user is authenticated but not authorized.
- `404` — Common response for all operations that can return a `404` error.
- `500` — Common response for all operations that can fail with an unexpected server error.

---

[API](https://skmtc.net/apicurio/apis/apicurio-registry-api-v3.md) · [All operations](https://skmtc.net/apicurio/apis/apicurio-registry-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/apicurio/apicurio-registry-api-v3/revisions/c39cb56d7dbc/schema)
