---
title: "Get project graph node"
method: GET
path: "/api/v1/projects/{project_id}/graph/nodes/{node_id}"
tags: ["Projects"]
---

# Get project graph node

`GET /api/v1/projects/{project_id}/graph/nodes/{node_id}`

## Request

- Base URL: `https://api.studio.kaitoi.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.studio.kaitoi.io/api/v1/projects/{project_id}/graph/nodes/{node_id}`
- Auth: HTTP bearer

Returns one sanitized placed node from a project graph. Use fields=inputs,outputs for compact connection-pin discovery. Omit fields for the existing sanitized full graph-node shape.

## Path parameters

- `project_id` string, required
- `node_id` string, required

## Query parameters

- `fields` string, nullable: Optional comma-separated pins projection: inputs, outputs. Omit for the full sanitized node response.

## Headers

- `authorization` string, nullable

## Response `200`

A sanitized placed graph node or compact pin projection.

- union
  - PublicGraphNode
    - `id` string, required: Stable node instance identifier.
    - `type` string, required: Node type identifier.
    - `title` string, nullable: Node display title.
    - `position` PublicPosition
      - `x` number, required: Node X position on the graph canvas.
      - `y` number, required: Node Y position on the graph canvas.
      - `z` number, nullable: Optional Z position for surfaces that support it.
    - `inputs` PublicNodePin[], required: Publicly visible node inputs.
      - `name` string, required: Pin name as defined by the node.
      - `type` string, nullable: Public data type for the pin.
      - `value` unknown
      - `exposed` boolean: Whether the pin is exposed as a public input/output.
      - `label` string, nullable: Human-readable pin label.
    - `outputs` PublicNodePin[], required: Publicly visible node outputs.
      - `name` string, required: Pin name as defined by the node.
      - `type` string, nullable: Public data type for the pin.
      - `value` unknown
      - `exposed` boolean: Whether the pin is exposed as a public input/output.
      - `label` string, nullable: Human-readable pin label.
  - PublicGraphNodeProjection
    - `inputs` PublicProjectedNodePin[], nullable: Compact input pins when requested through fields.
      - `name` string, required: Pin name as defined by the placed node.
      - `type` string, nullable: Public data type for the pin.
    - `outputs` PublicProjectedNodePin[], nullable: Compact output pins when requested through fields.
      - `name` string, required: Pin name as defined by the placed node.
      - `type` string, nullable: Public data type for the pin.

## Other responses

- `401`: Missing, malformed, expired, or revoked bearer token.
- `403`: The API key lacks the required scope or account capability.
- `404`: The project or graph node does not exist, or the project is not owned by this user.
- `422`: Validation Error
- `429`: The client or API key exceeded the REST API rate limit.
- `503`: The shared REST API rate limiter is temporarily unavailable.

---

[API](https://skmtc.dev/kaitoi/apis/kaitoi-rest-api.md) · [All operations](https://skmtc.dev/kaitoi/apis/kaitoi-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kaitoi/apis/kaitoi-rest-api/revisions/239a74aa2c64?raw)
