# 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