# Voting Matters API

The Meeting Matters APIs is used to manage the matters of a meeting. Matters are items to be voted on by the membership. Matters can be restricted to certain member tpyes. Matters can also be set up to appear on a proxy or early ballot for pre-meeting voting.

# Matter Endpoints

# Create a matter

Create a matter.

POST /Meetings/{shortCode}/matters

# Path Params

Property Type Description
shortCode string The meeting's unique short code

# Request

{
  "type": "multiple-choice",
  "name": "Election of directors",
  "options": ["Candidate 1", "Candidate 2", "Candidate 3"],
  "header": "Which of the following candidates do you wish to vote for?",
  "snippet": "",
  "choices": 0,
  "order": 0,
  "eligibility": ["all"],
  "exclusions": ["Candidate 3"],
  "allowProxyVote": true
}
Property Type Description
type string Type of matter (multiple or single choice)
name string Name of the matter
header string The question to present to voter on the meeting portal
snippet string Optionally, expand on the matter to be voted on. HTML enabled.
options string[] The list of options a voter may choose
choices number Number of choices that can be selected
eligibility string[] A list of member tags that are eligible to vote on this matter. all = all eligible members can vote.
allowProxyVote boolean If true, this matter can be voted on a proxy
order number What order should this matter be presented on a proxy
exclusions string[] An list of options to exclude from tallies. (WIP)

# Response

{
  "key": "b8eba1a0-8939-4a4b-a6ab-e518a0d4a0a6",
  "type": "multiple-choice",
  "name": "Election of directors",
  "options": ["Candidate 1", "Candidate 2", "Candidate 3"],
  "header": "Which of the following candidates do you wish to vote for?",
  "snippet": "",
  "choices": 0,
  "order": 0,
  "eligibility": ["all"],
  "exclusions": ["Candidate 3"],
  "allowProxyVote": true,
  "createdAt": "2018-02-22T19:05:04.931Z",
  "updatedAt": "2018-02-22T19:05:04.931Z"
}

# List meeting matters

List the matters for a meeting

GET /Meetings/{shortCode}/matters

# Path Params

Property Type Description
shortCode string The meeting's unique short code

# Response

[
  {
    "key": "b8eba1a0-8939-4a4b-a6ab-e518a0d4a0a6",
    "type": "multiple-choice",
    "name": "Election of directors",
    "options": ["Candidate 1", "Candidate 2", "Candidate 3"],
    "header": "Which of the following candidates do you wish to vote for?",
    "snippet": "",
    "choices": 0,
    "order": 0,
    "eligibility": ["all"],
    "exclusions": ["Candidate 3"],
    "allowProxyVote": true,
    "createdAt": "2018-02-22T19:05:04.931Z",
    "updatedAt": "2018-02-22T19:05:04.931Z"
  }
]

# Find a meeting matter

Find a meeting matter

GET /Meetings/{shortCode}/matters/{matterKey}

# Path Params

Property Type Description
shortCode string The meeting's unique short code
matterKey string The unique matter Id

# Response

{
  "key": "b8eba1a0-8939-4a4b-a6ab-e518a0d4a0a6",
  "type": "multiple-choice",
  "name": "Election of directors",
  "options": ["Candidate 1", "Candidate 2", "Candidate 3"],
  "header": "Which of the following candidates do you wish to vote for?",
  "snippet": "",
  "choices": 0,
  "order": 0,
  "eligibility": ["all"],
  "exclusions": ["Candidate 3"],
  "allowProxyVote": true,
  "createdAt": "2018-02-22T19:05:04.931Z",
  "updatedAt": "2018-02-22T19:05:04.931Z"
}

# Update matter

Update matter

PATCH /Meetings/{shortCode}/matters/{matterKey}

# Path Params

Property Type Description
shortCode string The meeting's unique short code
matterKey string The unique matter Id

# Request

