Returns a list of positions.
GET /psa/positions
Group: PSA › Positions · Operation ID: psaPositions
The psaProjectId, product, product-line, rate-card, HR-position and skill-level references on a position are numeric package-layer keys, not the UUIDs the public GET endpoints take, so none of them can be followed over this API. Positions cannot be matched by name or description: neither is a filter, and there is no search endpoint.
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, likepsaProjectId— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likebillable— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likeunitOfMeasure— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likehourlyBillRateCurrency— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likehourlyCostRateCurrency— filter by eq, ne, gt, gte, lt, lte, in, notIn, between, likeinvoiced— 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, psaProjectId, unitOfMeasure, lastModifiedDate
- Selectable: id, psaProjectId, name, description, salesOrderProductLineId, salesOrderProductLineRateCardEntryId, productId, productLineId, productLineRateCardEntryId, billable, unitOfMeasure, hourlyBillRate, hourlyBillRateCurrency, hourlyCostRate, hourlyCostRateCurrency, hoursBudget, invoiced, hrPositionId, skillLevelId, lastModifiedDate
Response
200 Success
Under data, an array of psaPositionsRow:
| Field | Type | Required | Description |
|---|---|---|---|
id |
string | no | The unique identifier for the position. |
psaProjectId |
number | no | The id of the PSA project this position belongs to. It is a numeric package-layer key, not the UUID that GET psa/projects/:id takes. |
name |
string or null | no | The display name of the position. |
description |
string or null | no | A free-form description of the position's responsibilities. |
salesOrderProductLineId |
number or null | no | The id of the sales order product line this position fulfills. It is a numeric package-layer key. There is no endpoint for it. |
salesOrderProductLineRateCardEntryId |
number or null | no | The id of the sales order product line rate card entry used for billing. It is a numeric package-layer key. There is no endpoint for it. |
productId |
number or null | no | The id of the product this position is billed against. It is a numeric package-layer key, not the UUID that GET accounting/products/:id takes. |
productLineId |
number or null | no | The id of the product line this position is billed against. It is a numeric package-layer key, not the UUID that GET accounting/product-lines/:id takes. |
productLineRateCardEntryId |
number or null | no | The id of the product line rate card entry. It is a numeric package-layer key. There is no endpoint for it. |
billable |
boolean or null | no | Whether work in this position is billable to the customer. |
unitOfMeasure |
string or null | no | The unit the stored bill rate, cost rate and budget are expressed in. It is a member of the UnitOfMeasureType enum, in practice 'hour' or 'day' for a position, with 'hour' the default. |
hourlyBillRate |
string (decimal) or null | no | The bill rate for this position, as an hourly amount, in the currency given by hourlyBillRateCurrency. |
hourlyBillRateCurrency |
string or null | no | The currency of hourlyBillRate. Format ISO 4217, for example 'USD'. |
hourlyCostRate |
string (decimal) or null | no | The cost rate for this position, as an hourly amount, in the currency given by hourlyCostRateCurrency. |
hourlyCostRateCurrency |
string or null | no | The currency of hourlyCostRate. Format ISO 4217, for example 'USD'. |
hoursBudget |
string (decimal) or null | no | The budgeted hours for this position. It is a quantity in hours and has no currency. |
invoiced |
boolean or null | no | Whether work in this position has been invoiced. |
hrPositionId |
number or null | no | The id of the HR position this PSA position maps to. It is a numeric package-layer key, not the UUID that GET positions/:id takes. |
skillLevelId |
number or null | no | The id of the skill level (position seniority) this PSA position maps to. It is a numeric package-layer key. There is no endpoint for it. |
lastModifiedDate |
string (date-time) or null | no | The date and time the position record 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