{
  "openapi": "3.0.1",
  "info": {
    "title": "Taiwan ESG Disclosures (TWSE + TPEx) — Emissions, Board, Water",
    "description": "Every ESG metric Taiwan's listed and OTC companies file with the exchanges: Scope 1/2/3 emissions, energy, water, waste, pay, board composition, climate risk and cyber incidents. 21 topics, both boards, one shape, with each row checked against the figures it states about itself.",
    "version": "0.1",
    "x-build-id": "H9jp0nN10eAdpgpgR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/chamarix~taiwan-esg-disclosures/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-chamarix-taiwan-esg-disclosures",
        "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-esg-disclosures/runs": {
      "post": {
        "operationId": "runs-sync-chamarix-taiwan-esg-disclosures",
        "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-esg-disclosures/run-sync": {
      "post": {
        "operationId": "run-sync-chamarix-taiwan-esg-disclosures",
        "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",
        "properties": {
          "topics": {
            "title": "ESG topics",
            "type": "array",
            "description": "Which of the 21 disclosure topics to fetch. Leave empty for all of them. Each topic is one request per board and becomes one record per company, so picking a few keeps the run small. Five topics are filed on the TWSE board only — fuel management, product lifecycle, information security, financial inclusion and ownership & control — because TPEX does not publish them.",
            "items": {
              "type": "string",
              "enum": [
                "greenhouse_gas_emissions",
                "energy_management",
                "water_management",
                "waste_management",
                "human_capital",
                "board_of_directors",
                "investor_communication",
                "climate_risk_management",
                "board_committees",
                "fuel_management",
                "product_lifecycle",
                "food_safety",
                "supply_chain_management",
                "product_quality_and_safety",
                "community_relations",
                "information_security",
                "financial_inclusion",
                "ownership_and_control",
                "risk_management_policy",
                "anticompetitive_litigation",
                "occupational_health_and_safety"
              ],
              "enumTitles": [
                "greenhouse_gas_emissions — 溫室氣體排放 (Scope 1/2/3)",
                "energy_management — 能源管理 (renewable share)",
                "water_management — 水資源管理",
                "waste_management — 廢棄物管理",
                "human_capital — 人力發展 (pay, female managers)",
                "board_of_directors — 董事會",
                "investor_communication — 投資人溝通",
                "climate_risk_management — 氣候相關議題管理 (TCFD narrative)",
                "board_committees — 功能性委員會 (audit, remuneration)",
                "fuel_management — 燃料管理 (TWSE only)",
                "product_lifecycle — 產品生命週期 (TWSE only)",
                "food_safety — 食品安全",
                "supply_chain_management — 供應鏈管理",
                "product_quality_and_safety — 產品品質與安全",
                "community_relations — 社區關係",
                "information_security — 資訊安全 (TWSE only)",
                "financial_inclusion — 普惠金融 (TWSE only)",
                "ownership_and_control — 持股及控制力 (TWSE only)",
                "risk_management_policy — 風險管理政策",
                "anticompetitive_litigation — 反競爭行為法律訴訟",
                "occupational_health_and_safety — 職業安全衛生"
              ]
            },
            "default": []
          },
          "markets": {
            "title": "Markets",
            "type": "array",
            "description": "TWSE is the listed board (上市), TPEX the over-the-counter board (上櫃). TWSE files all 21 topics; TPEX files 16.",
            "items": {
              "type": "string",
              "enum": [
                "TWSE",
                "TPEX"
              ],
              "enumTitles": [
                "TWSE — listed companies (上市)",
                "TPEX — OTC companies (上櫃)"
              ]
            },
            "default": [
              "TWSE",
              "TPEX"
            ]
          },
          "stockCodes": {
            "title": "Company codes filter",
            "type": "array",
            "description": "Optional list of company codes to keep, e.g. ['2330', '1101']. Codes are matched as text, since not every code is numeric. Leave empty for every company on the selected boards.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "onlyDisclosed": {
            "title": "Drop companies that disclosed nothing",
            "type": "boolean",
            "description": "A company that files nothing for a topic still gets a row, with every metric at null. Turn this on to keep only rows carrying at least one disclosed value. Off by default, because knowing who did not disclose is itself the point for a good many ESG questions.",
            "default": false
          },
          "includeRawFields": {
            "title": "Keep the official Chinese columns",
            "type": "boolean",
            "description": "Adds a `fields` object holding every column exactly as the exchange publishes it, under its original Chinese name. The normalized `metrics` object is always present either way; this is for auditing a value back to source.",
            "default": false
          },
          "crossCheck": {
            "title": "Cross-check board composition",
            "type": "boolean",
            "description": "Compares the filed board and independent-director seat counts against the exchange's separate monthly 董監持股 report, and writes the agreement rate to the log. The two reports have different as-of dates, so they are not expected to agree exactly. Costs one extra request and only runs when the board topic is included.",
            "default": true
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}