Senate Floor Transcripts API

Note

Assembly transcripts are not available at this time.

Get a single Transcript

Usage

Retrieve transcript by dateTime and sessionType. The sessionType is only required if two transcripts have the same dateTime:

GET /api/3/transcripts/{dateTime}
GET /api/3/transcripts/{dateTime}/{sessionType}

Examples

Request transcript 2014-09-03T09:00:

GET /api/3/transcripts/2014-09-03T09:00

Response

Full Transcript Response

{
  "success" : true,                                         // Indicates if a transcript was found.
  "message" : "Data for transcript 2014-09-03T09:00:00",    // Response description.
  "responseType" : "transcript",                            // Response data type.
  "result" : {
    "dateTime" : "2014-09-03T09:00",                        // The date and time of the session.
    "sessionType" : "REGULAR SESSION",                      // Session type
    "location" : "ALBANY, NEW YORK",                        // Location of senate session.
    "text" : "5100\n\n 1     NEW YORK STATE SE.."           // The text of the transcript.
    }
}

Request the extraordinary session 3 transcript on 2010-12-31T10:00:

GET /api/3/transcripts/2010-12-31T10:00/EXTRAORDINARY SESSION III

Response

Full Transcript Response

{
  "success" : true,
  "message" : "Data for transcript 2010-12-31T10:00",
  "responseType" : "transcript",
  "result" : {
    "dateTime" : "2010-12-31T10:00",
    "sessionType" : "EXTRAORDINARY SESSION III",
    "location" : "ALBANY, NEW YORK",
    "text" : "..."
  }
}

Get a transcript pdf

Usage

Retrieve transcript pdf by dateTime. The sessionType is only required if two transcripts have the same dateTime:

GET /api/3/transcripts/{dateTime}.pdf
GET /api/3/transcripts/{dateTime}/{sessionType}.pdf

Examples

Request transcript 2014-09-03T09:00:

GET /api/3/transcripts/2014-09-03T09:00

Get a list of transcripts

Usage

List transcripts within a year:

GET /api/3/transcripts/{year}

Optional Params

Parameter

Values

Description

limit

1 - 1000

Number of results to return

offset

> 1

Result number to start from

full

boolean

Set to true to see the full transcript responses.

Deprecated: Scheduled for removal December 1, 2026. See the API migration notes.

summary

boolean

Set to true to see each transcript’s details, without its text. Defaults to false, which returns only the dateTime and sessionType of each transcript.

sort

string

Sort by any field from the response.

Examples

List transcripts from 2014:

GET /api/3/transcripts/2014

List the details of transcripts from 2014, starting from result 26:

GET /api/3/transcripts/2014?summary=true&offset=26

List the details of transcripts from 2014 sorted by increasing date:

GET /api/3/transcripts/2014?summary=true&sort=dateTime:ASC

Response

{
  "success" : true,                               // True if request was fine.
  "message" : "",
  "responseType" : "transcript-id list",
  "total" : 167,                                  // Total transcripts in the listing
  "offsetStart" : 1,                              // Offset value
  "offsetEnd" : 25,                               // To paginate, set query param offset = {offsetEnd + 1}
  "limit" : 25,                                   // Max number of results to show
  "result" : {
    "items": [{ ... }],                           // Transcript ids, or transcript details if summary=true
    "size": 25
  }
}

Get transcript updates

To identify which transcripts have been added or changed within a given time period you can use the transcript updates api. To keep a copy of transcripts current with it, see Keeping Up with Changes.

Usage

List of transcripts updated within the past seven days:

GET /api/3/transcripts/updates

List of transcripts updated since the given date/time:

GET /api/3/transcripts/updates/{fromDateTime}

List of transcripts updated during the given date/time range:

GET /api/3/transcripts/updates/{fromDateTime}/{toDateTime}

With no toDateTime the range has no end.

Results are always ordered by the date/time OpenLeg last added or changed each transcript, oldest first. Unlike the other update APIs, this one does not take type, order or detail, and the response does not include fromDateTime or toDateTime.

Optional Params

Parameter

Values

Description

limit

1 - 1000

Number of results to return. Default 25.

offset

>= 1

Result number to start from. Default 1.

Examples

Transcripts updated since January 1, 2025, 10 at a time:

GET /api/3/transcripts/updates/2025-01-01?limit=10

Response

{
  "success" : true,
  "message" : "",
  "responseType" : "transcript-update-token list",
  "total" : 134,
  "offsetStart" : 1,
  "offsetEnd" : 10,
  "limit" : 10,
  "result" : {
    "items" : [
      {
        "transcriptId" : {                  // The id of the transcript
          "dateTime" : "2025-01-08T12:14",
          "sessionType" : "Regular Session"   // Session types can contain spaces
        },
        "updateDateTime" : "2025-01-13T08:51:04.087967"   // When OpenLeg last added or changed the transcript
      },
      ... (truncated)
    ],
    "size" : 10
  }
}