---
title: "Create Node"
method: POST
path: "/v1/nodes"
tags: ["nodes"]
---

# Create Node

`POST /v1/nodes`

## Request

- Base URL: `https://api.june.januraine.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.june.januraine.ai/v1/nodes`
- Auth: none declared

Create one node in the caller's workspace via the fenced ingest seam. Node_type is
validated against the four graph types (unknown → 'entity'); an optional subtype rides in
extra so a view scoped to that subtype picks the row up on its next refresh.

## Headers

- `X-Canvas` string, nullable
- `X-API-Key` string, nullable
- `Authorization` string, nullable

## Request body

- NodeCreateIn: Create a new graph node — the '+ Add row' contract for database-style views. A row IS a node: it carries the view's node_type and (optional) subtype so it shows up in that view (and everywhere else) immediately. No new table — a 'database' is just nodes sharing a subtype.
  - `node_type` string
  - `label` string
  - `subtype` string, nullable

## Response `200`

Successful Response

- NodeCreateOut
  - `ok` boolean, required
  - `node_id` string, required
  - `node_type` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/januraine/apis/june-ai.md) · [All operations](https://skmtc.dev/januraine/apis/june-ai/llms.txt) · [OpenAPI document](https://skmtc.dev/januraine/apis/june-ai/revisions/097b95b163c7?raw)
