palegis APIpalegis.us ↗
Get real-time session status and schedule data for the Pennsylvania House and Senate chambers via the palegis.us API. Returns date, time, status, and live feed info.
What is the palegis API?
The palegis.us API provides one endpoint — get_schedule — that returns 8 structured fields describing the current or next session of the Pennsylvania General Assembly's House or Senate chamber. Each response includes session status, date and time, location, session type, and whether a live feed is currently available, making it straightforward to track when either chamber is in session or scheduled to reconvene.
curl -X GET 'https://api.parse.bot/scraper/7450d1fe-7a53-480d-a39e-0c96afd6e686/get_schedule?chamber=house' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace palegis-us-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: PA General Assembly session schedule lookup."""
from parse_apis.palegis_us_api import PaLegis, Chamber, InvalidChamber
client = PaLegis()
# Fetch the current session schedule for the Senate chamber.
senate = client.schedules.get(chamber=Chamber.SENATE)
print(f"Senate: {senate.status} — {senate.date} at {senate.time}")
if senate.location:
print(f" Location: {senate.location}")
if senate.session_type:
print(f" Session type: {senate.session_type}")
print(f" Live feed available: {senate.has_live_feed}")
print(f" Livestream available: {senate.livestream_available}")
# Fetch the House schedule and compare.
house = client.schedules.get(chamber=Chamber.HOUSE)
print(f"\nHouse: {house.status} — {house.date} at {house.time}")
print(f" Status text: {house.status_text}")
# Demonstrate error handling for an invalid chamber value.
try:
client.schedules.get(chamber="invalid")
except InvalidChamber as e:
print(f"\nCaught expected error: {e.message}")
print("\nexercised: schedules.get (senate) / schedules.get (house) / InvalidChamber")
Returns the current session status and schedule for the specified chamber of the Pennsylvania General Assembly. Includes the session status (e.g. will_reconvene, in_session), the next session date and time, any session type or location remarks, whether a live feed link is available on the session page, and whether a livestream is available for the specified date. Makes one request to the chamber's session page.
| Param | Type | Description |
|---|---|---|
| date | string | Date to check livestream availability for, in YYYYMMDD format (e.g. 20260909). Defaults to today's date if omitted. |
| chamberrequired | string | The legislative chamber to get session info for. |
{
"type": "object",
"fields": {
"date": "Date of the next or current session (e.g. 'Wednesday September 9, 2026')",
"time": "Time of the next or current session (e.g. '5:45 PM')",
"status": "Current session status: will_reconvene, in_session, adjourned, or unknown",
"chamber": "The chamber queried (house or senate)",
"location": "Session location if specified (e.g. 'Congress Hall, Philadelphia'), null otherwise",
"status_text": "Full status text as displayed on the page",
"session_type": "Type of session if specified (e.g. 'Voting Session*'), null otherwise",
"has_live_feed": "Whether a live feed link is available on the session page",
"livestream_available": "Whether a livestream is available for the queried date (true if the queried date matches the scheduled session date and a live feed link exists)"
},
"sample": {
"data": {
"date": "Wednesday September 9, 2026",
"time": "5:45 PM",
"status": "will_reconvene",
"chamber": "house",
"location": "Congress Hall, Philadelphia",
"status_text": "The House will reconvene on Wednesday September 9, 2026 at 5:45 PM Voting Session* (Congress Hall, Philadelphia)",
"session_type": "Voting Session*",
"has_live_feed": true
},
"status": "success"
}
}About the palegis API
What the API Returns
The get_schedule endpoint accepts a single required parameter, chamber, set to either house or senate. It returns the session status as one of four normalized values: will_reconvene, in_session, adjourned, or unknown. Alongside the machine-readable status, the status_text field carries the full human-readable string as displayed on the source page, useful when you need exact legislative language.
Session Date, Time, and Location
The date field returns the next or current session date in a long-form format (e.g., Monday September 28, 2026), and time returns the corresponding start time (e.g., 1:00 PM). If the session is held at a non-standard location, the location field will carry that detail — such as Congress Hall, Philadelphia — otherwise it returns null. The session_type field similarly captures labeled session categories like Voting Session* when specified, or null when absent.
Live Feed Availability
The boolean has_live_feed field indicates whether a live stream link is currently available for the session. This lets applications surface a live feed prompt only when the chamber is actively broadcasting, without polling an external video source independently.
Coverage Scope
The API covers both chambers of the Pennsylvania General Assembly — House and Senate — for current session schedule data. It does not expose committee-level schedules, bill tracking, vote records, or historical session archives. The data reflects the active session schedule as currently published.
The palegis API is a managed, monitored endpoint for palegis.us — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when palegis.us changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official palegis.us API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Display a real-time session status badge on a civic engagement dashboard showing whether the PA House or Senate is currently in session
- Send automated alerts to constituents or lobbyists when
statuschanges toin_sessionfor either chamber - Surface the next session
dateandtimein a legislative calendar app targeting Pennsylvania policy professionals - Conditionally show a live stream link in a news or media app based on the
has_live_feedflag - Track non-standard session
locationvalues to notify stakeholders of off-campus legislative activity - Log
session_typevalues over time to distinguish voting sessions from other session categories
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does the Pennsylvania General Assembly offer an official developer API?+
What does the `status` field actually distinguish?+
status field returns one of four normalized values: will_reconvene (chamber has adjourned but has a future session scheduled), in_session (currently meeting), adjourned (no future session date currently posted), or unknown (status cannot be determined from available data). The status_text field always carries the original display string for reference.Does the API return committee meeting schedules or individual bill information?+
How current is the session schedule data?+
Can I retrieve historical session dates or past schedule data?+
get_schedule endpoint returns only the current or next upcoming session for the specified chamber. Historical session records are not exposed. You can fork this API on Parse and revise it to add an endpoint targeting any archived schedule pages palegis.us publishes.