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 bothpeople_id
field and thepeople_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
}
]