Exporting Plan Items

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.

Image depicting the plan 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.

ParameterTypeDefaultMaximumDescription
skipinteger0n/aNumber of plan items to skip (for paging).
takeinteger1001500Number of plan items to return (for paging).
sortKeystringsequenceIdn/aField by which results are sorted. See “Available Sort Keys” below.
sortDirectionstringascn/aEither asc (ascending) or desc (descending).

 

Sort Key Options

Sort KeyDisplay Name
nameName
sequenceId# (Sequence)
levelLevel
statusStatus
startStart Date
dueDue Date
currentValueCurrent Value
lastUpdatedLast Updated
assignedToFullNameAssigned To
updatesUpdates
alignsToAligns To
assignedByFullNameAssigned By
assignedToEmailAddressAssigned To Email Address
baselineBaseline
targetTarget
createdCreated
dependentOnDependent On
descriptionDescription
indentedNameIndented Name
lastProgressUpdateUserLast Progress Update User
updateFrequencyDescriptionUpdate Frequency
planNamePlan Name

Example Request

https://api.achieveit.com/exports/plans/a0e2ce03-8d0e-4325-9a13-17a8b5936590?skip=0&amp;take=250&amp;sortKey=name&amp;sortDirection=desc

 


Response

Response Codes

The API returns one of the following HTTP status codes.

CodeNotes
200 OKExporting the plan items was successful, and the content of the response includes the requested plan items.
403 ForbiddenThe 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
}