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

# List projects

A scope of work for a client. Contains the top-level information for a project in your workspace.


## OpenAPI

````yaml openapi.json GET /projects
openapi: 3.1.0
info:
  title: Ruddr API
  version: '1.0'
  license:
    name: Proprietary
    url: https://www.ruddr.com/master-subscription-agreement
servers:
  - url: https://www.ruddr.io/api/workspace
security:
  - bearerAuth: []
tags:
  - name: Allocations
    description: Manage resource allocations for scheduling team members to projects.
  - name: Availability Periods
    description: Manage member availability periods for capacity planning.
  - name: Business Units
    description: >-
      Manage business units for organizing invoice settings and grouping clients
      and projects.
  - name: Client Roles
    description: Manage client roles and their billing terms.
  - name: Client Tags
    description: Manage tags for categorizing clients.
  - name: Clients
    description: Manage clients and their billing settings.
  - name: Companies
    description: Manage companies in the CRM pipeline.
  - name: Company Spend Tiers
    description: Manage spend tier classifications for companies.
  - name: Company Types
    description: Manage type classifications for companies.
  - name: Contact Tags
    description: Manage tags for categorizing contacts.
  - name: Contacts
    description: Manage contacts associated with clients, companies, and opportunities.
  - name: Cost Periods
    description: Manage member cost rate periods for profitability tracking.
  - name: Credit Notes
    description: View credit notes issued against invoices.
  - name: Disciplines
    description: Manage disciplines for classifying member skill areas.
  - name: Exchange Rate
    description: Get exchange rates for multi-currency workspaces.
  - name: Exchange Rate Periods
    description: Manage custom exchange rate periods for currency conversion.
  - name: Expense Categories
    description: Manage expense categories for tracking and reporting.
  - name: Expense Items
    description: Manage individual expense line items.
  - name: Expense Reports
    description: Manage expense reports submitted by members.
  - name: Holiday Schedules
    description: Manage holiday schedules for capacity and availability planning.
  - name: Holidays
    description: Manage individual holidays within holiday schedules.
  - name: Industries
    description: Manage industry classifications for clients and companies.
  - name: Invoice Items
    description: Manage invoice line item types for billing.
  - name: Invoices
    description: View invoices and their line items.
  - name: Job Titles
    description: Manage job title classifications for members.
  - name: Locations
    description: Manage office locations for members and projects.
  - name: Member Certifications
    description: Manage certification types that can be assigned to members.
  - name: Member Levels
    description: Manage member level classifications for career tracking.
  - name: Member Tags
    description: Manage tags for categorizing members.
  - name: Members
    description: Manage workspace members and their profiles.
  - name: Opportunities
    description: Manage sales opportunities in the CRM pipeline.
  - name: Opportunity Pipelines
    description: Manage pipelines for tracking opportunity stages.
  - name: Opportunity Lead Sources
    description: Manage lead source classifications for opportunities.
  - name: Opportunity Stages
    description: Manage pipeline stage definitions for opportunities.
  - name: Opportunity Tags
    description: Manage tags for categorizing opportunities.
  - name: Opportunity Types
    description: Manage type classifications for opportunities.
  - name: Payment Methods
    description: Manage payment method options for invoices.
  - name: Payments
    description: View payments received against invoices.
  - name: Pipeline Activities
    description: >-
      Manage pipeline activities associated with companies, contacts, members,
      and opportunities.
  - name: Pipeline Activity Types
    description: Manage activity type classifications for pipeline activities.
  - name: Practices
    description: Manage practice area classifications for organizing projects and members.
  - name: Project Budget Expenses
    description: Manage expense budget line items on projects.
  - name: Project Budget Other Items
    description: Manage other budget line items on projects.
  - name: Project Budget Product Items
    description: Manage product budget line items on projects.
  - name: Project Budget Service Items
    description: Manage additional service budget line items on projects.
  - name: Project Expenses
    description: Manage project-level expense line items.
  - name: Project Groups
    description: View project groups for organizing related projects.
  - name: Project Health Reports
    description: Manage project health status reports.
  - name: Project Invoice Milestones
    description: Manage invoice milestones for fixed-fee project billing.
  - name: Project Members
    description: Manage team member assignments on projects.
  - name: Project Monthly Budget Expenses
    description: Manage monthly expense budget line items on projects.
  - name: Project Monthly Budget Other Items
    description: Manage monthly other budget line items on projects.
  - name: Project Monthly Budget Product Items
    description: Manage monthly product budget line items on projects.
  - name: Project Monthly Budget Service Items
    description: Manage monthly additional service budget line items on projects.
  - name: Project Other Items
    description: Manage project-level other item line items.
  - name: Project Product Items
    description: Manage project-level product line items.
  - name: Project Revenue Adjustments
    description: Manage earned revenue adjustments for projects.
  - name: Project Revenue Recognition Entries
    description: Manage revenue recognition entries for projects.
  - name: Project Roles
    description: Manage roles defined on projects for billing and staffing.
  - name: Project Service Items
    description: Manage project-level additional service line items.
  - name: Project Tags
    description: Manage tags for categorizing projects.
  - name: Project Tasks
    description: Manage tasks on projects for time tracking and planning.
  - name: Project Types
    description: Manage type classifications for projects.
  - name: Projects
    description: Manage projects and their settings.
  - name: Resource Placeholders
    description: Manage placeholder resources for allocation planning.
  - name: Security Roles
    description: View security roles for assigning member permissions.
  - name: Skills
    description: Manage skill classifications for members and resource planning.
  - name: Task Categories
    description: Manage task category classifications for project tasks.
  - name: Task Tags
    description: Manage tags for categorizing project tasks.
  - name: Task Templates
    description: Manage reusable task templates for projects.
  - name: Tax Rates
    description: Manage tax rates for invoicing.
  - name: Time Entries
    description: Manage time entries for tracking hours on projects.
  - name: Time Off Types
    description: Manage time off type classifications.
  - name: Timesheet Attestations
    description: Manage attestation statements members sign when submitting timesheets.
  - name: Timesheets
    description: Manage timesheet submissions for tracking hours across a period.
  - name: Utilization Target Periods
    description: Manage member utilization target periods for capacity planning.
  - name: Workspace Roles
    description: Manage workspace-level roles for billing rate configuration.
