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

Import MS Project XML Schedule

Parses an MS Project XML file (exported from MS Project as XML) and returns a Normalized Schedule JSON object compatible with all analysis APIs.

Tier access: Starter and above.

File size limit: 50 MB.

Input: XML file content as a UTF-8 string in the file_content field.

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_contentstringRequiredMS Project XML file content (UTF-8 encoded text)
optionsobjectOptionalOptions controlling MS Project XML import behavior.
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', 'LOE-Support', 'PP-Futurework', 'AE-Engineering'). Fires only when native type is not already set. See Import API Common Patterns § Prefix Classification.
options.include_warningsbooleanOptionalNo description in OpenAPI contract.
options.preserve_task_idsbooleanOptionalNo description in OpenAPI contract.
options.baseline_indexintegerOptionalWhich baseline to import: 0 = Baseline, 1-10 = Baseline1-Baseline10, -1 = skip baseline import.
options.percent_complete_sourcestringOptionalWhich MSP percent complete field to map to percent_complete. Options: 'auto' (resource-aware: PercentWorkComplete for resourced tasks, PercentComplete for unresourced), 'duration' (always PercentComplete), 'work' (always PercentWorkComplete), 'physical' (PhysicalPercentComplete). PhysicalPercentComplete is always captured in physical_percent_complete regardless of this setting.
options.wbs_field_priorityarray<string>OptionalOrdered list of custom field aliases to check as the source for wbs_code. First alias found in the project definition AND having a non-empty task value wins. Falls back to native <WBS> element if none match. Case-insensitive alias match. Set to [] to always use only the native <WBS> element.
options.obs_field_priorityarray<string>OptionalOrdered list of custom field aliases to check as the source for organization_code. First alias with a non-empty task value wins. No native fallback — organization_code remains null if no alias matches. Set to [] to skip OBS extraction entirely.

Response example

json
json
{
  "status": "info",
  "metadata": {
    "task_count": 25,
    "endpoint": "/api/v1/import/mpp",
    "api_version": "v0.2.0",
    "processing_time_ms": 450
  },
  "data": {
    "normalized_schedule": {
      "tasks": [
        {
          "id": "1",
          "name": "Project Kickoff",
          "duration_days": 0,
          "predecessors": [],
          "task_type": "milestone"
        }
      ],
      "start_task_ids": [
        "1"
      ],
      "finish_task_ids": [
        "5"
      ]
    },
    "parse_summary": {
      "source_format": "mpp-xml",
      "tasks_imported": 25,
      "dependencies_imported": 22
    },
    "mapping_stats": {},
    "warnings": [],
    "processing_metadata": {
      "import_timestamp": "2026-05-27T12:00:00Z",
      "processing_time_ms": 450,
      "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_mpp_api_v1_import_mpp_post
Section
Import
Tags
Import
Playground link
/playground?endpoint=%2Fapi%2Fv1%2Fimport%2Fmpp&method=post

Was this page helpful?

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

Topic: Import MS Project XML Schedule · Page: /docs/api-reference/import_mpp_api_v1_import_mpp_post

TermsPrivacyContact

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