---
title: "Update a contributor"
method: PUT
path: "/projects/{project_id}/contributors/{contributor_id}"
tags: ["Contributors"]
---

# Update a contributor

`PUT /projects/{project_id}/contributors/{contributor_id}`

Updates the properties of a contributor. Requires *Manage contributors* admin right.

If you want to give an existing contributor access to a new language, you must specify full `languages` array, including the previously added languages as well. You can pass role_id and permissions will be updated from permission template accordingly, in this case admin_rights param will be ignored

Requires <code>write_contributors</code> OAuth access scope.

## Path parameters

- `project_id` string, required
- `contributor_id` integer, required

## Request body

- object
  - `is_admin` boolean — Whether the user has Admin access to the project. From the new permission release onwards is deprecated.
  - `is_reviewer` boolean — Whether the user has Reviewer access to the project. From the new permission release onwards is deprecated.
  - `role_id` 1 | 2 | 3 | 4 | 5 — Permission template id to take permissions from, if this parameter is provided, admin_rights is ignored.
  - `languages` object[] — List of languages, accessible to the user.
    - `lang_iso` string — Language code.
    - `is_writable` boolean — Whether the user has write access to the language.
  - `admin_rights` string[] — Custom list of user permissions. Possible values are <code>activity</code>,<code>contributors</code>,<code>branches_create</code>,<code>branches_main_modify</code>,<code>branches_merge</code>,<code>custom_status_modify</code>,<code>download</code>,<code>glossary</code>,<code>glossary_edit</code>,<code>glossary_delete</code>,<code>keys</code>,<code>manage_languages</code>,<code>review</code>,<code>screenshots</code>,<code>settings</code>,<code>statistics</code>,<code>tasks</code>,<code>upload</code>. Empty parameter will set default no rights for contributor.

## Response `200`

OK

- object
  - `project_id` string
  - `contributor` Contributors
    - `user_id` number — A unique identifier of the user.
    - `email` string — E-mail associated with this user.
    - `fullname` string — Full name as set by the user.
    - `created_at` string — Date/time at which the user was created.
    - `created_at_timestamp` number — Unix timestamp when the user was created.
    - `is_admin` boolean — Whether the user has Admin access to the project. From the new permission release onwards is deprecated.
    - `is_reviewer` boolean — Whether the user has Reviewer access to the project. From the new permission release onwards is deprecated.
    - `role_id` 1 | 2 | 3 | 4 | 5 — Permission template id attached to the user
    - `languages` object[] — List of languages, accessible to the user.
      - `lang_id` number — Language ID.
      - `lang_iso` string — Language code.
      - `lang_name` string — Language name.
      - `is_writable` boolean — Whether the user has write access to the language.
    - `admin_rights` unknown[] — List of user permissions.
      - unknown

---

[API](https://skmtc.dev/lokalise/apis/default-projects.md) · [All operations](https://skmtc.dev/lokalise/apis/default-projects/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lokalise/default-projects/revisions/7bceba421b12/schema)
