---
title: "Create a contributor"
method: POST
path: "/nodes/{node_id}/contributors/"
tags: ["Nodes"]
---

# Create a contributor

`POST /nodes/{node_id}/contributors/`

Adds a contributor to a node, effectively creating a relationship between the node and a user.

Contributors are users who can make changes to the node or, in the case of private nodes, have read access to the node.

Contributors are categorized as either "bibliographic" or "non-bibliographic" contributors. From a permissions standpoint, both are the same, but bibliographic contributors are included in citations and are listed on the project overview page on the OSF, while non-bibliographic contributors are not.
#### Permissions
Only project administrators can add contributors to a node.
#### Required
A relationship object with a `data` key, containing the `users` type and valid user ID is required.

All attributes describing the relationship between the node and the user are optional.
#### Returns
Returns a JSON object with a `data` key containing the representation of the new contributor, 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 identifier of the contributor entity. Contributor identifiers have the form {node_id}-{user_id}.
  - `type` string, required — The type identifier of the contributor entity (`contributors`).
  - `attributes` object — The properties of the contributor entity.
    - `bibliographic` boolean — Whether or not the contributor will be included in citations for the node. The default value is true.
    - `index` integer — The position of this contributor in the list of project contributors and in project citations.
    - `permission` 'read' | 'write' | 'admin' — The permission level of the contributor. The default value is 'write'.
    - `unregistered_contributor` string — The assigned name of the contributor if the contributor has not yet claimed their account.
  - `relationships` object, required — URLs to other entities or entity collections that have a relationship to the contributor entity.
    - `node` string, required — A relationship to the node that was created for the preprint, or from which the preprint was created.
    - `user` string, required — A relationship to the file that is designated as the preprint's primary file, or the manuscript of the preprint.
  - `links` object — URLs to alternative representations of the contributor entity.
    - `self` string, URL — A link to the the canonical API endpoint for the contributor.

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