> ## Documentation Index
> Fetch the complete documentation index at: https://developers.phrase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List projects

> 
API call to retrieve a paginated list of projects. Contains a subset of information contained in
[Get project](../project/get-project) API call.

Utilize the query parameters below to refine the search criteria:

- **name** - The full project name or a portion of it. For instance, using `name=GUI` or `name=02` will find projects
named `GUI02`.
- **clientId** - The client's ID within the system, not interchangeable with its UID.
- **clientName** - The complete or partial name of the client. For example, using `clientName=GUI` or `clientName=02`
will find projects associated with the client `GUI02`.
- **businessUnitId** - The business unit's ID within the system, not interchangeable with its UID.
- **businessUnitName** - The complete or partial name of the business unit. For instance, using `businessUnitName=GUI`
or `businessUnitName=02` will find projects linked to the business unit `GUI02`.
- **statuses** - A list of project statuses. When adding multiple statuses, include each as a dedicated query
parameter, e.g., `statuses=ASSIGNED&statuses=COMPLETED`.
- **domainId** - The domain's ID within the system, not interchangeable with its UID.
- **domainName** - The complete or partial name of the domain. Using `domainName=GUI` or `domainName=02` will find
projects associated with the domain `GUI02`.
- **subDomainId** - The subdomain's ID within the system, not interchangeable with its UID.
- **subDomainName** - The complete or partial name of the subdomain. For example, using `subDomainName=GUI` or
`subDomainName=02` will find projects linked to the subdomain `GUI02`.
- **costCenterId** - The cost center's ID within the system, not interchangeable with its UID.
- **costCenterName** - The complete or partial name of the cost center. For instance, using `costCenterName=GUI` or
`costCenterName=02` will find projects associated with the cost center `GUI02`.
- **dueInHours** - Filter for jobs with due dates less than or equal to the specified number of hours.
- **createdInLastHours** - Filter for jobs created within the specified number of hours.
- **ownerId** - The user ID who owns the project within the system, not interchangeable with its UID.
- **jobStatuses** - A list of statuses for jobs within the projects. Include each status as a dedicated query parameter,
e.g., `jobStatuses=ASSIGNED&jobStatuses=COMPLETED`.
- **jobStatusGroup** - The name of the status group used to filter projects containing at least one job with the
specified status, similar to the status filter in the Projects list for a Linguist user.
- **buyerId** - The Buyer's ID.
- **pageNumber** - Indicates the desired page number (zero-based) to retrieve. The total number of pages is returned in
the `totalPages` field within each response.
- **pageSize** - Indicates the page size, affecting the `totalPages` retrieved in each response and potentially
influencing the number of iterations needed to obtain all projects.
- **nameOrInternalId** - Specify either the project name or Internal ID (the sequence number in the project list
displayed in the UI).
- **includeArchived** - A boolean parameter to include archived projects in the search.
- **archivedOnly** - A boolean search indicating whether only archived projects should be searched.




## OpenAPI

