Returns a list of time entries.
GET /psa/time-entries
Group: PSA › Time Entries · Operation ID: timeEntries
Returns time entries for the projects where you are a team member.
The person and project identifiers on each entry (memberId, memberEmployeeId, projectPositionId and psaProjectId) are returned but cannot be filtered or sorted on. There is no endpoint that lists a specific employee's time entries.
Open in the interactive reference
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
Api-Version |
header | "v1" |
yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1. |
Query surface
id— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likedate— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likecurrency— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likesubmissionStatus— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likesubmissionDate— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likemonth— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likeprojectActivityId— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likelastModifiedDate— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, like- Orderable: id, date, month, hours, submissionStatus, submissionDate, currency, lastModifiedDate
- Selectable: id, date, hours, billableHours, nonBillableHours, internalValuableHours, internalNonValuableHours, invoicedHours, revenue, cost, currency, notes, submissionStatus, submissionDate, month, memberId, memberEmployeeId, memberEmployeeName, projectActivityId, projectActivityName, projectActivityCategory, projectPositionId, projectPositionName, psaProjectId, projectName, psaProjectStatus, lastModifiedDate
Response
200 Success
Under data, an array of timeEntriesRow:
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | no | The unique identifier for the time entry. |
date |
string (date) or null | no | The date the time was logged for. Format YYYY-MM-DD. |
hours |
string (decimal) or null | no | The total hours logged in this entry. |
billableHours |
string (decimal) or null | no | The hours classified as billable to a customer, derived from projectActivityCategory. |
nonBillableHours |
string (decimal) or null | no | The hours classified as non-billable to a customer, derived from projectActivityCategory. |
internalValuableHours |
string (decimal) or null | no | The hours classified as internal valuable work, derived from projectActivityCategory. |
internalNonValuableHours |
string (decimal) or null | no | The hours classified as internal non-valuable work, derived from projectActivityCategory. |
invoicedHours |
string (decimal) or null | no | The hours that have been invoiced, a subset of billableHours. |
revenue |
string (decimal) or null | no | The revenue from this time entry, in the currency given by currency. |
cost |
string (decimal) or null | no | The cost of this time entry, in the currency given by currency. |
currency |
string or null | no | The currency of revenue and cost. Format ISO 4217, for example 'USD'. It is the currency of the project position's bill rate. |
notes |
string or null | no | Free-form notes on the time entry. |
submissionStatus |
string or null | no | The submission and approval status of the entry. Possible values: 'draft', 'pending', 'approved', 'rejected', 'invoiced'. |
submissionDate |
string (date) or null | no | The date the entry was submitted for approval. Format YYYY-MM-DD. |
month |
string (date) or null | no | The first day of the month the entry is reported under. Format YYYY-MM-DD. |
memberId |
number or null | no | The numeric key of the PSA member assignment the time was logged for. GET psa/team-members/:id takes the member's UUID, not this key, so it cannot fetch the member. |
memberEmployeeId |
number or null | no | The numeric key of the employee who logged the time. There is no endpoint for it. |
memberEmployeeName |
string or null | no | The name of the employee who logged the time. |
projectActivityId |
number or null | no | The numeric key of the activity the time was logged against. GET psa/activities/:id takes the activity's UUID, not this key, so it cannot fetch the activity. |
projectActivityName |
string or null | no | The name of the activity the time was logged against. |
projectActivityCategory |
string or null | no | The billability category of the activity the time was logged against. The billable, non-billable and internal-hour fields are derived from it. See category on GET psa/activities/:id. |
projectPositionId |
number or null | no | The numeric key of the position the time was logged against. GET psa/positions/:id takes the position's UUID, not this key, so it cannot fetch the position. |
projectPositionName |
string or null | no | The name of the position the time was logged against. |
psaProjectId |
number or null | no | The numeric key of the PSA project the entry belongs to. GET psa/projects/:id takes the project's UUID, not this key, so it cannot fetch the project. |
projectName |
string or null | no | The name of the PSA project the entry belongs to. |
psaProjectStatus |
string or null | no | The status of the PSA project this entry belongs to. |
lastModifiedDate |
string (date-time) or null | no | The date and time the entry last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |
Statuses
400— Invalid request or business failure401— Missing or invalid access token403— Not authorized404— Not found429— Too many requests500— Internal server error