Oracle Primavera Projects API

Project management operations

OpenAPI Specification

oracle-primavera-projects-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Oracle Primavera P6 EPPM REST Activities Projects API
  description: Oracle Primavera P6 EPPM REST API provides programmatic access to enterprise project portfolio management data including WBS structures, activity schedules, resource assignments, critical path analysis, and portfolio dashboards. Available for both cloud and on-premises deployments.
  version: 26.0.0
  contact:
    name: Oracle Support
    url: https://support.oracle.com
  license:
    name: Oracle Technology Network License
    url: https://www.oracle.com/legal/terms/
servers:
- url: https://{host}/p6ws/rest/v1
  description: P6 EPPM REST API
  variables:
    host:
      default: primavera.example.com
      description: P6 EPPM server hostname
security:
- basicAuth: []
- oauth2: []
tags:
- name: Projects
  description: Project management operations
paths:
  /projects:
    get:
      operationId: listProjects
      summary: List projects
      description: Returns a collection of projects accessible to the authenticated user, with optional field filtering.
      tags:
      - Projects
      parameters:
      - name: Fields
        in: query
        description: Comma-separated list of fields to return
        schema:
          type: string
          example: ObjectId,Id,Name,Status,StartDate,FinishDate
      - name: Filter
        in: query
        description: RSQL filter expression
        schema:
          type: string
      - name: OrderBy
        in: query
        description: Field to sort by
        schema:
          type: string
      - name: offset
        in: query
        description: Pagination offset
        schema:
          type: integer
          default: 0
      - name: limit
        in: query
        description: Maximum records to return
        schema:
          type: integer
          default: 100
          maximum: 1000
      responses:
        '200':
          description: List of projects
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/ServerError'
    post:
      operationId: createProject
      summary: Create a project
      description: Creates a new project in the P6 EPPM system.
      tags:
      - Projects
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectCreate'
      responses:
        '200':
          description: Created project object IDs
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    ObjectId:
                      type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /projects/{objectId}:
    get:
      operationId: getProject
      summary: Get a project
      description: Returns a single project by its ObjectId.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ObjectId'
      - name: Fields
        in: query
        description: Comma-separated list of fields to return
        schema:
          type: string
      responses:
        '200':
          description: Project details
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateProject
      summary: Update a project
      description: Updates fields on an existing project.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ObjectId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectUpdate'
      responses:
        '200':
          description: Update confirmation
        '400':
          $ref: '#/components/responses/BadRequest'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteProject
      summary: Delete a project
      description: Permanently deletes a project and all its child objects.
      tags:
      - Projects
      parameters:
      - $ref: '#/components/parameters/ObjectId'
      responses:
        '200':
          description: Delete confirmation
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    ProjectUpdate:
      type: object
      properties:
        ObjectId:
          type: integer
        Name:
          type: string
        Status:
          type: string
          enum:
          - Active
          - Inactive
          - What-if
          - Planned
        DataDate:
          type: string
          format: date-time
        PercentComplete:
          type: number
          format: double
    Error:
      type: object
      properties:
        ErrorCode:
          type: integer
        ErrorMessage:
          type: string
    Project:
      type: object
      description: An Oracle Primavera P6 project
      properties:
        ObjectId:
          type: integer
          description: Unique system-generated identifier
        Id:
          type: string
          description: User-defined project ID (up to 40 chars)
        Name:
          type: string
          description: Project name
        Status:
          type: string
          enum:
          - Active
          - Inactive
          - What-if
          - Planned
        PlannedStartDate:
          type: string
          format: date-time
        PlannedFinishDate:
          type: string
          format: date-time
        ActualStartDate:
          type: string
          format: date-time
          nullable: true
        ActualFinishDate:
          type: string
          format: date-time
          nullable: true
        DataDate:
          type: string
          format: date-time
        PercentComplete:
          type: number
          format: double
          minimum: 0
          maximum: 100
        TotalBudgetCost:
          type: number
          format: double
        EarnedValueCost:
          type: number
          format: double
        PlannedTotalCost:
          type: number
          format: double
        RiskLevel:
          type: string
          enum:
          - Very High
          - High
          - Medium
          - Low
          - Very Low
        WBSObjectId:
          type: integer
          description: Root WBS element ObjectId
        OBSObjectId:
          type: integer
          description: Responsible OBS element
        LastUpdateDate:
          type: string
          format: date-time
        CreateDate:
          type: string
          format: date-time
    ProjectCreate:
      type: object
      required:
      - Name
      - Id
      - WBSObjectId
      properties:
        Id:
          type: string
        Name:
          type: string
        Status:
          type: string
          enum:
          - Active
          - Inactive
          - What-if
          - Planned
          default: Active
        PlannedStartDate:
          type: string
          format: date-time
        WBSObjectId:
          type: integer
  parameters:
    ObjectId:
      name: objectId
      in: path
      required: true
      description: Unique numeric ObjectId
      schema:
        type: integer
        format: int64
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic Authentication with P6 username and password
    oauth2:
      type: oauth2
      description: Oracle Identity Cloud Service OAuth2
      flows:
        authorizationCode:
          authorizationUrl: https://identity.oraclecloud.com/oauth2/v1/authorize
          tokenUrl: https://identity.oraclecloud.com/oauth2/v1/token
          scopes:
            read: Read access to P6 data
            write: Write access to P6 data