---
title: "Create a node"
method: POST
path: "/nodes/"
tags: ["Nodes"]
---

# Create a node

`POST /nodes/`

Creates a new node.

On the OSF, nodes are considered **projects** or **components**. The difference between a project and a component is that a project is a top-level node, and a component is a child of a project.

Additionally, nodes have a `category` field that includes **project** as an option. The categorization determines what icon is displayed with the node on the OSF, and helps with search organization. Projects (top-level nodes) may have a category other than project, and components (children) may have a category of **project**.
#### Required
Required fields for creating a node include:

&nbsp;&nbsp;&nbsp;&nbsp`title`

&nbsp;&nbsp;&nbsp;&nbsp`category`

Note: Nodes default to **private** unless the `public` field is explicitly set to **true** in the request payload.
#### Returns
Returns a JSON object with a `data` key containing the representation of the created node, if the request is successful.

If the request is unsuccessful, an `errors` key containing information about the failure will be returned. Refer to the [list of error codes](#tag/Errors-and-Error-Codes) to understand why this request may have failed.

## Request body

- object
  - `id` string — The unique identifier of the node entity.
  - `type` string, required — The type identifier of the node entity (`nodes`).
  - `attributes` object, required — The properties of the node entity.
    - `category` 'analysis' | 'communication' | 'data' | 'hypothesis' | 'instrumentation' | 'methods and measures' | 'procedure' | 'project' | 'software' | 'other', required — The category of the node, as selected by project contributors.
    - `title` string, required — The title of the node.
    - `collection` boolean — Whether or not this node represents a collection. This value should always be `false`. This field may be deprecated in future versions.
    - `current_user_can_comment` boolean — Whether or not the current user has permission to post comments on this node. Comments on nodes can be set to allow all users to comment (if public) or restricted to only allow comments from contributors.
    - `current_user_permissions` string[] — A list of strings representing the permissions for the current user on this node. Valid permissions are "admin", "read", and "write".
    - `date_created` string, date-time — The time at which the node was created, as an iso8601 formatted timestamp.
    - `date_modified` string, date-time — The time at which the node was last modified, as an iso8601 formatted timestamp.
    - `description` string — The description of the node.
    - `fork` boolean — Whether or not this node represents a fork of another node.
    - `forked_date` string, date-time — If this node is a fork of another node, the time at which the node was created, as an iso8601 formatted timestamp.
    - `node_license` string — A dictionary containing the metadata (copyright year and holder) associated with the node license (required for certain license types).
    - `preprint` boolean — Whether or not a preprint has been created from this node, or if this node was created for a preprint.
    - `public` boolean — Whether or not the node is publicly visible. This field is only editable by project administrators.
    - `registration` boolean — Whether or not the node represents a registration. This value should always be `false`. This field may be deprecated in future versions.
    - `tags` string[] — A list of strings that describe this node, as entered by project contributors.
    - `template_from` string — The unique ID of the node from which this node was templated, if this node was created from a template.
  - `relationships` object — URLs to other entities or entity collections that have a relationship to the node entity.
    - `affiliated_institutions` string — A link to the list of institutions this node is affiliated with.
    - `children` string — A link to the list of this node's children (components).
    - `citation` string — A link to the citation details of this node.
    - `comments` string — A link to the list of comments on this node.
    - `contributors` string — A link to the list of contributors on this node.
    - `draft_registrations` string — A link to the list of registrations that have been initiated from this node and are still in a draft state.
    - `files` string — A link to the list of storage providers that have been enabled on this node.
    - `forked_from` string — A link to the node which this node was forked from, if this node is a fork.
    - `forks` string — A link to the list of nodes that are forks of this node.
    - `identifiers` string — A link to the list of identifiers for this node (i.e. ARK and DOI identifiers).
    - `license` string — A link to the license that has been applied to this node.
    - `logs` string — A link to the list of log actions pertaining to this node.
    - `linked_nodes` string — A link to the list of nodes that are linked to the current node.
    - `node_links` string — A link to the list of nodes that are linked to the current node. This field is deprecated as of verson 2.1; use the linked_nodes link instead.
    - `parent` string — A link to the node that is the direct parent of the current node, if the current node is a child node.
    - `preprints` string — A link to the list of preprints that this node relates to.
    - `registrations` string — A link to the list of registrations that have been created from this node.
    - `root` string — A link to the node that is the top-level parent of the current node. If the current node is the top-level node, the root is the current node.
    - `template_node` string — A link to the node that the current node was templated from, if the current node was created from a template.
    - `view_only_links` string — A link to the list of view only links that have been created for this node.
    - `wikis` string — A link to the list of wiki pages for this node.
  - `links` object — URLs to alternative representations of the node entity.
    - `html` string, URL — A link to the node's page on the OSF.
    - `self` string, URL — A link to the canonical API endpoint of this node.

## Response `201`

Success

---

[API](https://skmtc.net/osf/apis/osf-apiv2-documentation.md) · [All operations](https://skmtc.net/osf/apis/osf-apiv2-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/osf/osf-apiv2-documentation/versions/ca701048eb0d/schema)
