---
title: "Update a contributor"
method: PUT
path: "/contributor/{contributor_slug}"
tags: ["Contributors"]
---

# Update a contributor

`PUT /contributor/{contributor_slug}`

Updates the contributor identified by the specified slug.

## Headers

- `Accept` 'application/vnd.Creative Force.v2.3+json' | 'application/vnd.Creative Force.v2.3+xml', required
- `x-api-language` string[]

## Request body

- object
  - `fields` object — Contributor field values keyed by field slug.

## Response `200`

Contributor updated.

- Contributor
  - `entry` object — Entry the contributor is attached to.
    - `slug` string — Short URL-safe identifier for the entry.
    - `link` string, uri — Canonical URL for the entry resource.
    - `title` string — Title of the entry.
  - `created` string, date-time — Date and time when the contributor was created.
  - `fields` object[] — Field values captured for the contributor, one entry per field on the contributor tab.
    - `slug` string — Short URL-safe identifier for the field.
    - `link` string, uri — Canonical URL for the field resource.
    - `label` object — Label of the field, as an HTML fragment. Map keyed by locale code (for example, `en_GB` or `fr_FR`). Keys are drawn from the languages enabled on the account. Values are the translated string.
    - `title` object — Plain-text title of the field. Map keyed by locale code (for example, `en_GB` or `fr_FR`). Keys are drawn from the languages enabled on the account. Values are the translated string.
    - `value` unknown
    - `translated` object — Translated value submitted for the field. Map keyed by locale code (for example, `en_GB` or `fr_FR`). Keys are drawn from the languages enabled on the account. Values are the translated string.
  - `season` object — Season the contributor belongs to.
    - `slug` string — Short URL-safe identifier for the season.
    - `link` string, uri — Canonical URL for the season resource.
    - `name` object — Display name of the season. Map keyed by locale code (for example, `en_GB` or `fr_FR`). Keys are drawn from the languages enabled on the account. Values are the translated string.
  - `slug` string — Short URL-safe identifier for the contributor.
  - `tab` object — Contributor tab the contributor belongs to.
    - `slug` string — Short URL-safe identifier for the tab.
    - `link` string, uri — Canonical URL for the tab resource.
    - `name` object — Display name of the tab. Map keyed by locale code (for example, `en_GB` or `fr_FR`). Keys are drawn from the languages enabled on the account. Values are the translated string.
  - `updated` string, date-time — Date and time when the contributor was last updated.

## Other responses

- `400` — Request was rejected before the endpoint could process it. Common causes: invalid `Accept` header, unsupported `x-api-language` code, empty request body on `POST` / `PUT`, invalid JSON in the request body, or an invalid slug format in a path parameter.
- `401` — Missing `x-api-key` header.
- `403` — Authenticated request denied. Common causes: invalid or unknown API key, suspended account, or `api` feature not enabled for the account.
- `404` — Resource identified by the path slug does not exist. Returned when the slug is well-formed but no record matches it.
- `422` — Request was syntactically valid but could not be processed. Returned in two scenarios: - **Field-level validation failure** — one or more request fields violated the endpoint's validation rules. The body includes an `errors` map keyed by field name with one or more validation messages each. - **Resource-state precondition failure** — the request fields were all valid, but the target resource was in a state that does not permit the requested operation. The body carries only `message` and `status_code`; no `errors` map.
- `429` — Rate limit of 60 requests per minute exceeded.
- `503` — Service is temporarily unavailable due to regional maintenance.

## Changes

- **2026-07-07** (v2) `9b9103538ceb` — 2 info
  - api tag `Contributors` added
  - api tag `Contributor` removed
- **2026-07-01** (v2) `e96a96d4507e` — 8 info
  - added the media type `application/xml` for the response with the status `200`
  - added the media type `application/xml` for the response with the status `400`
  - added the media type `application/xml` for the response with the status `401`
  - added the media type `application/xml` for the response with the status `403`
  - …4 more

[Change history](https://skmtc.dev/tectonic/apis/award-force-api/changes/contributor/:contributor_slug/put.md)

---

[API](https://skmtc.dev/tectonic/apis/award-force-api.md) · [All operations](https://skmtc.dev/tectonic/apis/award-force-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tectonic/award-force-api/revisions/e2511e46f9f2/schema)
