gov-data-mcp 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +22 -10
  2. package/package.json +1 -1
  3. package/src/catalog.json +386 -32
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # gov-data-mcp
2
2
 
3
- **116 US government open-data tools, as one MCP server.**
3
+ **120 US government open-data tools, as one MCP server.**
4
4
 
5
5
  EPA, FEMA, USGS, NOAA, FAA, USACE, FDIC, HUD, NRCS, HRSA, CMS, county assessor rolls and state licensing boards — all reachable as agent-callable tools, all reading directly from official government APIs and bulk files. No scraping, no HTML parsing, no rate-limit roulette.
6
6
 
@@ -49,13 +49,13 @@ Claude Desktop reads `claude_desktop_config.json`; Claude Code reads `.mcp.json`
49
49
  | `parcel-owner-lookup` | Assessor-roll owner of record for an address |
50
50
  | `license-verifier` | 19 professional licensing boards across 9 states + OIG exclusions |
51
51
 
52
- **Plus three tools that reach the other 104:**
52
+ **Plus three tools that reach the other 108:**
53
53
 
54
54
  - `search-gov-data-tools` — find a tool by keyword, agency or topic
55
55
  - `describe-gov-data-tool` — full input schema for any tool in the catalog
56
56
  - `run-gov-data-tool` — run any tool in the catalog
57
57
 
58
- The catalog is bundled, so discovery costs nothing. Ask your agent *"what government data tools do you have for flood risk?"* and it will search all 116.
58
+ The catalog is bundled, so discovery costs nothing. Ask your agent *"what government data tools do you have for flood risk?"* and it will search all 120.
59
59
 
60
60
  ## Example prompts
61
61
 
