Upload a schedule file
Uploads a P6 schedule file (XER, XML, or PPX) and enqueues a sync job to parse and ingest it.
Required scope: write:schedule_files
Constraints:
filemust be a multipart/form-data upload.file_typemust be one ofxer,xml,ppx.- Within the same partner family (XER/XML share a family; PPX is its
own), the most recent file’s
file_typecannot change between uploads. Switching formats inside a partner returns 422file_type_mismatch. PPX after XER is allowed because they belong to different partners. customer_project_id, if provided, must reference a customer project owned by the authenticated company.
422 error codes:
invalid_request— missing required parameter (name,file, orfile_type) orfileis not a multipart upload.file_type_mismatch— the most recent file in the same partner family uses a differentfile_type.validation_error— the underlying record failed model-level validation (including unknownfile_typevalues).
Authorizations
Bearer token obtained from POST /oauth/token. Send as Authorization: Bearer <token>. Tokens expire after 1 hour; refresh by requesting a new one with the same client credentials.
Body
"October Baseline"
The schedule file to upload.
xer, xml, ppx "xer"
Optional. Associate the file with a customer project owned by the authenticated company.
Response
File uploaded; sync job enqueued
Unique identifier for the schedule file.
482
Human-readable name supplied when the file was uploaded.
"October 2026 Baseline"
True if the file was marked as a baseline at upload time; baselines are preserved for variance reporting.
false
ID of the company that owns this file. Always equal to the authenticated client's company.
1042
Project association if one was provided on upload. null for unassociated files.
ISO 8601 timestamp of when the upload was accepted.
"2026-04-27T15:30:00Z"