GET List resources
Retrieve normalized allocation cells under /api/snapshot/projects/resources. Assignment rows represent one assignment and period. NPT rows represent one resource, category, and period. Use work_type and snapshot_source to distinguish their origin; include npt_category_id when deduplicating overlapping NPT cells.
Retrieve normalized project resource allocation cells. This endpoint is under
/api/snapshot/projects/resources and authenticates with the
Company-Api-Token header.
The response uses a normalized fact/cell format for Excel pivot tables,
Power BI, and other BI tools. Each JSON object represents exactly one
assignment and one time period for project_work, or one resource,
one active NPT category, and one time period for non_project_work.
Both resource endpoints use the same normalized row contract.
work_type: "project_work" rows contain resource assignment
allocation. work_type: "non_project_work" rows contain company
project resource non-project-time allocation by category. NPT rows include
npt_category_id and npt_category_name; assignment rows omit them.
This endpoint returns snapshot_source: "projects" on every row.
For project_work rows, estimate is the planned assignment estimate
for that specific period from project resource assignment time period
details. For non_project_work rows, estimate is the category percentage
from ResourceNptPeriodAllocation for that resource/category/period,
falling back to ResourceNptAllocation for that resource/category,
and then to 0 when neither is configured. A period override of 0
takes precedence over the global allocation. Archived categories are
excluded. Categories with no positive configured allocation are omitted
when every period value is zero.
Both work types return an effective estimate of 0 when the resource
is unavailable during the period. Historical cells remain in the response.
NPT rows use the category name as project_name, except when the only
active category is the protected default category, which uses
Non-Project Time.
Period labels are not returned as dynamic JSON keys. Instead, each row
includes fixed period fields: period, period_name, period_number,
fiscal_year, and estimate.
The response does not include period-label keys, period_start_date,
or period_end_date. The previous resource_department field was
replaced by resource_team.
resource_team is included only when
company.resource_team_hierarchy_enabled is true. When team hierarchy
is disabled, the field is not present. Assignment rows use the
assignment role's default team; NPT rows use the resource primary
role's default team. Assignment-specific team overrides are not used.
For this endpoint, project work rows use project_type: "project".
When combining project and proposal resource snapshots, do not sum
non_project_work from both sources without filtering or
deduplicating. Use snapshot_source to keep NPT from one source, or
deduplicate overlapping NPT cells by work_type, resource_id,
npt_category_id, fiscal_year, and period_number. Keep distinct
categories as separate rows. The two endpoints can cover different
periods, so retain non-overlapping cells when combining their data.
/projects/resourcesAuthorization
Ask Acuity Support for your Company-Api-Token token.
You can also find Company-Api-Token: UUID on Project -> Information -> Gear -> Company Api Token.
Missing or invalid Company-Api-Token returns 401 unauthorized.
API Credentials (save your keys here to make the request examples copy-ready)Hidden by default
Save your domain and request headers once, then reuse them across the current docs session.
Session storage clears when this tab closes. Local storage stays available the next time you open the docs in this browser.
Saved values are used in request examples and code snippets on API pages, including the request domain.