---
title: "Get Project Task"
method: GET
path: "/projects/{projectId}/tasks/{taskId}"
tags: ["Tasks"]
---

# Get Project Task

`GET /projects/{projectId}/tasks/{taskId}`

## Request

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

**Required scopes:** `project.task` (Read only).

## Path parameters

- `projectId` integer, required
- `taskId` integer, required

## Response `200`

Task data

- CrowdinStringBasedTaskResource: 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` CrowdinStringBasedTask, required
    - `id` integer
    - `projectId` integer
    - `creatorId` integer
    - `type` integer
    - `status` 'todo' | 'in_progress' | 'done' | 'closed'
    - `title` string
    - `batchId` integer
    - `assignees` TaskAssignee[]
      - `id` integer
      - `username` string
      - `fullName` string
      - `avatarUrl` string
      - `wordsCount` integer
      - `wordsLeft` integer
      - `timeSpent` integer
    - `assignedTeams` TaskAssignedTeam[]
      - `id` integer
      - `wordsCount` integer
      - `timeSpent` integer
    - `progress` TaskProgress
      - `total` integer
      - `done` integer
      - `percent` integer
    - `translateProgress` TaskTranslateProgress
      - `total` integer
      - `done` integer
      - `percent` integer
    - `sourceLanguageId` string
    - `targetLanguageId` string
    - `description` string
    - `translationUrl` string
    - `webUrl` string
    - `wordsCount` integer: Number of words currently in the task
    - `originalWordsCount` integer: Number of words when the task was created. Preserved when source strings are later removed.
    - `commentsCount` integer
    - `deadline` string, date-time: in UTC
    - `startedAt` string, date-time: in UTC
    - `resolvedAt` string, date-time: in UTC
    - `timeRange` string
    - `translationsUpdatedTimeRange` string
    - `workflowStepId` integer
    - `buyUrl` string
    - `createdAt` string, date-time: in UTC
    - `updatedAt` string, date-time: in UTC
    - `sourceLanguage` Language: Class LanguageResponseModel
      - `id` string
      - `name` string
      - `editorCode` string: - alias of internal code
      - `twoLettersCode` string: alias of iso6391 code
      - `threeLettersCode` string: alias of iso6393 code
      - `locale` string
      - `androidCode` string
      - `bcp47Code` string
      - `osxCode` string
      - `osxLocale` string
      - `pluralCategoryNames` string[]: plural category names
      - `pluralRules` string: string with plural rules
      - `pluralExamples` string[]: plural examples array
      - `textDirection` 'ltr' | 'rtl'
      - `dialectOf` string, nullable
    - `targetLanguages` Language[]
      - `id` string
      - `name` string
      - `editorCode` string: - alias of internal code
      - `twoLettersCode` string: alias of iso6391 code
      - `threeLettersCode` string: alias of iso6393 code
      - `locale` string
      - `androidCode` string
      - `bcp47Code` string
      - `osxCode` string
      - `osxLocale` string
      - `pluralCategoryNames` string[]: plural category names
      - `pluralRules` string: string with plural rules
      - `pluralExamples` string[]: plural examples array
      - `textDirection` 'ltr' | 'rtl'
      - `dialectOf` string, nullable
    - `labelIds` integer[]
    - `labelMatchRule` 'all' | 'any', nullable
    - `excludeLabelIds` integer[]
    - `excludeLabelMatchRule` 'all' | 'any', nullable
    - `precedingTaskId` integer
    - `estimatedCost` EstimatedTaskCost
      - `cost` number, float
      - `date` string, date-time: in UTC
      - `currency` 'USD' | 'EUR' | 'JPY' | 'GBP' | 'AUD' | 'CAD' | 'CHF' | 'CNY' | 'SEK' | 'NZD' | 'MXN' | 'SGD' | 'HKD' | 'NOK' | 'KRW' | 'TRY' | 'RUB' | 'INR' | 'BRL' | 'ZAR' | 'GEL' | 'UAH' | 'DDK' | 'PLN'
    - `actualCost` ActualTaskCost
      - `cost` number, float
      - `date` string, date-time: in UTC
      - `currency` 'USD' | 'EUR' | 'JPY' | 'GBP' | 'AUD' | 'CAD' | 'CHF' | 'CNY' | 'SEK' | 'NZD' | 'MXN' | 'SGD' | 'HKD' | 'NOK' | 'KRW' | 'TRY' | 'RUB' | 'INR' | 'BRL' | 'ZAR' | 'GEL' | 'UAH' | 'DDK' | 'PLN'
    - `generateCostEstimate` boolean, nullable
    - `generateTranslationCost` boolean, nullable
    - `reportSettingsTemplateId` integer, nullable
    - `vendor` string
    - `branchIds` integer[]

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Project or task with specified id was not found
- `405`: Method Not Allowed
- `503`: Service Unavailable

---

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