````yaml /openapi/phrase-tms-latest.json get /api2/v1/projects
openapi: 3.0.0
info:
  description: |-
    Welcome to Phrase's TMS API documentation. 

     Please visit our [help center](https://support.phrase.com/hc/en-us/sections/5709662083612) for more information about the APIs. 

     If you have any questions, please contact [Support](https://support.phrase.com/hc/requests/new). 

     Please, include the `User-Agent` header with the name of your application or project. It might be a good idea to include some sort of contact information as well, so that we can get in touch if necessary. Examples of excellent `User-Agent` headers:
     > User-Agent: Example mobile app (example@phrase.com) <br/> User-Agent: ACME Inc Java 1.8 Client (http://acmeinc.com/contact)
  version: Latest
  title: Phrase TMS API
servers:
  - url: https://cloud.memsource.com/web
security:
  - ApiToken: []
  - OAuth2: []
tags:
  - name: Additional Workflow Step
  - name: Analysis
  - name: Async Request
  - name: Authentication
  - name: Automations
  - name: Bilingual File
  - name: Business Unit
  - name: Buyer
  - name: Client
  - name: Connector
  - name: Conversations
  - name: Cost Center
  - name: Custom Fields
  - name: Custom File Type
  - name: Domain
  - name: Due Date Scheme
  - name: Email Template
  - name: File
  - name: Glossary
  - name: Import settings
  - name: Job
  - name: Language AI
  - name: Language Assets
  - name: Language Quality Assessment
  - name: Machine Translation
  - name: Machine Translation Settings
  - name: Mapping
  - name: Net Rate Scheme
  - name: Notifications
  - name: Price List
  - name: Project
  - name: Project Template
  - name: Provider
  - name: Quality Assurance
  - name: Quality Profile
  - name: Quote
  - name: Reference File
  - name: SCIM
  - name: Segment
  - name: Segmentation Rules
  - name: Service
  - name: Spell Check
  - name: SubDomain
  - name: Supported Languages
  - name: Term Base
  - name: Translation
  - name: Translation Memory
  - name: User
  - name: Vendor
  - name: Webhook
  - name: Workflow Step
  - name: Workflow changes
  - name: XML Assistant
paths:
  /api2/v1/projects:
    get:
      tags:
        - Project
      summary: List projects
      description: >

        API call to retrieve a paginated list of projects. Contains a subset of
        information contained in

        [Get project](../project/get-project) API call.


        Utilize the query parameters below to refine the search criteria:


        - **name** - The full project name or a portion of it. For instance,
        using `name=GUI` or `name=02` will find projects

        named `GUI02`.

        - **clientId** - The client's ID within the system, not interchangeable
        with its UID.

        - **clientName** - The complete or partial name of the client. For
        example, using `clientName=GUI` or `clientName=02`

        will find projects associated with the client `GUI02`.

        - **businessUnitId** - The business unit's ID within the system, not
        interchangeable with its UID.

        - **businessUnitName** - The complete or partial name of the business
        unit. For instance, using `businessUnitName=GUI`

        or `businessUnitName=02` will find projects linked to the business unit
        `GUI02`.

        - **statuses** - A list of project statuses. When adding multiple
        statuses, include each as a dedicated query

        parameter, e.g., `statuses=ASSIGNED&statuses=COMPLETED`.

        - **domainId** - The domain's ID within the system, not interchangeable
        with its UID.

        - **domainName** - The complete or partial name of the domain. Using
        `domainName=GUI` or `domainName=02` will find

        projects associated with the domain `GUI02`.

        - **subDomainId** - The subdomain's ID within the system, not
        interchangeable with its UID.

        - **subDomainName** - The complete or partial name of the subdomain. For
        example, using `subDomainName=GUI` or

        `subDomainName=02` will find projects linked to the subdomain `GUI02`.

        - **costCenterId** - The cost center's ID within the system, not
        interchangeable with its UID.

        - **costCenterName** - The complete or partial name of the cost center.
        For instance, using `costCenterName=GUI` or

        `costCenterName=02` will find projects associated with the cost center
        `GUI02`.

        - **dueInHours** - Filter for jobs with due dates less than or equal to
        the specified number of hours.

        - **createdInLastHours** - Filter for jobs created within the specified
        number of hours.

        - **ownerId** - The user ID who owns the project within the system, not
        interchangeable with its UID.

        - **jobStatuses** - A list of statuses for jobs within the projects.
        Include each status as a dedicated query parameter,

        e.g., `jobStatuses=ASSIGNED&jobStatuses=COMPLETED`.

        - **jobStatusGroup** - The name of the status group used to filter
        projects containing at least one job with the

        specified status, similar to the status filter in the Projects list for
        a Linguist user.

        - **buyerId** - The Buyer's ID.

        - **pageNumber** - Indicates the desired page number (zero-based) to
        retrieve. The total number of pages is returned in

        the `totalPages` field within each response.

        - **pageSize** - Indicates the page size, affecting the `totalPages`
        retrieved in each response and potentially

        influencing the number of iterations needed to obtain all projects.

        - **nameOrInternalId** - Specify either the project name or Internal ID
        (the sequence number in the project list

        displayed in the UI).

        - **includeArchived** - A boolean parameter to include archived projects
        in the search.

        - **archivedOnly** - A boolean search indicating whether only archived
        projects should be searched.
      operationId: listProjects
      parameters:
        - name: name
          in: query
          required: false
          schema:
            type: string
        - name: clientId
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: clientName
          in: query
          required: false
          schema:
            type: string
        - name: businessUnitId
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: businessUnitName
          in: query
          required: false
          schema:
            type: string
        - name: statuses
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - NEW
                - ASSIGNED
                - COMPLETED
                - ACCEPTED_BY_VENDOR
                - DECLINED_BY_VENDOR
                - COMPLETED_BY_VENDOR
                - CANCELLED
        - name: targetLangs
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: domainId
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: domainName
          in: query
          required: false
          schema:
            type: string
        - name: subDomainId
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: subDomainName
          in: query
          required: false
          schema:
            type: string
        - name: costCenterId
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: costCenterName
          in: query
          required: false
          schema:
            type: string
        - name: dueInHours
          in: query
          description: '-1 for projects that are overdue'
          required: false
          schema:
            type: integer
            format: int32
            minimum: -1
        - name: createdInLastHours
          in: query
          required: false
          schema:
            type: integer
            format: int32
            minimum: 0
        - name: sourceLangs
          in: query
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
        - name: ownerId
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: jobStatuses
          in: query
          description: Allowed for linguists only
          required: false
          explode: true
          schema:
            type: array
            items:
              type: string
              enum:
                - NEW
                - ACCEPTED
                - DECLINED
                - DELIVERED
                - EMAILED
                - COMPLETED
                - CANCELLED
        - name: jobStatusGroup
          in: query
          description: Allowed for linguists only
          required: false
          schema:
            type: string
            enum:
              - NEW
              - ACCEPTED
              - COMPLETED
        - name: buyerId
          in: query
          required: false
          schema:
            type: integer
            format: int64
        - name: pageNumber
          in: query
          description: Page number, starting with 0, default 0
          required: false
          schema:
            type: integer
            format: int32
            minimum: 0
            default: 0
        - name: pageSize
          in: query
          description: Page size, accepts values between 1 and 50, default 50
          required: false
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 50
            default: 50
        - name: nameOrInternalId
          in: query
          description: Name or internal ID of project
          required: false
          schema:
            type: string
        - name: includeArchived
          in: query
          description: List also archived projects
          required: false
          schema:
            type: boolean
            default: false
        - name: archivedOnly
          in: query
          description: List only archived projects, regardless of `includeArchived`
          required: false
          schema:
            type: boolean
            default: false
        - name: sort
          in: query
          required: false
          schema:
            type: string
            enum:
              - ID
              - INTERNAL_ID
              - NAME
              - DATE_CREATED
              - DATE_ARCHIVED
            default: ID
        - name: order
          in: query
          required: false
          schema:
            type: string
            enum:
              - ASC
              - DESC
            default: ASC
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDtoAbstractProjectDtoV1'
        '400':
          description: Bad request
        '401':
          description: Not authorized
        '403':
          description: Forbidden
        '404':
          description: Resource not found
        '405':
          description: Method not allowed
        '408':
          description: Timeout
        '410':
          description: Gone
        '415':
          description: Unsupported media type
        '429':
          description: Too many requests
        '500':
          description: Internal server error
        '501':
          description: Not implemented
components:
  schemas:
    PageDtoAbstractProjectDtoV1:
      type: object
      properties:
        content:
          type: array
          items:
            $ref: '#/components/schemas/AbstractProjectDtoV1'
        numberOfElements:
          type: integer
          format: int32
        pageNumber:
          type: integer
          format: int32
        pageSize:
          type: integer
          format: int32
        sort:
          $ref: '#/components/schemas/Sort'
        totalElements:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
    AbstractProjectDtoV1:
      type: object
      required:
        - userRole
      discriminator:
        propertyName: userRole
      properties:
        dateCreated:
          type: string
          format: date-time
        domain:
          $ref: '#/components/schemas/DomainReferenceV1'
        id:
          type: string
        internalId:
          type: integer
          format: int32
        mtSettingsPerLanguageList:
          type: array
          items:
            $ref: '#/components/schemas/MTSettingsPerLanguageReferenceV1'
        name:
          type: string
        owner:
          $ref: '#/components/schemas/UserReferenceV1'
        references:
          type: array
          items:
            $ref: '#/components/schemas/ReferenceFileReferenceV1'
        sourceLang:
          type: string
        subDomain:
          $ref: '#/components/schemas/SubDomainReferenceV1'
        targetLangs:
          type: array
          uniqueItems: true
          items:
            type: string
        uid:
          type: string
        userRole:
          type: string
          description: Response differs based on user's role
          readOnly: true
      description: Base projectDto
    Sort:
      type: object
      properties:
        orders:
          type: array
          items:
            $ref: '#/components/schemas/SortOrder'
    DomainReferenceV1:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        uid:
          type: string
    MTSettingsPerLanguageReferenceV1:
      type: object
      required:
        - targetLang
      properties:
        machineTranslateSettings:
          $ref: '#/components/schemas/MachineTranslateSettingsReferenceV1'
        targetLang:
          type: string
          description: mtSettings is set for whole project if targetLang == null
    UserReferenceV1:
      type: object
      properties:
        email:
          type: string
          description: Email address of the user
        firstName:
          type: string
          description: First name of the user
        id:
          type: string
          description: Unique numeric identifier of the user
        lastName:
          type: string
          description: Last name of the user
        role:
          type: string
          description: Role of the user in the organization
          enum:
            - SYS_ADMIN
            - SYS_ADMIN_READ
            - ADMIN
            - PROJECT_MANAGER
            - LINGUIST
            - GUEST
            - SUBMITTER
            - PORTAL_MEMBER
            - BOT
        uid:
          type: string
          description: Unique string identifier of the user
        userName:
          type: string
          description: Username of the user
    ReferenceFileReferenceV1:
      type: object
      properties:
        createdBy:
          $ref: '#/components/schemas/UserReferenceV1'
        dateCreated:
          type: string
          format: date-time
        filename:
          type: string
          description: Filename of the reference file. Null for note-only references.
        id:
          type: string
        note:
          type: string
          description: Text note attached to the reference. Null if no note was provided.
        uid:
          type: string
    SubDomainReferenceV1:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        uid:
          type: string
    SortOrder:
      type: object
      properties:
        direction:
          type: string
          enum:
            - ASC
            - DESC
        property:
          type: string
    MachineTranslateSettingsReferenceV1:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
        uid:
          type: string
  securitySchemes:
    ApiToken:
      description: >-
        Get a token from `auth/login` [endpoint](#operation/login) and then pass
        it in the `Authorization` HTTP header in every subsequent API call. For
        more information visit our [help
        center](https://support.phrase.com/hc/en-us/articles/5709662181404-API-Authentication-TMS-#token-0-0).
      type: apiKey
      name: Authorization
      in: header
    OAuth2:
      description: >-
        A standard OAuth 2.0 authorization code flow. For more information visit
        our [help
        center](https://support.phrase.com/hc/en-us/articles/5709662181404-API-Authentication-TMS-#oauth-2-0-0-1).
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://cloud.memsource.com/web/oauth/authorize
          tokenUrl: https://cloud.memsource.com/web/oauth/token
          scopes: {}

````