Introduction to EPR Partner API

The purpose of this page is to give a better understanding of how the EPR system works and show the core APIs needed to get started with simple integration. This tutorial will take you through:

  • Logging in and obtaining an authentication token

  • Obtaining ListItem records

  • Creating a Project

  • Adding Documents

  • Creating an Assignment

Please use either the Swagger documentation or Postman collection to follow along.

Obtaining an Authentication token

Once you’ve received your partner credentials for EPR, obtaining an authentication token is as simple as making a POST request to the /login route. Once you’ve successfully logged in, you can save the token that is returned in the response to use for subsequent requests by passing it in the request headers (key=x-access-key)

Obtaining List Item Records

List Items are a core part of EPR and are needed to create Projects and Assignments. They can represent things such as Project Statuses, Review Types, Groups, etc. It is important to note that List Items are grouped under ListTypes (One to many relation between List Types and List Items)

For example, one List Item used for a Project is its status. It's status can point to different List Items such as Open, Approved, Canceled, On Hold, etc. All of these statuses belong to different List Item records, however, they will all belong to the same List Type (ProjectStatus).

Similarly there is also a List Type called DocumentType which will also have multiple List Item records belonging to it. One good rule to follow when searching for a List Item is to first find the List Type it belongs to, in order to narrow your search.

Here are a few List Types keys to get you started:

List Types keys for Projects:

  • ProjectCycle

  • ProjectStatusExternal

  • ProjectStatusInternal

  • ProjectType

List Type keys for Assignments:

  • AssignmentStatusInternal

  • AssignmentStatusExternal

  • Groups

If we wanted to find a specific Project Type we could make a GET to:

/partner/listTypes?key=<List Type key>

This would give us a List Type record. We can then use the id of this record in the following GET:

/partner/listItems?listType_id=34

For more info on List Items visit Managing List Types and List Items

Creating a Project

Now that we have a better understanding of List Items, let’s create a project. If you go to the Create Project route in either Swagger or Postman, you’ll notice there are many fields you can pass in. Thankfully, only a few of those are required to get started:

  • projectNumber

  • cycle_LIID

  • status_LIID

  • projectType_LIID

  • purpose_id (A project can belong to either For Permitting or For Design Review purpose. To query the purposes make a GET to /partner/purposes)

  • vendor_id (Optional)* a vendor id is used to link this record back to the id on the partner’s system

Any field ending in _LIID refers to a List Item ID

Once you have all the info needed to create a project, send a POST to /partner/projects

Adding Documents to a Project

Once your project has been created, you can now start adding documents to the project by making a POST to /partner/uploadDocument. You can also add a vendor_id to the document if you want to link it to a file on the partner system.

Once the document has been uploaded, you’ll need to do one more step before creating an assignment. This is the Intake step. Intake will tell EPR if this is a 1st version of a document or not. If this is a 2nd or later version, you can specify which document_id the newly uploaded file should be mapped to. Intake only requires two parameters:

  • document_id

  • documentPrior_id (leave null if this is 1st version)

Creating an Assignment

Once your document has been uploaded to the project and intake is complete, you can assign a specific group or user to that document by creating an assignment record. To do so, you can make a POST to /partner/assignments. The only required fields will be:

  • group_LIIID

  • document_id

Additional Information

This tutorial is meant to help get a simple integration started. For more details about our APIs and EPR please refer to our wiki:

ePlansoft Review (EPR) Wiki