> ## Documentation Index
> Fetch the complete documentation index at: https://productlane.mintlify.site/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# List projects

> List roadmap projects in the workspace. Cursor-paginated. Requires the projects:read scope.



## OpenAPI

````yaml get /projects
openapi: 3.0.3
info:
  title: Productlane API
  description: Productlane API v2.
  version: 2.0.0
servers:
  - url: https://productlane.com/api/v2
security: []
paths:
  /projects:
    get:
      tags:
        - projects
      summary: List projects
      description: >-
        List roadmap projects in the workspace. Cursor-paginated. Requires the
        projects:read scope.
      operationId: projects-list
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 200
        - name: cursor
          in: query
          required: false
          schema:
            type: string
        - name: state
          in: query
          required: false
          schema:
            type: string
            enum:
              - backlog
              - planned
              - started
              - completed
              - canceled
          description: >-
            Lifecycle category. Distinct from `linear_status_id`, which selects
            a specific status within the category.
        - name: name_contains
          in: query
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 255
        - name: linear_team_id
          in: query
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 128
          description: Linear team id. Matches projects pinned to that team.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            enum:
              - created_at
              - total_score
            default: created_at
          description: >-
            `created_at` (newest first) or `total_score` (highest demand first).
            Both break ties by id.
        - name: created_after
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: created_before
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: updated_after
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: updated_before
          in: query
          required: false
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        name:
                          type: string
                        description:
                          type: string
                          nullable: true
                        color:
                          type: string
                          nullable: true
                        icon:
                          type: string
                          nullable: true
                          description: >-
                            Name of a Nucleo icon (PascalCase, e.g. `Notepad`,
                            `Atom`). Must be a valid icon from
                            https://nucleoapp.com - unknown names will not
                            render in the dashboard or portal.
                        state:
                          type: string
                          nullable: true
                        progress:
                          type: number
                          nullable: true
                        sort_order:
                          type: number
                        total_score:
                          type: number
                        created_at:
                          type: string
                        updated_at:
                          type: string
                        linear_project_id:
                          type: string
                          nullable: true
                        linear_team_ids:
                          type: array
                          items:
                            type: string
                        linear_team_names:
                          type: array
                          items:
                            type: string
                      required:
                        - id
                        - name
                        - description
                        - color
                        - icon
                        - state
                        - progress
                        - sort_order
                        - total_score
                        - created_at
                        - updated_at
                        - linear_project_id
                        - linear_team_ids
                        - linear_team_names
                      additionalProperties: false
                  page:
                    type: object
                    properties:
                      cursor:
                        type: string
                        nullable: true
                      has_more:
                        type: boolean
                      limit:
                        type: integer
                    required:
                      - cursor
                      - has_more
                      - limit
                    additionalProperties: false
                required:
                  - data
                  - page
                additionalProperties: false
        default:
          $ref: '#/components/responses/error'
      security:
        - Authorization: []
components:
  responses:
    error:
      description: Error response
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
              code:
                type: string
              issues:
                type: array
                items:
                  type: object
                  properties:
                    message:
                      type: string
                  required:
                    - message
                  additionalProperties: false
            required:
              - message
              - code
            additionalProperties: false
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````