---
title: "Upsert Assessment Packages [Batch]"
method: PUT
path: "/apiHub/performanceManagement/v1/companies/{companyId}/assessmentPackages"
tags: ["Package"]
---

# Upsert Assessment Packages \[Batch\]

`PUT /apiHub/performanceManagement/v1/companies/{companyId}/assessmentPackages`

## Request

- Base URL: `dc1demogwext.paylocity.com` (relative, and the document’s source URL is not known)
- URL: `dc1demogwext.paylocity.com/apiHub/performanceManagement/v1/companies/{companyId}/assessmentPackages`
- Auth: none declared. Required headers: `Authorization`

> 🚧 Partner Restricted
> All assessment API endpoints are restricted to assessment providers that have signed a Paylocity technology partnership agreement. 
[Please reach out to our team](https://www.paylocity.com/contact/partner-form/) if you would like to discuss partnership opportunities.

**Summary Description**

This API endpoint allows assessment partners to insert or update multiple assessment packages in a single request within Paylocity’s platform. Each package is a curated collection of assessment tests, such as a series of tests tailored for different job roles.

**Use Cases**

- Partner sends the initial status of the package and tests, i.e. Ordered and Pending
- Bulk Operations: Enables partners to manage multiple packages at once, streamlining the process of updating or adding new assessments
- Deactivation and Removal: Packages can be deactivated or scheduled for removal by setting appropriate status values and endDate
- Company-Specific Offerings: Partners can target specific Paylocity clients by using the companyId in the URL, allowing for customized assessment packages for each company

## Path parameters

- `companyId` string, required

## Headers

- `testMode` boolean
- `Authorization` string, required

## Request body

- PackageDto[]
  - `id` string, nullable: The unique ID of the package. Required. Max length = 150.
  - `status` StatusDto: Package status payload.
    - `startDate` string, date-time: Start date of package validity. For immediate start use DateTime.UtcNow. Required.
    - `endDate` string, date-time, nullable: End date of package validity. If package doesn’t have expiration date, this field should be null. Optional.
    - `value` 'Active' | 'Inactive' | 'Deleted' | 'Unknown', nullable: Status value. Possible values: “Active, Inactive, Deleted, Unknown”. If value is not provided it will be calculated based on start/end date. Optional.
  - `summary` string, nullable: A summary of the package. Required. Max length = 250.
  - `name` string, nullable: The name of the package. Required. Max length = 250.
  - `assessments` AssessmentDto[], nullable: An array of objects representing the assessments included in the package. Required.
    - `id` string, nullable: The unique ID of the assessment. Required. Max length = 150.
    - `name` string, nullable: The name of the assessment. Required. Max length = 250.
    - `summary` string, nullable: A summary of the assessment. Required. Max length = 250.
    - `tests` AssessmentTestDto[], nullable: An array of objects representing the tests included in the assessment. Required.
      - `id` string, nullable: ID of the test. Required. Max length = 150.
      - `name` string, nullable: Name of the test. Required. Max length = 250.
      - `category` string, nullable: Category of the test. Required. Max length = 50.
      - `description` string, nullable: Description of the test. Required. Max length = 250.

## Response `201`

Created - Resources have been created.

- PackageDto: Assessment package payload.
  - `id` string, nullable: The unique ID of the package. Required. Max length = 150.
  - `status` StatusDto: Package status payload.
    - `startDate` string, date-time: Start date of package validity. For immediate start use DateTime.UtcNow. Required.
    - `endDate` string, date-time, nullable: End date of package validity. If package doesn’t have expiration date, this field should be null. Optional.
    - `value` 'Active' | 'Inactive' | 'Deleted' | 'Unknown', nullable: Status value. Possible values: “Active, Inactive, Deleted, Unknown”. If value is not provided it will be calculated based on start/end date. Optional.
  - `summary` string, nullable: A summary of the package. Required. Max length = 250.
  - `name` string, nullable: The name of the package. Required. Max length = 250.
  - `assessments` AssessmentDto[], nullable: An array of objects representing the assessments included in the package. Required.
    - `id` string, nullable: The unique ID of the assessment. Required. Max length = 150.
    - `name` string, nullable: The name of the assessment. Required. Max length = 250.
    - `summary` string, nullable: A summary of the assessment. Required. Max length = 250.
    - `tests` AssessmentTestDto[], nullable: An array of objects representing the tests included in the assessment. Required.
      - `id` string, nullable: ID of the test. Required. Max length = 150.
      - `name` string, nullable: Name of the test. Required. Max length = 250.
      - `category` string, nullable: Category of the test. Required. Max length = 50.
      - `description` string, nullable: Description of the test. Required. Max length = 250.

## Other responses

- `204`: No Content - Resources have been updated.
- `400`: Bad Request - Returns the details of the error.
- `401`: Unauthorized
- `415`: Unsupported Media Type - Returns the details of the error.

## Changes

- **2026-11-03** `bf323b2134ff`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/paylocity/apis/assessments-api/changes/apiHub/performanceManagement/v1/companies/:companyId/assessmentPackages/put.md)

---

[API](https://skmtc.dev/paylocity/apis/assessments-api.md) - [All operations](https://skmtc.dev/paylocity/apis/assessments-api/llms.txt) - [OpenAPI document](https://skmtc.dev/paylocity/apis/assessments-api/revisions/bf323b2134ff?raw)
