Skip to content
POST/api/v1/import/xer

Import Primavera P6 XER Schedule

Parses a Primavera P6 XER file and returns a Normalized Schedule JSON object compatible with all analysis APIs.

Tier access: Starter and above.

File size limit: 100 MB.

Input: XER file content as a UTF-8 or Latin-1 string in the file_content field.

Multi-project XER: If the XER file contains multiple projects, specify options.project_id to select the target project. Omitting project_id when multiple projects are present returns a 422 error listing available project IDs.

Output: normalized_schedule (ready to submit to /health/score, /forensics/dcma-14-point, etc.) plus parse_summary, mapping_stats, warnings, and processing_metadata.

Request example

json
json
{
  "tasks": [
    {
      "id": "T1",
      "duration_days": 5
    }
  ]
}

Request fields from OpenAPI contract

Required fields and the optional fields that change this call are listed here. The shared task model stays on the task schema guide.

This table is generated from the endpoint schema in openapi.json.

FieldTypeRequiredDescription
file_contentstringRequiredP6 XER file content (text, any encoding — auto-detected)
optionsobjectOptionalOptions controlling P6 XER import behavior.
options.project_idstring | nullOptionalSelect a specific project from a multi-project XER. Required if XER contains more than one project.
options.strict_validationbooleanOptionalNo description in OpenAPI contract.
options.auto_detect_start_finishbooleanOptionalNo description in OpenAPI contract.
options.auto_classify_task_typesbooleanOptionalNo description in OpenAPI contract.
options.use_prefix_classificationbooleanOptionalDetect task type from name prefix (e.g., 'SM-Buffer', 'PP-FuturePh3', 'AE-Engineering'). Fires only when native P6 task_type is not already set. See Import API Common Patterns § Prefix Classification.
options.include_warningsbooleanOptionalNo description in OpenAPI contract.
options.use_activity_idbooleanOptionalUse task_code (Activity ID) as task id instead of numeric task_id.

Response example

json
json
{
  "status": "info",
  "metadata": {
    "task_count": 120,
    "endpoint": "/api/v1/import/xer",
    "api_version": "v0.2.0",
    "processing_time_ms": 380
  },
  "data": {
    "normalized_schedule": {
      "tasks": [
        {
          "id": "A1000",
          "name": "Project Kickoff",
          "duration_days": 0,
          "predecessors": [],
          "task_type": "milestone"
        }
      ],
      "start_task_ids": [
        "A1000"
      ],
      "finish_task_ids": [
        "A9900"
      ]
    },
    "parse_summary": {
      "source_format": "p6-xer",
      "tasks_imported": 120,
      "dependencies_imported": 145
    },
    "mapping_stats": {},
    "warnings": [],
    "processing_metadata": {
      "import_timestamp": "2026-05-27T12:00:00Z",
      "processing_time_ms": 380,
      "api_version": "v0.2.0",
      "parser_version": "1.1.0"
    }
  }
}

Response fields from OpenAPI contract

This table is generated from the endpoint response schema in openapi.json.

FieldTypeRequiredDescription
statusstringRequiredTop-level result status — always present in every response.
metadataobjectRequiredAudit trail and processing context — always present, never null.
metadata.task_countintegerRequiredNumber of tasks in the submitted schedule
metadata.endpointstringRequiredEndpoint path e.g. /api/v1/health/score

Schema

json-schema
{
  "$ref": "#/components/schemas/BellatorResponse_ImportData_"
}

Authentication

  • x-api-key header

Reference details

Operation ID
import_xer_api_v1_import_xer_post
Section
Import
Tags
Import
Playground link
/playground?endpoint=%2Fapi%2Fv1%2Fimport%2Fxer&method=post

Was this page helpful?

Your feedback helps us improve docs, reference pages, and Playground flows.

Topic: Import Primavera P6 XER Schedule · Page: /docs/api-reference/import_xer_api_v1_import_xer_post

TermsPrivacyContact

Schedule analysis guidance. Not legal advice. You remain responsible for contract and agency compliance.