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

# 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-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
  - CrowdinProjectInfoResource: 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
      - `type` integer
      - `userId` integer
      - `sourceLanguageId` string
      - `targetLanguageIds` string[]
      - `languageAccessPolicy` string
      - `name` string
      - `cname` string, nullable
      - `identifier` string
      - `description` string
      - `visibility` string
      - `logo` string
      - `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
      - `savingsReportSettingsTemplateId` integer
  - CrowdinStringBasedProjectResource: 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` CrowdinStringBasedProjectSettingsResponse, required
      - `id` integer
      - `type` integer
      - `userId` integer
      - `sourceLanguageId` string
      - `targetLanguageIds` string[]
      - `languageAccessPolicy` string
      - `name` string
      - `cname` string, nullable
      - `identifier` string
      - `description` string
      - `visibility` string
      - `logo` string
      - `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
      - `savingsReportSettingsTemplateId` integer
      - `translateDuplicates` integer
      - `tagsDetection` integer
      - `glossaryAccess` boolean
      - `glossaryAccessOption` 'readOnly' | 'fullAccess' | 'manageDrafts'
      - `isMtAllowed` boolean
      - `taskBasedAccessControl` boolean
      - `hiddenStringsProofreadersAccess` boolean
      - `autoSubstitution` boolean
      - `exportTranslatedOnly` boolean
      - `skipUntranslatedStrings` boolean
      - `exportApprovedOnly` boolean
      - `autoTranslateDialects` boolean
      - `useGlobalTm` boolean
      - `showTmSuggestionsDialects` boolean
      - `tmApprovedSuggestionsOnly` boolean
      - `isSuspended` boolean
      - `qaCheckIsActive` boolean
      - `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
      - `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
      - `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
      - `normalizePlaceholder` boolean
      - `tmPreTranslate` TmPreTranslateProjectSettings: Translates only new strings. Changing this setting or adding a target language does not translate existing strings; use [Apply Auto-Translation](#operation/api.projects.pre-translations.post) for them.
        - `enabled` boolean
        - `autoApproveOption` 'all' | 'perfectMatchOnly' | 'exceptAutoSubstituted' | 'perfectMatchApprovedOnly' | 'none'
        - `minimumMatchRatio` 'perfect' | '100'
      - `mtPreTranslate` MtPreTranslateProjectSettings: Translates only new strings. Changing this setting or adding a target language does not translate existing strings; use [Apply Auto-Translation](#operation/api.projects.pre-translations.post) for them.
        - `enabled` boolean
        - `mts` EngineMtPreTranslateProjectSettings[]
          - `mtId` integer
          - `languageIds` string[]: Specify an array of languageIds to use specific languages, or use the string `all` to include all supported languages. Retrieve languageIds via the [List Supported Languages](#operation/api.languages.getMany) endpoint
      - `aiPreTranslate` AiPreTranslateProjectSettings: Translates only new strings. Changing this setting or adding a target language does not translate existing strings; use [Apply Auto-Translation](#operation/api.projects.pre-translations.post) for them.
        - `enabled` boolean
        - `aiPrompts` PromptAiPreTranslateProjectSettings[]
          - `aiPromptId` integer: AI Prompt Identifier. Get via [List AI Prompts](#operation/api.ai.prompts.getMany)
          - `languageIds` string[]: Specify an array of languageIds to use specific languages, or use the string `all` to include all supported languages. Retrieve languageIds via the [List Supported Languages](#operation/api.languages.getMany) endpoint
      - `preTranslationAiPromptId` integer, nullable
      - `editorSuggestionAiPromptId` 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

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