---
title: "POST /users/me/contributor_ratings/{poll_name}/"
method: POST
path: "/users/me/contributor_ratings/{poll_name}/"
tags: ["users"]
---

# POST /users/me/contributor_ratings/{poll_name}/

`POST /users/me/contributor_ratings/{poll_name}/`

## Request

- The document declares no server URL.
- Auth: OAuth 2
  - Password
  - Token URL: `http://127.0.0.1:8000/o/token/` scopes: `read write groups`

Initialize the rating object for the current user about a specific video in a given poll, with optional visibility settings.

## Path parameters

- `poll_name` string, required

## Request body

- ContributorRatingCreateRequest
  - `uid` string, required
  - `is_public` boolean: Should the rating be public?
  - `entity_seen` boolean: Has the user already seen, or read, or understood the entity?

## Response `201`

- ContributorRatingCreate
  - `entity` EntityNoExtraField, required: An Entity serializer that doesn't include extra fields.
    - `uid` string, required: A unique identifier, build with a namespace and an external id.
    - `type` 'video' | 'candidate_fr_2022', required: * `video` - Video * `candidate_fr_2022` - Candidate (FR 2022)
    - `metadata` object, required
  - `entity_contexts` EntityContext[], required
    - `origin` 'ASSOCIATION' | 'CONTRIBUTORS': * `ASSOCIATION` - Association * `CONTRIBUTORS` - Contributors
    - `unsafe` boolean: If True, this context will make the targeted entities unsafe.
    - `text` string, required
    - `created_at` string, date-time, required
  - `individual_rating` ExtendedInvididualRating, required
    - `is_public` boolean, required: Should the rating be public?
    - `entity_seen` boolean, required: Has the user already seen, or read, or understood the entity?
    - `n_comparisons` integer, required
    - `criteria_scores` ContributorCriteriaScore[], required
      - `criteria` string, required: Name of the criteria
      - `score` number, double: Score for the given criteria, after individual and poll scalings applied
      - `uncertainty` number, double: Uncertainty about the criteria score
    - `last_compared_at` string, date-time, nullable, required
  - `collective_rating` ExtendedCollectiveRating, required
    - `n_comparisons` integer, required: Total number of pairwise comparisons for this entityfrom certified contributors
    - `n_contributors` integer, required: Total number of certified contributors who rated the entity
    - `tournesol_score` number, double, nullable, required: The aggregated score of the main criterion for all users, in a specific poll.
    - `unsafe` UnsafeStatus, required
      - `status` boolean, required
      - `reasons` ReasonsEnum[], required
    - `criteria_scores` EntityCriteriaScore[], required
      - `criteria` string, required: Name of the criteria
      - `score` number, double: Score of the given criteria

## Changes

- **2025-11-28** `b3077f24157d`: 2 info
  - added `#/components/schemas/ExtendedCollectiveRating` to the `collective_rating` response property `allOf` list for the response status `201`
  - removed `#/components/schemas/CollectiveRating` from the `collective_rating` response property `allOf` list for the response status `201`
- **2025-08-27** `9aeec7654cdd`: 3 info
  - added the new optional request property `entity_seen` (media type: application/json)
  - added the new optional request property `entity_seen` (media type: application/x-www-form-urlencoded)
  - added the new optional request property `entity_seen` (media type: multipart/form-data)
- **2025-08-19** `09b6010f79c7`: 1 info
  - added the required property `individual_rating/allOf[#/components/schemas/ExtendedInvididualRating]/entity_seen` to the response with the `201` status
- **2023-11-30** `33b072a42c75`: 1 info
  - added the required property `entity_contexts` to the response with the `201` status
- **2023-11-30** `834066e5d795`: 1 warning
  - added the new `moderation_by_contributors` enum value to the `collective_rating/allOf[#/components/schemas/CollectiveRating]/unsafe/allOf[#/components/schemas/UnsafeStatus]/reasons/items/` response property for the response status `201`

[Operation history](https://skmtc.dev/tournesol-app/apis/tournesol-api/changes/users/me/contributor_ratings/:poll_name/post.md)

---

[API](https://skmtc.dev/tournesol-app/apis/tournesol-api.md) - [All operations](https://skmtc.dev/tournesol-app/apis/tournesol-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tournesol-app/apis/tournesol-api/revisions/96c8c62ad972?raw)
