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

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