Skip to main content
GET
/
projects
List projects
curl --request GET \
  --url https://www.ruddr.io/api/workspace/projects \
  --header 'Authorization: Bearer <token>'
{
  "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"
        }
      ],
      "businessUnit": {
        "id": "de116c6c-665e-4ce0-bf49-d77103f55095",
        "name": "Engineering"
      },
      "salesRepresentative": {
        "id": "d1980029-6c43-4af9-88ac-7b9066944f34",
        "name": "Jane Smith"
      },
      "budget": {
        "revenue": 150000,
        "servicesRevenue": 140000,
        "otherRevenue": 10000,
        "billableExpenses": 5000,
        "nonBillableExpenses": 2000,
        "billableHours": 1400,
        "nonBillableHours": 200
      },
      "monthlyBudget": {
        "revenue": 25000,
        "servicesRevenue": 23000,
        "otherRevenue": 2000,
        "billableExpenses": 800,
        "nonBillableExpenses": 300,
        "billableHours": 230,
        "nonBillableHours": 40
      }
    }
  ],
  "hasMore": false
}
A scope of work for a client. Contains the top-level information for a project in your workspace.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

startingAfter
string

A cursor ID (uuid) used to request the next page of results. If not provided, defaults to the first page of results.

endingBefore
string

A cursor ID (uuid) used to request the previous page of results. Is mutually exclusive with startingAfter.

limit
integer<int32>

The maximum number of results to be returned. Can be any number from 1 to 100. Defaults to 10, if not provided.

clientId
string

A client ID (uuid) used to filter projects for a specific client.

code
string

A project code to filter projects by code.

projectTypeId
string

A project type ID (uuid) used to filter projects for a specific project type.

statusId
string

Filter by project status. Can be either "tentative" (Tentative), "not_started" (Not Started), "in_progress" (In Progress), "paused" (Paused), "completed" (Completed) or "cancelled" (Cancelled).

name
string

Filter by project name when it exactly matches the provided keyword.

nameContains
string

Filter by project name when it contains the provided keyword.

nameStartsWith
string

Filter by project name when it starts with the provided keyword.

nameEndsWith
string

Filter by project name when it ends with the provided keyword.

poNumber
string

Filter by PO number when it contains the provided value (case-insensitive).

Response

200

results
object[]
hasMore
boolean

Whether there are more results available after this page.