---
title: "Add Vote"
method: POST
path: "/projects/{projectId}/votes"
tags: ["String/Asset Translations"]
---

# Add Vote

`POST /projects/{projectId}/votes`

## Request

- Base URL: `https://api.crowdin.com/api/v2`
- URL: `https://api.crowdin.com/api/v2/projects/{projectId}/votes`
- Auth: none declared
- TypeScript: <https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/docs/projects/:projectId/votes/post.ts> (a function with typed inputs; its response is checked against the schema)

**Required scopes:** `project.translation` (Read and Write).

## Path parameters

- `projectId` integer, required

## Request body

- TranslationVoteCreateForm
  - `mark` 'up' | 'down', required: Vote type: * 'up' — upvote translation * 'down' — downvote translation
  - `translationId` integer, required: Translation Identifier. Get via [List String Translations](#operation/api.projects.translations.getMany)

## Response `201`

Vote was successfully added

- TranslationVoteResource: Base schema of resource container. Container is a wrapper object that contains payload in required `data` property and provides space for adding any other metadata.
  - `data` Vote, required
    - `id` integer: Vote Identifier
    - `user` object: User
      - `id` integer
      - `username` string
      - `fullName` string
      - `avatarUrl` string
    - `translationId` integer: Translation Identifier
    - `votedAt` string, date-time: Vote created date
    - `mark` string: Vote action

## Other responses

- `400`: Invalid Request Parameters
- `401`: Unauthorized
- `402`: Payment required
- `403`: Forbidden
- `404`: Project or translation with specified id was not found
- `405`: Method Not Allowed
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2.md) - [All operations](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/revisions/dc68744c5384?raw)
