{
  "openapi": "3.0.1",
  "info": {
    "title": "Lobbying & FEC Filing Monitor — New Registrations, No Login",
    "description": "Watch clients, registrants, issue codes or FEC committees and get only NEW Senate lobbying registrations, quarterly activity reports and FEC filings since the last run, with income, issues, lobbyists and receipts. Daily schedule. No login. MCP-ready. $20 per 1,000 alerts.",
    "version": "1.0",
    "x-build-id": "pFsMJFR0ejainr7C2"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/flamboyant_liner~lobbying-activity-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-flamboyant_liner-lobbying-activity-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/flamboyant_liner~lobbying-activity-monitor/runs": {
      "post": {
        "operationId": "runs-sync-flamboyant_liner-lobbying-activity-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/flamboyant_liner~lobbying-activity-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-flamboyant_liner-lobbying-activity-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",
        "properties": {
          "clientNames": {
            "title": "Watched clients",
            "type": "array",
            "description": "Organisations that hire lobbyists, e.g. \"Amazon\", \"OpenAI\", \"Pfizer\". Case-insensitive substring match on the client name as filed with the Senate (\"Amazon\" also matches \"Amazon Web Services\"). Any new registration or activity report naming one of them is emitted.",
            "default": [
              "Amazon",
              "OpenAI"
            ],
            "items": {
              "type": "string"
            }
          },
          "registrantNames": {
            "title": "Watched registrants (lobbying firms)",
            "type": "array",
            "description": "Lobbying firms or in-house registrants, e.g. \"Akin Gump\", \"Brownstein\". Substring match on the registrant name. Empty = none.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "issueCodes": {
            "title": "Watched issue codes",
            "type": "array",
            "description": "Senate general issue codes, e.g. TEC (Telecommunications), HCR (Health Issues), TAX (Taxation), DEF (Defense), ENG (Energy/Nuclear), FIN (Financial Institutions), TRD (Trade), CPI (Computer Industry), ENV (Environment), IMM (Immigration). Full list: https://lda.gov/api/v1/constants/filing/lobbyingactivityissues/. The newest filings are scanned and those tagged with the code are emitted (up to 200 filings scanned per code per run). Empty = none.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "fecCommittees": {
            "title": "Watched FEC committees",
            "type": "array",
            "description": "FEC committee IDs, e.g. C00401224 (ActBlue), C00694323. New FEC filings (F3, F3X, F1, F24 ...) received for these committees are emitted. Find IDs at https://www.fec.gov/data/committees/. Empty = none.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "lookbackDays": {
            "title": "Lookback window (days)",
            "minimum": 1,
            "maximum": 730,
            "type": "integer",
            "description": "Only consider filings posted within this many days. Lobbying reports are quarterly (posted around Jan 20, Apr 20, Jul 20, Oct 20), so keep at least 120 days for the first run to get a sample; the seen-state prevents duplicates on later runs.",
            "default": 120
          },
          "maxNewPerWatch": {
            "title": "Max new filings per watch",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Stop after emitting this many new filings for each watched client, registrant, issue code or committee. Filings beyond the cap stay unseen and are emitted on the next run.",
            "default": 5
          },
          "maxItems": {
            "title": "Max alerts per run",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Overall cap on filings emitted in one run, across all watches.",
            "default": 10
          },
          "firstRunMode": {
            "title": "First run mode",
            "enum": [
              "emitAll",
              "baseline"
            ],
            "type": "string",
            "description": "What to do when the monitor has no saved state yet. emitAll: treat every current match as new and emit it (good for a one-off pull or a first test). baseline: silently record every current match as seen and emit nothing, so the next scheduled run reports only what is new since.",
            "default": "emitAll"
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Optional. After each run a JSON summary {monitorId, runAt, new_registration, new_activity_report, new_fec_filing, filings[first 50]} is POSTed here (Slack/Zapier/Make/your API).",
            "default": ""
          },
          "monitorId": {
            "title": "Monitor ID",
            "type": "string",
            "description": "Name of this watchlist. Each monitor ID keeps its own seen-state in a key-value store named lobby-monitor-<hash>, so you can run several profiles (e.g. \"big-tech\", \"pharma-clients\") side by side.",
            "default": "default"
          },
          "lobbyingApiKey": {
            "title": "Senate LDA API key (optional)",
            "type": "string",
            "description": "Optional. Anonymous access is limited to ~15 requests/minute; a free key from https://lda.gov/api/register/ lifts that. Sent as an Authorization: Token header."
          },
          "fecApiKey": {
            "title": "FEC API key (optional)",
            "type": "string",
            "description": "Optional. Only used when fecCommittees is set. Falls back to DEMO_KEY (30 requests/hour). Get a free key at https://api.data.gov/signup/."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}