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

# List projects

> Requires the `projects:read` scope (קריאת פרויקטים).



## OpenAPI

````yaml /api-reference/openapi.json get /v1/projects
openapi: 3.1.0
info:
  title: Lancer API
  version: 1.0.0
  description: >-
    The Lancer public REST API. Authenticate with an organization API key
    (Settings → API & Webhooks) as `Authorization: Bearer lk_…` or `X-Api-Key`.
    Every key has scopes; each operation names the one it needs. Money is
    integer agorot (1 ₪ = 100). Lists are paginated with `page` and `pageSize`
    (max 100).
  contact:
    name: Lancer
    url: https://docs.lancer-erp.com
servers:
  - url: https://api.lancer-erp.com/api
    description: Production
security:
  - bearerAuth: []
  - apiKeyHeader: []
tags:
  - name: Leads
    description: >-
      Push leads into the sales pipeline from website forms, ad platforms, n8n
      or Make.
  - name: Clients
    description: Read and create clients (the businesses and people you bill).
  - name: Projects
    description: Read projects, their status and billing.
  - name: Payment requests
    description: Read and create payment requests, optionally with a hosted pay link.
  - name: Payments
    description: Read payments received.
paths:
  /v1/projects:
    get:
      tags:
        - Projects
      summary: List projects
      description: Requires the `projects:read` scope (קריאת פרויקטים).
      operationId: getVProjects
      parameters:
        - name: page
          in: query
          required: false
          schema:
            default: 1
            type: integer
            minimum: 1
            maximum: 9007199254740991
        - name: pageSize
          in: query
          required: false
          schema:
            default: 25
            type: integer
            minimum: 1
            maximum: 100
        - name: clientId
          in: query
          required: false
          schema:
            type: string
            maxLength: 64
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - draft
              - active
              - on_hold
              - completed
              - cancelled
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          minLength: 1
                        clientId:
                          type: string
                          minLength: 1
                        clientName:
                          type: string
                        title:
                          type: string
                        status:
                          type: string
                          enum:
                            - draft
                            - active
                            - on_hold
                            - completed
                            - cancelled
                        billingType:
                          type: string
                          enum:
                            - one_time
                            - retainer
                            - hours_bank
                            - mixed
                        startDate:
                          anyOf:
                            - type: string
                              pattern: ^\d{4}-\d{2}-\d{2}$
                            - type: 'null'
                        dueDate:
                          anyOf:
                            - type: string
                              pattern: ^\d{4}-\d{2}-\d{2}$
                            - type: 'null'
                        budgetAgorot:
                          anyOf:
                            - type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            - type: 'null'
                        retainerAmountAgorot:
                          anyOf:
                            - type: integer
                              minimum: -9007199254740991
                              maximum: 9007199254740991
                            - type: 'null'
                        packageId:
                          anyOf:
                            - type: string
                              minLength: 1
                            - type: 'null'
                        quoteId:
                          anyOf:
                            - type: string
                              minLength: 1
                            - type: 'null'
                        ownerId:
                          anyOf:
                            - type: string
                              minLength: 1
                            - type: 'null'
                        customFields:
                          default: {}
                          type: object
                          propertyNames:
                            type: string
                          additionalProperties:
                            type:
                              - string
                              - number
                              - boolean
                              - 'null'
                        createdAt:
                          type: string
                        updatedAt:
                          type: string
                      required:
                        - id
                        - clientId
                        - clientName
                        - title
                        - status
                        - billingType
                        - startDate
                        - dueDate
                        - budgetAgorot
                        - retainerAmountAgorot
                        - packageId
                        - quoteId
                        - ownerId
                        - customFields
                        - createdAt
                        - updatedAt
                      additionalProperties: false
                  total:
                    type: integer
                    minimum: 0
                    maximum: 9007199254740991
                  page:
                    type: integer
                    minimum: 1
                    maximum: 9007199254740991
                  pageSize:
                    type: integer
                    minimum: 1
                    maximum: 9007199254740991
                required:
                  - items
                  - total
                  - page
                  - pageSize
                additionalProperties: false
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
                required:
                  - error
                additionalProperties: false
        '401':
          description: Missing, unknown or revoked API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
                required:
                  - error
                additionalProperties: false
        '403':
          description: The key lacks the scope (code INSUFFICIENT_SCOPE)
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
                required:
                  - error
                additionalProperties: false
        '404':
          description: Not found in this organization
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
                required:
                  - error
                additionalProperties: false
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
                required:
                  - error
                additionalProperties: false
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: lk_…
    apiKeyHeader:
      type: apiKey
      in: header
      name: X-Api-Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.