You can retrieve information on all plan items for a specific plan using the AchieveIt REST API. The data is returned as a JSON object and includes the current values of all fields on each plan item in the plan.
Request Specification
Enpoint URL
Make an HTTP GET request to the following endpoint:
https://api.achieveit.com/exports/plans/<planId>Replace <planId> with the unique ID of the plan you want. You can get the planId by logging into AchieveIt, open the plan’s root plan item, click the Options menu ("...") on the plan card, then select Copy Plan ID. This copies the plan’s ID to your clipboard. Note that you have to be an admin on the plan to access the Options menu.
Authorization Header
Include your API key as part of an authorization header. The API key must be associated with a user that has at least view access to the plan you are exporting.
Authorization: API-KEY <YOUR_API_KEY>Query Parameters
The API will return by default 100 plan items per request. The maximum number of plan items that can be retrieved is 1500. If your plan contains more than 1500 plan items, you will need to use the skip and take parameters and make multiple requests to retrieve all plan items. You can sort the results using the sortKey and sortDirection parameters.
| Parameter | Type | Default | Maximum | Description |
|---|---|---|---|---|
skip | integer | 0 | n/a | Number of plan items to skip (for paging). |
take | integer | 100 | 1500 | Number of plan items to return (for paging). |
sortKey | string | sequenceId | n/a | Field by which results are sorted. See “Available Sort Keys” below. |
sortDirection | string | asc | n/a | Either asc (ascending) or desc (descending). |
Sort Key Options
| Sort Key | Display Name |
|---|---|
name | Name |
sequenceId | # (Sequence) |
level | Level |
status | Status |
start | Start Date |
due | Due Date |
currentValue | Current Value |
lastUpdated | Last Updated |
assignedToFullName | Assigned To |
updates | Updates |
alignsTo | Aligns To |
assignedByFullName | Assigned By |
assignedToEmailAddress | Assigned To Email Address |
baseline | Baseline |
target | Target |
created | Created |
dependentOn | Dependent On |
description | Description |
indentedName | Indented Name |
lastProgressUpdateUser | Last Progress Update User |
updateFrequencyDescription | Update Frequency |
planName | Plan Name |
Example Request
https://api.achieveit.com/exports/plans/a0e2ce03-8d0e-4325-9a13-17a8b5936590?skip=0&take=250&sortKey=name&sortDirection=desc
Response
Response Codes
The API returns one of the following HTTP status codes.
| Code | Notes |
|---|---|
200 OK | Exporting the plan items was successful, and the content of the response includes the requested plan items. |
403 Forbidden | The user associated with the specified API key does not have access to the requested plan. |
Response Codes
If successful, the response body will be a JSON object that has two major properties:
items: An array of plan item objects.totalCount: Total number of plan items matching the request (useful if paging).
Each plan item in items includes properties containing information about the plan item.
{
"id": "string",
"sourceId": "string",
"rowNumber": 0,
"sequenceId": "string",
"planId": "string",
"planName": "string",
"sourcePlanId": "string" or null,
"sourcePlanName": "string" or null,
"alignsTo": "string" or null,
"alignsToId": "string" or null,
"dependentOn": "string" or null,
"dependentOnId": "string" or null,
"levelId": "string",
"level": "string",
"name": "string",
"indentedName": "string",
"description": "string",
"status": 0,
"statusName": "string",
"start": "string" or null,
"due": "string" or null,
"created": "string",
"hasMetric": true,
"hasAdvancedMetric": true,
"units": 0 or null,
"detail": 0 or null,
"baseline": "0",
"target": "0",
"currentValue": "0",
"advancedMetricGoals": [
{
"goalId": "string",
"goalName": "string",
"goalColor": "string",
"metricBucketValue": 0.0,
"sortOrder": 0
}
],
"lastUpdated": "string",
"assignedToId": "string" or null,
"assignedToFullName": "string" or null,
"assignedById": "string" or null,
"assignedByFullName": "string" or null,
"members": [
{
"id": "string",
"name": "string",
"type": "User" or "Team"
}
],
"admins": [
{
"id": "string",
"name": "string",
"type": "User" or "Team"
}
],
"updateFrequency": "NotRequired" or "Daily" or "Weekly" or "Biweekly" or "Monthly" or "Quarterly",
"updateFrequencyDescription": same as above,
"isPastDue": true or false,
"lateUpdates": integer,
"pendingUpdates": integer,
"updates": integer,
"lastCommentId": "string" or null,
"lastComment": "string" or null,
"lastUpdateCommentId": "string" or null,
"lastUpdateComment": "string" or null,
"files": integer,
"checklists": [
{
"id": "string",
"name": "string",
"sortIndex": 0,
"items": [
{
"id": "string",
"name": "string",
"sortIndex": 0,
"doneOn": "string" or null
}
]
}
],
"tags": [
{
"id": "string",
"organizationId": "string",
"name": "string"
}
],
"isOrphan": false
}