> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://developer.projectmanager.com/api-reference/task/query-tasks/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.projectmanager.com/_mcp/server. # Query Tasks GET https://api.projectmanager.com/api/data/tasks Retrieve a list of Tasks that match an [OData formatted query](https://www.odata.org/). A Task is an individual element of work that must be performed to complete a Project. A Task can have one or more Resources assigned to it. Tasks can be linked to other Tasks to indicate whether they have a dependency or a connection. Reference: https://developer.projectmanager.com/api-reference/task/query-tasks ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Request ### Query parameters - `$top` (integer, optional) — The number of records to return - `$skip` (integer, optional) — Skips the given number of records and then returns $top records - `$filter` (string, optional) — Filter the expression according to oData queries - `$orderby` (string, optional) — Order collection by this field. - `$expand` (string, optional) — Include related data in the response ### Headers - `x-integration-name` (string, optional) — The name of the calling system passed along as a header parameter ## Response ### 200 Success - `error` (AstroError, optional, nullable) — If the API call failed, this will contain information about the error that occurred. - `success` (boolean, optional) — True if the API call succeeded; false otherwise. - `hasError` (boolean, optional) — True if the API call failed. - `statusCode` (enum, optional) — The HTTP code of the response. - Allowed values: `Continue`, `SwitchingProtocols`, `Processing`, `EarlyHints`, `OK`, `Created`, `Accepted`, `NonAuthoritativeInformation`, `NoContent`, `ResetContent`, `PartialContent`, `MultiStatus`, `AlreadyReported`, `IMUsed`, `MultipleChoices`, `MovedPermanently`, `Found`, `SeeOther`, `NotModified`, `UseProxy`, `Unused`, `TemporaryRedirect`, `PermanentRedirect`, `BadRequest`, `Unauthorized`, `PaymentRequired`, `Forbidden`, `NotFound`, `MethodNotAllowed`, `NotAcceptable`, `ProxyAuthenticationRequired`, `RequestTimeout`, `Conflict`, `Gone`, `LengthRequired`, `PreconditionFailed`, `RequestEntityTooLarge`, `RequestUriTooLong`, `UnsupportedMediaType`, `RequestedRangeNotSatisfiable`, `ExpectationFailed`, `MisdirectedRequest`, `UnprocessableEntity`, `Locked`, `FailedDependency`, `UpgradeRequired`, `PreconditionRequired`, `TooManyRequests`, `RequestHeaderFieldsTooLarge`, `UnavailableForLegalReasons`, `InternalServerError`, `NotImplemented`, `BadGateway`, `ServiceUnavailable`, `GatewayTimeout`, `HttpVersionNotSupported`, `VariantAlsoNegotiates`, `InsufficientStorage`, `LoopDetected`, `NotExtended`, `NetworkAuthenticationRequired` - `data` (list of TaskDto, optional) — If the API call succeeded, this will contain the results. ## Types ### AstroError Information about an error that occurred within the ProjectManager API. - `technicalError` (string, optional, nullable) — A technical description of the error that occurred. Not suitable for display to end users. - `additionalErrors` (list of string, optional, nullable) — If additional errors beyond the main error in `Message` occurred, they will be listed here as individual messages. - `validationErrors` (map from string to list of string, optional, nullable) — This contains a dictionary of validation errors. The key is the name of the field - `message` (string, optional, nullable) — A description of the error that occurred. If your application has a user interface, show this message to explain what went wrong. ### TaskDto A Task is an individual element of work that must be performed to complete a Project. A Task can have one or more Resources assigned to it. Tasks can be linked to other Tasks to indicate whether they have a dependency or a connection. - `id` (string, optional) — The unique identifier of this Task. - `project` (TaskProjectDto, optional) — The Project to which this Task belongs. - `tags` (list of TaskTagDto, optional, nullable) — The TaskTags that apply to this Task. - `projectId` (string, optional) — The unique identifier of the Project to which this Task belongs. - `assignees` (list of TaskAssigneeDto, optional, nullable) — The list of assignees who are to work on this Task, if any. - `todos` (list of TaskTodoDto, optional, nullable) — A list of TaskTodo items, which are sub-tasks within this Task. - `shortId` (string, optional, nullable) — A short ID that can be used to refer to this Task. This short ID is guaranteed to be unique within your Workspace. - `name` (string, optional) — The common name of this Task. - `description` (string, optional, nullable) — This field contains the task's "Note" or "Description", which is a description of the work to be done to complete the task. Within the ProjectManager application, you can use this field as follows: * When in the Gantt view, select a task and click the "Add Note" button. * When in the Board view, click on a task to open the task panel, then edit the "Description" field. - `status` (TaskStatusDto, optional) — The TaskStatus assigned to this Task. - `plannedStartDate` (string, optional) — The date when work on this Task is planned to begin. This value contains only the date in year-month-day format. For display, this date will always be shown as this same year-month-day regardless of time zone. For reporting purposes, this date is calculated against the official time zone of the Workspace. For example: A Task has a planned completion date of July 5, 2023 in a Workspace that has a time zone of US Pacific Time (GMT-7 or GMT-8, depending on daylight savings time). This project is considered overdue on 12:01 AM July 6th 2023 in US Pacific time. - `plannedFinishDate` (string, optional, nullable) — The date when work on this Task is expected to complete. This value contains only the date in year-month-day format. For display, this date will always be shown as this same year-month-day regardless of time zone. For reporting purposes, this date is calculated against the official time zone of the Workspace. For example: A Task has a planned completion date of July 5, 2023 in a Workspace that has a time zone of US Pacific Time (GMT-7 or GMT-8, depending on daylight savings time). This project is considered overdue on 12:01 AM July 6th 2023 in US Pacific time. - `actualStartDate` (string, optional, nullable) — If set, this is the actual date when work began on the Task. This value contains only the date in year-month-day format. For display, this date will always be shown as this same year-month-day regardless of time zone. For reporting purposes, this date is calculated against the official time zone of the Workspace. For example: A Task has a planned completion date of July 5, 2023 in a Workspace that has a time zone of US Pacific Time (GMT-7 or GMT-8, depending on daylight savings time). This project is considered overdue on 12:01 AM July 6th 2023 in US Pacific time. - `actualFinishDate` (string, optional, nullable) — If set, this is the actual date when work was completed on this Task. This value contains only the date in year-month-day format. For display, this date will always be shown as this same year-month-day regardless of time zone. For reporting purposes, this date is calculated against the official time zone of the Workspace. For example: A Task has a planned completion date of July 5, 2023 in a Workspace that has a time zone of US Pacific Time (GMT-7 or GMT-8, depending on daylight savings time). This project is considered overdue on 12:01 AM July 6th 2023 in US Pacific time. - `actualEffort` (integer, optional, nullable) — The actual effort (in minutes) for this Task. - `actualDuration` (integer, optional, nullable) — The actual duration (in minutes) for this Task. - `modifyDate` (string, optional) — The timestamp in UTC when this Task was most recently modified. - `createDate` (string, optional) — The timestamp in UTC when this Task was created. - `percentComplete` (integer, optional) — The numerical percentage, from 0-100, representing the percentage completion for this Task. Any numbers below zero or above 100 will be clamped to the minimum or maximum value. This value can be edited manually in the Gantt chart view of the application, or can be selected on the Task Detail page within the Kanban board. - `isSummary` (boolean, optional) — True if this Task is the parent of multiple Tasks underneath it. A parent Task is a "rolled-up" view of multiple children that allows you to view a section of work at a glance. You can create a summary Task in the Gantt chart view of the application by adding child tasks underneath a parent Task. - `isLocked` (boolean, optional) — Unlocked tasks can be adjusted by changes to their dependencies, resource leveling, or other factors. All tasks are unlocked by default. If a task is set to `IsLocked` = `true`, the dates and assigned resources are locked for this task and will not be automatically changed by any process. - `isMilestone` (boolean, optional) — True if this task is a milestone. Milestones represent a specific point in time for the project. When a milestone is locked, it represents a fixed time within the project that can be used to relate to other tasks. - `priorityId` (integer, optional, nullable) — Return the priority of a task - `wbs` (string, optional, nullable) — The WBS (Work Breakdown Structure) number for this task within the Gantt chart hierarchy. See [What Is a Work Breakdown Structure (WBS)?](https://www.projectmanager.com/guides/work-breakdown-structure) on Project Manager for more information. The WBS number is an outline number in the form `#.#.#.#` which indicates how tasks are organized and sorted. The WBS value is only available to users at certain edition levels. This value can only be changed if you are a Project Editor. - `color` (string, optional, nullable) — The hexadecimal RRGGBB Task Color as set in the Gantt. This value is read-only; to set this value, change the `Theme` field. - `theme` (string, optional, nullable) — Color theme definition for this Task. eg. Blue, Brown, DarkBlue, DarkGrey, Gold, Green, Grey, LightBrown, LightGreen, LightGrey, LightPurple, LightYellow, Magenta, Mauve, Navy, Orange, Purple, Red. - `actualCost` (double, optional, nullable) — The actual cost of this Task to date, if known. - `actualResourceCost` (double, optional, nullable) — The actual resource cost of this Task - `plannedCost` (double, optional, nullable) — The planned cost for this Task. Cannot be negative. - `plannedResourceCost` (double, optional, nullable) — The planned resource cost of this Task - `plannedDuration` (integer, optional, nullable) — The planned duration (in minutes) for this Task. - `plannedEffort` (integer, optional, nullable) — The planned effort (in minutes) for this Task. - `index` (integer, optional) — The one-based index of this Task within its parent project. This value is used to determine the order of tasks and sub-tasks in a project. For example, a Task with an Index of 1 is the first Task in the project. - `level` (integer, optional) — The hierarchical level of this Task within the Task structure. A Level of 1 indicates that the Task is at the top level (e.g. a root Task), while higher values indicate deeper levels in the hierarchy (e.g. subtasks). - `fieldValues` (list of SimpleTaskFieldValueDto, optional, nullable) — Task fields array with values - `files` (list of TaskFileDto, optional, nullable) — The list of files associated with this Task, if any. This field will be present when you fetch a single object. When you query for multiple objects, this field is not included in results by default. To expand this field, specify the name of this field in the `$expand` parameter. - `fields` (list of TaskFieldValueDto, optional, nullable, deprecated) — Obsolete - use FieldValues instead ### TaskProjectDto A Project is a collection of Tasks that contributes towards a goal. Within a Project, Tasks represent individual items of work that team members must complete. The sum total of Tasks within a Project represents the work to be completed for that Project. - `id` (string, optional) — The unique identifier of this Project. - `shortId` (string, optional) — The ShortId of this Project. - `name` (string, optional) — The common name of this Project. ### TaskTagDto A TaskTag is a connection between a Task and a Tag. Each Task can have zero, one or many TaskTags associated with it. TaskTags can be assigned and removed from the Task to help you classify your Tasks and prioritize work. - `id` (string, optional) — The unique identifier of this TaskTag. - `name` (string, optional) — The common name of this TaskTag. - `color` (string, optional) — The color that will be used to represent this Tag visually. This color is automatically chosen by the application when a user creates a Tag. You can choose specify any color that can be represented using HTML RGB syntax such as `#0088FF`, in the format `RRGGBB`. You may not use names for colors. ### TaskAssigneeDto A TaskAssignee is the person to whom a Task is assigned. A single Task can be assigned to multiple TaskAssignees. - `id` (string, optional) — The unique identifier of this TaskAssignee - `initials` (string, optional) — A shortened set of initials to use when representing this TaskAssignee visually in small areas. The initials may be used in small icons or other overlays. - `name` (string, optional, nullable) — The name of this TaskAssignee - `description` (string, optional, nullable) — A more complete description of the TaskAssignee. - `isActive` (boolean, optional) — True if this TaskAssignee is currently active with the Project. - `color` (string, optional, nullable) — The color that will be used to represent this TaskAssignee visually. You can choose specify any color that can be represented using HTML RGB syntax such as `#0088FF`, in the format `RRGGBB`. You may not use names for colors. - `firstName` (string, optional, nullable) — The first or given name of this TaskAssignee. For personnel TaskAssignees only. - `lastName` (string, optional, nullable) — The last or family name of this TaskAssignee. For personnel TaskAssignees only. - `shortName` (string, optional, nullable) — A shortened version of the name of this TaskAssignee. This is used in areas where the Initials are too short but the full name is too long. - `avatarUrl` (string, optional, nullable) — A link to an Avatar for this TaskAssignee. Avatars are small images or representations that can be used to visually identify this TaskAssignee at a glance. - `email` (string, optional, nullable) — The email address for the resource. It can be empty if the resource does not have a login. - `allocatedEffort` (integer, optional, nullable) — The allocated effort (in minutes) for this Task and Assignee. ### TaskTodoDto A TaskTodo is a sub-task that represents a unit of work on the Task. You can use TaskTodo to represent individual items for a larger piece of work. - `id` (string, optional) — The unique identifier of this TaskTodo. - `text` (string, optional) — The full description of this TaskTodo. - `complete` (boolean, optional) — True if this TaskTodo is complete. - `createDate` (string, optional) — The timestamp in UTC when this object was created. - `modifyDate` (string, optional) — The timestamp in UTC when this object was last modified. ### TaskStatusDto A TaskStatus is a named status level used by your business to determine how to measure the progress of Tasks. You can define your own named status levels that are appropriate for your business and determine which status levels are considered done. - `id` (string, optional) — The unique identifier of this TaskStatus. - `projectId` (string, optional) — The unique identifier of the Project to which this TaskStatus belongs. - `name` (string, optional) — The name of this TaskStatus. - `order` (integer, optional) — A numerical value that can be used to sort TaskStatus values according to the needs of your business. - `isDone` (boolean, optional) — True if a Task in this TaskStatus is considered done. ### SimpleTaskFieldValueDto A model that contains the value for a TaskField. - `id` (string, optional) — The unique identifier of this TaskField. - `shortId` (string, optional, nullable) — The unique Short Id of this TaskField. - `name` (string, optional) — The name of this Project Field. - `type` (string, optional) — The type of this TaskField. Valid types are the following: * Text * Number * Date * Checkbox * Currency * Dropdown - `value` (string, optional) — The value currently set for this TaskFieldValue. - `createdDate` (string, optional) — Date and time (in UTC) that this TaskField was created. - `modifiedDate` (string, optional) — Date and time (in UTC) that this TaskField was last modified. ### TaskFileDto Represents a file associated with a Task in project manager - `id` (string, optional) — The identifier for this file - `name` (string, optional) — The name of the file - `url` (string, optional) — The url of the file which can be used for downloading - `createDate` (string, optional) — The date the file was created/uploaded - `fileType` (string, optional, nullable) — The file type (e.g. extension or MIME type) - `fileTypeLabel` (string, optional, nullable) — The display label for the file type - `size` (integer, optional) — File size in bytes (for task attachment lists / Gantt grid) ### TaskFieldValueDto A model that contains the value for a TaskField. - `id` (string, optional) — The unique identifier of this TaskField. - `shortId` (string, optional, nullable) — The unique Short Id of this TaskField. - `name` (string, optional) — The name of this Project Field. - `type` (string, optional) — The type of this TaskField. Valid types are the following: * Text * Number * Date * Checkbox * Currency * Dropdown - `value` (string, optional) — The value currently set for this TaskFieldValue. - `createdDate` (string, optional) — Date and time (in UTC) that this TaskField was created. - `modifiedDate` (string, optional) — Date and time (in UTC) that this TaskField was last modified. - `task` (TaskFieldValueTaskDto, optional) — The Task to which this Value belongs. ### TaskFieldValueTaskDto The TaskFieldTask is a summary of the Task that this TaskFieldValue relates to. - `id` (string, optional) — The unique identifier of this Task. - `shortId` (string, optional) — The unique Short Id of this Task. - `name` (string, optional) — The common name of this Task. ## Examples **Response** ```json { "error": { "technicalError": "string", "additionalErrors": [ "string" ], "validationErrors": {}, "message": "string" }, "success": true, "hasError": true, "statusCode": "Continue", "data": [ { "id": "string", "project": { "id": "string", "shortId": "string", "name": "string" }, "tags": [ { "id": "string", "name": "string", "color": "string" } ], "projectId": "string", "assignees": [ { "id": "string", "initials": "string", "name": "string", "description": "string", "isActive": true, "color": "string", "firstName": "string", "lastName": "string", "shortName": "string", "avatarUrl": "string", "email": "string", "allocatedEffort": 1 } ], "todos": [ { "id": "string", "text": "string", "complete": true, "createDate": "2024-01-15T09:30:00Z", "modifyDate": "2024-01-15T09:30:00Z" } ], "shortId": "string", "name": "string", "description": "string", "status": { "id": "string", "projectId": "string", "name": "string", "order": 1, "isDone": true }, "plannedStartDate": "2023-01-15", "plannedFinishDate": "2023-01-15", "actualStartDate": "2023-01-15", "actualFinishDate": "2023-01-15", "actualEffort": 1, "actualDuration": 1, "modifyDate": "2024-01-15T09:30:00Z", "createDate": "2024-01-15T09:30:00Z", "percentComplete": 1, "isSummary": true, "isLocked": true, "isMilestone": true, "priorityId": 1, "wbs": "string", "color": "string", "theme": "string", "actualCost": 1.1, "actualResourceCost": 1.1, "plannedCost": 1.1, "plannedResourceCost": 1.1, "plannedDuration": 1, "plannedEffort": 1, "index": 1, "level": 1, "fieldValues": [ { "id": "string", "shortId": "string", "name": "string", "type": "string", "value": "string", "createdDate": "2024-01-15T09:30:00Z", "modifiedDate": "2024-01-15T09:30:00Z" } ], "files": [ { "id": "string", "name": "string", "url": "string", "createDate": "2024-01-15T09:30:00Z", "fileType": "string", "fileTypeLabel": "string", "size": 1 } ], "fields": [ { "id": "string", "shortId": "string", "name": "string", "type": "string", "value": "string", "createdDate": "2024-01-15T09:30:00Z", "modifiedDate": "2024-01-15T09:30:00Z", "task": { "id": "string", "shortId": "string", "name": "string" } } ] } ] } ``` **SDK Code** ```python import requests url = "https://api.projectmanager.com/api/data/tasks" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.projectmanager.com/api/data/tasks'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.projectmanager.com/api/data/tasks" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.projectmanager.com/api/data/tasks") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.projectmanager.com/api/data/tasks") .header("Authorization", "Bearer ") .asString(); ``` ```php request('GET', 'https://api.projectmanager.com/api/data/tasks', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.projectmanager.com/api/data/tasks"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://api.projectmanager.com/api/data/tasks")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```