paths:
  /projects:
    get:
      tags:
        - Projects
      summary: List projects
      operationId: list-projects
      parameters:
        - $ref: '#/components/parameters/StartingAfter'
        - $ref: '#/components/parameters/EndingBefore'
        - $ref: '#/components/parameters/Limit'
        - name: clientId
          in: query
          description: A client ID (`uuid`) used to filter projects for a specific client.
          schema:
            type: string
        - name: code
          in: query
          description: A project code to filter projects by code.
          schema:
            type: string
        - name: projectTypeId
          in: query
          description: >-
            A project type ID (`uuid`) used to filter projects for a specific
            project type.
          schema:
            type: string
        - name: statusId
          in: query
          description: Filter by project status.
          schema:
            type: string
            enum:
              - tentative
              - not_started
              - in_progress
              - paused
              - completed
              - cancelled
        - name: name
          in: query
          description: >-
            Filter by project `name` when it exactly matches the provided
            keyword.
          schema:
            type: string
        - name: nameContains
          in: query
          description: Filter by project `name` when it contains the provided keyword.
          schema:
            type: string
        - name: nameStartsWith
          in: query
          description: Filter by project `name` when it starts with the provided keyword.
          schema:
            type: string
        - name: nameEndsWith
          in: query
          description: Filter by project `name` when it ends with the provided keyword.
          schema:
            type: string
        - name: poNumber
          in: query
          description: >-
            Filter by PO number when it contains the provided value
            (case-insensitive).
          schema:
            type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    description: The list of results for the current page.
                    items:
                      $ref: '#/components/schemas/Project'
                  hasMore:
                    type: boolean
                    description: Whether there are more results available after this page.
              examples:
                Result:
                  value:
                    results:
                      - id: 572e66b1-60a6-4935-853f-b59b053112e6
                        key: website-redesign
                        name: Website Redesign
                        notes: Full redesign of the public-facing marketing website.
                        statusId: completed
                        start: '2025-03-01'
                        end: '2025-09-30'
                        code: WR-001
                        poNumber: PO-2025-001
                        billingTypeId: fixed
                        isBillable: true
                        currency: USD
                        revenueRecognitionMethod: invoiced
                        fixedFee: null
                        fixedRecurringFee: null
                        fixedRecurringStart: null
                        fixedRecurringEnd: null
                        useRoles: true
                        useBudget: true
                        budgetMode: detailed
                        useMonthlyBudget: true
                        monthlyBudgetMode: summary
                        capMaxMemberHoursPerDay: true
                        maxMemberHoursPerDay: 8
                        capMaxMemberHoursPerWeek: true
                        maxMemberHoursPerWeek: 40
                        capMaxMemberHoursPerMonth: true
                        maxMemberHoursPerMonth: 160
                        requiresNotes: true
                        requiresTasks: false
                        recordStatusId: active
                        isProductive: true
                        lockTimeAndExpenses: false
                        trackTimeToAssignedRoles: true
                        cloudFolderUrl: https://drive.google.com/drive/folders/abc123
                        createdAt: '2025-01-15T20:47:03.284Z'
                        completedOn: '2026-03-15'
                        client:
                          id: 9b577a12-dd68-4df6-9f48-d8071684bfca
                          name: Acme Corp
                        practice:
                          id: 9bb7965e-991f-451c-9ea6-94f9ff180258
                          name: Digital Strategy
                        projectType:
                          id: 1be77fb4-6300-4db7-ad3f-c960083f5433
                          name: Web Development
                        projectGroup:
                          id: bacffeea-24de-441c-b770-9219516f4034
                          name: Q1 Initiatives
                        tags:
                          - id: 9166a6d1-dbc6-43b5-abcf-450cbfcfd891
                            name: High Priority
                        salesRepresentative:
                          id: d1980029-6c43-4af9-88ac-7b9066944f34
                          name: Jane Smith
                        businessUnit:
                          id: de116c6c-665e-4ce0-bf49-d77103f55095
                          name: Engineering
                        budget:
                          revenue: 165000
                          servicesRevenue: 140000
                          productRevenue: 15000
                          otherRevenue: 10000
                          billableExpenses: 5000
                          nonBillableExpenses: 2000
                          billableHours: 1400
                          nonBillableHours: 200
                        monthlyBudget:
                          revenue: 27500
                          servicesRevenue: 23000
                          productRevenue: 2500
                          otherRevenue: 2000
                          billableExpenses: 800
                          nonBillableExpenses: 300
                          billableHours: 230
                          nonBillableHours: 40
                        integrations:
                          - type: qbo
                            connectionId: c4a7e2f9-83b1-4d65-9e07-2f1b6a4c80d3
                            externalId: '456'
                    hasMore: false
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                InvalidId:
                  value:
                    status: 400
                    message: Parameter 'startingAfter' is not a valid UUID.
      deprecated: false
