# Taiwan Legislative Yuan Monitor (`chamarix/taiwan-legislator-monitor`) Actor

Structured access to Taiwan Legislative Yuan bills, legislators, and meetings. Filter by term, party, keyword, and proposer for civic tech, journalism, and policy research.

- **URL**: https://apify.com/chamarix/taiwan-legislator-monitor.md
- **Developed by:** [chris](https://apify.com/chamarix) (community)
- **Categories:** News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Taiwan Legislative Yuan Monitor

Structured data access to **Taiwan's Legislative Yuan (立法院)** — bills, legislators, and meetings. Monitor legislative activity, track individual lawmakers, analyze party voting patterns. Powered by the open-data [ly.govapi.tw](https://ly.govapi.tw) API.

### Why this data matters

Taiwan's Legislative Yuan is the core of its democratic process. Every bill, every legislator's record, every committee meeting is public information — but buried in government portals that are hard to query programmatically. This Actor gives you clean JSON access to:

- **145,000+ bills** across all terms
- **1,650+ legislators** (current + historical)
- **7,900+ meetings** including committee sessions

### Who this is for

| Use case | User |
|----------|------|
| **Legal research & due diligence** | Law firms tracking legislative changes affecting clients |
| **Investigative journalism** | Reporters covering lawmakers' proposal histories |
| **Policy analysis & lobbying** | Think tanks, industry associations monitoring bills |
| **Political science research** | Academics studying legislative behavior, party discipline |
| **Civic tech** | Building apps that track your representative's activity |
| **Corporate regulatory monitoring** | Compliance teams tracking sector-relevant bills |

### Resources & what you get

#### 1. Bills (議案)
Every piece of proposed legislation, including:
- 議案名稱 (bill title)
- 議案狀態 (current status)
- 提案人 (proposer/sponsor)
- 提案單位/提案委員 (proposing unit or legislator)
- 最新進度日期 (latest progress date)
- 法律編號 / 法律編號:str (affected laws)
- 相關附件 (related PDFs)

#### 2. Legislators (立委)
All legislators serving in the target term:
- 委員姓名 / 委員英文姓名 (Chinese + English names)
- 性別 (gender)
- 黨籍 / 黨團 (party + caucus)
- 選區名稱 (electoral district)
- 委員會 (committees served)
- 到職日 (start date)
- 學歷 (education)

#### 3. Meetings (會議)
Committee and plenary session records:
- 會議種類 (meeting type)
- 委員會代號:str (committee name)
- 會期 / 會次 (session + round)
- 日期 (date)
- 會議標題 (meeting title)
- 會議資料 (related documents)

### Input parameters

```json
{
  "resource": "bills",
  "term": 11,
  "keyword": "健康",
  "party": "",
  "proposer": "",
  "maxResults": 100
}
````

| Field | Type | Description |
|-------|------|-------------|
| `resource` | enum | `bills` / `legislators` / `meets` (required) |
| `term` | int | Legislative term number (current = 11). Set 0 for no filter |
| `keyword` | string | Title keyword filter (bills: 議案名稱; legislators: 委員姓名; meets: 會議標題) |
| `party` | string | Party filter for legislators (e.g., 民主進步黨, 中國國民黨, 台灣民眾黨) |
| `proposer` | string | Filter bills by proposer name |
| `maxResults` | int | Max records to return (0 = unlimited) |

### Output examples

**Bills query** — Bills containing "健康" in term 11:

```json
{
  "屆": 11,
  "議案編號": "202110200590000",
  "議案名稱": "全民健康保險法部分條文修正草案",
  "提案人": "王鴻薇",
  "議案狀態": "交付審查",
  "最新進度日期": "2026-03-15",
  "法律編號:str": ["全民健康保險法"],
  "相關附件": [{"網址": "https://ppg.ly.gov.tw/...", "名稱": "提案書"}],
  "_resource": "bills"
}
```

**Legislators query** — TPP legislators in current term:

```json
{
  "屆": 11,
  "委員姓名": "黃珊珊",
  "委員英文姓名": "Huang Shan-shan",
  "性別": "女",
  "黨籍": "台灣民眾黨",
  "選區名稱": "全國不分區及僑居國外國民",
  "委員會": ["司法及法制委員會"],
  "到職日": "2024-02-01",
  "_resource": "legislators"
}
```

### Pricing

**Pay-per-result**: $0.50 per 1,000 records. Extremely affordable for such rich B2B data.

Typical usage:

- All current-term legislators (~120 records): **~$0.06**
- Bills mentioning a specific law (~200-500): **~$0.10-0.25**
- Complete current-term bill database (~10,000): **~$5.00**

### Common queries

**"Show me all health-related bills this term"**

```json
{"resource":"bills","term":11,"keyword":"健康","maxResults":200}
```

**"List all KMT legislators currently serving"**

```json
{"resource":"legislators","term":11,"party":"中國國民黨"}
```

**"What has legislator X proposed?"**

```json
{"resource":"bills","proposer":"黃國昌","maxResults":500}
```

**"Get all committee meetings in this session"**

```json
{"resource":"meets","term":11,"maxResults":1000}
```

### Data source & license

- **Source**: [ly.govapi.tw](https://ly.govapi.tw) — community-maintained open data API
- **Original data**: Taiwan's Legislative Yuan public records (ppg.ly.gov.tw, data.ly.gov.tw)
- **License**: Public domain / open government data
- **Commercial use**: Permitted for journalism, research, civic tech, and policy analysis

### Tips

- For **time-series analysis**: query the same `term` multiple times with `keyword` filters to build history
- For **party comparison**: pull legislators by `party`, then cross-reference with bills by `proposer`
- The API is free but please respect rate limits — this Actor adds 0.5s delay between pages

### Keywords

Taiwan Legislative Yuan API, 立法院 API, 議案查詢, Taiwan legislator data, bills Taiwan, 立委提案, policy research Taiwan, Taiwan politics API, legislative monitoring, 立法院 資料, taiwan bill tracking, taiwan government open data, civic tech taiwan, 立法院提案, taiwan parliament API

# Actor input Schema

## `resource` (type: `string`):

bills = 議案; legislators = 立委; meets = 會議

## `term` (type: `integer`):

Legislative term number. Taiwan's current 11th term began in Feb 2024. Use 0 for no filter.

## `keyword` (type: `string`):

Filter by keyword. For bills: searches 議案名稱 (bill title). For legislators: searches 委員姓名 (legislator name). Leave empty for no filter.

## `party` (type: `string`):

Filter legislators by party (e.g., 中國國民黨, 民主進步黨, 台灣民眾黨). Leave empty for all.

## `proposer` (type: `string`):

Filter bills by proposer name. Leave empty for all.

## `maxResults` (type: `integer`):

Maximum records to return. API paginates at 100 per page. Set 0 for unlimited.

## Actor input object example

```json
{
  "resource": "bills",
  "term": 11,
  "keyword": "",
  "party": "",
  "proposer": "",
  "maxResults": 100
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("chamarix/taiwan-legislator-monitor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("chamarix/taiwan-legislator-monitor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call chamarix/taiwan-legislator-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=chamarix/taiwan-legislator-monitor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Taiwan Legislative Yuan Monitor",
        "description": "Structured access to Taiwan Legislative Yuan bills, legislators, and meetings. Filter by term, party, keyword, and proposer for civic tech, journalism, and policy research.",
        "version": "0.1",
        "x-build-id": "MfYnpR3ufvNn2kN7h"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/chamarix~taiwan-legislator-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-chamarix-taiwan-legislator-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/chamarix~taiwan-legislator-monitor/runs": {
            "post": {
                "operationId": "runs-sync-chamarix-taiwan-legislator-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/chamarix~taiwan-legislator-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-chamarix-taiwan-legislator-monitor",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "resource"
                ],
                "properties": {
                    "resource": {
                        "title": "Resource to scrape",
                        "enum": [
                            "bills",
                            "legislators",
                            "meets"
                        ],
                        "type": "string",
                        "description": "bills = 議案; legislators = 立委; meets = 會議",
                        "default": "bills"
                    },
                    "term": {
                        "title": "Legislative term (屆)",
                        "minimum": 0,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Legislative term number. Taiwan's current 11th term began in Feb 2024. Use 0 for no filter.",
                        "default": 11
                    },
                    "keyword": {
                        "title": "Keyword filter",
                        "type": "string",
                        "description": "Filter by keyword. For bills: searches 議案名稱 (bill title). For legislators: searches 委員姓名 (legislator name). Leave empty for no filter.",
                        "default": ""
                    },
                    "party": {
                        "title": "Party filter (黨籍, legislators only)",
                        "type": "string",
                        "description": "Filter legislators by party (e.g., 中國國民黨, 民主進步黨, 台灣民眾黨). Leave empty for all.",
                        "default": ""
                    },
                    "proposer": {
                        "title": "Proposer filter (提案人, bills only)",
                        "type": "string",
                        "description": "Filter bills by proposer name. Leave empty for all.",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 0,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum records to return. API paginates at 100 per page. Set 0 for unlimited.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
