Meetings
The meetings, meeting repositories and minutes in a municipality
Here's how to manage meetings
The Meeting object
// Meeting
{
"id": "me_dd3b6aa3",
"person_id": 40, // Author of the meeting
"title": "Special Board Meeting",
"description": "The meeting where budgets are decided and voted on",
"notes": "The meeting went well",
"status": "public", // enum: draft | public | archived
"categories": [3, 15, 29],
"department_id": 4,
"starts_at": "2023-02-18T01:50:00.000Z", // Meeting DateTime in UTC
"metadata": {}, // object that can hold extra data for meetings
"created_at": "2023-04-20T06:52:10.000Z",
"updated_at": "2023-04-21T09:34:03.000Z",
// agenda data
"agenda_status": "draft", // enum: draft | in_review | public | amended
"agenda_file_url": "https://files.heygov.com/heyville.org/meetings/me_dd3b6aa3/2022-04-19-forestville-annual-town-meeting-agenda.pdf", // public url of agenda file
"agenda_text": "MORGAN\nCITY COUNCIL\nAGENDA\nJANUARY\n24\n, 2023\n–\n6\n:\n00\nP...", // text extracted from agenda file
// minutes data
"minutes_status": "done", // Minutes generated by HeyGov: not-started, generating, done, manual-upload
// additional files
"agenda_pack_file_url": "https://files.heygov.com/heyville.org/meetings/me_dd3b6aa3/pack.pdf", // agenda pack file url
"meeting_minutes_file_url": "https://files.heygov.com/heyville.org/meetings/me_dd3b6aa3/uploaded-minutes.pdf", // meeting minutes file url
"additional_file_url": "https://files.heygov.com/heyville.org/meetings/me_dd3b6aa3/Additional Doc.docx", // url of uploaded file
// Meeting media
"audio_file_url": "https://files.heygov.com/heyville.org/meetings/me_dd3b6aa3/april-19-2022-forestville-wisconsin-town-board-meeting-video-recording.mp3",
"audio_public_url": "https://soundcloud.com/the-meeting",
"video_file_url": "heyville.org/meetings/me_dd3b6aa3/april-19-2022-forestville-wisconsin-town-board-meeting-video-recording.mp4",
"video_public_url": "https://www.youtube.com/watch?v=2PvkBKUBBj8"
}Endpoints
List meetings in a municipality
GET https://api.heygov.com/{jurisdiction_id}/meetings
Path Parameters
jurisdiction_id*
String
The ID for the municipality
Query Parameters
date_start_local
String
Return meetings from this date (inclusive) onward. Format = YYYY-MM-DD
date_end_local
String
Return meetings until this date (inclusive). Format = YYYY-MM-DD
limit
Number
A limit on the number of meetings to be returned. Limit can range between 1 and 100, and the default is 10.
page
Number
Which page of meetings to return. Default is 1
expand
String
Expand entities to full object results. Entities that can be expanded for meetings: department, agenda_items, categories
status
String
Filter meetings by status. Options: draft, public, archived, deleted
order_by
String
Order meetings by: title, status, starts_at, created_at, updated_at. Default: starts_at
order
String
Sort order for the order_by field. asc or desc (default)
q
String
Search query for meeting title
Create a meeting
POST https://api.heygov.com/{jurisdiction_id}/meetings
Path Parameters
jurisdiction_id*
String
The unique ID for the jurisdiction
Request Body
title*
String
Title of the meeting
description
String
Meeting description
starts_at_local*
Datetime
Meeting date & time, in jurisdiction timezone
department_id
Number
ID of the department owning this meeting
Create a meeting from an agenda file
POST https://api.heygov.com/{jurisdiction_id}/meetings/create-from-agenda
This endpoint extracts the meeting details (title, date, description, agenda items, etc) from the uploaded file
Path Parameters
jurisdiction_id*
String
ID of the town/city/village
Request Body
file*
File
Meeting Agenda file in PDF or text format
Retrieve a meeting
GET https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}
Get full details for a meeting
Path Parameters
jurisdiction_id*
String
ID of the HeyGov account
meeting_id*
String
ID of the meeting, starting with me_
Query Parameters
expand
String
Expand entities to full object results. Entities that can be expanded for meetings: department, agenda_items, categories
Edit meeting details
PUT https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}
Modify meeting fields
Path Parameters
jurisdiction_id*
String
meeting_id*
String
ID of the meeting, starting with me_
Delete meeting
DELETE https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}
Fully and irreversibly delete a meeting, meeting files, agenda items and minutes
Path Parameters
jurisdiction_id*
String
ID for needed jurisdiction
meeting_id
String
ID of the meeting, starting with me_
Files endpoints
Use these endpoints to upload different files needed for a meeting
Upload meeting agenda file for a meeting
POST https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}/upload-agenda-file
Upload an existing agenda for a meeting. Agenda items will be extracted and created automatically
Path Parameters
jurisdiction_id*
String
Town/City ID
meeting_id*
String
ID of the meeting, starting with me_
Query Parameters
await_processing
Boolean
0 or 1 to await agenda processing or not. Default: 0
Request Body
file*
File
Agenda file in PDF or txt format
Upload the agenda pack
POST https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}/upload-agenda-pack-file
Path Parameters
jurisdiction_id*
String
meeting_id*
String
Request Body
file*
File
The agenda pack file
Public url will be included in response
Upload the minutes document
POST https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}/upload-meeting-minutes-file
Path Parameters
jurisdiction_id*
String
meeting_id*
String
Request Body
file*
File
Upload an additional file for the meeting
POST https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}/upload-additional-file
Path Parameters
jurisdiction_id*
String
meeting_id*
String
Request Body
file*
File
Create a file upload request
POST https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}/file-upload-link
Use this endpoint to create a file upload request, that can be used in front-end to upload a large file directly to the cloud storage (bypassing the HeyGov server)
Path Parameters
jurisdiction_id*
String
meeting_id*
String
ID of the meeting, starting with me_
Request Body
filename*
String
The name of the file that will be uploaded
Agenda items endpoints
List of agenda items for a meeting
GET https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}/agenda-items
Path Parameters
jurisdiction_id*
String
meeting_id*
String
Edit an agenda item
PUT https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}/agenda-items/{id}
Path Parameters
jurisdiction_id*
String
meeting_id*
String
id*
String
ID of the agenda item
Delete an agenda item
DELETE https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}/agenda-items/{id}
Generate minutes for a meeting
POST https://api.heygov.com/{jurisdiction_id}/meetings/{meeting_id}/generate-minutes
Based on the agenda items & audio/video transcript, generate full meeting minutes
Path Parameters
jurisdiction_id*
String
meeting_id*
String
Query Parameters
model
String
OpenAI model to use. Default is gpt-4
temperature
String
OpenAI model temperature to use. Default is 1
Last updated