---
title: "Get Project"
method: GET
path: "/projects/{projectId}"
tags: ["Projects and Groups"]
---

# Get Project

`GET /projects/{projectId}`

## Request

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

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

## Path parameters

- `projectId` integer, required

## Response `200`

Project data
 * Translators and proofreaders – receive the response `Project Info` (all the project data, that's visible to all the project members within the ui)
 * Project owners, organization admins, managers and developers – receive the response `Project Settings` (all the basic project info plus extended details, including project settings, resources, QA checks, and more)

- union
  - EnterpriseProjectInfoResource: 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` ProjectResponse, required
      - `id` integer
      - `groupId` integer
      - `type` integer
      - `userId` integer
      - `sourceLanguageId` string
      - `targetLanguageIds` string[]
      - `name` string
      - `identifier` string
      - `description` string
      - `logo` string
      - `background` string, nullable
      - `isExternal` boolean
      - `externalType` 'proofread' | 'translate', nullable
      - `externalProjectId` integer, nullable
      - `externalOrganizationId` integer, nullable
      - `workflowId` integer
      - `hasCrowdsourcing` boolean
      - `publicDownloads` boolean, nullable
      - `createdAt` string, date-time, nullable
      - `updatedAt` string, date-time, nullable
      - `lastActivity` string, date-time, nullable
      - `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
      - `webUrl` string
      - `publicUrl` string, nullable: Specify the URL to a crowdsourcing project
      - `savingsReportSettingsTemplateId` integer
      - `fields` EnterpriseAdditionalFields: Fields. Keys get via [List Fields](#operation/api.fields.getMany)
  - EnterpriseFileBasedProjectResource: 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` EnterpriseFileBasedProjectResponse, required
      - `id` integer
      - `groupId` integer
      - `type` integer
      - `userId` integer
      - `sourceLanguageId` string
      - `targetLanguageIds` string[]
      - `name` string
      - `identifier` string
      - `description` string
      - `logo` string
      - `background` string, nullable
      - `isExternal` boolean
      - `externalType` 'proofread' | 'translate', nullable
      - `externalProjectId` integer, nullable
      - `externalOrganizationId` integer, nullable
      - `workflowId` integer
      - `hasCrowdsourcing` boolean
      - `publicDownloads` boolean, nullable
      - `createdAt` string, date-time, nullable
      - `updatedAt` string, date-time, nullable
      - `lastActivity` string, date-time, nullable
      - `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
      - `webUrl` string
      - `publicUrl` string, nullable: Specify the URL to a crowdsourcing project
      - `savingsReportSettingsTemplateId` integer
      - `fields` EnterpriseAdditionalFields: Fields. Keys get via [List Fields](#operation/api.fields.getMany)
      - `clientOrganizationId` integer
      - `translateDuplicates` integer
      - `tagsDetection` integer
      - `glossaryAccess` boolean
      - `glossaryAccessOption` 'readOnly' | 'fullAccess' | 'manageDrafts'
      - `isMtAllowed` boolean
      - `taskBasedAccessControl` boolean
      - `taskReviewerIds` integer[]
      - `hiddenStringsProofreadersAccess` boolean
      - `autoSubstitution` boolean
      - `showTmSuggestionsDialects` boolean
      - `tmApprovedSuggestionsOnly` boolean
      - `exportTranslatedOnly` boolean
      - `skipUntranslatedStrings` boolean
      - `exportWithMinApprovalsCount` integer
      - `exportStringsThatPassedWorkflow` boolean
      - `autoTranslateDialects` boolean
      - `normalizePlaceholder` boolean
      - `isSuspended` boolean
      - `qaCheckIsActive` boolean
      - `qaApprovalsCount` integer
      - `qaCheckCategories` QaCheckCategories
        - `empty` boolean
        - `size` boolean
        - `tags` boolean
        - `spaces` boolean
        - `variables` boolean
        - `punctuation` boolean
        - `symbolRegister` boolean
        - `specialSymbols` boolean
        - `wrongTranslation` boolean
        - `spellcheck` boolean
        - `icu` boolean
        - `terms` boolean
        - `duplicate` boolean
        - `ftl` boolean
        - `android` boolean
        - `numbers` boolean
        - `ai` boolean
        - `outdated` boolean
        - `mdx` boolean
        - `unifiedPlaceholders` boolean
      - `qaChecksIgnorableCategories` QaChecksIgnorableCategories
        - `empty` boolean
        - `size` boolean
        - `tags` boolean
        - `spaces` boolean
        - `variables` boolean
        - `punctuation` boolean
        - `symbolRegister` boolean
        - `specialSymbols` boolean
        - `wrongTranslation` boolean
        - `spellcheck` boolean
        - `icu` boolean
        - `terms` boolean
        - `duplicate` boolean
        - `ftl` boolean
        - `android` boolean
        - `numbers` boolean
        - `ai` boolean
        - `outdated` boolean
        - `mdx` boolean
        - `unifiedPlaceholders` boolean
      - `customQaCheckIds` integer[]
      - `externalQaCheckIds` integer[]
      - `externalQaChecksIgnorable` object: External QA check IDs mapped to whether a failure of the check can be ignored. `false` blocks saving a translation when the check fails, and only a synchronous check can be `false`. A check without an entry can be ignored. The entry is kept while the check is not enabled in `externalQaCheckIds`
      - `languageMapping` object
        - `uk` LanguageMappingUk
          - `name` string
          - `two_letters_code` string
          - `three_letters_code` string
          - `locale` string
          - `locale_with_underscore` string
          - `android_code` string
          - `osx_code` string
          - `osx_locale` string
      - `delayedWorkflowStart` boolean
      - `notificationSettings` object
        - `translatorNewStrings` boolean: Notify translators about new strings
        - `managerNewStrings` boolean: Notify project managers about new strings
        - `managerLanguageCompleted` boolean: Notify project managers about language translation/validation completion
      - `defaultTmId` integer
      - `defaultGlossaryId` integer
      - `assignedTms` object
        - `1` AssignedTm
          - `priority` integer
      - `assignedGlossaries` integer[]
      - `assignedStyleGuides` integer[]
      - `tmPenalties` object
        - `autoSubstitution` integer
        - `tmPriority` object
          - `priority` integer
          - `penalty` integer
        - `multipleTranslations` integer
        - `timeSinceLastUsage` object
          - `months` integer
          - `penalty` integer
        - `timeSinceLastModified` object
          - `months` integer
          - `penalty` integer
      - `preTranslationAiPromptId` integer, nullable
      - `editorSuggestionAiPromptId` integer, nullable
      - `alignmentActionAiPromptId` integer, nullable
      - `qaCheckActionAiPromptId` integer, nullable
      - `contextReviewAiPromptId` integer, nullable
      - `inContext` boolean
      - `inContextProcessHiddenStrings` boolean
      - `inContextPseudoLanguageId` string, nullable
      - `inContextPseudoLanguage` LanguageUk
        - `id` string
        - `name` string
        - `editorCode` string
        - `twoLettersCode` string
        - `threeLettersCode` string
        - `locale` string
        - `androidCode` string
        - `osxCode` string
        - `osxLocale` string
        - `pluralCategoryNames` string[]
        - `pluralRules` string
        - `pluralExamples` string[]
        - `textDirection` string
        - `dialectOf` string, nullable
      - `saveMetaInfoInSource` boolean
      - `skipUntranslatedFiles` boolean
      - `tmContextType` string

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Project with specified id was not found
- `405`: Method Not Allowed

---

[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)
