---
title: "List Projects"
method: GET
path: "/projects"
tags: ["Projects and Groups"]
---

# List Projects

`GET /projects`

## Request

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

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

## Query parameters

- `orderBy` 'id' | 'name' | 'identifier' | 'description' | 'createdAt' | 'updatedAt' | 'lastActivity'
- `filter` string
- `groupId` integer
- `hasManagerAccess` 1 | 0
- `limit` integer
- `offset` integer

## Response `200`

Projects list

- EnterpriseFileBasedProjectCollectionResource: 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` union[], required
    - union
      - object: 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
              - …
          - `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
              - …
          - `assignedGlossaries` integer[]
          - `assignedStyleGuides` integer[]
          - `tmPenalties` object
            - `autoSubstitution` integer
            - `tmPriority` object
              - …
            - `multipleTranslations` integer
            - `timeSinceLastUsage` object
              - …
            - `timeSinceLastModified` object
              - …
          - `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
      - object: 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)
  - `pagination` Pagination: Pagination Response Model
    - `offset` integer
    - `limit` integer

## Other responses

- `400`: Invalid Request Parameters
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Group 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)
