Exporting the schedule data

If you’d like to preserve your Float schedule data offline or import it into another service, the Float API supports the exporting of data using list operations, the main operations include filtering and sorting parameters to help ensure efficient usage of the API.

Export operations

Other API operations may be used for exporting data, however these may not be optimised for large datasets or provide the same filtering features as the ones listed above.

Pagination and limits

For any large dataset first be aware of how pagination works on the Float API, with a maximum 200 items per page, to help with performance you should aim to call the API the least number of times to obtain the data you need, this may mean striking a balance between narrow filtering and sorting and maximising the pagination response.

Filtering

Tasks and Time off should always be filtered using the start_date and end_date parameters, this will inclusively select all items contained with these dates as shown on the schedule.

Repeat allocations are also handled by these date filter parameters by taking into account the repeat_end_date value.

For example to obtain all allocations for January 2022 using the /task endpoint.

GET /v3/tasks?start_date=2022-01-01&end_date=2022-01-31 HTTP/1.1
Host: https://api.float.com

The response is a list of task objects in order of task_id:

HTTP/1.1 200 OK
Content-Type: application/json

    [
        {
                "task_id": 946615,
                "project_id": 101161,
                "start_date": "2022-01-01",
                "end_date": "2022-01-01",
                "hours": "2.0",
                "people_id": 54540,
                "priority": 0,
                "name": null,
                "notes": null,
                "repeat_state": 0,
                "repeat_end_date": null,
                "created_by": 24526,
                "created": "2021-12-04 13:16:04",
                "modified_by": 24526,
                "modified": "2021-12-04 21:01:18"
          },
          {
                "task_id": 946634,
                "project_id": 101161,
                "start_date": "2021-01-12",
                "end_date": "2021-01-15",
                "hours": "3.0",
                "people_id": 46680,
                "priority": 0,
                "name": null,
                "notes": null,
                "repeat_state": 0,
                "repeat_end_date": null,
                "created_by": 24526,
                "created": "2022-01-04 13:21:32",
                "modified_by": 0,
                "modified": "2022-01-05 14:21:36"
          }
    ]

Additional parameters

Valid filter query parameters for /tasks

  • start_date & end_date
  • people_id
  • project_id
  • phase_id

Valid filter query parameters for /timeoffs

  • start_date & end_date

Valid filter query parameters for /logged-time

  • start_date & end_date

If you’d like to export a specific department or person’s tasks, you could do that too by adding the people_id query parameter:

The people_id parameter takes into account tasks assigned to multiple people, so will evaluate across both people_id field and the people_ids array.

GET /v3/tasks?start_date=2022-01-01&end_date=2022-01-31&people_id=12345 HTTP/1.1
Host: https://api.float.com

Or, to only extract certain projects, add the project_id parameter.

GET /v3/tasks?start_date=2022-01-01&end_date=2022-01-31&project_id=101161 HTTP/1.1
Host: https://api.float.com

Where Project phases are used, the phase_id can further refine the results.

GET /v3/tasks?start_date=2022-01-01&end_date=2022-01-31&phase_id=945 HTTP/1.1
Host: https://api.float.com

Sorting

By default list operations will return results based on either the id field or created timestamp, most-recent first. The sort order can be adjusted using the sort parameter with an applicable date, datetime or id field, with reverse chronological (the default) indicated using - prefix.

GET /v3/tasks?start_date=2022-01-01&end_date=2022-01-31&sort=-modified HTTP/1.1
Host: https://api.float.com

The result is a list of tasks within the date range, sorted by the most-recently modified first.

Valid sorting query parameters for /tasks , /timeoffs and /logged-time

  • task_id (/tasks only)
  • created
  • modified
  • start_date
  • end_date

Sort query parameters may also be combined, in order, comma separated

GET /v3/tasks?start_date=2022-01-01&end_date=2022-01-31&sort=end_date,start_date HTTP/1.1
Host: https://api.float.com

The result is a list of tasks within the date range, sorted by end_date first, then for any tasks with the same end_date, those are sorted by start_date.

Data minimisation

The fields parameter can be used to reduce the payload size of each request and ensure you are only extracting data required by your target system.

Any top-level field returned in the response can be filtered using the parameter, comma separation allows for multiple fields to be returned.

A query to export all tasks assign to people last week to be ingested and used to display all billable vs non-billable hours

GET /v3/logged-time?start_date=2022-01-01&end_date=2022-01-31&fields=logged_time_id,people_id,hours,billable HTTP/1.1
Host: https://api.float.com

Would return

HTTP/1.1 200 OK
Content-Type: application/json
[
	{
		"logged_time_id": "62a7fdc73ea61ce74b232785",
		"people_id": 17397907,
		"hours": 2,
		"billable": 1
	},
	{
		"logged_time_id": "62a7b33d128943095cdaf250",
		"people_id": 17397907,
		"hours": 6.75,
		"billable": 1
	}
]