{
  "openapi": "3.0.1",
  "info": {
    "title": "🏛️ U.S. House Congress Trade Tracker",
    "description": "Track every U.S. House member stock trade automatically. Clean, structured data from official disclosures — member name, ticker, trade date, amount. Perfect for investors following congress trades & quant researchers. No PDF parsing needed.",
    "version": "0.0",
    "x-build-id": "yr59SYnLbXGaEpV2z"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/seralifatih~congress-trading-pipeline-1/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-seralifatih-congress-trading-pipeline-1",
        "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/seralifatih~congress-trading-pipeline-1/runs": {
      "post": {
        "operationId": "runs-sync-seralifatih-congress-trading-pipeline-1",
        "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/seralifatih~congress-trading-pipeline-1/run-sync": {
      "post": {
        "operationId": "run-sync-seralifatih-congress-trading-pipeline-1",
        "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": {
          "fetchDaysBack": {
            "title": "Days back to fetch",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Rolling window of PTRs to fetch (default 90). The window is applied to the FILING date (the date the PTR was filed with the House Clerk), not to the trade date inside it — trade dates in the output routinely reach back well before the window start.",
            "default": 90
          },
          "fromDate": {
            "title": "From date (YYYY-MM-DD)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Explicit start of the filing-date window. Overrides fetchDaysBack if set."
          },
          "toDate": {
            "title": "To date (YYYY-MM-DD)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Explicit end of the filing-date window. Defaults to today."
          },
          "debugPtrLimit": {
            "title": "Debug: limit PTR detail fetches",
            "minimum": 0,
            "type": "integer",
            "description": "If > 0, fetch only the first N PTRs (newest filings first, after the members filter). Useful for diagnostics and cheap test runs.",
            "default": 0
          },
          "debugPdfText": {
            "title": "Debug: dump first 2000 chars of unmatched PDFs",
            "type": "boolean",
            "description": "Logs raw extracted text for any PDF where regex finds zero rows.",
            "default": false
          },
          "members": {
            "title": "Members (names)",
            "type": "array",
            "description": "Optional. Only return filings by these House members. Case-insensitive; matches the normalized name and common nicknames, so \"Chuck Fleischmann\" matches \"Charles J. \\\"Chuck\\\" Fleischmann\". A bioguide id (e.g. P000197) also works, and a bare last name matches every member with that last name. Applied to the PTR index before any PDF is downloaded, so excluded members' PDFs are never fetched, parsed or charged.",
            "items": {
              "type": "string"
            }
          },
          "tickers": {
            "title": "Tickers",
            "type": "array",
            "description": "Optional. Only return transactions in these tickers (case-insensitive, e.g. AAPL, BRK.B). Rows with no ticker are excluded when this is set, and so are placeholder rows (their content is unknown). Applied before rows are written or charged.",
            "items": {
              "type": "string"
            }
          },
          "transactionDateFrom": {
            "title": "Transaction date from (YYYY-MM-DD)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Optional. Only return transactions executed on or after this date. Applied on top of the filing-date window: a trade is only returned if its filing falls inside the window too. Filings filed before this date are skipped without downloading their PDF."
          },
          "transactionDateTo": {
            "title": "Transaction date to (YYYY-MM-DD)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Optional. Only return transactions executed on or before this date. Applied on top of the filing-date window."
          },
          "includeDuplicates": {
            "title": "Keep exact duplicate rows",
            "type": "boolean",
            "description": "By default, a trade that appears identically in more than one filing (e.g. an original PTR and the amended filing that re-lists it) is returned once, from the amended filing. Identical rows within one filing, and rows that differ in owner, are never touched. Set to true to keep every copy; supersedes_filing_id / is_superseded are still set.",
            "default": false
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}