@@ -75,6 +75,18 @@ Each tool is a published [Apify Actor](https://apify.com/malonestar) that this s
75
75
 
76
76
  Every result carries the `run_id` and a `console.apify.com` URL, so any claim an agent makes from this server can be traced back to the exact run that produced it.
77
77
 
78
+ ### No Apify account? Agents can pay per run with x402
79
+
80
+ Every tool in this catalog is eligible for Apify's [agentic payments](https://docs.apify.com/integrations/x402): an agent with a funded [Coinbase Agentic Wallet](https://docs.cdp.coinbase.com/agentic-wallet/welcome) (USDC on Base, $1 minimum) buys a prepaid Apify token over the x402 protocol and uses it as `APIFY_TOKEN` — no account, no billing setup, no API key. The ready-made skill is [apify.it/x402-awal](https://apify.com/apify.it/x402-awal):
81
+
82
+ ```bash
83
+ npx -y awal auth login <email> # one-time wallet auth
84
+ npx awal x402 pay 'https://agi.apify.com/protocols/x402/prepaid-tokens?amount=5&currency=usd' --max-amount 5000000 --json
85
+ # → returns a bearer token; export it as APIFY_TOKEN and start this server as usual
86
+ ```
87
+
88
+ The prepaid balance is an absolute spending cap and expires after 14 days. Every tool here charges only per result — none pass platform usage through, none require full permissions, and none run in Standby mode, which are the three things that make an Actor ineligible. Prices are in the catalog (`usdPer1000Results` on every search hit), so an agent can see the cost before spending.
89
+
78
90
  ## On honest answers
79
91
 
80
92
  These actors are built around one rule: **a failure must never be presentable as "nothing was found."** That distinction matters most in exactly the cases people use this for — telling a buyer a property is clear of contamination, telling a pilot an airspace is uncontrolled, telling a lender a borrower is unlicensed.
@@ -91,7 +103,7 @@ The underlying actors carry the same discipline: per-source status on every row,
91
103
  <!-- COVERAGE:START -->
92
104
  ## Coverage
93
105
 
94
- **116 tools**, every one reading an official US government API or bulk file. The MCP server exposes 15 of them directly — twelve named tools plus `search-gov-data-tools`, `describe-gov-data-tool` and `run-gov-data-tool`, which reach the rest — because agents choose badly when handed more than about twenty tools.
106
+ **120 tools**, every one reading an official US government API or bulk file. The MCP server exposes 15 of them directly — twelve named tools plus `search-gov-data-tools`, `describe-gov-data-tool` and `run-gov-data-tool`, which reach the rest — because agents choose badly when handed more than about twenty tools.
95
107
 
96
108
  Each entry links to its full input/output schema, pricing and worked examples.
97
109
 
@@ -119,9 +131,9 @@ Each entry links to its full input/output schema, pricing and worked examples.
119
131
 
120
132
  [bank-enforcement-tracker](https://apify.com/malonestar/bank-enforcement-tracker) · [fdic-branch-network-churn-rollup](https://apify.com/malonestar/fdic-branch-network-churn-rollup) · [fdic-ncua-health-rollup](https://apify.com/malonestar/fdic-ncua-health-rollup) · [fdic-sod-deposit-market-share-rollup](https://apify.com/malonestar/fdic-sod-deposit-market-share-rollup) · [fdic-structure-change-delta-monitor](https://apify.com/malonestar/fdic-structure-change-delta-monitor) · [fhlbank-membership-delta-monitor](https://apify.com/malonestar/fhlbank-membership-delta-monitor) · [hmda-fair-lending-disparity-rollup](https://apify.com/malonestar/hmda-fair-lending-disparity-rollup) · [sba-loan-portfolio-explorer](https://apify.com/malonestar/sba-loan-portfolio-explorer)
121
133
 
122
- **Securities, audit, pensions & sanctions** (8)
134
+ **Securities, audit, pensions & sanctions** (10)
123
135
 
124
- [adcvd-trade-remedy-tracker](https://apify.com/malonestar/adcvd-trade-remedy-tracker) · [consolidated-screening-list-delta](https://apify.com/malonestar/consolidated-screening-list-delta) · [fec-campaign-finance-delta](https://apify.com/malonestar/fec-campaign-finance-delta) · [pbgc-pension-failure-monitor](https://apify.com/malonestar/pbgc-pension-failure-monitor) · [pcaob-auditor-engagement-monitor](https://apify.com/malonestar/pcaob-auditor-engagement-monitor) · [reg-cf-lifecycle-monitor](https://apify.com/malonestar/reg-cf-lifecycle-monitor) · [ria-registration-delta-monitor](https://apify.com/malonestar/ria-registration-delta-monitor) · [short-interest-ftd-monitor](https://apify.com/malonestar/short-interest-ftd-monitor)
136
+ [adcvd-trade-remedy-tracker](https://apify.com/malonestar/adcvd-trade-remedy-tracker) · [consolidated-screening-list-delta](https://apify.com/malonestar/consolidated-screening-list-delta) · [fec-campaign-finance-delta](https://apify.com/malonestar/fec-campaign-finance-delta) · [pbgc-pension-failure-monitor](https://apify.com/malonestar/pbgc-pension-failure-monitor) · [pcaob-auditor-engagement-monitor](https://apify.com/malonestar/pcaob-auditor-engagement-monitor) · [reg-a-plus-lifecycle-monitor](https://apify.com/malonestar/reg-a-plus-lifecycle-monitor) · [reg-cf-lifecycle-monitor](https://apify.com/malonestar/reg-cf-lifecycle-monitor) · [ria-registration-delta-monitor](https://apify.com/malonestar/ria-registration-delta-monitor) · [short-interest-ftd-monitor](https://apify.com/malonestar/short-interest-ftd-monitor) · [uflpa-entity-list-monitor](https://apify.com/malonestar/uflpa-entity-list-monitor)
125
137
 
126
138
  **Licensing, exclusion & workforce screening** (10)
127
139
 
@@ -131,9 +143,9 @@ Each entry links to its full input/output schema, pricing and worked examples.
131
143
 
132
144
  [absentee-owner-lead-list-builder](https://apify.com/malonestar/absentee-owner-lead-list-builder) · [acris-deed-transfer-intel](https://apify.com/malonestar/acris-deed-transfer-intel) · [childcare-provider-leads](https://apify.com/malonestar/childcare-provider-leads) · [distressed-property-signal-stacker](https://apify.com/malonestar/distressed-property-signal-stacker) · [hud-affordable-housing-explorer](https://apify.com/malonestar/hud-affordable-housing-explorer) · [hud-qct-lihtc-boost-screener](https://apify.com/malonestar/hud-qct-lihtc-boost-screener) · [hud-section8-contract-expiration-monitor](https://apify.com/malonestar/hud-section8-contract-expiration-monitor) · [nyc-landlord-registry-lead-list](https://apify.com/malonestar/nyc-landlord-registry-lead-list) · [parcel-owner-lookup](https://apify.com/malonestar/parcel-owner-lookup)
133
145
 
134
- **Infrastructure, transport & airspace** (9)
146
+ **Infrastructure, transport & airspace** (10)
135
147
 
136
- [bts-airline-ontime-delay-climatology](https://apify.com/malonestar/bts-airline-ontime-delay-climatology) · [dod-mirta-military-installation-siting-screener](https://apify.com/malonestar/dod-mirta-military-installation-siting-screener) · [faa-drone-airspace-checker](https://apify.com/malonestar/faa-drone-airspace-checker) · [fhwa-nbi-bridge-risk-monitor](https://apify.com/malonestar/fhwa-nbi-bridge-risk-monitor) · [gsa-site-scanning-auditor](https://apify.com/malonestar/gsa-site-scanning-auditor) · [national-tunnel-inventory-risk-monitor](https://apify.com/malonestar/national-tunnel-inventory-risk-monitor) · [nhtsa-vpic-vin-decoder](https://apify.com/malonestar/nhtsa-vpic-vin-decoder) · [nid-dam-risk-monitor](https://apify.com/malonestar/nid-dam-risk-monitor) · [ntad-fra-rail-crossing-risk-screener](https://apify.com/malonestar/ntad-fra-rail-crossing-risk-screener)
148
+ [bts-airline-ontime-delay-climatology](https://apify.com/malonestar/bts-airline-ontime-delay-climatology) · [bts-db1b-fare-route-market-analytics](https://apify.com/malonestar/bts-db1b-fare-route-market-analytics) · [dod-mirta-military-installation-siting-screener](https://apify.com/malonestar/dod-mirta-military-installation-siting-screener) · [faa-drone-airspace-checker](https://apify.com/malonestar/faa-drone-airspace-checker) · [fhwa-nbi-bridge-risk-monitor](https://apify.com/malonestar/fhwa-nbi-bridge-risk-monitor) · [gsa-site-scanning-auditor](https://apify.com/malonestar/gsa-site-scanning-auditor) · [national-tunnel-inventory-risk-monitor](https://apify.com/malonestar/national-tunnel-inventory-risk-monitor) · [nhtsa-vpic-vin-decoder](https://apify.com/malonestar/nhtsa-vpic-vin-decoder) · [nid-dam-risk-monitor](https://apify.com/malonestar/nid-dam-risk-monitor) · [ntad-fra-rail-crossing-risk-screener](https://apify.com/malonestar/ntad-fra-rail-crossing-risk-screener)
137
149
 
138
150
  **Health, clinical & drug supply** (7)
139
151
 
@@ -143,9 +155,9 @@ Each entry links to its full input/output schema, pricing and worked examples.
143
155
 
144
156
  [npm-package-health-scorer](https://apify.com/malonestar/npm-package-health-scorer) · [ptab-trial-tracker](https://apify.com/malonestar/ptab-trial-tracker) · [sbom-vulnerability-rollup](https://apify.com/malonestar/sbom-vulnerability-rollup) · [uspto-patent-lapse-fto-monitor](https://apify.com/malonestar/uspto-patent-lapse-fto-monitor)
145
157
 
146
- **Labor & enforcement** (2)
158
+ **Labor & enforcement** (3)
147
159
 
148
- [dol-enforcement-rollup](https://apify.com/malonestar/dol-enforcement-rollup) · [warn-layoff-aggregator](https://apify.com/malonestar/warn-layoff-aggregator)
160
+ [dol-enforcement-rollup](https://apify.com/malonestar/dol-enforcement-rollup) · [osha-ita-injury-illness-establishment-monitor](https://apify.com/malonestar/osha-ita-injury-illness-establishment-monitor) · [warn-layoff-aggregator](https://apify.com/malonestar/warn-layoff-aggregator)
149
161
  <!-- COVERAGE:END -->
150
162
 
151
163
  ## Development
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gov-data-mcp",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "mcpName": "io.github.malonestar/gov-data-mcp",
5
5
  "description": "MCP server exposing published US government open-data tools (EPA, FEMA, USGS, NOAA, FAA, USACE, FDIC, HUD, state licensing boards) as agent-callable tools, backed by Apify Actors.",
6
6
  "type": "module",
package/src/catalog.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
- "generatedAt": "2026-09-01T01:24:22.865Z",
2
+ "generatedAt": "2026-09-09T06:58:12.843Z",
3
3
  "owner": "malonestar",
4
- "count": 116,
4
+ "count": 120,
5
5
  "actors": [
6
6
  {
7
7
  "slug": "absentee-owner-lead-list-builder",
@@ -504,6 +504,15 @@
504
504
  "description": "Safety cap on how many sites to screen in one run (1–5000). Extra sites beyond the cap are ignored. Example: 500.",
505
505
  "minimum": 1,
506
506
  "maximum": 5000
507
+ },
508
+ "simulateOutage": {
509
+ "type": "string",
510
+ "description": "Diagnostic seam for proving the failure paths without waiting for a real BLM outage. 'none' is normal operation and is what you want for real work. The corroborating option forces the row-count and Denver-negative-control probes to time out: the run must still SUCCEED, with drift_gate_status=verified_degraded on every row and the skipped probes named. The load-bearing option forces the layer-metadata and ProposedPlan-vocabulary probes to time out: the run must FAIL, emitting nothing and billing nothing. Both are routed through the same code path a genuine outage takes. Example: \"none\".",
511
+ "enum": [
512
+ "none",
513
+ "drift_corroborating_probe",
514
+ "drift_load_bearing_probe"
515
+ ]
507
516
  }
508
517
  },
509
518
  "required": [
@@ -672,6 +681,95 @@
672
681
  }
673
682
  }
674
683
  },
684
+ {
685
+ "slug": "bts-db1b-fare-route-market-analytics",
686
+ "actorId": "malonestar/bts-db1b-fare-route-market-analytics",
687
+ "title": "US Airline Fare & Route-Market Analytics (BTS DB1B)",
688
+ "description": "Historical US airline fares and route economics by quarter, from the official BTS DB1B 10% ticket survey. Average and median fares, carrier market share and concentration (HHI), distance and estimated passengers by route, carrier or airport, with honest sample weighting. Not live booking prices.",
689
+ "categories": [
690
+ "TRAVEL",
691
+ "DEVELOPER_TOOLS",
692
+ "AGENTS"
693
+ ],
694
+ "storeUrl": "https://apify.com/malonestar/bts-db1b-fare-route-market-analytics",
695
+ "pricing": {
696
+ "model": "PAY_PER_EVENT",
697
+ "event": "apify-default-dataset-item",
698
+ "unit": "Route fare-market result",
699
+ "usdPerUnit": 0.01,
700
+ "usdPer1000": 10,
701
+ "tierDiscountsUsdPerUnit": {
702
+ "FREE": 0.01,
703
+ "BRONZE": 0.008,
704
+ "SILVER": 0.007,
705
+ "GOLD": 0.0055,
706
+ "PLATINUM": 0.004,
707
+ "DIAMOND": 0.003
708
+ },
709
+ "actorStartUsd": null,
710
+ "since": "2026-09-01T18:03:54.041Z"
711
+ },
712
+ "inputSchema": {
713
+ "type": "object",
714
+ "properties": {
715
+ "sinceQuarter": {
716
+ "type": "string",
717
+ "description": "First quarter of BTS DB1B data to include, as YYYY-Qn (e.g. \"2025-Q1\") or YYYY-n (e.g. \"2025-1\"), n being 1-4. Leave blank to default to the quarter before the latest published quarter. The DB1B Origin & Destination Survey begins 1993-Q1 and is published with a ~1-2 quarter lag; the run discovers the latest available quarter live and reports it on every row. An unusable value (a month form, slash date, bare year, or quarter 5) FAILS the run loudly — it is never silently ignored. Example: \"2025-Q2\"."
718
+ },
719
+ "untilQuarter": {
720
+ "type": "string",
721
+ "description": "Last quarter of BTS DB1B data to include, as YYYY-Qn or YYYY-n. Leave blank to default to the latest published quarter. A window spanning more than 4 quarters is rejected (each quarter is a ~100 MB, ~7-million-row BTS download). A quarter BTS has not yet published is reported as missing — with allowPartial false (the default) the run fails loudly rather than quietly narrowing your window. Example: \"2025-Q2\"."
722
+ },
723
+ "origins": {
724
+ "type": "array",
725
+ "description": "Optional. IATA origin airport codes, e.g. [\"LAX\",\"JFK\"]. Leave empty for all origins. Markets are DIRECTIONAL in DB1B, so LAX-JFK and JFK-LAX are separate rows. An unfiltered, all-routes run over a full quarter aggregates tens of thousands of markets and is memory-heavy; a filter keeps it light. Example: [\"LAX\"].",
726
+ "items": {
727
+ "type": "string"
728
+ }
729
+ },
730
+ "dests": {
731
+ "type": "array",
732
+ "description": "Optional. IATA destination airport codes, e.g. [\"JFK\",\"ORD\"]. Leave empty for all destinations.",
733
+ "items": {
734
+ "type": "string"
735
+ }
736
+ },
737
+ "carriers": {
738
+ "type": "array",
739
+ "description": "Optional. BTS ticketing-carrier codes to include, e.g. [\"WN\",\"AA\",\"DL\",\"UA\",\"B6\"]. Market share and fares are attributed to the TICKETING carrier (who sold the ticket); the operating carrier differs on ~27% of rows (codeshare/regional). Leave empty for all carriers (DB1B includes ~37 codes, incl. foreign carriers on US-endpoint itineraries and a \"--\" placeholder). A code matching no rows fails the run with the list of carriers actually present — never a silent empty dataset.",
740
+ "items": {
741
+ "type": "string"
742
+ }
743
+ },
744
+ "groupBy": {
745
+ "type": "string",
746
+ "description": "How to roll markets up. \"route\" = one row per (directional origin-dest x quarter) across carriers; \"carrier_route\" = one row per (ticketing carrier x origin-dest x quarter); \"origin_airport\" = one row per (origin airport x quarter, all its outbound markets); \"market\" = one row per (origin city-market x dest city-market x quarter), which groups multi-airport metros (e.g. all NYC airports together). Carrier market-share/HHI fields are meaningful for route/origin_airport/market (which span carriers) and trivial for carrier_route. Omitted = \"route\". Example: \"route\".",
747
+ "enum": [
748
+ "route",
749
+ "carrier_route",
750
+ "origin_airport",
751
+ "market"
752
+ ]
753
+ },
754
+ "minPassengers": {
755
+ "type": "integer",
756
+ "description": "Suppress groups with fewer than this many SAMPLE passengers in a quarter (noise control — a market with 2 sampled passengers gives a meaningless average fare). Remember DB1B is a 10% sample, so 10 sample passengers ~ 100 estimated. Suppressed-group count is disclosed on every emitted row as groups_suppressed_below_min_passengers. Set 0 to keep everything. Omitted = 10. Example: 10.",
757
+ "minimum": 0,
758
+ "maximum": 1000000
759
+ },
760
+ "maxResults": {
761
+ "type": "integer",
762
+ "description": "Hard cap on emitted rows — each row is one billed result. Enforced by a single audited code path for every groupBy mode; when the cap bites, rows are dropped smallest-groups-first and every emitted row carries results_truncated=true. Omitted = 500. Example: 500.",
763
+ "minimum": 1,
764
+ "maximum": 20000
765
+ },
766
+ "allowPartial": {
767
+ "type": "boolean",
768
+ "description": "If a requested quarter cannot be retrieved (not yet published by BTS, or the download failed), the run FAILS loudly by default so a partial window is never mistaken for a complete one. Set true to proceed with the quarters that did arrive — every row then reports quarters_missing and data_complete=false. Applied by default if omitted: false."
769
+ }
770
+ }
771
+ }
772
+ },
675
773
  {
676
774
  "slug": "calfire-fhsz-screener",
677
775
  "actorId": "malonestar/calfire-fhsz-screener",
@@ -735,7 +833,7 @@
735
833
  {
736
834
  "slug": "cbrs-coastal-barrier-screener",
737
835
  "actorId": "malonestar/cbrs-coastal-barrier-screener",
738
- "title": "CBRS Coastal Barrier Screener - CBRA Flood Insurance Bar",
836
+ "title": "USFWS CBRS Coastal Barrier Screener - CBRA Flood Insurance Bar",
739
837
  "description": "Batch-screen coordinates against the USFWS Coastal Barrier Resources System. Returns System Unit vs Otherwise Protected Area, the flood-insurance prohibition date FEMA actually applies, the official 20 ft boundary buffer zone, distance to the CBRS boundary, and the official unit map link.",
740
838
  "categories": [
741
839
  "REAL_ESTATE",
@@ -889,7 +987,7 @@
889
987
  {
890
988
  "slug": "cdfi-nmtc-lowincome-energy-bonus-screener",
891
989
  "actorId": "malonestar/cdfi-nmtc-lowincome-energy-bonus-screener",
892
- "title": "NMTC Low-Income Community Screener — IRA 48(e) Solar Bonus",
990
+ "title": "CDFI Fund NMTC Low-Income Community Screener - IRA 48(e) Bonus",
893
991
  "description": "Coordinate lookup for the IRA 48(e) low-income clean-energy bonus. Batch lat/lon against CDFI Fund NMTC Low-Income Communities (IRC 45D(e)); each returns in_nmtc_low_income_community, tract GEOID, poverty/MFI basis, Category 1 bonus flag, adder, and an optional HUD QCT flag. MCP-ready.",
894
992
  "categories": [
895
993
  "REAL_ESTATE",
@@ -1831,7 +1929,7 @@
1831
1929
  {
1832
1930
  "slug": "energy-corridor-368-screener",
1833
1931
  "actorId": "malonestar/energy-corridor-368-screener",
1834
- "title": "Section 368 Energy Corridor Screener - Federal ROW Siting Flag",
1932
+ "title": "BLM Section 368 Energy Corridor Screener - Federal ROW Siting",
1835
1933
  "description": "Screens coordinates against BLM Section 368 West-wide Energy Corridors using BLM current designations plus the Argonne mirror. Returns corridor name, width, permitted use, whether a later plan amendment deleted it, distance to the nearest corridor and a ROW streamlining signal.",
1836
1934
  "categories": [
1837
1935
  "REAL_ESTATE",
@@ -2247,7 +2345,7 @@
2247
2345
  {
2248
2346
  "slug": "epa-impaired-waters-303d-screener",
2249
2347
  "actorId": "malonestar/epa-impaired-waters-303d-screener",
2250
- "title": "CWA 303(d) Impaired Waters Proximity Screener — NPDES/Phase-I",
2348
+ "title": "EPA 303(d) Impaired Waters Proximity Screener - NPDES / Phase I",
2251
2349
  "description": "CWA Section 303(d) impaired-waters proximity API — screens coordinates against EPA ATTAINS impaired/threatened waters: nearest impaired stream or lake, distance, pollutant causes, TMDL status, and an NPDES/stormwater permitting flag for Phase-I ESA site due diligence.",
2252
2350
  "categories": [
2253
2351
  "REAL_ESTATE",
@@ -2370,7 +2468,7 @@
2370
2468
  {
2371
2469
  "slug": "epa-rcra-corrective-action-cleanup-monitor",
2372
2470
  "actorId": "malonestar/epa-rcra-corrective-action-cleanup-monitor",
2373
- "title": "RCRA Corrective Action Cleanup Timeline & Overdue Milestones",
2471
+ "title": "EPA RCRA Corrective Action Cleanup Timeline & Overdue Events",
2374
2472
  "description": "Track RCRA corrective-action cleanups from EPA RCRAInfo: milestone dates, scheduled vs actual, schedule slip, overdue milestones, remedy status, engineering and institutional controls, and confirmed release media per facility.",
2375
2473
  "categories": [
2376
2474
  "REAL_ESTATE",
@@ -3205,7 +3303,7 @@
3205
3303
  "slug": "fdic-ncua-health-rollup",
3206
3304
  "actorId": "malonestar/fdic-ncua-health-rollup",
3207
3305
  "title": "Bank & Credit-Union Financial Health API — FDIC/NCUA QoQ",
3208
- "description": "Bank & credit-union financial-health API on keyless FDIC data (NCUA v1.1): unified per-institution assets, deposits, equity, ROA, ROE, NIM and asset quality, with quarter-over-quarter deltas, peer-percentile scoring, and derived health flags (deposit outflow, low ROA, rising NPL).",
3306
+ "description": "Bank financial-stress screen on keyless FDIC data: capital ratios, CRE concentration (2006 guidance two-prong test), deposit runoff, ROA/ROE/NIM and asset quality per institution, with quarter-over-quarter deltas, peer-percentile scoring and health flags (deposit outflow, low ROA, rising NPL).",
3209
3307
  "categories": [
3210
3308
  "LEAD_GENERATION",
3211
3309
  "DEVELOPER_TOOLS",
@@ -3751,7 +3849,7 @@
3751
3849
  {
3752
3850
  "slug": "fhlbank-membership-delta-monitor",
3753
3851
  "actorId": "malonestar/fhlbank-membership-delta-monitor",
3754
- "title": "FHLBank Membership Roster & Delta Monitor",
3852
+ "title": "FHFA FHLBank Membership Roster & Delta Monitor",
3755
3853
  "description": "FHLBank System membership roster and quarter-over-quarter delta tracker sourced from FHFA's published member file: joins, exits and attribute changes across all 11 districts, with CERT/FED_ID/NCUA_ID/NAIC_ID join keys for correspondent banking, KYB and competitive intel.",
3756
3854
  "categories": [
3757
3855
  "BUSINESS",
@@ -3904,7 +4002,7 @@
3904
4002
  {
3905
4003
  "slug": "fuds-defense-site-screener",
3906
4004
  "actorId": "malonestar/fuds-defense-site-screener",
3907
- "title": "FUDS Formerly Used Defense Sites Screener - UXO & Contamination",
4005
+ "title": "USACE FUDS Formerly Used Defense Sites Screener - UXO Risk",
3908
4006
  "description": "Screen any US coordinate against the USACE Formerly Used Defense Sites inventory: on-property boundary intersect, nearest FUDS property, munitions response sites (MMRP/UXO) and contamination projects (IRP), split by hazard.",
3909
4007
  "categories": [
3910
4008
  "REAL_ESTATE",
@@ -4434,7 +4532,7 @@
4434
4532
  {
4435
4533
  "slug": "historic-land-use-sic-contaminant-screener",
4436
4534
  "actorId": "malonestar/historic-land-use-sic-contaminant-screener",
4437
- "title": "Historic Land Use Screener - Contaminating SIC/NAICS Sites",
4535
+ "title": "EPA FRS Historic Land Use Screener - Contaminating SIC/NAICS",
4438
4536
  "description": "Screens a coordinate or address radius against EPA FRS SIC and NAICS classifications to find dry cleaners, gas stations, plating shops, auto shops, printers and other recognised contaminating land uses, for ASTM E1527-21 Section 8.3 prior-use review.",
4439
4537
  "categories": [
4440
4538
  "REAL_ESTATE",
@@ -4581,7 +4679,7 @@
4581
4679
  {
4582
4680
  "slug": "hmda-fair-lending-disparity-rollup",
4583
4681
  "actorId": "malonestar/hmda-fair-lending-disparity-rollup",
4584
- "title": "HMDA Fair Lending Disparity Analysis — Denial & Pricing",
4682
+ "title": "CFPB HMDA Fair Lending Disparity Analysis - Denial & Pricing",
4585
4683
  "description": "Fair-lending exam analytics on CFPB HMDA data: denial-rate disparity index with two-proportion z-tests, denial reasons, higher-priced lending, LMI tract redlining screen, and lender-vs-market benchmarks by LEI, state, MSA, county or tract.",
4586
4684
  "categories": [
4587
4685
  "AGENTS",
@@ -5670,7 +5768,7 @@
5670
5768
  {
5671
5769
  "slug": "nadac-price-movers",
5672
5770
  "actorId": "malonestar/nadac-price-movers",
5673
- "title": "NADAC Drug Pricing API — Weekly NDC Price Movers",
5771
+ "title": "CMS NADAC Drug Pricing API - Weekly NDC Price Movers",
5674
5772
  "description": "Drug pricing API built on CMS/Medicaid NADAC weekly data: per-NDC price time series, week-over-week deltas, and biggest-mover spike/drop detection. Filter by NDC or drug name over any date window to track generic drug price changes. Keyless, official source.",
5675
5773
  "categories": [
5676
5774
  "DEVELOPER_TOOLS",
@@ -5800,7 +5898,7 @@
5800
5898
  {
5801
5899
  "slug": "nfip-flood-loss-risk-screener",
5802
5900
  "actorId": "malonestar/nfip-flood-loss-risk-screener",
5803
- "title": "NFIP Flood Loss Risk Screener — Property Loss History Score",
5901
+ "title": "FEMA NFIP Flood Loss Risk Screener - Claims History by Address",
5804
5902
  "description": "Flood loss history by property from FEMA NFIP paid claims: count, total paid, repetitive-loss flag, recency and a 0-100 flood-loss score within a radius of each lat/lon.",
5805
5903
  "categories": [
5806
5904
  "REAL_ESTATE",
@@ -5868,7 +5966,7 @@
5868
5966
  {
5869
5967
  "slug": "nhd-surface-water-404-screener",
5870
5968
  "actorId": "malonestar/nhd-surface-water-404-screener",
5871
- "title": "NHD Surface Water & Section 404 Wetland Screener",
5969
+ "title": "USGS NHD Surface Water & Section 404 Wetland Screener",
5872
5970
  "description": "Screen any lat/lon against USGS NHDPlus HR surface water. 94 fields: exact distance to the nearest perennial, intermittent and ephemeral reach, waterbody type and purpose, mean annual flow, stream order, HUC-8/10/12, a jurisdictional-likelihood call with its reasoning, and a Section 404/WOTUS flag.",
5873
5971
  "categories": [
5874
5972
  "BUSINESS",
@@ -6344,7 +6442,7 @@
6344
6442
  {
6345
6443
  "slug": "nrel-pvwatts-solar-resource-scorer",
6346
6444
  "actorId": "malonestar/nrel-pvwatts-solar-resource-scorer",
6347
- "title": "Solar Resource & PVWatts Yield Scorer — Batch Site Screening",
6445
+ "title": "NREL PVWatts Solar Resource & Yield Scorer - Batch Site Screen",
6348
6446
  "description": "Batch solar resource assessment via NREL PVWatts v8. Lat/lon list in; annual/monthly kWh yield, capacity factor, irradiance, and a solar-worthiness class out. The resource-quality layer for solar, storage, and data-center siting.",
6349
6447
  "categories": [
6350
6448
  "REAL_ESTATE",
@@ -6428,8 +6526,8 @@
6428
6526
  {
6429
6527
  "slug": "nrhp-historic-place-screener",
6430
6528
  "actorId": "malonestar/nrhp-historic-place-screener",
6431
- "title": "NRHP Historic Place Screener — Section 106 & Tax Credit",
6432
- "description": "Screen coordinates against the National Register of Historic Places. Per asset: nearest listed property, National Historic Landmark flag, listed-district point-in-polygon, plus Section 106 review and 20% historic tax-credit screening flags.",
6529
+ "title": "NPS NRHP Historic Place Screener - Section 106 & Tax Credit",
6530
+ "description": "Screen coordinates against the NPS National Register of Historic Places. Per asset: nearest listed property, National Historic Landmark flag, listed-district point-in-polygon, plus Section 106 review and 20% historic tax-credit screening flags.",
6433
6531
  "categories": [
6434
6532
  "AGENTS",
6435
6533
  "DEVELOPER_TOOLS",
@@ -6809,8 +6907,8 @@
6809
6907
  {
6810
6908
  "slug": "orphaned-well-proximity-screener",
6811
6909
  "actorId": "malonestar/orphaned-well-proximity-screener",
6812
- "title": "Orphaned Oil & Gas Well Proximity Screener - Phase I ESA",
6813
- "description": "Screen any US coordinate against 117,672 documented orphaned oil and gas wells. Returns count in radius, nearest-well distance and bearing, status, well type, positional accuracy and a Phase I ESA risk signal. Covers 27 states; a site outside coverage is reported as such, never as clear.",
6910
+ "title": "USGS Orphaned Oil & Gas Well Proximity Screener - Phase I ESA",
6911
+ "description": "Screen any US coordinate against 117,672 USGS-documented orphaned oil and gas wells. Returns count in radius, nearest-well distance and bearing, status, well type, positional accuracy and a Phase I ESA risk signal. Covers 27 states; a site outside coverage is reported as such, never as clear.",
6814
6912
  "categories": [
6815
6913
  "REAL_ESTATE",
6816
6914
  "DEVELOPER_TOOLS",
@@ -6890,10 +6988,97 @@
6890
6988
  ]
6891
6989
  }
6892
6990
  },
6991
+ {
6992
+ "slug": "osha-ita-injury-illness-establishment-monitor",
6993
+ "actorId": "malonestar/osha-ita-injury-illness-establishment-monitor",
6994
+ "title": "OSHA Injury & Illness Data (ITA Form 300A) Rate Monitor",
6995
+ "description": "Establishment-level OSHA Form 300A injury and illness data from the OSHA Injury Tracking Application (ITA), CY2016 onward. Total Case Rate and DART injury rates from OSHA's own formula, a peer-industry median benchmark computed from the filers themselves, and a year-over-year delta. Keyless.",
6996
+ "categories": [
6997
+ "BUSINESS",
6998
+ "DEVELOPER_TOOLS",
6999
+ "AGENTS"
7000
+ ],
7001
+ "storeUrl": "https://apify.com/malonestar/osha-ita-injury-illness-establishment-monitor",
7002
+ "pricing": {
7003
+ "model": "PAY_PER_EVENT",
7004
+ "event": "apify-default-dataset-item",
7005
+ "unit": "Establishment injury & illness record",
7006
+ "usdPerUnit": 0.008,
7007
+ "usdPer1000": 8,
7008
+ "tierDiscountsUsdPerUnit": {
7009
+ "FREE": 0.008,
7010
+ "BRONZE": 0.0064,
7011
+ "SILVER": 0.0056,
7012
+ "GOLD": 0.0044,
7013
+ "PLATINUM": 0.0044,
7014
+ "DIAMOND": 0.0044
7015
+ },
7016
+ "actorStartUsd": null,
7017
+ "since": "2026-09-04T05:13:05.557Z"
7018
+ },
7019
+ "inputSchema": {
7020
+ "type": "object",
7021
+ "properties": {
7022
+ "states": {
7023
+ "type": "array",
7024
+ "description": "REQUIRED. Two-letter state codes to return establishments for, e.g. [\"CO\"] or [\"TX\",\"NM\"]. OSHA publishes roughly 400,000 establishment records per calendar year, so an unscoped national run is rejected before it starts rather than billed. Matching is case-insensitive on purpose: the CY2022 file carries 24 mixed-case spellings such as \"Fl\", \"ca\" and \"Co\", and a case-sensitive filter silently drops those establishments. OSHA also publishes AS, GU, MP, PR, VI and the military codes AA, AE and AP. Example: [\"CO\"].",
7025
+ "items": {
7026
+ "type": "string"
7027
+ }
7028
+ },
7029
+ "years": {
7030
+ "type": "array",
7031
+ "description": "REQUIRED. Calendar years of Form 300A data, e.g. [\"2024\"]. OSHA collects one year at a time and publishes each year as a separate 12-85 MB download, so at most 3 years per run. Summary data exists from 2016 onward; the exact list of published years is read live from OSHA's own data page on every run and an unpublished year fails loudly with the list of years that do exist. In \"delta\" mode pass exactly one year — the prior year is fetched automatically. Example: [\"2024\"].",
7032
+ "items": {
7033
+ "type": "string"
7034
+ }
7035
+ },
7036
+ "mode": {
7037
+ "type": "string",
7038
+ "description": "\"establishments\" returns one row per establishment per calendar year, with the OSHA-formula Total Case Rate and DART rate plus a peer-industry benchmark. \"delta\" compares the requested year against the year before it and returns one row per establishment with the rate change and a filing_status of continuing / new_filer / stopped_filing. Omitted = \"establishments\". Example: \"establishments\".",
7039
+ "enum": [
7040
+ "establishments",
7041
+ "delta"
7042
+ ]
7043
+ },
7044
+ "naicsPrefixes": {
7045
+ "type": "array",
7046
+ "description": "Optional. Two- to six-digit NAICS prefixes, e.g. [\"23\"] for construction, [\"2382\"] for building-equipment contractors, [\"238310\"] for drywall contractors, [\"622\"] for hospitals. Matching is by PREFIX rather than exact code because OSHA stores three NAICS vintages side by side in the same file (2012, 2017 and 2022 codes all appear in CY2024, plus a \"0\" vintage sentinel), so an exact-code filter against one vintage's code list silently loses whole industries. Leave empty for all industries.",
7047
+ "items": {
7048
+ "type": "string"
7049
+ }
7050
+ },
7051
+ "nameContains": {
7052
+ "type": "string",
7053
+ "description": "Optional. Case-insensitive substring matched against BOTH establishment_name and company_name, e.g. \"Kroger\" or \"Post Acute\". Useful for tracking one employer's whole establishment footprint across a state. Leave blank for all names."
7054
+ },
7055
+ "minEmployees": {
7056
+ "type": "integer",
7057
+ "description": "Optional. Keep only establishments reporting at least this many annual average employees. An establishment that reports no employee count is excluded when this is above 0, because an unreported count is not a small count. Note OSHA does not validate this figure — the CY2024 file contains a single establishment reporting 41,092,597 employees, which is flagged rather than corrected. Omitted or 0 = no employee filter.",
7058
+ "minimum": 0,
7059
+ "maximum": 10000000
7060
+ },
7061
+ "onlyWithRecordableCases": {
7062
+ "type": "boolean",
7063
+ "description": "When true, keep only establishments that reported at least one recordable case or death. Roughly 43% of CY2024 filers reported zero cases, and a zero-case filing is a real, meaningful answer, so this is off by default. Turning it on does not change any rate — it only narrows which establishments are returned and therefore what you are billed for. Applied by default if omitted: false."
7064
+ },
7065
+ "maxResults": {
7066
+ "type": "integer",
7067
+ "description": "Hard cap on emitted rows — each row is one billed result. Enforced by a single audited code path for both modes plus a pre-push tripwire. When the cap bites, rows are ordered trustworthy-rate-first (an establishment reporting 547 employees against 6,571 hours produces an arithmetically valid but meaningless rate, and those sort below the sound ones rather than dominating the top of your results), and every emitted row carries results_truncated=true and matched_rows_total so a capped answer is never mistaken for a complete one. Omitted = 500. Example: 500.",
7068
+ "minimum": 1,
7069
+ "maximum": 20000
7070
+ }
7071
+ },
7072
+ "required": [
7073
+ "states",
7074
+ "years"
7075
+ ]
7076
+ }
7077
+ },
6893
7078
  {
6894
7079
  "slug": "padus-protected-lands-screener",
6895
7080
  "actorId": "malonestar/padus-protected-lands-screener",
6896
- "title": "PAD-US Protected Lands Screener — Owner & GAP Status",
7081
+ "title": "USGS PAD-US Protected Lands Screener - Owner & GAP Status",
6897
7082
  "description": "Protected lands + public land ownership screener. Point-in-polygon check of coordinates against USGS PAD-US: returns owner/manager agency, Federal/State/Local/Private type, designation, GAP status and public access per asset.",
6898
7083
  "categories": [
6899
7084
  "REAL_ESTATE",
@@ -7318,10 +7503,98 @@
7318
7503
  ]
7319
7504
  }
7320
7505
  },
7506
+ {
7507
+ "slug": "reg-a-plus-lifecycle-monitor",
7508
+ "actorId": "malonestar/reg-a-plus-lifecycle-monitor",
7509
+ "title": "SEC EDGAR Reg A+ Offering Lifecycle & Outcomes Monitor",
7510
+ "description": "Track SEC Regulation A / Reg A+ offerings end to end from EDGAR, keyless: 1-A offerings and 253G2 circulars, 1-K annual reports, 1-U material events and 1-Z exit reports with sell-through. Feed, issuer, outcomes and delta modes — the outcome lifecycle the offering-only incumbents never sell.",
7511
+ "categories": [
7512
+ "BUSINESS",
7513
+ "DEVELOPER_TOOLS",
7514
+ "AGENTS"
7515
+ ],
7516
+ "storeUrl": "https://apify.com/malonestar/reg-a-plus-lifecycle-monitor",
7517
+ "pricing": {
7518
+ "model": "PAY_PER_EVENT",
7519
+ "event": "apify-default-dataset-item",
7520
+ "unit": "Reg A+ lifecycle result",
7521
+ "usdPerUnit": 0.01,
7522
+ "usdPer1000": 10,
7523
+ "tierDiscountsUsdPerUnit": {
7524
+ "FREE": 0.01,
7525
+ "BRONZE": 0.008,
7526
+ "SILVER": 0.007,
7527
+ "GOLD": 0.0055,
7528
+ "PLATINUM": 0.004,
7529
+ "DIAMOND": 0.003
7530
+ },
7531
+ "actorStartUsd": null,
7532
+ "since": "2026-09-01T18:03:54.675Z"
7533
+ },
7534
+ "inputSchema": {
7535
+ "type": "object",
7536
+ "properties": {
7537
+ "mode": {
7538
+ "type": "string",
7539
+ "description": "What to return. \"feed\" = Regulation A / Reg A+ lifecycle events (1-A offering statements, 253G2 qualified offering circulars, 1-K annual reports, 1-SA semiannual reports, 1-U current reports, 1-Z exit reports) in a date window. \"outcomes\" = Form 1-K annual reports with issuer, reporting period, fiscal year end and securities-outstanding detail from each filing's XML — the survival / still-reporting signal (note: Reg A 1-K financial statements are filed as HTML/PDF exhibits, NOT structured XML, so financial columns are populated from the 1-A offering, not the 1-K). \"issuer\" = every Reg A lifecycle filing for one company (by cik or issuerQuery), XML-enriched. \"delta\" = only filings new since your last run for this scope, tracked in the named key-value store 'reg-a-plus-lifecycle-baseline'; the FIRST delta run stores a baseline and fails with an explanatory message rather than billing the whole feed as new. Example: \"feed\".",
7540
+ "enum": [
7541
+ "feed",
7542
+ "outcomes",
7543
+ "issuer",
7544
+ "delta"
7545
+ ]
7546
+ },
7547
+ "formTypes": {
7548
+ "type": "array",
7549
+ "description": "Which Reg A form types to include (feed and delta modes; outcomes mode always uses 1-K only). Allowed values: 1-A (offering statement), 253G1 / 253G2 / 253G3 / 253G4 (qualified offering circular), 1-K (annual report), 1-SA (semiannual report), 1-U (current report / material events), 1-Z (exit report), DOS (draft offering statement). Leave empty for the default lifecycle spine: 1-A, 253G2, 1-K, 1-SA, 1-U, 1-Z. Amendments (e.g. 1-A/A) are included under their base form and flagged is_amendment. Example: [\"1-A\",\"253G2\",\"1-K\",\"1-SA\",\"1-U\",\"1-Z\"].",
7550
+ "items": {
7551
+ "type": "string"
7552
+ }
7553
+ },
7554
+ "startDate": {
7555
+ "type": "string",
7556
+ "description": "Only include filings filed on or after this date. STRICTLY YYYY-MM-DD (e.g. 2026-01-01) — slash dates, month names and compact dates are rejected with a loud failure because they cannot be applied unambiguously. Leave blank for no lower bound (Reg A+ began 2015-06-19). Example: \"2026-01-01\"."
7557
+ },
7558
+ "endDate": {
7559
+ "type": "string",
7560
+ "description": "Only include filings filed on or before this date. STRICTLY YYYY-MM-DD. Leave blank for no upper bound (today). An unusable value fails the run loudly; nothing is billed."
7561
+ },
7562
+ "state": {
7563
+ "type": "string",
7564
+ "description": "Optional 2-letter US state/territory code (e.g. TX) filtering on the issuer's principal business address. Applied server-side via the EDGAR locationCodes parameter AND re-validated on every returned row — if EDGAR ever stops applying the filter the run fails loudly instead of shipping a national feed labelled as one state."
7565
+ },
7566
+ "platformQuery": {
7567
+ "type": "string",
7568
+ "description": "Optional crowdfunding platform, broker-dealer or service-provider name, e.g. \"StartEngine\", \"DealMaker\" or \"Dalmore Group\". Matched as an exact phrase via EDGAR full-text search against the filing documents (Reg A does not carry a structured platform field, so this is a document-text match, not a structured filter). Use the platform's legal name as it appears in offering circulars."
7569
+ },
7570
+ "cik": {
7571
+ "type": "string",
7572
+ "description": "SEC CIK number of the issuer for issuer mode, with or without leading zeros (e.g. 2083128). Find it on any EDGAR filing page. issuer mode requires cik or issuerQuery."
7573
+ },
7574
+ "issuerQuery": {
7575
+ "type": "string",
7576
+ "description": "Company-name phrase for issuer mode when you do not know the CIK, e.g. \"Elio Motors\". Matched as a phrase via EDGAR full-text search; prefer cik for an exact match."
7577
+ },
7578
+ "enrichXml": {
7579
+ "type": "boolean",
7580
+ "description": "In feed/delta modes, also fetch each filing's primary_doc.xml to add the structured fields. 1-A adds offering tier, price, aggregate offering, jurisdiction count, auditor, and a one-year financial snapshot (total assets, revenue, net income, equity); 1-K adds reporting period, fiscal year end, shell-company flag and securities outstanding; 1-Z adds securities qualified vs sold, net proceeds, record holders and exit sell-through. Adds one polite EDGAR request per 1-A/1-K/1-Z row (slower). 253G2/1-SA/1-U/DOS have no structured XML (xml_status=not_applicable). outcomes and issuer modes always enrich. When off, those columns are null with xml_status=\"not_fetched\" — null means NOT FETCHED, never \"none\". Applied by default if omitted: false."
7581
+ },
7582
+ "maxResults": {
7583
+ "type": "integer",
7584
+ "description": "Hard cap on rows emitted AND billed this run (newest filings first). Every row carries matched_total and results_truncated so a capped answer is never mistaken for a complete one. Example: 200.",
7585
+ "minimum": 1,
7586
+ "maximum": 5000
7587
+ }
7588
+ },
7589
+ "required": [
7590
+ "mode"
7591
+ ]
7592
+ }
7593
+ },
7321
7594
  {
7322
7595
  "slug": "reg-cf-lifecycle-monitor",
7323
7596
  "actorId": "malonestar/reg-cf-lifecycle-monitor",
7324
- "title": "Reg CF Crowdfunding Lifecycle & Outcomes Monitor — SEC EDGAR",
7597
+ "title": "SEC EDGAR Reg CF Crowdfunding Lifecycle & Outcomes Monitor",
7325
7598
  "description": "Track US Regulation Crowdfunding beyond the offering feed: new Form C filings, C-U funding progress, C-AR annual reports with two-year revenue and net income, and C-TR/C-W terminations — straight from SEC EDGAR, keyless. Feed, issuer, outcomes and delta modes with honest per-row provenance.",
7326
7599
  "categories": [
7327
7600
  "BUSINESS",
@@ -7816,7 +8089,7 @@
7816
8089
  {
7817
8090
  "slug": "sos-registry-monitor",
7818
8091
  "actorId": "malonestar/sos-registry-monitor",
7819
- "title": "US Business Entity Search & New-Business Monitor (KYB API)",
8092
+ "title": "Secretary of State Business Search & New-Business Monitor API",
7820
8093
  "description": "Business entity search & KYB API across official US Secretary of State registries. Search companies by name and monitor newly formed LLCs and corporations for lead generation. Bulk and date-range capable, sourced from state open-data portals — no anti-bot. Keyless.",
7821
8094
  "categories": [
7822
8095
  "LEAD_GENERATION",
@@ -7985,7 +8258,7 @@
7985
8258
  {
7986
8259
  "slug": "state-tank-spill-registry-screener",
7987
8260
  "actorId": "malonestar/state-tank-spill-registry-screener",
7988
- "title": "UST, LUST & Spill Registry Screener — National + NY/CA/TX/FL",
8261
+ "title": "EPA UST Finder, LUST & Spill Registry Screener - NY/CA/TX/FL",
7989
8262
  "description": "Underground storage tank (UST/LUST) and spill registry screener. Screen any US coordinate against the national EPA UST Finder plus NY, CA, TX and FL state registries — tank leaks, spills, and cleanup cases with case type, status, contaminant, and distance per hit, for Phase I ESA due diligence.",
7990
8263
  "categories": [
7991
8264
  "REAL_ESTATE",
@@ -8125,6 +8398,87 @@
8125
8398
  ]
8126
8399
  }
8127
8400
  },
8401
+ {
8402
+ "slug": "uflpa-entity-list-monitor",
8403
+ "actorId": "malonestar/uflpa-entity-list-monitor",
8404
+ "title": "UFLPA Entity List Screener & Delta Tracker — DHS",
8405
+ "description": "Screen suppliers against the official DHS UFLPA Entity List — the forced-labor import ban. Every barred entity by statutory sub-list with aliases, effective dates and source Federal Register notices, plus a delta mode that flags additions since your last run. Keyless and correctness-first.",
8406
+ "categories": [
8407
+ "BUSINESS",
8408
+ "DEVELOPER_TOOLS",
8409
+ "AGENTS"
8410
+ ],
8411
+ "storeUrl": "https://apify.com/malonestar/uflpa-entity-list-monitor",
8412
+ "pricing": {
8413
+ "model": "PAY_PER_EVENT",
8414
+ "event": "apify-default-dataset-item",
8415
+ "unit": "UFLPA screening result",
8416
+ "usdPerUnit": 0.012,
8417
+ "usdPer1000": 12,
8418
+ "tierDiscountsUsdPerUnit": {
8419
+ "FREE": 0.012,
8420
+ "BRONZE": 0.0096,
8421
+ "SILVER": 0.0084,
8422
+ "GOLD": 0.0066,
8423
+ "PLATINUM": 0.0048,
8424
+ "DIAMOND": 0.0036
8425
+ },
8426
+ "actorStartUsd": null,
8427
+ "since": "2026-09-01T18:03:13.909Z"
8428
+ },
8429
+ "inputSchema": {
8430
+ "type": "object",
8431
+ "properties": {
8432
+ "mode": {
8433
+ "type": "string",
8434
+ "description": "What to return. \"list\" = the full current DHS UFLPA Entity List, one row per entity-and-sub-list occurrence (name, aliases, statutory sub-list, effective date, originating Federal Register notice). \"search\" = filter the current list by a company-name query (matched against names AND aliases) and/or a statutory sub-list. \"delta\" = only entries new since your last run for the same scope, tracked in the named key-value store 'uflpa-entity-list-baseline'; the FIRST delta run stores a baseline and fails with an explanatory message rather than billing the whole list as new. Example: \"list\".",
8435
+ "enum": [
8436
+ "list",
8437
+ "search",
8438
+ "delta"
8439
+ ]
8440
+ },
8441
+ "queries": {
8442
+ "type": "array",
8443
+ "description": "BATCH form of \"query\": screen several counterparties in ONE run instead of running this Actor once per name. Each name is screened INDEPENDENTLY against the whole list; every emitted row carries query_matched saying which name produced it, and every screened name also gets one screen_summary row carrying its own matches count — so a supplier that matches NOTHING is still an explicit, auditable clear rather than an absent row. Case-insensitive substring, matched against each entity's name, its full listed name, AND every published alias / former name, so a counterparty hiding under an alias is still caught. Names are de-duplicated case-insensitively; a blank or non-string entry FAILS the run loudly rather than being silently skipped. Up to 100 names. Combines with sublist / addedSince / addedUntil, which apply to every name. Cost: one row per match plus one summary row per name, so maxResults must be at least the number of names. Example: [\"Hoshine\",\"Aksu\"].",
8444
+ "items": {
8445
+ "type": "string"
8446
+ }
8447
+ },
8448
+ "query": {
8449
+ "type": "string",
8450
+ "description": "Single company-name phrase to screen against the list, e.g. \"Hoshine\" or \"Aksu\". Case-insensitive substring, matched against each entity's name, its full listed name, AND every published alias / former name — so a counterparty hiding under an alias is still caught. Required for search mode (a sub-list, or a \"queries\" list, also satisfies it). To screen several names in one run use \"queries\" instead; supplying both simply unions them."
8451
+ },
8452
+ "sublist": {
8453
+ "type": "string",
8454
+ "description": "Optional filter to one UFLPA Section 2(d)(2)(B) sub-list: i (Xinjiang entities that mine/produce/manufacture with forced labor), ii (entities working with the Xinjiang government to recruit/transport/harbor forced labor), iv (exporters into the US), v (facilities/entities sourcing material from Xinjiang or forced-labor programs). Leave blank for all sub-lists. Note (iii)/(iv) currently carry no separate DHS table.",
8455
+ "enum": [
8456
+ "i",
8457
+ "ii",
8458
+ "iv",
8459
+ "v"
8460
+ ]
8461
+ },
8462
+ "addedSince": {
8463
+ "type": "string",
8464
+ "description": "Only include entries whose effective (added) date is on or after this date. STRICTLY YYYY-MM-DD (e.g. 2025-01-01) — slash dates, month names and compact dates are rejected with a loud failure because they cannot be applied unambiguously. Leave blank for no lower bound (the list began 2022-06-21)."
8465
+ },
8466
+ "addedUntil": {
8467
+ "type": "string",
8468
+ "description": "Only include entries whose effective (added) date is on or before this date. STRICTLY YYYY-MM-DD. Leave blank for no upper bound. An unusable value fails the run loudly; nothing is billed."
8469
+ },
8470
+ "maxResults": {
8471
+ "type": "integer",
8472
+ "description": "Hard cap on rows emitted AND billed this run. The whole current list is roughly 200 rows, so the default returns all of it; every row carries matched_total and results_truncated so a capped answer is never mistaken for a complete one. Example: 500.",
8473
+ "minimum": 1,
8474
+ "maximum": 2000
8475
+ }
8476
+ },
8477
+ "required": [
8478
+ "mode"
8479
+ ]
8480
+ }
8481
+ },
8128
8482
  {
8129
8483
  "slug": "usace-levee-flood-risk-screener",
8130
8484
  "actorId": "malonestar/usace-levee-flood-risk-screener",
@@ -8432,7 +8786,7 @@
8432
8786
  {
8433
8787
  "slug": "usgs-historical-topo-records-review",
8434
8788
  "actorId": "malonestar/usgs-historical-topo-records-review",
8435
- "title": "Historical Topographic Map Chronology - ASTM Phase I ESA 8.3.4",
8789
+ "title": "USGS Historical Topographic Map Chronology - ASTM Phase I ESA",
8436
8790
  "description": "Builds the full USGS historical topographic map chronology for any coordinate and runs an ASTM E1527-21 Sec. 8.3.4 historical records review: five-year interval coverage back to 1940, with data gaps explicitly identified. Every map year, scale, quadrangle and download URL. Keyless USGS data.",
8437
8791
  "categories": [
8438
8792
  "REAL_ESTATE",
@@ -8785,7 +9139,7 @@
8785
9139
  {
8786
9140
  "slug": "usmin-mine-feature-proximity-screener",
8787
9141
  "actorId": "malonestar/usmin-mine-feature-proximity-screener",
8788
- "title": "USMIN Mine Feature Proximity Screener",
9142
+ "title": "USGS USMIN Mine Feature Proximity Screener - Shafts & Tailings",
8789
9143
  "description": "Screens any US coordinate against USGS USMIN topographic mine symbols - adits, shafts, prospects, tailings, quarries - for Phase I ESA, geotechnical and land due diligence.",
8790
9144
  "categories": [
8791
9145
  "REAL_ESTATE",
@@ -8920,7 +9274,7 @@
8920
9274
  {
8921
9275
  "slug": "uswtdb-turbine-proximity-screener",
8922
9276
  "actorId": "malonestar/uswtdb-turbine-proximity-screener",
8923
- "title": "USWTDB Wind Turbine Proximity Screener — Nearest by Coordinate",
9277
+ "title": "USGS Wind Turbine Database (USWTDB) Proximity Screener by Site",
8924
9278
  "description": "Wind turbine proximity by coordinate from the US Wind Turbine Database (USWTDB): nearest wind turbine distance, count within a radius, tallest turbine, and total nearby capacity (MW) for each lat/lon. Keyless USGS/LBNL data for aviation, radar, setback and repowering screening.",
8925
9279
  "categories": [
8926
9280
  "REAL_ESTATE",
@@ -8981,7 +9335,7 @@
8981
9335
  "slug": "warn-layoff-aggregator",
8982
9336
  "actorId": "malonestar/warn-layoff-aggregator",
8983
9337
  "title": "US WARN Layoff Notice Aggregator & Delta Monitor (OR/TX API)",
8984
- "description": "Aggregate US state WARN Act layoff & closure notices into one normalized schema and track new / updated / removed deltas. Oregon & Texas live (keyless Socrata); CA/NY/WA/WI/IL/NJ scaffolded. For RevOps, recruiting, econ research and CRE. No API key.",
9338
+ "description": "Aggregate US state WARN Act layoff & closure notices into one normalized schema and track new / updated / removed deltas. Oregon (HECC export) and Texas (Socrata) live and keyless; CA/NY/WA/WI/IL/NJ scaffolded. For RevOps, recruiting, econ research and CRE. No API key.",
8985
9339
  "categories": [
8986
9340
  "LEAD_GENERATION",
8987
9341
  "DEVELOPER_TOOLS",
@@ -9010,7 +9364,7 @@
9010
9364
  "properties": {
9011
9365
  "states": {
9012
9366
  "type": "array",
9013
- "description": "Two-letter state codes to pull WARN notices for. Leave empty for all fully-wired sources (currently OR and TX). CA, NY, WA, WI, IL and NJ have config blocks but no machine-readable endpoint yet -- requesting only those FAILS the run loudly rather than returning zero rows. Example: [\"OR\",\"TX\"]. Applied by default if omitted: [].",
9367
+ "description": "Two-letter state codes to pull WARN notices for. Leave empty for all fully-wired sources (currently OR and TX). Texas is a keyless Socrata API; Oregon is the keyless HECC Rapid Response xlsx export, which replaced the retired Socrata dataset ijbz-jpx8 in September 2026. CA, NY, WA, WI, IL and NJ have config blocks but no machine-readable endpoint yet -- requesting only those FAILS the run loudly rather than returning zero rows. Example: [\"OR\",\"TX\"]. Applied by default if omitted: [].",
9014
9368
  "items": {
9015
9369
  "type": "string"
9016
9370
  }
@@ -9025,7 +9379,7 @@
9025
9379
  },
9026
9380
  "sinceDate": {
9027
9381
  "type": "string",
9028
- "description": "Optional lower bound on the notice date. When set, only notices on or after this date are fetched. MUST be YYYY-MM-DD (e.g. 2026-01-15); 2026-1-1 is accepted and zero-padded. Any other format FAILS the run before anything is fetched and bills nothing, rather than being spliced unverified into the live Socrata query - measured, 01/15/2026 and Jan 2026 both return HTTP 400 query.soql.type-mismatch from Socrata mid-fetch. Slash forms are rejected on purpose: 05/06/2026 is ambiguous between US and EU order. A bare year (2026) is rejected too, even though Socrata happens to coerce it to Jan 1. Leave blank for all available notices."
9382
+ "description": "Optional lower bound on the notice date. When set, only notices on or after this date are fetched. MUST be YYYY-MM-DD (e.g. 2026-01-15); 2026-1-1 is accepted and zero-padded. Any other format FAILS the run before anything is fetched and bills nothing, rather than being spliced unverified into the live Texas Socrata query - measured, 01/15/2026 and Jan 2026 both return HTTP 400 query.soql.type-mismatch from Socrata mid-fetch. For Oregon the bound is applied by this actor after the fetch, because the HECC export offers no date predicate; the result is the same either way. Slash forms are rejected on purpose: 05/06/2026 is ambiguous between US and EU order. A bare year (2026) is rejected too, even though Socrata happens to coerce it to Jan 1. Leave blank for all available notices."
9029
9383
  },
9030
9384
  "priorItems": {
9031
9385
  "type": "array",
@@ -9123,7 +9477,7 @@
9123
9477
  {
9124
9478
  "slug": "wild-scenic-river-proximity-screener",
9125
9479
  "actorId": "malonestar/wild-scenic-river-proximity-screener",
9126
- "title": "Wild & Scenic River Proximity Screener - Section 7 Flag",
9480
+ "title": "USFS Wild & Scenic River Proximity Screener - WSR Act Section 7",
9127
9481
  "description": "Wild & Scenic River proximity API: per lat/lon site, nearest designated Wild & Scenic River corridor - name, classification (Wild/Scenic/Recreational), managing agency and distance - plus a WSR Act Section 7 free-flow flag. USFS open data. For hydro, dredge, NEPA and land due-diligence.",
9128
9482
  "categories": [
9129
9483
  "AGENTS",
@@ -9183,7 +9537,7 @@
9183
9537
  {
9184
9538
  "slug": "wildfire-asset-exposure-screener",
9185
9539
  "actorId": "malonestar/wildfire-asset-exposure-screener",
9186
- "title": "Wildfire Asset Exposure Screener — Live Perimeter Distance",
9540
+ "title": "NIFC Wildfire Asset Exposure Screener - Live Perimeter Distance",
9187
9541
  "description": "Screen assets - offices, homes, facilities, portfolios - against live NIFC wildfire perimeters plus USFS Wildfire Hazard Potential class and historical burn history. Per point: distance to nearest fire, hazard class, past burn year. MCP-ready wildfire risk API.",
9188
9542
  "categories": [
9189
9543
  "AGENTS",