Time Entries (Field Time)

The Field Time REST API exposes a clean, versioned surface for reading and writing time entries. It supports fetching a single entry, searching with filter criteria, and upserting (combined add or update). All endpoints live under /api/ft/public/v1/ and are protected by OAuth bearer tokens.

Base path /api/ft/public/v1/
OAuth 2.0 Bearer · jpt + API license validated per request

Authentication

Every /api/ft/public/ endpoint requires a valid bearer token. The controller validates the token's jpt (principal-type) claim and the caller's API license on every request. See Authentication to obtain a token, then send it as:

Authorization: Bearer <access_token>

Get a time entry

GET /api/ft/public/v1/time-entries/{entryId}
200 OK / 404 Not Found

Retrieve a single time entry by its ID. Returns 200 OK with the timeEntry object, or 404 Not Found when the entry does not exist or is not visible to the caller.

GET /api/ft/public/v1/time-entries/4821
POST /api/ft/public/v1/time-entries/search
Filter criteria in JSON body

Search accepts its filter criteria as a JSON body — for example a user and a date range. Pagination is supplied with the page and pageSize query parameters.

POST /api/ft/public/v1/time-entries/search?page=1&pageSize=50
{
  "userId": "JSMITH",
  "fromDate": "2026-06-01",
  "toDate": "2026-06-07"
}
FieldDescription
userIdFilter entries belonging to a specific user.
fromDateStart of the date range (inclusive).
toDateEnd of the date range (inclusive).

Upsert a time entry

POST /api/ft/public/v1/time-entries
Add or update in a single call

A single upsert endpoint handles both creating and updating a time entry. Send the entry in the request body; the service adds a new entry or updates the matching existing one.

{
  "userId": "JSMITH",
  "date": "2026-06-05",
  "jobNumber": "J-1001",
  "hours": 8.0
}

This endpoint covers the get and upsert capabilities only. There is no plain unfiltered listing — use search to retrieve sets of entries.

Errors

Errors are returned as RFC 7807 problem detail documents. See REST API Overview → Error responses for the common status codes and shape.