v1

latestOpenAPI 3.0.12026-07-2464217456.8 KB
Time Tracking

Search time entries

This endpoint can be used to search for time entries. You can refine your search by adding filters. Filters are given as query parameters and have a defined structure: key is field.operator and value is value. For instance: date.gt=2023-02-11, minutes.eq=250. Apart from filters, you can add sortBy combined with sortOrder to sort the time entries. The response body is paginated and you can control the pagination using the limit and pageToken parameters.

get/1.0/time-entries/search

Query parameters

pageSizenumber
Example:100

This parameter sets the maximum number of responses to be displayed per page. If the page size is insufficient to accommodate the whole number of responses obtained, the pagination object will include a link to the next page as well as the next page token. If left blank, it defaults to 100.

pageTokenstring
Example:59c12a42-dd10-11ed-afa1-0242ac120002

Use this parameter to specify the pageToken of a page to which you want to navigate. This pageToken can be obtained from a previous request which specified a limit and will only be active for 15 minutes after it is created.

includeFieldsstring
Example:notes,user

This query parameter allows you to specify which fields should be returned in the response body by selecting from the drop down. To get the relevant fields, use comma separated values. If the field is left blank, the default properties are returned.

includeAllFieldsboolean
Example:true

This query parameter allows you to specify if all the fields should be returned in the response body. If the field is left blank, the default properties are returned.

sortBy'minutes' | 'date' | 'id' | 'billable'

You can use the sortBy param to sort the responses by the given field. Valid fields to perform sortBy are: MINUTES, DATE, ID and BILLABLE.

sortOrder'ASC' | 'DESC'

The sortOrder param can be used to specify the sorting order, which can be Ascending (ASC) or Descending (DESC). Descending is the default option.

match'all' | 'any'

You can use the match param to specify if we need to filter the entries using either AND(all) / OR(any). Defaults to AND.

date.gtstring
Example:2023-03-28

You can use this param to specify some date and the responses will contain time-entries whose date are greater than the given date.

date.eqstring
Example:2023-03-28

You can use this param to specify some date and the responses will contain exact matches of time-entries that match the given date.

date.ltstring
Example:2023-03-28

You can use this param to specify some date and the responses will contain time-entries whose date are less than the given date.

date.gestring
Example:2023-03-28

You can use this param to specify some date and the responses will contain time-entries whose date are greater than or equal to the given date.

date.lestring
Example:2023-03-28

You can use this param to specify some date and the responses will contain time-entries whose date are less than or equal to the given date.

project.eqnumber
Example:201

You can use this param to specify some project Id and the responses will contain exact matches of time-entries that match the given project.

task.eqnumber
Example:202

You can use this param to specify some task Id and the responses will contain exact matches of time-entries that match the given task.

projectPhase.eqnumber
Example:210

You can use this param to specify some project phase Id and the responses will contain exact matches of time-entries that match the given phase.

category.eqnumber
Example:5

You can use this param to specify some category Id and the responses will contain exact matches of time-entries that match the given category.

user.eqnumber
Example:5

You can use this param to specify some user Id and the responses will contain exact matches of time-entries that belong to the user with the given user Id.

sourceType.eq'GOOGLE_CALENDAR' | 'OUTLOOK_CALENDAR' | 'TASK' | 'PROJECT' | 'PHASE' | 'ADHOC' | 'MILESTONE'

You can use this param to specify a source type for the time entries and the responses will contain exact matches of time-entries that have the given source type.

activityName.eqstring
Example:Pre-Sales Campaign

You can use this param to specify some activity name and the responses will contain exact matches of time-entries that match the given activity name.

activityName.cnstring
Example:Sales

You can use this param to specify some text and the responses will contain time-entries that contain the given text in their activity name.

activityName.ncstring
Example:Sales

You can use this param to specify some text and the responses will contain time-entries that DO NOT contain the given text in their activity name.

approvalStatus.eq'NOT_SUBMITTED' | 'SUBMITTED' | 'APPROVED' | 'REJECTED'

You can use this param to specify an approval status for the time entries and the responses will contain exact matches of time-entries that have the given approval type.

Response

The requested action was successfully executed.

Example response

{
  "data": [
    {
      "timeEntryId": 201,
      "date": "2023-03-28",
      "minutes": 250,
      "activityName": "Pre-Sales campaign",
      "project": {
        "projectName": "Acme Onboarding",
        "projectId": 204
      },
      "task": {
        "taskName": "Kickoff meeting",
        "taskId": 201
      },
      "projectPhase": {
        "phaseId": 201,
        "phaseName": "Go live"
      },
      "createdAt": 1681319726000,
      "updatedAt": 1681319726000,
      "createdBy": {
        "emailId": "john.doe@rocketlane.com",
        "userId": 201,
        "firstName": "John",
        "lastName": "Doe"
      },
      "updatedBy": {
        "emailId": "john.doe@rocketlane.com",
        "userId": 201,
        "firstName": "John",
        "lastName": "Doe"
      },
      "billable": true,
      "user": {
        "emailId": "john.doe@rocketlane.com",
        "userId": 201,
        "firstName": "John",
        "lastName": "Doe"
      },
      "notes": "Working on API integration",
      "category": {
        "categoryName": "Pre-sales",
        "categoryId": 8
      },
      "sourceType": "Task",
      "submittedBy": {
        "emailId": "john.doe@rocketlane.com",
        "userId": 201,
        "firstName": "John",
        "lastName": "Doe"
      },
      "submittedAt": 1681319726000,
      "approvedBy": {
        "emailId": "john.doe@rocketlane.com",
        "userId": 201,
        "firstName": "John",
        "lastName": "Doe"
      },
      "approvedAt": 1681319726000,
      "rejectedBy": {
        "emailId": "john.doe@rocketlane.com",
        "userId": 201,
        "firstName": "John",
        "lastName": "Doe"
      },
      "rejectedAt": 1681319726000,
      "deleted": true,
      "costRate": {
        "rate": 40,
        "currency": "USD"
      },
      "billRate": {
        "rate": 40,
        "currency": "EUR"
      },
      "fields": [
        {
          "fieldId": 201,
          "fieldLabel": "MRR",
          "fieldValueLabel": "1000"
        }
      ]
    }
  ],
  "pagination": {
    "pageSize": 100,
    "hasMore": true,
    "totalRecordCount": 10398,
    "nextPage": "https://api.rocketlane.com/api/1.0/time-entries?includeFields=category,minutes&billable.eq=false&sortBy=startDate&sortOrder=desc&pageToken=e4a3dd8e-e338-11ed-b5ea-0242ac120002&limit=100&assignee.any=1&startDate.gt=2022-01-02",
    "nextPageToken": "e4a3dd8e-e338-11ed-b5ea-0242ac120002"
  }
}