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: