---
title: "Create a fork of this node"
method: POST
path: "/nodes/{node_id}/forks/"
tags: ["Nodes"]
---

# Create a fork of this node

`POST /nodes/{node_id}/forks/`

Creates a fork of the given node.

Forking a project creates a copy of an existing node and all of its contents. The fork always points back to the original node, forming a network of nodes.

You might use a fork to copy another's work to build on and extend. For example, a professor may create an OSF project of materials for individual student use. Each student forks the project to have his or her own copy of the materials to start his/her own work.

When creating a fork, your fork will only contain public components of the current node and components for which you are a contributor. Private components that you do not have access to will not be forked.
#### Required
There are no required attributes when creating a fork, as all of the forked node's attributes will be copied from the current node.

The `title` field is optional, with the default title being "Fork of " prepended to the current node's title.
#### Returns
Returns a JSON object with a `data` key containing the complete srepresentation of the forked 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.

## Path parameters

- `node_id` string, required

## 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`

Created

---

[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)
