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{
"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.
| Field | Type | Required | Description |
|---|---|---|---|
| file_content | string | Required | MS Project XML file content (UTF-8 encoded text) |
| options | object | Optional | Options controlling MS Project XML import behavior. |
| options.strict_validation | boolean | Optional | No description in OpenAPI contract. |
| options.auto_detect_start_finish | boolean | Optional | No description in OpenAPI contract. |
| options.auto_classify_task_types | boolean | Optional | No description in OpenAPI contract. |
| options.use_prefix_classification | boolean | Optional | Detect 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_warnings | boolean | Optional | No description in OpenAPI contract. |
| options.preserve_task_ids | boolean | Optional | No description in OpenAPI contract. |
| options.baseline_index | integer | Optional | Which baseline to import: 0 = Baseline, 1-10 = Baseline1-Baseline10, -1 = skip baseline import. |
| options.percent_complete_source | string | Optional | Which 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_priority | array<string> | Optional | Ordered 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_priority | array<string> | Optional | Ordered 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{
"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.
| Field | Type | Required | Description |
|---|---|---|---|
| status | string | Required | Top-level result status — always present in every response. |
| metadata | object | Required | Audit trail and processing context — always present, never null. |
| metadata.task_count | integer | Required | Number of tasks in the submitted schedule |
| metadata.endpoint | string | Required | Endpoint path e.g. /api/v1/health/score |
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