---
updatedAt: 2026-01-11T15:26:48.000Z
---

Fetch the complete documentation index at: https://apidocs.hibob.com/llms.txt. Use this file to discover all available pages before exploring further.

# Search Project Tasks

This endpoint allows you to retrieve project task data based on specified filters.
 <p>Explore
the <a href="/docs/explore-attendance-api" target="_blank">Attendance API</a> for more details on usage, rate limits, permissions, and more.</p> 
<p><b>Notes:</b></p> <ul> <li>Only project task fields mentioned in the `fields` parameter are returned. Use <a href="/reference/get_attendance-project-tasks-metadata" target="_blank">project task metadata endpoint</a> to get the field IDs.</li>  <li>By default, only <b>active</b> project tasks will be retrieved. To fetch archived tasks, filter by `status` equals `archived`.</li>
 <li>Pagination parameters are
currently accepted but not enforced. The response includes all matching results regardless of the `limit` or `cursor` values. Pagination will be implemented in a future version to limit results per page. To learn more, see <a href="https://apidocs.hibob.com/docs/pagination" target="_blank"> Pagination in Bob’s API</a>.</li>  <li>This endpoint requires body parameters, which is why it utilizes a POST request for a read operation.</li>  </ul> <p><b>Testing notes</b>:</p>
  <ul>
  <li>Use the testing widget's <b>Try It!</b> option to test this endpoint.</li>
  <li>Use the <b>Examples > Request Example</b> option to see how to initiate body parameters.</li>
  </ul>


# OpenAPI definition

