Welcome to the reference for the SmartPM REST API!
The SmartPM REST API provides access to data for schedules that have been analyzed in SmartPM. If there is a particular dataset that you need access to that is missing from the API please contact us at support@smartpmtech.com.
You can access the SmartPM REST API using the https://live.smartpmtech.com endpoint
In order to access the SmartPM API you must authenticate each request using an API Key, note the API Key will give full access to your data, so be sure to keep it safe and rotate it frequently.
In order to generate an API Key requires the following steps:
Note: You must be a Company Admin in order to generate an API Key.
In order to get your Company ID to use with the API Key, please navigate to the company dashboard and note the value in the URL.
Note: In the screenshot above the Company ID is "18e19555-c5c1-4acd-9e1d-cd534287c21e"
Get all active projects for your company
Filters
Optional parameter to filter projects based on metadata field values in the format of
fieldName:value
Numeric and Date metadata fields can have operators such as [eq], [lt], [lte], [gt], [gte]
Example:
filters | string Filters based on Project Metadata |
asOf | string <date-time> /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d... Example: asOf=2023-07-19T12:00:00 Return projects that have changed since date |
X-API-KEY required | string Your API KEY |
X-COMPANY-ID required | string |
[- {
- "id": 0,
- "name": "string",
- "startDate": "string",
- "country": "string",
- "city": "string",
- "state": "string",
- "zipcode": "string",
- "latitude": 0,
- "longitude": 0,
- "originalScenarioId": 0,
- "defaultScenarioId": 0,
- "underConstruction": true,
- "projectPlanId": "string",
- "projectPlanSlotCount": 0,
- "weatherStationId": null,
- "metadata": { },
- "companyId": "string",
- "source": "string",
- "dataDate": "string"
}
]
Create a new project in SmartPM
X-API-KEY required | string Your API Key |
X-COMPANY-ID required | string |
name required | string |
city required | string |
state required | string |
zipCode required | string |
country required | string |
latitude required | number |
longitude required | number |
required | Array of objects The files that you have uploaded to SmartPM that you want imported to the project. Note: Currently only 1 file is supported. |
source required | string Enum: "XER" "MPP" "PMXML" "PPX" "PP" |
projectPlan | string Enum: "Dashboard" "Oversight" "Controls" The plan that you would like for the project to be in, if a value is not supplied then the company default is used. |
object A object representing the key value pairs for the metadata |
{- "name": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "string",
- "latitude": 0,
- "longitude": 0,
- "files": [
- {
- "fileId": "string",
- "name": "string",
- "dataDate": "2019-08-24T14:15:22Z",
- "contractualEndDate": "2019-08-24T14:15:22Z"
}
], - "source": "XER",
- "projectPlan": "Dashboard",
- "metadata": {
- "key": "string"
}
}
{- "projectId": 0,
- "message": "string",
- "files": [
- {
- "fileId": "string",
- "importId": "string",
- "valid": true,
- "errors": [
- "string"
]
}
]
}
Get a specific project
projectId required | string |
projectId required | string |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string Your Company ID |
{- "id": 0,
- "name": "string",
- "startDate": "string",
- "country": "string",
- "city": "string",
- "state": "string",
- "zipcode": "string",
- "latitude": 0,
- "longitude": 0,
- "originalScenarioId": 0,
- "defaultScenarioId": 0,
- "underConstruction": true,
- "projectPlanId": "string",
- "projectPlanSlotCount": 0,
- "weatherStationId": null,
- "metadata": { },
- "companyId": "string",
- "source": "string",
- "dataDate": "string"
}
Update project metadata field values
projectId required | string The project to update |
X-API-KEY required | string |
X-COMPANY-ID required | string |
Project metadata fields and values to update
API_KEY | string |
{- "FIELD1": "value1",
- "FIELD2": "value2",
- "FIELD3": "value3"
}
{- "FIELD1": "value1",
- "FIELD2": "value2",
- "FIELD3": "value3"
}
Notes Endpoint
projectId required | number |
X-API-KEY | string |
X-COMPANY-ID | string |
notes | string |
{- "notes": "string"
}
[- {
- "notes": "string",
- "user": "string",
- "createdAt": "string"
}
]
Get all of the project calendars
projectId required | string |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "id": 0,
- "baseCalendarId": null,
- "name": "string",
- "hoursPerDay": 0,
- "hoursPerMonth": 0,
- "hoursPerWeek": 0,
- "hoursPerYear": 0,
- "worktimeList": [
- {
- "id": 0,
- "holiday": true,
- "dayOfWeek": 0,
- "specificDate": "string",
- "hours": 0,
- "timeStart1": "string",
- "timeStart2": "string",
- "timeStart3": null,
- "timeStart4": null,
- "timeEnd1": "string",
- "timeEnd2": "string",
- "timeEnd3": null,
- "timeEnd4": null
}
]
}
]
Get a specific project calendar
projectId required | string |
calendarId required | string |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
{- "id": 0,
- "baseCalendarId": null,
- "name": "string",
- "hoursPerDay": 0,
- "hoursPerMonth": 0,
- "hoursPerWeek": 0,
- "hoursPerYear": 0,
- "worktimeList": [
- {
- "id": 0,
- "holiday": true,
- "dayOfWeek": 0,
- "specificDate": "2019-08-24T14:15:22Z",
- "hours": 0,
- "timeStart1": "string",
- "timeStart2": "string",
- "timeStart3": null,
- "timeStart4": null,
- "timeEnd1": "string",
- "timeEnd2": "string",
- "timeEnd3": null,
- "timeEnd4": null
}
]
}
Get the work breakdown structure (WBS) for a project
projectId required | string |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "id": 0,
- "parentWBSId": null,
- "sequenceNumber": 0,
- "code": "string",
- "name": "string"
}
]
Get the activity code types for a project
projectId required | string |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "id": 0,
- "sequenceNumber": 0,
- "name": "string",
- "activityCodes": [
- {
- "id": 0,
- "value": "string",
- "desc": "string",
- "sequenceNumber": 0,
- "order": 0
}
]
}
]
Get specific activity code for a project
projectId required | string |
activityCodeTypeId required | string |
activityCodeId required | string |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
{- "id": 0,
- "parent": null,
- "value": "string",
- "desc": "string",
- "sequenceNumber": 0,
- "order": 0,
- "children": [
- { }
]
}
Get specific activity code type for a project
projectId required | string |
activityCodeTypeId required | string |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
{- "id": 0,
- "externalProjectId": 0,
- "sequenceNumber": 0,
- "secureCode": true,
- "length": 0,
- "name": "string",
- "scope": "string",
- "epsId": 0,
- "epsNumber": 0,
- "activityCodes": [
- {
- "id": 0,
- "value": "string",
- "desc": "string",
- "sequenceNumber": 0,
- "order": 0
}
]
}
Get a specific work breakdown structure element (WBS) for a project
projectId required | string |
wbsId required | string |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
{- "id": 0,
- "parentWBSId": null,
- "sequenceNumber": 0,
- "code": "string",
- "name": "string"
}
A scenario represents an analysis that has been done on a set of schedules with zero or more rules applied.
Get all active scenarios for the specified project
projectId required | number The ID of the project for which you want to retrieve scenarios |
asOf | string <date-time> /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d... Example: asOf=2023-07-19T12:00:00 Return scenarios that have changed since date |
X-API-KEY required | string Your API KEY |
X-COMPANY-ID required | string |
[- {
- "id": 0,
- "name": "string",
- "description": "string",
- "dataDate": "2019-08-24",
- "scenarioType": "COMPLETE",
- "activityId": "string",
- "modelId": 0
}
]
Get the details for a scenario
projectId required | number The ID of the project containing the scenario for which you want to retrieve details |
scenarioId required | number The ID of the scenario for which you want to retrieve details |
dataDate | stringyyyy-MM-dd Data date for which you want to retrieve the scenario details for, if blank will use the latest data date |
X-API-KEY required | string Your API KEY |
X-COMPANY-ID required | string |
{- "dataDate": "string",
- "name": "string",
- "description": null,
- "scenarioType": "string",
- "activityId": null,
- "plannedPercentComplete": 0,
- "actualPercentComplete": 0,
- "forecastedCompletion": null,
- "scheduledCompletion": "string",
- "scheduleCompression": 0,
- "scheduleQualityGrade": "string",
- "criticalPathDelay": 0,
- "endDateVariance": 0,
- "futureRecovery": 0,
- "health": 0,
- "schedulePerformanceIndex": 0,
- "baselineEndDate": "string",
- "contractualEndDate": null,
- "plannedManpower": 0,
- "earnedManpower": 0,
- "remainingManpower": 0,
- "actualManpower": 0,
- "currentEstimatedManpower": 0,
- "plannedBudget": 0,
- "remainingBudget": 0,
- "earnedCost": 0,
- "manpowerPlannedPercentComplete": 0,
- "manpowerActualPercentComplete": 0,
- "manpowerPerformanceIndex": 0,
- "costPlannedPercentComplete": 0,
- "costActualPercentComplete": 0,
- "costPerformanceIndex": 0,
- "resourceCount": 0,
- "averageDurationVariance": 0
}
Generates the percent complete curve with all relevant data points. The dates for which data is returned is as follows.
projectId required | string |
scenarioId required | string |
X-API-KEY | string |
X-COMPANY-ID | string |
{- "percentCompleteTypes": {
- "ACTUAL": "string",
- "SCHEDULED": "string",
- "PLANNED": "string",
- "PREDICTIVE": "string",
- "BASELINE_ID_PLANNED": "string"
}, - "data": {
- "2022-11-14": {
- "ACTUAL": 0,
- "SCHEDULED": 0,
- "PLANNED": 0,
- "PREDICTIVE": 0,
- "BASELINE_ID_PLANNED": 0
}, - "2022-12-14": {
- "ACTUAL": 0,
- "SCHEDULED": 0,
- "PLANNED": 0,
- "PREDICTIVE": 0,
- "BASELINE_ID_PLANNED": 0
}
}
}
Generates the percent complete curve with all relevant data points. The dates for which data is returned is as follows.
projectId required | string |
scenarioId required | string |
delta | boolean Returns the change of progress between periods in place of progress. |
X-API-KEY | string |
X-COMPANY-ID | string |
{- "percentCompleteTypes": {
- "ACTUAL": "Actual",
- "SCHEDULED": "Scheduled Completion",
- "PLANNED": "Planned"
}, - "data": [
- {
- "DATE": "2019-04-22",
- "ACTUAL": 0,
- "SCHEDULED": null,
- "PLANNED": 0
}, - {
- "DATE": "2019-05-22",
- "ACTUAL": 0.413582934262081,
- "SCHEDULED": null,
- "PLANNED": 0.43
}, - {
- "DATE": "2019-06-22",
- "ACTUAL": 1.74140182847192,
- "SCHEDULED": null,
- "PLANNED": 1.74
}, - {
- "DATE": "2019-07-22",
- "ACTUAL": 3.569878101872006,
- "SCHEDULED": null,
- "PLANNED": 3.65
}, - {
- "DATE": "2019-08-22",
- "ACTUAL": 6.9062472790596425,
- "SCHEDULED": null,
- "PLANNED": 7.02
}, - {
- "DATE": "2019-09-22",
- "ACTUAL": 11.967361776229867,
- "SCHEDULED": null,
- "PLANNED": 11.67
}, - {
- "DATE": "2019-10-02",
- "ACTUAL": 13.599804092294296,
- "SCHEDULED": null,
- "PLANNED": 13.34
}, - {
- "DATE": "2019-10-31",
- "ACTUAL": 18.455146606520405,
- "SCHEDULED": null,
- "PLANNED": 19.46
}, - {
- "DATE": "2019-12-02",
- "ACTUAL": 21.54515698748204,
- "SCHEDULED": null,
- "PLANNED": 22.21
}, - {
- "DATE": "2020-01-29",
- "ACTUAL": 32.36677306515085,
- "SCHEDULED": null,
- "PLANNED": 32.75
}, - {
- "DATE": "2020-03-03",
- "ACTUAL": 36.69729544969023,
- "SCHEDULED": 36.69729544969024,
- "PLANNED": 38.66
}, - {
- "DATE": "2020-04-03",
- "ACTUAL": null,
- "SCHEDULED": 45.220910410735534,
- "PLANNED": 45.82
}, - {
- "DATE": "2020-05-03",
- "ACTUAL": null,
- "SCHEDULED": 50.8111262734817,
- "PLANNED": 53.2
}, - {
- "DATE": "2020-06-03",
- "ACTUAL": null,
- "SCHEDULED": 59.18191744404091,
- "PLANNED": 61.72
}, - {
- "DATE": "2020-07-03",
- "ACTUAL": null,
- "SCHEDULED": 67.95255558607407,
- "PLANNED": 70.35
}, - {
- "DATE": "2020-08-03",
- "ACTUAL": null,
- "SCHEDULED": 75.60330755020374,
- "PLANNED": 79.25
}, - {
- "DATE": "2020-09-03",
- "ACTUAL": null,
- "SCHEDULED": 85.37662785461839,
- "PLANNED": 89.96
}, - {
- "DATE": "2020-10-03",
- "ACTUAL": null,
- "SCHEDULED": 91.8506751547879,
- "PLANNED": 94.31
}, - {
- "DATE": "2020-11-03",
- "ACTUAL": null,
- "SCHEDULED": 96.1472077259302,
- "PLANNED": 97.22
}, - {
- "DATE": "2020-12-03",
- "ACTUAL": null,
- "SCHEDULED": 98.52654940777136,
- "PLANNED": 99.04
}, - {
- "DATE": "2021-01-03",
- "ACTUAL": null,
- "SCHEDULED": 99.85045930356762,
- "PLANNED": 99.98
}, - {
- "DATE": "2021-01-11",
- "ACTUAL": null,
- "SCHEDULED": 99.9786370433668,
- "PLANNED": 99.98
}, - {
- "DATE": "2021-01-12",
- "ACTUAL": null,
- "SCHEDULED": 100,
- "PLANNED": 99.98
}
]
}
Generates the earned schedule curve with all relevant data points. The dates for which data is returned is as follows.
projectId required | string |
scenarioId required | string |
X-API-KEY | string |
X-COMPANY-ID | string |
{- "data": [
- {
- "date": "2019-05-06",
- "earnedDays": 1
}, - {
- "date": "2019-06-06",
- "earnedDays": 20
}, - {
- "date": "2019-07-06",
- "earnedDays": 60
}, - {
- "date": "2019-08-06",
- "earnedDays": 93
}, - {
- "date": "2019-09-06",
- "earnedDays": 124
}, - {
- "date": "2019-10-02",
- "earnedDays": 150
}, - {
- "date": "2019-10-31",
- "earnedDays": 164
}, - {
- "date": "2019-12-02",
- "earnedDays": 185
}, - {
- "date": "2020-01-29",
- "earnedDays": 254
}, - {
- "date": "2020-03-03",
- "earnedDays": 283
}, - {
- "date": "2020-04-03",
- "earnedDays": 283
}, - {
- "date": "2020-05-03",
- "earnedDays": 283
}, - {
- "date": "2020-06-03",
- "earnedDays": 283
}, - {
- "date": "2020-07-03",
- "earnedDays": 283
}, - {
- "date": "2020-08-03",
- "earnedDays": 283
}, - {
- "date": "2020-09-03",
- "earnedDays": 283
}, - {
- "date": "2020-10-03",
- "earnedDays": 283
}, - {
- "date": "2020-11-03",
- "earnedDays": 283
}, - {
- "date": "2020-12-03",
- "earnedDays": 283
}, - {
- "date": "2021-01-03",
- "earnedDays": 283
}, - {
- "date": "2021-01-11",
- "earnedDays": 283
}, - {
- "date": "2021-01-12",
- "earnedDays": 283
}
]
}
Retrieve the schedule compression for a particular schedule
projectId required | string The Project ID containing the scenario for which you would like to pull the schedule quality for |
scenarioId required | string The Scenario ID for which you would like to pull the schedule quality for |
dataDate | string <date> The schedule data date you would like to retrieve schedule compression for. |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string Your Company ID |
{- "dataDate": "string",
- "scheduleCompression": 0,
- "scheduleCompressionIndex": 0,
- "indicator": "GOOD"
}
Retrieve the project health for a particular schedule
projectId required | string The Project ID containing the scenario for which you would like to pull the schedule quality for |
scenarioId required | string The Scenario ID for which you would like to pull the schedule quality for |
dataDate | string <date> The schedule data date you would like to retrieve schedule compression for. |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string Your Company ID |
{- "dataDate": "string",
- "health": 0,
- "risk": "GOOD"
}
Retrieve the project health trend for a particular scenario
projectId required | string The Project ID containing the scenario for which you would like to pull the schedule quality for |
scenarioId required | string The Scenario ID for which you would like to pull the schedule quality for |
dataDate | string <date> The schedule data date you would like to retrieve schedule compression for. |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string Your Company ID |
[- {
- "dataDate": "string",
- "health": 0,
- "risk": "GOOD"
}
]
Retrieve the schedule compression trend for a particular scenario
projectId required | string |
scenarioId required | string |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "dataDate": "2019-08-24T14:15:22Z",
- "scheduleCompression": 0,
- "scheduleCompressionIndex": 0,
- "indicator": "string"
}
]
Retrieve the schedule performance index for a specific schedule
projectId required | string |
scenarioId required | string |
dataDate | string <date-time> The schedule data date you would like to retrieve schedule performance index for. |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
{- "dataDate": "string",
- "spi": 0
}
Get the schedule performance index trend for a scenario
projectId required | string |
scenarioId required | string |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "dataDate": "2019-08-24T14:15:22Z",
- "spi": 0
}
]
Get all of the activities for the scenario on the specified data date
projectId required | number The ID of the project for which you want to retrieve activities |
scenarioId required | number The ID of the scenario for which you want to retrieve activities |
dataDate | stringyyyy-MM-dd Data date for which you want to retrieve the activities, if blank will use the latest data date |
filterId | number The ID for the filter that you want to filter the list of activities by |
X-API-KEY required | string Your API KEY |
X-COMPANY-ID required | string |
[- {
- "activityId": "string",
- "name": "string",
- "percentCompleteType": "DURATION",
- "durationPercentComplete": 0,
- "physicalPercentComplete": 0,
- "unitsPercentComplete": 0,
- "floatTotal": 0,
- "nativeFloatTotal": 0,
- "floatFree": 0,
- "activityType": "string",
- "constraintType": "AsLateAsPossible",
- "externalId": "string",
- "plannedDuration": 0,
- "remainingDuration": 0,
- "actualDuration": 0,
- "plannedBudget": 0,
- "plannedManpower": 0,
- "baseline": {
- "startDate": "2019-08-24T14:15:22Z",
- "finishDate": "2019-08-24T14:15:22Z",
- "duration": 0,
- "critical": true,
- "type": "GLOBAL"
}, - "inLongestPath": true,
- "retainLogic": true,
- "startDate": "2019-08-24T14:15:22Z",
- "finishDate": "2019-08-24T14:15:22Z",
- "lateStartDate": "2019-08-24T14:15:22Z",
- "lateFinishDate": "2019-08-24T14:15:22Z",
- "actualStartDate": "2019-08-24T14:15:22Z",
- "actualFinishDate": "2019-08-24T14:15:22Z",
- "constrainedDate": "2019-08-24T14:15:22Z",
- "resumeDate": "2019-08-24T14:15:22Z",
- "sourceStartDate": "2019-08-24T14:15:22Z",
- "sourceFinishDate": "2019-08-24T14:15:22Z",
- "sourceActualStartDate": "2019-08-24T14:15:22Z",
- "sourceActualFinishDate": "2019-08-24T14:15:22Z",
- "percentComplete": 0
}
]
Get all of the relationships for the scenario on the specified data date
projectId required | number The ID of the project for which you want to retrieve activities |
scenarioId required | number The ID of the scenario for which you want to retrieve activities |
dataDate | stringyyyy-MM-dd Data date for which you want to retrieve the activities, if blank will use the latest data date |
X-API-KEY required | string Your API KEY |
X-COMPANY-ID required | string |
[- {
- "id": 0,
- "predecessorId": 0,
- "successorId": 0,
- "type": "FS",
- "lag": 0
}
]
Import file to existing project with existing baseline. This endpoint will import the files to the originals scenario and update any scenarios marked as auto update with any valid files. A file will become invalid for a scenario if the scenario is a partial scenario and the activity no longer exists.
projectId required | string The project you would like to import the file for |
X-API-KEY required | string Your API Key |
X-COMPANY-ID required | string |
required | Array of objects non-empty unique |
sendNotification | boolean Send a notification whenever the delay analysis has completed for all scenarios that are being updated. |
{- "files": [
- {
- "fileId": "59b21b2a-ca3e-47ae-ba9b-a60c9a323eae",
- "name": "7-10-20 Schedule.mpp",
- "dataDate": "2020-07-10"
}, - {
- "fileId": "a1ec8eea-bee8-45eb-ba97-22c647178d86",
- "name": "Schedule 8-14-20.mpp"
}
], - "sendNotification": false
}
{- "files": [
- {
- "fileId": "59b21b2a-ca3e-47ae-ba9b-a60c9a323eae",
- "importId": "a8efad98-f869-43c5-966a-7467649ea0e6",
- "valid": true,
- "errors": [ ]
}, - {
- "fileId": "a1ec8eea-bee8-45eb-ba97-22c647178d86",
- "importId": "85f139eb-b7b2-4c41-9134-05461fc75d19",
- "valid": true,
- "errors": [ ]
}
], - "importId": "3a18c632-7e3f-494d-bed1-8e4ed4ae5b4d",
- "status": "Queued"
}
Get the status of the import
projectId required | string The project for while you would like to check the import status for |
importId required | string The import to check the status for |
X-API-KEY required | string |
X-COMPANY-ID required | string |
{- "message": "SUCCESS",
- "importId": "9a338600-a239-49a4-a96b-6c55de9de51b"
}
Upload file to be used for importing
X-API-KEY required | string Your API Key |
X-COMPANY-ID required | string |
Upload one file at a time as a multipart form data
files | any |
{- "fileId": "a1ec8eea-bee8-45eb-ba97-22c647178d86",
- "message": null
}
Get all users for project
projectId required | string The project to get users for |
X-API-KEY required | string |
X-COMPANY-ID required | string |
[- {
- "id": 1580,
- "user": "rsinha@smartpmtech.com",
- "role": "Schedule Admin"
}
]
Add a user to a project
projectId required | string The project to create user for |
X-API-KEY required | string |
X-COMPANY-ID required | string |
user required | string non-empty |
role required | string non-empty |
{- "user": "rsinha@smartpmtech.com",
- "role": "Schedule Admin"
}
{- "id": 1580,
- "user": "rsinha@smartpmtech.com",
- "role": "Schedule Admin"
}
projectId required | string The project to update user for |
userId required | string The user to update |
X-API-KEY required | string |
X-COMPANY-ID required | string |
user required | string non-empty |
role required | string non-empty |
{- "user": "rsinha@smartpmtech.com",
- "role": "Activity Manager"
}
{- "id": 1582,
- "user": "rsinha@smartpmtech.com",
- "role": "Activity Manager"
}
Get all users in your company
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string Your Company ID |
id | string |
firstName required | string non-empty |
lastName required | string non-empty |
email required | string non-empty |
phoneNumber | string |
title | string |
lastLogin required | string <date-time> UTC Timestamp of last login. |
loginCount required | number |
role required | string non-empty |
[- {
- "firstName": "Rohit",
- "lastName": "Sinha",
- "email": "info@smartpmtech.com",
- "lastLogin": "2021-02-18T21:43:18",
- "loginCount": 19,
- "role": "Company Admin"
}
]
Create new company user
X-API-KEY | string |
X-COMPANY-ID | string |
firstName required | string non-empty |
lastName required | string non-empty |
email required | string non-empty |
phoneNumber | string non-empty |
role required | string non-empty |
title required | string |
ssoUser | boolean |
disableNotification | boolean This field will allow disabling notifications to the user if they are an SSO user |
{- "firstName": "SmartPM",
- "lastName": "User",
- "email": "support@smartpmtech.com",
- "phoneNumber": "(404) 329-3000",
- "role": "Company Admin"
}
{- "id": "8b64e890-a2e6-49bb-8a62-b969c9fddd3d",
- "firstName": "SmartPM",
- "lastName": "User",
- "email": "support@smartpmtech.com",
- "phoneNumber": "(404) 329-3000",
- "role": "Company Admin",
- "lastLogin": "2021-02-18T21:43:18",
- "loginCount": 19
}
userId required | string The ID for the User |
X-API-KEY | string |
X-COMPANY-ID | string |
firstName required | string non-empty |
lastName required | string non-empty |
email required | string non-empty |
phoneNumber | string non-empty |
role required | string non-empty |
title required | string non-empty |
ssoUser | boolean |
{- "firstName": "SmartPM",
- "lastName": "User",
- "email": "support@smartpmtech.com",
- "phoneNumber": "(404) 329-3000",
- "role": "Company Admin",
- "title": "User"
}
{- "id": "8b64e890-a2e6-49bb-8a62-b969c9fddd3d",
- "firstName": "SmartPM",
- "lastName": "User",
- "email": "support@smartpmtech.com",
- "phoneNumber": "(404) 329-3000",
- "role": "Company Admin",
- "lastLogin": "2021-02-18T21:43:18",
- "loginCount": 19
}
Get the external links that are setup for a project.
projectId required | string Project ID |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string |
[- {
- "provider": "procore",
- "externalId": "1234"
}
]
Add an external link for a project.
projectId required | string Project ID |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string |
provider required | string non-empty |
externalId required | string non-empty |
{- "provider": "procore",
- "externalId": "1234"
}
[- {
- "provider": "procore",
- "externalId": "1234"
}
]
Retrieve the schedules that have been uploaded to a scenario.
projectId required | string |
scenarioId required | string |
asOf | string <date-time> /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d... Example: asOf=2023-07-19T12:00:00 Return schedules that have been uploaded since date |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string |
[- {
- "id": 0,
- "fileName": "string",
- "fileId": "string",
- "dataDate": "2019-08-24"
}
]
Retrieve the schedules that have been uploaded to a scenario.
projectId required | string |
scenarioId required | string |
asOf | string <date-time> /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d... Example: asOf=2023-07-19T12:00:00 Return schedules that have been uploaded since date |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string |
[- {
- "id": 0,
- "fileName": "string",
- "fileId": "string",
- "activityCount": 0,
- "dataDate": "string",
- "baseline": true,
- "sourceEndDate": "2019-08-24T14:15:22Z"
}
]
Get the configurations for a company.
X-API-KEY | string |
X-COMPANY-ID | string |
[- {
- "configuration": "CALENDAR",
- "setting": "USE_LATEST",
- "permission": null
}, - {
- "configuration": "SCHEDULER_VERSION",
- "setting": "v1",
- "permission": "admin"
}
]
Update the setting of a company configuration.
configuration required | string |
X-API-KEY | string |
X-COMPANY-ID | string |
Setting for the configuration.
setting | string |
{- "setting": "string"
}
{- "configuration": "string",
- "setting": "string",
- "permission": "string"
}
Retrieve the schedule quality for a particular schedule
projectId required | string The Project ID containing the scenario for which you would like to pull the schedule quality for |
scenarioId required | string The Scenario ID for which you would like to pull the schedule quality for |
importLogId | number The schedule id for which you would like to see the schedule quality for, if not specified, the latest schedule will be used. The schedule ids can be found from the schedules endpoint |
qualityProfileId | string The quality profile you would like to use, if not specified the default profile for the project will be used |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string Your Company ID |
{- "metrics": [
- {
- "name": "ACTIVITIES_TOTAL",
- "message": "string",
- "value": 0,
- "normalizedValue": 0,
- "indicator": "GOOD"
}
], - "grade": {
- "mark": "A+",
- "indicator": "GOOD"
}, - "qualityProfileId": null
}
Retrieve the schedule quality for a particular schedule, you can get the metric types from the schedule quality endpoint.
The metric types that you cannot receive details for are:
projectId required | string The Project ID containing the scenario for which you would like to pull the schedule quality for |
scenarioId required | string The Scenario ID for which you would like to pull the schedule quality for |
metric required | string The metric you want to pull schedule quality data for |
qualityProfileId | string The quality profile you would like to use, if not specified the default profile for the project will be used |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string Your Company ID |
[- {
- "@type": "string",
- "activityId": "string",
- "activityName": "string",
- "value": 0
}
]
Get a specific quality profile
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "id": 0,
- "companyId": "string",
- "name": "string",
- "scoreReporting": "string",
- "qualityThreshold": [
- {
- "id": 0,
- "metric": "string",
- "impactType": "string",
- "fineImpact": 0,
- "badImpact": 0,
- "values": [
- {
- "id": 0,
- "indicator": "string",
- "value": 0
}
], - "filters": [
- { }
], - "evaluationTarget": "string",
- "isHidden": true
}
], - "configuration": {
- "FLOAT_LIMIT": {
- "methodType": "string",
- "value": "string"
}, - "CONSTRAINT_DAYS": {
- "methodType": "string",
- "value": "string"
}, - "REMAINING_DURATION_DAYS": {
- "methodType": "string",
- "value": "string"
}, - "DURATION_LIMIT": {
- "methodType": "string",
- "value": "string"
}, - "NEGATIVE_LAG": {
- "methodType": "string",
- "value": "string"
}, - "USE_TIME_FOR_INVALID_FORECAST_DATES": {
- "methodType": "string",
- "value": "string"
}, - "FUTURE_ACTUAL_DATE_DAYS": {
- "methodType": "string",
- "value": "string"
}, - "POSITIVE_LAG": {
- "methodType": "string",
- "value": "string"
}
}
}
]
Get all of the quality profiles that are available for your company
qualityProfileId required | string The quality profile you want to pull configuration for |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
{- "id": 0,
- "companyId": "string",
- "name": "string",
- "scoreReporting": "string",
- "qualityThreshold": [
- {
- "id": 0,
- "metric": "string",
- "impactType": "string",
- "fineImpact": null,
- "badImpact": 0,
- "values": [
- {
- "id": 0,
- "indicator": "string",
- "value": null
}
], - "filters": [
- { }
], - "evaluationTarget": "string",
- "isHidden": true
}
], - "configuration": {
- "FLOAT_LIMIT": {
- "methodType": "string",
- "value": "string"
}, - "CONSTRAINT_DAYS": {
- "methodType": "string",
- "value": "string"
}, - "REMAINING_DURATION_DAYS": {
- "methodType": "string",
- "value": "string"
}, - "DURATION_LIMIT": {
- "methodType": "string",
- "value": "string"
}, - "NEGATIVE_LAG": {
- "methodType": "string",
- "value": "string"
}, - "USE_TIME_FOR_INVALID_FORECAST_DATES": {
- "methodType": "string",
- "value": "string"
}, - "FUTURE_ACTUAL_DATE_DAYS": {
- "methodType": "string",
- "value": "string"
}, - "POSITIVE_LAG": {
- "methodType": "string",
- "value": "string"
}
}
}
Retrieve summary information about the changes that have happened to a scenario over time
projectId required | string |
scenarioId required | string |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string Your Company ID |
[- {
- "dataDate": "2019-08-24",
- "metrics": {
- "CriticalChanges": 0,
- "LogicChanges": 0,
- "DelayedActivityChanges": 0,
- "DurationChanges": 0,
- "FlaggedChanges": 0,
- "AllCalendarChanges": 0,
- "ActivityChanges": 0,
- "CalendarChanges": 0,
- "WorkingDayChanges": 0,
- "NearCriticalChanges": 0
}
}
]
Retrieve the details for the items that are a part of the different change log summary buckets. The type that is passed in should be one of the following:
projectId required | string The Project ID you would like to load data for |
scenarioId required | string The Scenario ID you would like to load data for |
type required | string Enum: "CriticalChanges" "NearCriticalChanges" "ActivityChanges" "LogicChanges" "DurationChanges" "DelayedActivityChanges" "AllCalendarChanges" "FlaggedChanges" The type from the change log that you would like to load details for |
dataDate | string <date-time> The date for which you would like to retrieve the updates for |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "differences": [
- {
- "field": "string",
- "oldValue": null,
- "newValue": "string"
}
], - "action": "string",
- "entity": "string",
- "friendlyId": "string",
- "auditDate": "string",
- "floatTotal": 0,
- "activityIds": [
- { }
]
}
]
Retrieve all the changes that were made
projectId required | string The Project ID you would like to load data for |
scenarioId required | string The Scenario ID you would like to load data for |
dataDate | string <date-time> The date for which you would like to retrieve the updates for |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "differences": [
- {
- "field": "string",
- "oldValue": null,
- "newValue": "string"
}
], - "action": "string",
- "entity": "string",
- "friendlyId": "string",
- "auditDate": "string",
- "floatTotal": 0,
- "activityIds": [
- { }
]
}
]
Retrieve the delay information
projectId required | string Project ID |
scenarioId required | string Scenario ID |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string Your Company ID |
[- {
- "period": 0,
- "scheduleName": "string",
- "dataDate": "string",
- "endDate": "string",
- "endDateVariance": {
- "period": null,
- "cumulative": 0
}, - "criticalPathDelay": {
- "period": null,
- "cumulative": 0
}, - "criticalPathRecovery": {
- "period": null,
- "cumulative": 0
}, - "delayRecovery": {
- "period": null,
- "cumulative": 0
}, - "filterId": null,
- "delays": [
- {
- "activityId": "string",
- "name": "string",
- "days": 0
}
], - "recoveries": [
- {
- "activityId": "string",
- "name": "string"
}
]
}
]
This endpoint provides the should start/finish data between the start window and finish window dates. Typically you would provide the user with the ability to pick the finish window date which would be any schedule date other than the first schedule. Once the user picks the finish window date the start window date would be the schedule prior to the selected schedule.
projectId required | string The project ID you would like to load data for |
scenarioId required | string The scenario ID you would like to load data for |
startDate required | string The start of the window |
finishDate required | string The end of the window |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string Your Company ID |
{- "total": 0,
- "startedLate": 0,
- "finishedLate": 0,
- "didNotStart": 0,
- "didNotFinish": 0,
- "totalOnTimeHitRate": 0,
- "startedOnTimeHitRate": 0,
- "finishedOnTimeHitRate": 0,
- "activities": [
- {
- "id": 0,
- "customId": "string",
- "name": "string",
- "startingStartDate": "string",
- "startingFinishDate": "string",
- "startingPercentComplete": 0,
- "startingTotalFloat": 0,
- "startingActuallyStarted": true,
- "startingActuallyFinished": true,
- "endingStartDate": "string",
- "didNotStart": true,
- "lateStart": true,
- "endingFinishDate": "string",
- "didNotFinish": true,
- "lateFinish": true,
- "endingPercentComplete": 0,
- "endingTotalFloat": 0,
- "varianceStartDate": 0,
- "varianceFinishDate": 0,
- "variancePercentComplete": 0,
- "varianceTotalFloat": 0,
- "deleted": true,
- "endingActuallyStarted": true,
- "endingActuallyFinished": true
}
]
}
This endpoint provides the should start/finish data trend data for all schedules.
projectId required | string The project ID you would like to load data for |
scenarioId required | string The scenario ID you would like to load data for |
X-API-KEY | string Your API KEY |
X-COMPANY-ID | string Your Company ID |
{- "hitRates": [
- {
- "dataDate": "2023-03-24T08:00:00Z",
- "total": 10,
- "startedLate": 1,
- "finishedLate": 3,
- "didNotStart": 1,
- "didNotFinish": 1,
- "startedOnTime": 8,
- "finishedOnTime": 6,
- "startedOnTimeHitRate": 0.8,
- "finishedOnTimeHitRate": 0.6,
- "totalOnTimeHitRate": 0.6
}
]
}
Get the monthly distribution of activities
projectId required | string The Project ID you would like to load data for |
scenarioId required | string The Scenario ID you would like to load data for |
dataDate | string <date-time> The date for which you would like to retrieve the monthly distribution for |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
{- "velocityList": [
- {
- "date": "string",
- "baselineStarts": 0,
- "baselineFinishes": 0,
- "currentStarts": 0,
- "currentFinishes": 0
}
]
}
Get company health trend data
Period Type
Filters
Optional parameter to filter projects based on metadata field values in the format of
fieldName:value
Numeric and Date metadata fields can have operators such as [eq], [lt], [lte], [gt], [gte]
Example:
periodType required | string By Month or By Period |
filters | string Filters based on Project Metadata |
qualityProfileId | string Quality Profile Id |
X-API-KEY required | string Your API Key |
X-COMPANY-ID required | string Your Company ID |
[- {
- "companyId": "string",
- "periodType": "BY_MONTH",
- "periodLabel": "11/2022",
- "health": 72,
- "risk": "FINE"
}, - {
- "companyId": "string",
- "periodType": "BY_MONTH",
- "periodLabel": "12/2022",
- "health": 93,
- "risk": "GOOD"
}
]
Get aggregated company metrics
X-API-KEY required | string Your API Key |
X-COMPANY-ID required | string Your Company ID |
{- "projectCount": 10,
- "delayedProjectCount": 5,
- "onTrackProjectCount": 5,
- "updateNeededProjectCount": 9,
- "averageHealth": 81,
- "averageHealthIndicator": "GOOD",
- "averageQuality": "A+",
- "averageQualityIndicator": "GOOD",
- "averageCompression": 1.5,
- "averageCompressionIndicator": "BAD",
- "averageCompressionIndex": 35,
- "averageSPI": 0.75,
- "averageFinishVariance": 9,
- "averageTotalOnTimeHitRate": 0.14
}
Get company quality trend data
Period Type
Filters
Optional parameter to filter projects based on metadata field values in the format of
fieldName:value
Numeric and Date metadata fields can have operators such as [eq], [lt], [lte], [gt], [gte]
Example:
periodType required | string By Month or By Period |
filters | string Filters based on Project Metadata |
qualityProfileId | string Quality Profile Id |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "companyId": "string",
- "periodType": "BY_MONTH",
- "periodLabel": "11/2022",
- "score": 82,
- "grade": {
- "mark": "B-",
- "indicator": "FINE"
}
}, - {
- "companyId": "string",
- "periodType": "BY_MONTH",
- "periodLabel": "12/2022",
- "score": 89,
- "grade": {
- "mark": "B+",
- "indicator": "GOOD"
}
}
]
Get company compression trend data
Period Type
Filters
Optional parameter to filter projects based on metadata field values in the format of
fieldName:value
Numeric and Date metadata fields can have operators such as [eq], [lt], [lte], [gt], [gte]
Example:
periodType required | string By Month or By Period |
filters | string Filters based on Project Metadata |
qualityProfileId | string Quality Profile Id |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "companyId": "string",
- "periodType": "BY_MONTH",
- "periodLabel": "11/2022",
- "scheduleCompression": 1,
- "indicator": "GOOD"
}, - {
- "companyId": "string",
- "periodType": "BY_MONTH",
- "periodLabel": "12/2022",
- "scheduleCompression": 11.3959,
- "indicator": "BAD"
}
]
Get company metric trend data
Metric Type
Period Type
Filters
Optional parameter to filter projects based on metadata field values in the format of
fieldName:value
Numeric and Date metadata fields can have operators such as [eq], [lt], [lte], [gt], [gte]
Example:
metricType required | string |
periodType required | string By Month or By Period |
filters | string Filters based on Project Metadata |
qualityProfileId | string Quality Profile Id |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "companyId": "string",
- "periodType": "BY_MONTH",
- "periodLabel": "11/2022",
- "metricValue": 0.5
}, - {
- "companyId": "string",
- "periodType": "BY_MONTH",
- "periodLabel": "12/2022",
- "metricValue": 2.5
}
]
Get all models for a project
projectId required | string |
X-API-KEY | string Your API Key |
X-COMPANY-ID | string Your Company ID |
[- {
- "id": 0,
- "name": "string",
- "description": null,
- "isAutoUpdate": true,
- "isOriginalModel": true,
- "isArchived": true,
- "modelType": "BASELINE",
- "initialDataDate": "2019-08-24T14:15:22Z"
}
]