---
title: "Search projects"
method: POST
path: "/v1/projects/search"
tags: ["Project"]
---

# Search projects

`POST /v1/projects/search`

Performs an advanced search for projects using the provided parameters. Supports filtering by team, status, date ranges, and other criteria. Returns a paginated list of projects matching the search criteria. This endpoint offers more sophisticated filtering capabilities than the standard list endpoint. The search results respect user permissions - only projects visible to the user will be returned.

## Request body

- ProjectListParams
  - `search` string
  - `sort` string
  - `order` string
  - `count` integer
  - `page` integer
  - `limit` integer
  - `teamId` string
  - `status` string
  - `permission` string
  - `teamIds` string[]
  - `projectIds` string[]
  - `taskStartDate` string
  - `taskEndDate` string
  - `taskRateId` string
  - `taskType` string
  - `taskFilter` string
  - `taskUserIds` string[]
  - `empty` boolean
  - `offset` integer

## Response `200`

Search results retrieved successfully

- ProjectList
  - `items` ProjectDto[]
    - `id` string
    - `user` string
    - `lastUpdate` integer
    - `created` integer
    - `deleted` boolean
    - `title` string
    - `description` string
    - `employer` string
    - `office` string
    - `color` integer
    - `taskDefaultBillable` boolean
    - `archived` boolean
    - `salaryVisibility` integer
    - `salary` string, decimal
    - `team` TeamDto
      - `id` string
      - `organization` OrganizationDto
        - `id` string
        - `name` string
        - `description` string
        - `image` string
        - `color` integer
        - `subscription` CustomerSubscriptionDto
          - `id` string
          - `user` string
          - `expires` integer
          - `status` integer
          - `plan` integer
          - `licenses` integer
          - `paymentOption` string
          - `business` string
          - `email` string
          - `firstname` string
          - `lastname` string
          - `vatId` string
          - `displayName` string
          - `street` string
          - `city` string
          - `state` string
          - `zip` string
          - `country` string
          - `countryIso` string
          - `language` string
          - `includeTaxForBusiness` boolean
          - `activated` boolean
          - `pastDue` boolean
          - `cancellationOffer` boolean
          - `subscriptionActive` boolean
          - `subscriptionCancelled` boolean
          - `subscriptionInactive` boolean
          - `paymentProviderActive` boolean
          - `startedTestimonial` string, date-time
          - `activationDate` string, date-time
          - `cancellationDate` string, date-time
          - `permissionAdmin` boolean
          - `valid` boolean
          - `expired` boolean
          - `validAndActivated` boolean
          - `payPalPayment` boolean
          - `stripePayment` boolean
          - `invoicePayment` boolean
          - `googlePlayPayment` boolean
          - `appleStorePayment` boolean
          - `currency` string
          - `businessCustomer` boolean
          - `euCustomer` boolean
          - `eu` boolean
          - `at` boolean
          - `ch` boolean
          - `uk` boolean
          - `product` string
          - `licenseQuantity` integer
          - `active` boolean
          - `trial` boolean
          - `cancelled` boolean
          - `member` boolean
          - `businessOrTrial` boolean
          - `pro` boolean
          - `planEnterprise` boolean
          - `planBusiness` boolean
          - `planPro` boolean
          - `planPlus` boolean
          - `planBasic` boolean
          - `monthlyPlan` boolean
          - `yearlyPlan` boolean
          - `organization` boolean
        - `user` string
        - `aiChatEnabled` boolean
        - `lastUpdate` integer
        - `created` integer
        - `deleted` boolean
        - `permission` OrganizationPermissionDto
          - `invoicing` boolean
          - `billing` boolean
          - `admin` boolean
      - `organizationId` string
      - `name` string
      - `description` string
      - `image` string
      - `color` integer
      - `projectSalaryVisibility` integer
      - `user` string
      - `lastUpdate` integer
      - `created` integer
      - `deleted` boolean
      - `permission` TeamPermissionDto
        - `role` string
        - `manager` boolean
        - `owner` boolean
        - `member` boolean
        - `managerOrOwner` boolean
      - `projects` integer
      - `members` integer
      - `projectSalaryVisible` boolean
    - `permission` ProjectPermissionDto
      - `role` string
      - `manager` boolean
      - `owner` boolean
      - `member` boolean
      - `managerOrOwner` boolean
    - `duration` integer
    - `durationBreak` integer
    - `salaryTotal` string, decimal
    - `salaryBreak` string, decimal
    - `expenses` string, decimal
    - `expensesPaid` string, decimal
    - `mileage` string, decimal
    - `todoEstimatedDuration` integer
    - `todoTrackedDuration` integer
    - `todoCount` integer
    - `titleAndClient` string
    - `salaryVisible` boolean
  - `params` ListParams
    - `search` string
    - `sort` string
    - `order` string
    - `count` integer
    - `page` integer
    - `limit` integer
    - `offset` integer

## Other responses

- `400` — Invalid search parameters
- `401` — Authentication required

---

[API](https://skmtc.net/timesheet/apis/timesheet-api.md) · [All operations](https://skmtc.net/timesheet/apis/timesheet-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/timesheet/timesheet-api/versions/fbe59bacb638/schema)