{
  "type": "multiple-choice",
  "name": "Election of directors",
  "options": ["Candidate 1", "Candidate 2", "Candidate 3"],
  "header": "Which of the following candidates do you wish to vote for?",
  "snippet": "",
  "choices": 0,
  "order": 0,
  "eligibility": ["all"],
  "exclusions": ["Candidate 3"],
  "allowProxyVote": true
}
Property Type Description
type string Type of matter (multiple or single choice)
name string Name of the matter
header string The question to present to voter on the meeting portal
snippet string Optionally, expand on the matter to be voted on. HTML enabled.
options string[] The list of options a voter may choose
choices number Number of choices that can be selected
eligibility string[] A list of member tags that are eligible to vote on this matter. all = all eligible members can vote.
allowProxyVote boolean If true, this matter can be voted on a proxy
order number What order should this matter be presented on a proxy
exclusions string[] An list of options to exclude from tallies. (WIP)

# Response

{
  "key": "b8eba1a0-8939-4a4b-a6ab-e518a0d4a0a6",
  "type": "multiple-choice",
  "name": "Election of directors",
  "options": ["Candidate 1", "Candidate 2", "Candidate 3"],
  "header": "Which of the following candidates do you wish to vote for?",
  "snippet": "",
  "choices": 0,
  "order": 0,
  "eligibility": ["all"],
  "exclusions": ["Candidate 3"],
  "allowProxyVote": true,
  "createdAt": "2018-02-22T19:05:04.931Z",
  "updatedAt": "2018-02-22T19:05:04.931Z"
}

# Delete matter

Delete a matter

DELETE /Meetings/{shortCode}/matters/{matterKey}

# Path Params

Property Type Description
shortCode string The meeting's unique short code
matterKey string The unique matter Id

# Response

204 No Content

# Get matter stats and tallies

Get the stats and vote tallies for a matter.

GET /Meetings/{shortCode}/matters/{matterKey}/stats

# Path Params

Property Type Description
shortCode string The meeting's unique short code
matterKey string The unique matter Id

# Response

[
  {
    "vote": "Candidate 1",
    "numProxyVotes": 15,
    "numLiveVotes": 45,
    "numOtherVotes": 0,
    "numProxyShares": 15,
    "numLiveShares": 45,
    "numOtherShares": 0
  }
]

# Get matter voters

Gets the list of members that have cast a vote for this matter.

NOTE: In order to maintain the integrity of voting, we do not return how a member voted, only who voted.

GET /Meetings/{shortCode}/matters/{matterKey}/voters

# Path Params

Property Type Description
shortCode string The meeting's unique short code
matterKey string The unique matter Id

# Response

[
  {
    "unit": "Suite 300",
    "name": "Barney Grumble",
    "email": "barney.grumble@example.com",
    "method": "live",
    "createdAt": "2018-02-22T19:05:04.931Z"
  },
  {
    "unit": "Suite 301",
    "name": "Edna Krabapple",
    "email": "edna.k@example.com",
    "method": "proxy",
    "createdAt": "2018-02-22T19:05:04.931Z"
  }
]

# Live Meeting Matter Voting

These endpoints are used to turn on real-time voting at a meeting for a specific matter. Once a vote is "live", the GetQuorum voting portal and mobile apps will automatically display these matters to eligible voters to cast their vote.

# Turn on, off, or extend live matter voting

This endpoint is used to manage the live, real-time voting actions of a matter. Actions include:

  • starting live voting (start)
  • stopping live voting (stop)
  • extending live voting (extend)
POST /Meetings/{shortCode}/matters/{matterKey}/action

# Path Params

Property Type Description
shortCode string The meeting's unique short code
matterKey string The unique matter Id

# Request

{
  "action": "start",
  "duration": 360
}
Property Type Description
action string The action to take (eg. start, stop, extend)
duration number Number of seconds for vote to be live/to extend by. Not required when action is stop. Default is 360.

# Response

204 No Content