Dashboard widgets and reportsSearch projects for the POC report table

Search projects for the POC report table

Returns up to 100 projects (by name) matching optional include/exclude filters on project, project manager, department and customer — across the whole account.

Filters projects with up to four include/exclude ID filters (ANDed) and returns at most 100 rows, ordered by project name, with project number, project manager (employee ID, name, initials), customer and department. No status filter: templates, closed and cancelled projects are included. NOT scoped to the caller: rows come from all projects of the account. The 100-row cap is silent — no paging, no total, no indication that rows were cut. Filterable fields: | Body pair | Matches | true | false | |---|---|---|---| | ProjectIds + IsProjectInclusive | ProjectID | in list | not in list | | ProjectManagerIds + IsProjectManagerInclusive | ProjectManagerID (employee ID) | in list | not in list | | DepartmentIds + IsDepartmentInclusive | DepartmentID (exact, no sub-departments) | in list | not in list — projects WITHOUT a department never match either way | | CustomerIds + IsCustomerInclusive | CustomerID | in list | not in list | Projects whose project-manager employee row or customer row is missing are never returned (inner joins).

Use it to:

  • None for integrators: POC endpoint. Use GET /v2/projects (scoped, more filters) instead.

Not for:

  • Listing projects the caller may see — this route ignores project privileges
  • Complete result sets — capped at 100 rows

Rules across fields:

  • Each ID list acts only together with its is…Inclusive switch: list non-empty + switch null → filter silently ignored; switch set + list empty → ignored.
  • Body omitted or JSON null → 500 Code 100. An empty object {} returns the first 100 projects (captured).

Behaviour:

  • Idempotent.
  • Safe to retry.
  • Changes are visible to the next read immediately.

See also: GET /v2/projects

curl -X POST "https://app3.timelog.com/your-account/api/v2/report-project/results/table" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -d '{
  "ProjectIds": "null",
  "IsProjectInclusive": "null",
  "ProjectManagerIds": "null",
  "IsProjectManagerInclusive": "null",
  "DepartmentIds": "null",
  "IsDepartmentInclusive": "null",
  "CustomerIds": "null",
  "IsCustomerInclusive": "null"
}'
{
  "Entities": [
    {
      "Properties": {
        "ProjectID": 123,
        "ProjectNo": "example_string",
        "ProjectName": "John Doe",
        "ProjectManagerID": 123,
        "ProjectManagerName": "John Doe",
        "ProjectManagerInitials": "example_string",
        "CustomerID": 123,
        "CustomerName": "John Doe",
        "DepartmentID": 123,
        "DepartmentName": "John Doe"
      },
      "Links": [
        {
          "Href": "example_string",
          "Rel": "example_string"
        }
      ],
      "Actions": [
        {}
      ]
    }
  ],
  "Links": [
    {
      "Href": "example_string",
      "Rel": "example_string"
    }
  ]
}
POST
/v2/report-project/results/table
POST
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp). The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user. > Not yet documented: how to obtain a token. > Not yet documented: token lifetime.

OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp). The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user. > Not yet documented: how to obtain a token. > Not yet documented: token lifetime.
Content-Typestring
Required

The media type of the request body

Options: application/json
ProjectIdsstringnull

Comma-separated project IDs to include or exclude (see IsProjectInclusive). Refers to ProjectRead.ProjectID. Null: null / empty / whitespace = no project filter. - An entry is not an integer (e.g. 'abc', '1.5') — Convert.ToInt32 throws → 500 Code 100. - An entry is empty (e.g. '1,,2') — Read as 0 (matches no project).

IsProjectInclusivebooleannull

true = only projects in ProjectIds; false = every project except those in ProjectIds. Conditional. Needed for ProjectIds to have any effect: with a non-empty ProjectIds and IsProjectInclusive null/omitted the project filter is silently ignored. - ProjectIds empty — The DAO does not send the pair; no filter.

ProjectManagerIdsstringnull

Comma-separated EMPLOYEE IDs of project managers to include or exclude (see IsProjectManagerInclusive). Refers to EmployeeRead.EmployeeID. Null: null / empty = no project-manager filter. - An entry is not an integer — 500 Code 100.

IsProjectManagerInclusivebooleannull

true = only projects managed by one of ProjectManagerIds; false = all other projects. Conditional. Needed for ProjectManagerIds to have any effect (null = filter ignored).

DepartmentIdsstringnull

Comma-separated department IDs (the project's own department, exact match — no sub-departments). Refers to DepartmentRead.DepartmentID. Null: null / empty = no department filter. - An entry is not an integer — 500 Code 100.

IsDepartmentInclusivebooleannull

true = only projects in one of DepartmentIds; false = projects in any other department. Conditional. Needed for DepartmentIds to have any effect (null = filter ignored).

CustomerIdsstringnull

Comma-separated customer IDs to include or exclude (see IsCustomerInclusive). Refers to CustomerRead.CustomerID. Null: null / empty = no customer filter. - An entry is not an integer — 500 Code 100.

IsCustomerInclusivebooleannull

true = only projects of one of CustomerIds; false = projects of all other customers. Conditional. Needed for CustomerIds to have any effect (null = filter ignored).

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. JWT and reference tokens are both accepted. The token must carry the required scope (default tlp).

The token's sub claim is the acting user. A token WITHOUT sub (client-credentials) acts as the system service user. If the sub user cannot log in (inactive, locked, deleted), the request is rejected with 401 — it is no longer let through without a user.

Not yet documented: how to obtain a token.

Not yet documented: token lifetime.

Body

application/json
ProjectIdsstring,null

Comma-separated project IDs to include or exclude (see IsProjectInclusive).

Refers to ProjectRead.ProjectID.

Null: null / empty / whitespace = no project filter.

  • An entry is not an integer (e.g. 'abc', '1.5') — Convert.ToInt32 throws → 500 Code 100.

  • An entry is empty (e.g. '1,,2') — Read as 0 (matches no project).

IsProjectInclusiveboolean,null

true = only projects in ProjectIds; false = every project except those in ProjectIds.

Conditional. Needed for ProjectIds to have any effect: with a non-empty ProjectIds and IsProjectInclusive null/omitted the project filter is silently ignored.

  • ProjectIds empty — The DAO does not send the pair; no filter.
ProjectManagerIdsstring,null

Comma-separated EMPLOYEE IDs of project managers to include or exclude (see IsProjectManagerInclusive).

Refers to EmployeeRead.EmployeeID.

Null: null / empty = no project-manager filter.

  • An entry is not an integer — 500 Code 100.
IsProjectManagerInclusiveboolean,null

true = only projects managed by one of ProjectManagerIds; false = all other projects.

Conditional. Needed for ProjectManagerIds to have any effect (null = filter ignored).

DepartmentIdsstring,null

Comma-separated department IDs (the project's own department, exact match — no sub-departments).

Refers to DepartmentRead.DepartmentID.

Null: null / empty = no department filter.

  • An entry is not an integer — 500 Code 100.
IsDepartmentInclusiveboolean,null

true = only projects in one of DepartmentIds; false = projects in any other department.

Conditional. Needed for DepartmentIds to have any effect (null = filter ignored).

CustomerIdsstring,null

Comma-separated customer IDs to include or exclude (see IsCustomerInclusive).

Refers to CustomerRead.CustomerID.

Null: null / empty = no customer filter.

  • An entry is not an integer — 500 Code 100.
IsCustomerInclusiveboolean,null

true = only projects of one of CustomerIds; false = projects of all other customers.

Conditional. Needed for CustomerIds to have any effect (null = filter ignored).

Responses

Entitiesarray

Omitted (not []) when the list is empty.

Linksarray