components:
  parameters:
    StartingAfter:
      name: startingAfter
      in: query
      description: >-
        A cursor ID (`uuid`) used to request the next page of results. If not
        provided, defaults to the first page of results.
      schema:
        type: string
    EndingBefore:
      name: endingBefore
      in: query
      description: >-
        A cursor ID (`uuid`) used to request the previous page of results. Is
        mutually exclusive with `startingAfter`.
      schema:
        type: string
    Limit:
      name: limit
      in: query
      description: >-
        The maximum number of results to be returned. Can be any number from 1
        to 100. Defaults to 10, if not provided.
      schema:
        type: integer
  schemas:
    Project:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the object.
        key:
          type: string
          description: The URL-friendly slug for the project.
        name:
          type: string
          description: The name of the project.
        notes:
          type:
            - string
            - 'null'
          description: Notes associated with the project.
        statusId:
          type: string
          description: The project status.
          enum:
            - tentative
            - not_started
            - in_progress
            - paused
            - completed
            - cancelled
        start:
          type:
            - string
            - 'null'
          description: The start date for the project. Will be in the form YYYY-MM-DD.
          format: date
        end:
          type:
            - string
            - 'null'
          description: >-
            The end date for the project. Will be in the form YYYY-MM-DD. `null`
            if no end date is set.
          format: date
        code:
          type:
            - string
            - 'null'
          description: The project code.
        poNumber:
          type:
            - string
            - 'null'
          description: The purchase order number.
        billingTypeId:
          type: string
          description: The billing type for the project.
          enum:
            - tm
            - fixed
            - fixed_recurring
            - non_billable
        isBillable:
          type: boolean
          description: >-
            Whether this project is billable. Derived from `billingTypeId` —
            `false` only when `billingTypeId` is `"non_billable"`.
        currency:
          type: string
          description: The 3-letter currency code associated with the project.
        revenueRecognitionMethod:
          type:
            - string
            - 'null'
          description: >-
            The revenue recognition method. Only applicable when `billingTypeId`
            is `"fixed"` or `"fixed_recurring"`. `null` for other billing types.
          enum:
            - invoiced
            - manual
            - automated_hours
            - automated_tm_basis
        fixedFee:
          type:
            - number
            - 'null'
          deprecated: true
          description: Deprecated. Always `null`.
        fixedRecurringFee:
          type:
            - number
            - 'null'
          deprecated: true
          description: Deprecated. Always `null`.
        fixedRecurringStart:
          type:
            - string
            - 'null'
          deprecated: true
          description: Deprecated. Always `null`.
        fixedRecurringEnd:
          type:
            - string
            - 'null'
          deprecated: true
          description: Deprecated. Always `null`.
        useRoles:
          type: boolean
          description: Whether the project uses roles.
        useBudget:
          type: boolean
          description: Whether the project has a budget.
        budgetMode:
          type:
            - string
            - 'null'
          description: The budget mode. `null` when `useBudget` is `false`.
          enum:
            - summary
            - detailed
            - aggregated
        useMonthlyBudget:
          type: boolean
          description: Whether the project has a monthly budget.
        monthlyBudgetMode:
          type:
            - string
            - 'null'
          description: The monthly budget mode. `null` when `useMonthlyBudget` is `false`.
          enum:
            - summary
            - detailed
        capMaxMemberHoursPerDay:
          type: boolean
          description: >-
            When enabled, caps the number of hours a member can log per day on
            the project.
        maxMemberHoursPerDay:
          type:
            - integer
            - 'null'
          description: >-
            The maximum number of hours a member can log per day on the project.
            Only used if `capMaxMemberHoursPerDay` is `true`. `null` when
            `capMaxMemberHoursPerDay` is `false`.
        capMaxMemberHoursPerWeek:
          type: boolean
          description: >-
            When enabled, caps the number of hours a member can log per week on
            the project.
        maxMemberHoursPerWeek:
          type:
            - integer
            - 'null'
          description: >-
            The maximum number of hours a member can log per week on the
            project. Only used if `capMaxMemberHoursPerWeek` is `true`. `null`
            when `capMaxMemberHoursPerWeek` is `false`.
        capMaxMemberHoursPerMonth:
          type: boolean
          description: >-
            When enabled, caps the number of hours a member can log per month on
            the project.
        maxMemberHoursPerMonth:
          type:
            - integer
            - 'null'
          description: >-
            The maximum number of hours a member can log per month on the
            project. Only used if `capMaxMemberHoursPerMonth` is `true`. `null`
            when `capMaxMemberHoursPerMonth` is `false`.
        requiresNotes:
          type: boolean
          description: Requires notes on time entries for this project.
        requiresTasks:
          type: boolean
          description: Requires a task selection on time entries for this project.
        recordStatusId:
          type: string
          description: The record status of the project.
          enum:
            - active
            - archived
        isProductive:
          type:
            - boolean
            - 'null'
          description: >-
            Whether time logged on this project counts as productive time. Only
            applicable for internal client projects; `null` for external client
            projects.
        lockTimeAndExpenses:
          type: boolean
          description: >-
            When enabled, locks time and expenses on the project, preventing
            further edits.
        trackTimeToAssignedRoles:
          type:
            - boolean
            - 'null'
          description: >-
            Whether time should be tracked per assigned role. Only applies when
            `useRoles` is `true`. `null` when `useRoles` is `false`.
        cloudFolderUrl:
          type:
            - string
            - 'null'
          description: The URL to the associated cloud storage folder.
        createdAt:
          type: string
          format: date-time
          description: The timestamp when the object was created.
        completedOn:
          type:
            - string
            - 'null'
          description: >-
            The date the project was completed. Only populated when `statusId`
            is `"completed"`.
          format: date
        client:
          type: object
          description: The client associated with the project.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the client.
        practice:
          type:
            - object
            - 'null'
          description: The practice associated with the project.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the practice.
        projectType:
          type:
            - object
            - 'null'
          description: The project type associated with the project.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the project type.
        projectGroup:
          type:
            - object
            - 'null'
          description: The project group associated with the project.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the project group.
        tags:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: The unique identifier for the object.
              name:
                type: string
                description: The name of the tag.
          description: The tags associated with the project.
        salesRepresentative:
          type:
            - object
            - 'null'
          description: The sales representative for the project.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the member.
        businessUnit:
          type:
            - object
            - 'null'
          description: The business unit associated with the project.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the business unit.
        budget:
          type:
            - object
            - 'null'
          description: >-
            The overall budget targets for the project. `null` when `useBudget`
            is `false`.
          properties:
            revenue:
              type: number
              description: The total budgeted revenue.
            servicesRevenue:
              type: number
              description: The budgeted services revenue.
            productRevenue:
              type: number
              description: The budgeted product revenue.
            otherRevenue:
              type: number
              description: The budgeted revenue from other items.
            billableExpenses:
              type: number
              description: The budgeted billable expenses cost.
            nonBillableExpenses:
              type: number
              description: The budgeted non-billable expenses cost.
            billableHours:
              type: number
              description: The budgeted billable hours.
            nonBillableHours:
              type: number
              description: The budgeted non-billable hours.
        monthlyBudget:
          type:
            - object
            - 'null'
          description: >-
            The monthly budget targets for the project. `null` when
            `useMonthlyBudget` is `false`.
          properties:
            revenue:
              type: number
              description: The total budgeted monthly revenue.
            servicesRevenue:
              type: number
              description: The budgeted monthly services revenue.
            productRevenue:
              type: number
              description: The budgeted monthly product revenue.
            otherRevenue:
              type: number
              description: The budgeted monthly revenue from other items.
            billableExpenses:
              type: number
              description: The budgeted monthly billable expenses cost.
            nonBillableExpenses:
              type: number
              description: The budgeted monthly non-billable expenses cost.
            billableHours:
              type: number
              description: The budgeted monthly billable hours.
            nonBillableHours:
              type: number
              description: The budgeted monthly non-billable hours.
        integrations:
          type: array
          description: >-
            The accounting integration mappings for this project. Each entry
            ties the project to a record in an external accounting system. Empty
            when no integrations are configured.
          items:
            type: object
            properties:
              type:
                type: string
                description: The accounting integration provider.
                enum:
                  - qbo
              connectionId:
                type: string
                description: >-
                  The Ruddr accounting connection ID associated with this
                  mapping.
              externalId:
                type: string
                description: >-
                  The identifier of the corresponding record in the external
                  accounting system.
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
          description: The HTTP status code.
        message:
          type: string
          description: A human-readable error message.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````