```json
{
  "openapi": "3.1.1",
  "info": {
    "title": "Attendance API",
    "contact": {
      "name": "Hi Bob, Inc."
    },
    "description": "Public API for importing attendance entries and managing attendance projects, tasks, and clients. Supports detailed field metadata and flexible filtering.",
    "license": {
      "name": "Proprietary",
      "url": "https://apidocs.hibob.com/docs/api-terms-of-use"
    },
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.hibob.com/v1",
      "description": "Production"
    },
    {
      "url": "https://api.sandbox.hibob.com/v1",
      "description": "Sandbox"
    }
  ],
  "x-readme": {
    "metrics-enabled": false
  },
  "tags": [
    {
      "name": "Projects",
      "description": "Operations for managing attendance projects, tasks and clients"
    }
  ],
  "paths": {
    "/attendance/project-tasks/search": {
      "post": {
        "operationId": "post_attendance-project-tasks-search",
        "tags": [
          "Projects"
        ],
        "summary": "Search Project Tasks",
        "description": "This endpoint allows you to retrieve project task data based on specified filters.\n <p>Explore\nthe <a href=\"/docs/explore-attendance-api\" target=\"_blank\">Attendance API</a> for more details on usage, rate limits, permissions, and more.</p> \n<p><b>Notes:</b></p> <ul> <li>Only project task fields mentioned in the `fields` parameter are returned. Use <a href=\"/reference/get_attendance-project-tasks-metadata\" target=\"_blank\">project task metadata endpoint</a> to get the field IDs.</li>  <li>By default, only <b>active</b> project tasks will be retrieved. To fetch archived tasks, filter by `status` equals `archived`.</li>\n <li>Pagination parameters are\ncurrently accepted but not enforced. The response includes all matching results regardless of the `limit` or `cursor` values. Pagination will be implemented in a future version to limit results per page. To learn more, see <a href=\"https://apidocs.hibob.com/docs/pagination\" target=\"_blank\"> Pagination in Bob’s API</a>.</li>  <li>This endpoint requires body parameters, which is why it utilizes a POST request for a read operation.</li>  </ul> <p><b>Testing notes</b>:</p>\n  <ul>\n  <li>Use the testing widget's <b>Try It!</b> option to test this endpoint.</li>\n  <li>Use the <b>Examples > Request Example</b> option to see how to initiate body parameters.</li>\n  </ul>\n",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TaskSearchRequest"
              },
              "examples": {
                "basicTaskSearch": {
                  "summary": "Basic task search",
                  "description": "Search for tasks with core fields",
                  "value": {
                    "fields": [
                      "/projectTask/id",
                      "/projectTask/name",
                      "/projectTask/billable"
                    ],
                    "filters": [],
                    "includeHumanReadable": true
                  }
                },
                "billableTasksSearch": {
                  "summary": "Search billable tasks",
                  "description": "Search for billable tasks only",
                  "value": {
                    "fields": [
                      "/projectTask/id",
                      "/projectTask/name",
                      "/projectTask/billable"
                    ],
                    "filters": [
                      {
                        "fieldId": "/projectTask/billable",
                        "operator": "equals",
                        "values": [
                          "true"
                        ]
                      }
                    ],
                    "includeHumanReadable": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Project tasks matching the search criteria",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TaskSearchResponse"
                },
                "examples": {
                  "taskSearchResponse": {
                    "summary": "Task search response",
                    "description": "Response showing project tasks with billable information",
                    "value": {
                      "items": [
                        {
                          "objectType": "projectTask",
                          "fields": {
                            "/projectTask/id": {
                              "value": 123,
                              "humanReadable": "123"
                            },
                            "/projectTask/name": {
                              "value": "Frontend Development",
                              "humanReadable": "Frontend Development"
                            },
                            "/projectTask/billable": {
                              "value": true,
                              "humanReadable": "Yes"
                            }
                          }
                        },
                        {
                          "objectType": "projectTask",
                          "fields": {
                            "/projectTask/id": {
                              "value": 456,
                              "humanReadable": "456"
                            },
                            "/projectTask/name": {
                              "value": "Backend API",
                              "humanReadable": "Backend API"
                            },
                            "/projectTask/billable": {
                              "value": true,
                              "humanReadable": "Yes"
                            }
                          }
                        }
                      ],
                      "response_metadata": {
                        "next_cursor": null
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request is malformed or includes invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed. Check your service user credentials",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "The service user or token is missing the required permissions to access the requested data",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded - see <a href=\"https://apidocs.hibob.com/reference/project-tasks#rate-limiting\">Rate limits</a>",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected error occurred. Try again or contact support if the issue persists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "basic": []
          },
          {
            "Bearer": []
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "basic": {
        "type": "http",
        "scheme": "basic",
        "description": "Basic HTTP authentication using service user credentials"
      },
      "Bearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "OAuth 2.0",
        "description": "OAuth 2.0 authentication using an Access Token is available for registered partners only.  Try It! does not support the full HiBob OAuth flow. You can follow <a href=\"https://apidocs.hibob.com/reference/oauth-20#testing-from-the-public-api-reference\" target=\"_blank\">these steps</a> to complete the OAuth 2.0 flow in Postman and then paste the token here."
      }
    },
    "schemas": {
      "ApiErrorResponse": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Error key identifier"
          },
          "error": {
            "type": "string",
            "description": "Human-readable error message"
          },
          "args": {
            "type": "array",
            "description": "Optional error arguments providing additional context",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "TaskSearchResponseObject": {
        "type": "object",
        "properties": {
          "objectType": {
            "type": "string",
            "enum": [
              "projectTask"
            ],
            "description": "Type of the object."
          },
          "fields": {
            "type": "object",
            "properties": {
              "/projectTask/id": {
                "type": "object",
                "description": "The unique identifier of the task.",
                "properties": {
                  "value": {
                    "type": "integer",
                    "format": "int64"
                  },
                  "humanReadable": {
                    "type": "string"
                  }
                }
              },
              "/projectTask/name": {
                "type": "object",
                "description": "The task's name as provided by the user.",
                "properties": {
                  "value": {
                    "type": "string"
                  },
                  "humanReadable": {
                    "type": "string"
                  }
                }
              },
              "/projectTask/billable": {
                "type": "object",
                "description": "Whether this task is considered billable or not when tracking. billing by tasks.",
                "properties": {
                  "value": {
                    "type": "boolean"
                  },
                  "humanReadable": {
                    "type": "string"
                  }
                }
              },
              "/projectTask/status": {
                "type": "object",
                "description": "Task status (active or archived)",
                "properties": {
                  "value": {
                    "type": "string",
                    "enum": [
                      "active",
                      "archived"
                    ]
                  },
                  "humanReadable": {
                    "type": "string"
                  }
                }
              }
            },
            "description": "Task fields returned in search response."
          }
        }
      },
      "TaskSearchResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaskSearchResponseObject"
            },
            "description": "Array of task objects matching the search criteria"
          },
          "response_metadata": {
            "type": "object",
            "properties": {
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "A marker representing the first item on the next page to read. Do not provide it in the first call. Currently ignored for this endpoint. To learn more, see <a href=\"https://apidocs.hibob.com/reference/pagination-1\" target=\"_blank\"> Pagination in Bob's API</a>.               "
              }
            }
          }
        }
      },
      "TaskSearchRequest": {
        "type": "object",
        "description": "Request schema for searching project tasks",
        "properties": {
          "fields": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "List of field IDs to include in the response",
            "example": [
              "/projectTask/id",
              "/projectTask/name",
              "/projectTask/billable"
            ],
            "default": [
              "/projectTask/id",
              "/projectTask/name",
              "/projectTask/billable"
            ]
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "fieldId": {
                  "type": "string",
                  "description": "Field ID to filter by. The following project task fields can be used for filtering: `/projectTask/billable`,  `/projectTask/id`, `/projectTask/name`, `/projectTask/status`. Use the `status` filter to fetch archived tasks, <br>You cannot filter based on custom fields via the public API."
                },
                "operator": {
                  "description": "The operator can be `equals` or `notEqual` (for boolean you can only use `equals`)",
                  "type": "string",
                  "enum": [
                    "equals",
                    "notEqual"
                  ]
                },
                "values": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Values to filter by"
                }
              },
              "required": [
                "fieldId",
                "operator",
                "values"
              ]
            },
            "description": "List of filters to apply"
          },
          "limit": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1000,
            "default": 50,
            "description": "Specifies the number of entries to include on each page of the results. Defaults to 50 if not supplied. Currently ignored for this endpoint."
          },
          "cursor": {
            "type": "string",
            "description": "A marker representing the first item on the next page to read. Do not provide it in the first call. Currently ignored for this endpoint. To learn more, see <a href=\"https://apidocs.hibob.com/reference/pagination-1\" target=\"_blank\"> Pagination in Bob's API</a>.               "
          },
          "includeHumanReadable": {
            "type": "boolean",
            "default": false,
            "description": "Whether to include human-readable values in the response"
          }
        }
      }
    }
  }
}
```