# Parallax Api

## Overview

Access to the Parallax API is available exclusively to Parallax API customers. To learn more about becoming a Parallax API customer, please reach out to your Customer Success Manager.

All Parallax API calls are made under `https://api.getparallax.com` and all responses return standard JSON. The following HTTP methods are supported:

- GET
- POST
- PATCH
- DELETE


Version: v1
License: Proprietary

## Servers

Production Server
```
https://api.getparallax.com
```

## Security

### ApiKey

Personal Access Token (PAT) for authentication within the X-API-KEY header.

Type: apiKey
In: header
Name: X-API-KEY

## Download OpenAPI description

[Parallax Api](https://developer.getparallax.com/_bundle/API%20Documentation/swagger.yaml)

## ActualTime

Actual Time represents the timesheet data capturing the work performed by employees and logged against assigned Project Offerings. Actual Time is used to compare planned vs. actual effort, drive utilization reporting, support variance analysis, and inform project health and forecasting across the platform.

### List Actual Time

 - [GET /v1/actual-time](https://developer.getparallax.com/api-documentation/swagger/actualtime/listactualtime.md): Gets a paginated list of actual time entries with optional filtering by date range, project offering, and person. When no start or end date filters are provided, returns entries from the last 7 days (7 days ago through today).

### Create Actual Time

 - [POST /v1/actual-time](https://developer.getparallax.com/api-documentation/swagger/actualtime/createactualtime.md): Creates a new record representing hours a person has logged to a project, typically synced from the Timesheet System for tracking actuals against planned work. Parallax only allows a person to have a single role on a project offering, which means that the role is inferred by project_offering_id.

### Delete Actual Time

 - [DELETE /v1/actual-time/{id}](https://developer.getparallax.com/api-documentation/swagger/actualtime/deleteactualtime.md): Removes a recorded entry of hours worked from the system, typically used for error correction or cleanup.

### Get Actual Time

 - [GET /v1/actual-time/{id}](https://developer.getparallax.com/api-documentation/swagger/actualtime/getactualtime.md): Fetches specified actual time details by id.

### Update Actual Time

 - [PATCH /v1/actual-time/{id}](https://developer.getparallax.com/api-documentation/swagger/actualtime/updateactualtime.md): Updates an existing Actual Hours record, used to correct or adjust time entries for accuracy in utilization and variance tracking.

## Clients

A client represents the customer organization associated with one or more projects. Clients serve as the primary entity used to group projects, service offerings, and resource plans, allowing for aggregated reporting on revenue, margin, utilization, and forecasting. Each project is tied to a client, enabling organizations to track work and financial performance at both the individual project and client account levels.

### List Clients

 - [GET /v1/clients](https://developer.getparallax.com/api-documentation/swagger/clients/listclients.md): Gets a paginated list of client organizations tracked in the system, supporting filtering and searching for project association and reporting.

### Create Client

 - [POST /v1/clients](https://developer.getparallax.com/api-documentation/swagger/clients/createclient.md): Creates a new client representing an organization that projects and revenue are associated with.

### Get Client

 - [GET /v1/clients/{id}](https://developer.getparallax.com/api-documentation/swagger/clients/getclient.md): Gets a specific client details by id, useful for project association and sales pipeline reporting.

### Update Client

 - [PATCH /v1/clients/{id}](https://developer.getparallax.com/api-documentation/swagger/clients/updateclient.md): Modifies an existing client, updating details like name, account manager, or CRM identifiers.

## Departments

A department is used to categorize and group roles within the organization based on functional teams or disciplines. Departments help segment resource capacity, manage utilization targets, and support filtering within reporting and planning workflows. Each role in Parallax belongs to a department for organizational clarity and capacity planning.

### List Departments

 - [GET /v1/departments](https://developer.getparallax.com/api-documentation/swagger/departments/listdepartments.md): Returns a paginated list of departments configured in the system, used to categorize people and roles for filtering and resourcing.

### Create Department

 - [POST /v1/departments](https://developer.getparallax.com/api-documentation/swagger/departments/createdepartment.md): Creates a new Department to categorize roles within the organization.

### Update Department

 - [PATCH /v1/departments/{id}](https://developer.getparallax.com/api-documentation/swagger/departments/updatedepartment.md): Updates an existing department's name or archived status.

## People

People represent the individual resources available for assignment to projects. People are assigned roles, billable capacity, and utilization targets, and can be categorized by worker type, billing type, and department. A Persons record is central to capacity planning, resource allocation, forecasting, and reporting across the platform.

### List People

 - [GET /v1/people](https://developer.getparallax.com/api-documentation/swagger/people/listpeople.md): Returns a paginated list of individuals in the system.

### Create Person

 - [POST /v1/people](https://developer.getparallax.com/api-documentation/swagger/people/createperson.md): Creates a profile for an individual within the organization, defining capacity, roles, and billable status for resourcing and forecasting.

### Get Person

 - [GET /v1/people/{id}](https://developer.getparallax.com/api-documentation/swagger/people/getperson.md): Fetches specified person's profile details by id.

### Update Person

 - [PATCH /v1/people/{id}](https://developer.getparallax.com/api-documentation/swagger/people/updateperson.md): Updates a person’s profile details such as capacity, cost rate, billing type, or termination date.

## Pipelines

A Pipeline mirrors the sales opportunity stages configured in the integrated CRM system. The Pipeline allows Parallax to track deal progression, forecast demand, and convert opportunities into projects once deals are closed-won.

### List Pipelines

 - [GET /v1/pipelines](https://developer.getparallax.com/api-documentation/swagger/pipelines/listpipelines.md): Fetches a paginated list of sales pipelines

### Create Pipeline

 - [POST /v1/pipelines](https://developer.getparallax.com/api-documentation/swagger/pipelines/createpipeline.md): Creates a new pipeline in the system to create pipeline stages for, unlocking the ability to track a deal's progress through the sale cycle.

### Get Pipeline by id

 - [GET /v1/pipelines/{id}](https://developer.getparallax.com/api-documentation/swagger/pipelines/getpipeline.md): Fetches pipeline by id to support sales forecasting and resource planning.

### Update Pipeline

 - [PATCH /v1/pipelines/{id}](https://developer.getparallax.com/api-documentation/swagger/pipelines/updatepipeline.md): Updates an existing pipeline entry to reflect stage changes, budget adjustments, or anticipated start dates.

## ProjectOfferingRoles

A Project Offering Role defines the specific role, resource allocation, and scheduled hours needed within a Project Offering. These roles form the basis of the resource plan by identifying the skill sets, timelines, and capacity requirements for successful delivery of the scoped work.

### List Project Offering Roles

 - [GET /v1/projects/{project_id}/offerings/{project_offering_id}/roles](https://developer.getparallax.com/api-documentation/swagger/projectofferingroles/listprojectofferingroles.md): Lists paginated project offering roles currently planned or used within a project offering.

### Create Project Offering Role

 - [POST /v1/projects/{project_id}/offerings/{project_offering_id}/roles](https://developer.getparallax.com/api-documentation/swagger/projectofferingroles/createprojectofferingrole.md): Creates a Project Offering Role.

### Delete Project Offering Role

 - [DELETE /v1/projects/{project_id}/offerings/{project_offering_id}/roles/{id}](https://developer.getparallax.com/api-documentation/swagger/projectofferingroles/deleteprojectofferingrole.md): Deletes a Project Offering Role. The role must not have any assignments or planned time.

### Get Project Offering Role

 - [GET /v1/projects/{project_id}/offerings/{project_offering_id}/roles/{id}](https://developer.getparallax.com/api-documentation/swagger/projectofferingroles/getprojectofferingrole.md): Gets details of a specific role within a Project Offering, including assignment.

### Update Project Offering Role

 - [PATCH /v1/projects/{project_id}/offerings/{project_offering_id}/roles/{id}](https://developer.getparallax.com/api-documentation/swagger/projectofferingroles/updateprojectofferingrole.md): Updates a Project Offering Role. This includes assigning a specific Person or Requisition. Removing or replacing an assignment where the current person has actuals will return a 409 Conflict.

### List Project Offering Role Plans

 - [GET /v1/projects/{project_id}/offerings/{project_offering_id}/roles/{id}/planned-time](https://developer.getparallax.com/api-documentation/swagger/projectofferingroles/listprojectofferingroleplans.md): Lists paginated planned time entries for a Project Offering Role with filtering by date range. Days with no planned hours are not returned.

### Update Project Offering Role Plans

 - [POST /v1/projects/{project_id}/offerings/{project_offering_id}/roles/{id}/planned-time](https://developer.getparallax.com/api-documentation/swagger/projectofferingroles/updateprojectofferingroleplans.md): Updates a Project Offering Role's Plans. Takes an array of ProjectOfferingRolePlannedTime entries and applies them to the specified Project Offering Role. Up to 100 entries can be sent at a time. To clear plans for a given day, send 0 hours. Dates omitted from the request will not be altered.

## ProjectOfferings

A Project Offering represents a distinct scope or phase of work within a Project. Each Project Offering contains resource plans, financial models, and revenue data, allowing organizations to model different work types and billing structures within a single project. Offerings help align sales, delivery, and operations teams around specific scopes of work and resourcing needs.

### List Project Offerings

 - [GET /v1/projects/{project_id}/offerings](https://developer.getparallax.com/api-documentation/swagger/projectofferings/listprojectofferings.md): Gets a paginated list of Project Offerings for a specified project, which serve as containers for resource plans, budgets, and financial models.

### Create Project Offering.

 - [POST /v1/projects/{project_id}/offerings](https://developer.getparallax.com/api-documentation/swagger/projectofferings/createprojectoffering.md): Creates a new Project Offering for the specified Project. Additional configuration for certain Billing Models are optional.

### Get Project Offering

 - [GET /v1/projects/{project_id}/offerings/{id}](https://developer.getparallax.com/api-documentation/swagger/projectofferings/getprojectoffering.md): Gets details of a specific Project Offering, including financial settings, planned roles, and associated timesheet project.

### Update Project Offering.

 - [PATCH /v1/projects/{project_id}/offerings/{id}](https://developer.getparallax.com/api-documentation/swagger/projectofferings/updateprojectoffering.md): Updates a Project Offering's name and billing model, if provided. The ability to modify a Project Offering is limited, once the parent Project status has been moved beyond Awaiting Start.

### Get Project Offering Metrics

 - [GET /v1/projects/{project_id}/offerings/{id}/metrics](https://developer.getparallax.com/api-documentation/swagger/projectofferings/getprojectofferingmetricsbyid.md): Labor and financial metrics for this Project Offering. All calculations involving Actual Time entries are subject to the Calculation Threshold organization setting.

## Projects

A Project represents a distinct engagement or scope of work that the organization is delivering for a Client. Projects serve as containers for Project Offerings.

### List Projects

 - [GET /v1/projects](https://developer.getparallax.com/api-documentation/swagger/projects/listprojects.md): Gets a paginated list of Projects in the system, including client and internal projects, for comprehensive visibility across your portfolio.

### Create Project

 - [POST /v1/projects](https://developer.getparallax.com/api-documentation/swagger/projects/createproject.md): Creates a new Project entity, serving as the main container for Project Offerings.

### Get Project

 - [GET /v1/projects/{id}](https://developer.getparallax.com/api-documentation/swagger/projects/getproject.md): Gets a specific project's full details.

### Update Project

 - [PATCH /v1/projects/{id}](https://developer.getparallax.com/api-documentation/swagger/projects/updateproject.md): Updates project-level details.

### Add External ID

 - [POST /v1/projects/{id}/external-ids](https://developer.getparallax.com/api-documentation/swagger/projects/addexternalid.md): Adds a custom integration external identifier to a Project. This can be any opaque string used to correlate the Project with a record in an external system. Strings starting with a reserved 'px_' provider prefix (e.g., 'px_hubspot:') are reserved for use by Parallax integrations and not allowed.

### Remove External ID

 - [DELETE /v1/projects/{id}/external-ids/{external_id}](https://developer.getparallax.com/api-documentation/swagger/projects/removeexternalid.md): Removes a custom integration external identifier from a Project.

### Merge Projects

 - [POST /v1/projects/{target_id}/merge/{source_id}](https://developer.getparallax.com/api-documentation/swagger/projects/mergeprojects.md): Merges a source project into a target project, consolidating all project offerings, roles, and associated data from the source into the target. This operation cannot be undone. Projects with actual time on them cannot be the source of a merge.

## RateCardRates

Rate Card Rates represent the billable rates for specific roles within a Rate Card.

### List Rate Card Rates

 - [GET /v1/rate-cards/{rate_card_id}/rates](https://developer.getparallax.com/api-documentation/swagger/ratecardrates/listratecardrates.md): Gets a paginated list of rates for all roles on a specific rate card.

## RateCards

A Rate Card represents a list of roles with a standard bill rate for each role.

### List Rate Cards

 - [GET /v1/rate-cards](https://developer.getparallax.com/api-documentation/swagger/ratecards/listratecards.md): Returns a paginated list of Rate Cards.

## Roles

A Role defines the type of work or skill set associated with resource assignments to project offerings. Roles are used to categorize resources, shape staffing needs, and support forecasting by identifying which types of personnel are required for each project offering.

### List Roles

 - [GET /v1/roles](https://developer.getparallax.com/api-documentation/swagger/roles/listroles.md): Returns paginated list of defined roles used in shaping resource plans, typically categorized by department and used to match people to work.

### Create Role

 - [POST /v1/roles](https://developer.getparallax.com/api-documentation/swagger/roles/createrole.md): Creates a new role within a department to be used for shaping, planning, and reporting.

### Get Role

 - [GET /v1/roles/{id}](https://developer.getparallax.com/api-documentation/swagger/roles/getrole.md): Gets details of a specific role used for shaping, planning, and reporting.

### Update Role

 - [PATCH /v1/roles/{id}](https://developer.getparallax.com/api-documentation/swagger/roles/updaterole.md): Updates an existing role's properties including name, department, capacity, and utilization targets.

## Stages

A Pipeline Stage represents a single stage within the Pipeline, mapping directly to the stages defined in the system. Pipeline Stages allow for real-time visibility into opportunity status and expected resource demand throughout the sales process.

### List Pipeline Stages

 - [GET /v1/pipelines/{pipeline_id}/stages](https://developer.getparallax.com/api-documentation/swagger/stages/liststages.md): Gets all pipeline stages reflected in the specified sales pipeline, enabling alignment between sales forecasting and project readiness.

### Create Pipeline Stage

 - [POST /v1/pipelines/{pipeline_id}/stages](https://developer.getparallax.com/api-documentation/swagger/stages/createstage.md): Adds a new sales stage to the specified pipeline mapping in Parallax, aligning sales progress with resourcing needs.

### Get Pipeline Stage

 - [GET /v1/pipelines/{pipeline_id}/stages/{id}](https://developer.getparallax.com/api-documentation/swagger/stages/getstage.md): Gets details of a pipeline stage used in sales pipeline alignment.

### Update Pipeline Stage

 - [PATCH /v1/pipelines/{pipeline_id}/stages/{id}](https://developer.getparallax.com/api-documentation/swagger/stages/updatestage.md): Updates a stage in the pipeline used to mirror opportunity progress into Parallax.

## Tags

A Tag is a flexible metadata label used to categorize and filter entities such as People, Projects, and Project Offering Roles. Tags support custom grouping, reporting, and segmentation across multiple areas of the platform, enabling organizations to adapt Parallax to their internal business structures and workflows.

### List all Tags

 - [GET /v1/tags](https://developer.getparallax.com/api-documentation/swagger/tags/listtags.md): Returns all custom tags used throughout the system for categorization, filtering, and segmentation of people, projects, or clients.

## TimesheetEntries

Timesheet Entries represent time recorded within the Parallax Timesheets service, including additional properties related approval state.

### List Timesheet Entries

 - [GET /v1/timesheet-entries](https://developer.getparallax.com/api-documentation/swagger/timesheetentries/listtimesheetentries.md): Gets a paginated list of timesheet entries recorded for a given time period with optional filtering by project offering, approval status, and etc. When no start or end date filters are provided, returns entries from the last 7 days (7 days ago through today).

## WebhookSubscribers

Webhook configurations enable organizations to receive real-time event notifications via HTTP callbacks. Organizations can configure a single webhook endpoint to receive notifications about events such as project or offering, creation or changes. Each webhook includes a secret key for validating the authenticity of incoming requests.

### List Webhook Subscribers

 - [GET /v1/webhook-subscribers](https://developer.getparallax.com/api-documentation/swagger/webhooksubscribers/listwebhooksubscribers.md): Returns the webhook subscriber for the organization. At most one webhook configuration exists per organization.

### Create Webhook Configuration

 - [POST /v1/webhook-subscribers](https://developer.getparallax.com/api-documentation/swagger/webhooksubscribers/createwebhooksubscriber.md): Creates a webhook configuration for the organization to receive event notifications via HTTP callbacks.

### Delete Webhook Configuration

 - [DELETE /v1/webhook-subscribers/{subscriber_id}](https://developer.getparallax.com/api-documentation/swagger/webhooksubscribers/deletewebhooksubscriber.md): Deletes the webhook configuration for the organization and removes all associated topic subscriptions.

### Update Webhook Configuration

 - [PATCH /v1/webhook-subscribers/{subscriber_id}](https://developer.getparallax.com/api-documentation/swagger/webhooksubscribers/updatewebhooksubscriber.md): Updates the callback URL for an existing webhook configuration.

## WebhookSubscriptions

Webhook subscriptions define the topics for which a given WebhookSubscriber will receive notifications.

### List Webhook Topic Subscriptions

 - [GET /v1/webhook-subscribers/{subscriber_id}/subscriptions](https://developer.getparallax.com/api-documentation/swagger/webhooksubscriptions/listsubscriptions.md): Returns all topic subscriptions for a webhook configuration.

### Subscribe to Webhook Topic

 - [POST /v1/webhook-subscribers/{subscriber_id}/subscriptions](https://developer.getparallax.com/api-documentation/swagger/webhooksubscriptions/createsubscription.md): Creates a subscription to a specific webhook topic for an existing webhook configuration. The webhook will receive notifications for events matching the specified topic.

### Remove Webhook Topic Subscription

 - [DELETE /v1/webhook-subscribers/{subscriber_id}/subscriptions/{id}](https://developer.getparallax.com/api-documentation/swagger/webhooksubscriptions/deletesubscription.md): Removes a specific topic subscription from an existing webhook configuration.

### Get Webhook Subscription

 - [GET /v1/webhook-subscribers/{subscriber_id}/subscriptions/{id}](https://developer.getparallax.com/api-documentation/swagger/webhooksubscriptions/getsubscription.md): Retrieves a specific webhook topic subscription by ID for the given webhook configuration.

