Quorum API (Main)

Download OpenAPI specification:Download

Quorum RESTful API

Interacting with Quorum through API Calls

Quorum has implemented a RESTful API interface for external users.

In order to access the API:
Your organization must have contracted for API access with Quorum (this is an additional cost - please talk to your Customer Success Manager if you do not yet have API access on your contract).
The Quorum User that will access the API must have an API key generated for them - please request new API keys through your Customer Success Manager.

Getting Information from Quorum

Once API access is enabled for your organization and keys are generated for your user, request endpoints follow a standard API format, for example:

https://www.quorum.us/api/newperson/?id=300087&username=QUORUM_USERNAME&api_key=API_KEY

Posting a GET request to this endpoint with a valid username and api_key will return the JSON body representing Chuck Schumer, D-NY, whose Quorum ID is 300087.

The endpoint base path for all requests will be "https://www.quorum.us/api/...". Ensure that you use the "www" in the endpoint path; GET requests without it will operate as normal, but PATCH and POST requests will fail.

Underneath this base path, the endpoints described in the left panel are available for the various Quorum Datasets. There are other endpoints that are not documented currently - they are available to you to use, but we do not provide any support for their use. Also, they may be removed or made unabailable without notice.

The response to any GET request to any endpoints is a JSON payload consisting of two base elements: "meta" and "objects":
The meta element returns overhead data about the query, including the Limit set, the current offset, the URL for the previous and next sets of results (if applicable), and the total count returned by the query.

The objects element returns the actual results of the query as an array of subelements.

Note that many results return a one-to-many or many-to-many relationship to objects in other datasets; for example, in the Alerts dataset, each alert has a one-to-many relationship with the Alert_Group dataset, shown by the "Alert_group" metadata returned with any request to the Alert endpoint. You can often filter based on data within these related objects using a double-underscore notation to attributes of the related object:

related_object__id
Related object has ID of the specified value.

Editing Information in Quorum

To edit fields that may be edited by the user within Quorum, send the API request as a PATCH request rather than a GET request, and populate a JSON payload with elements for the data being posted. The response status of 200 indicates a successful update, and will also include the updated object.

To create a new item that may be created by the user within Quorum, send the API request as a POST request rather than a GET request, and populate a JSON payload with the elements for the new item. The response status of 200 indicates a successful creation, and will also include the newly created object.

One aspect to note when updating or creating objects that refer to other objects in Quorum, such as adding a Note related to a Bill or Official: the related item is specified as a fully qualified URI, rather than just an ID number. For example, on GET requests, the Quorum User is specified as "/api/user/XXXX" rather than just an ID number; similarly, when POSTing or PATCHing a related field, a value in the format "/api//" is required.

Getting Support

Please do not hesitate to reach out to your Customer Success Manager if you have additional questions about implementing an API interface.