{
  "data": {
    "id": "5kMa20fol8r9Ve8yA",
    "actId": "E9Ke5Ax2TNnDP1qfe",
    "userId": "NL4ThgItAwaoBlffQ",
    "startedAt": "2026-10-30T20:15:03.290Z",
    "finishedAt": "2026-10-30T20:15:16.342Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 12982,
      "runTimeSecs": 12.982,
      "computeUnits": 0.014424444444444445,
      "imageSizeBytes": 321473536
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "zifX0mkAFMHe8CatY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"US Unclaimed Property Scraper Input\",\n  \"description\": \"Search unclaimed money and uncashed checks by owner name or property ID, or browse a state's public register. Sources include California and Iowa statewide files plus municipal open-data registers.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"search: find records by owner name or property ID. browse: list a register without a name filter. byPropertyId: exact property/warrant/check lookup.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"search\",\n        \"browse\",\n        \"byPropertyId\"\n      ],\n      \"enumTitles\": [\n        \"Search by owner name\",\n        \"Browse a register\",\n        \"Look up a property ID\"\n      ],\n      \"default\": \"search\",\n      \"prefill\": \"search\"\n    },\n    \"state\": {\n      \"title\": \"State\",\n      \"type\": \"string\",\n      \"description\": \"Which state's unclaimed-property source(s) to query. 'All states' fans out to every supported source in one run.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"ALL\",\n        \"CA\",\n        \"IA\",\n        \"MA\",\n        \"MD\",\n        \"MN\",\n        \"RI\",\n        \"TX\"\n      ],\n      \"enumTitles\": [\n        \"All states (multi-state search)\",\n        \"California\",\n        \"Iowa\",\n        \"Massachusetts\",\n        \"Maryland\",\n        \"Minnesota\",\n        \"Rhode Island\",\n        \"Texas\"\n      ],\n      \"default\": \"MN\",\n      \"prefill\": \"MN\"\n    },\n    \"jurisdiction\": {\n      \"title\": \"Jurisdiction\",\n      \"type\": \"string\",\n      \"description\": \"Narrow to one specific government source (useful when a state has more than one, e.g. California or Massachusetts). 'All jurisdictions' queries every source in the selected state(s).\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"ALL\",\n        \"tx_austin\",\n        \"tx_corpuschristi\",\n        \"ri_providence\",\n        \"ca_marin\",\n        \"ca_roseville\",\n        \"ca_sco\",\n        \"ca_sonoma\",\n        \"md_montgomery\",\n        \"mn_ramsey\",\n        \"ma_framingham_payroll\",\n        \"ma_framingham_vendor\",\n        \"ia_das\"\n      ],\n      \"enumTitles\": [\n        \"All jurisdictions in the selected state(s)\",\n        \"City of Austin, TX — Unclaimed Property (Municipal)\",\n        \"City of Corpus Christi, TX — Unclaimed Property (Municipal)\",\n        \"City of Providence, RI — Uncashed Municipal Check\",\n        \"Marin County, CA — Uncashed County Check\",\n        \"City of Roseville, CA — Stale-Dated Check (Municipal)\",\n        \"California State Controller — Statewide Unclaimed Property\",\n        \"Sonoma County, CA — Stale-Dated Check (County)\",\n        \"Montgomery County, MD — Unclaimed Vendor Payment (County)\",\n        \"Ramsey County, MN — Unclaimed Money (County)\",\n        \"Town of Framingham, MA — Unclaimed Payroll Check (Municipal)\",\n        \"Town of Framingham, MA — Unclaimed Resident/Vendor/AP Check (Municipal)\",\n        \"State of Iowa (DAS) — Outdated State Warrant\"\n      ],\n      \"default\": \"ALL\",\n      \"prefill\": \"ALL\"\n    },\n    \"ownerName\": {\n      \"title\": \"Owner name\",\n      \"type\": \"string\",\n      \"description\": \"Full or partial owner/payee name (case-insensitive). Words can be in any order and commas are ignored, so `Smith, John` and `John Smith` both work.\",\n      \"editor\": \"textfield\",\n      \"prefill\": \"Johnson\"\n    },\n    \"propertyId\": {\n      \"title\": \"Property ID\",\n      \"type\": \"string\",\n      \"description\": \"Exact property ID, warrant number or check number. Works in every mode; `byPropertyId` is the dedicated lookup mode.\",\n      \"editor\": \"textfield\"\n    },\n    \"minAmountUsd\": {\n      \"title\": \"Minimum amount (USD)\",\n      \"type\": \"number\",\n      \"description\": \"Only include records worth at least this much. 0 = no minimum. When an amount filter is active, records whose source discloses no amount are excluded unless `includeUnknownAmount` is on.\",\n      \"minimum\": 0,\n      \"maximum\": 100000000,\n      \"default\": 0,\n      \"prefill\": 0\n    },\n    \"maxAmountUsd\": {\n      \"title\": \"Maximum amount (USD)\",\n      \"type\": \"number\",\n      \"description\": \"Only include records worth at most this much. Leave unset for no maximum.\",\n      \"minimum\": 0,\n      \"maximum\": 100000000,\n      \"editor\": \"number\"\n    },\n    \"includeUnknownAmount\": {\n      \"title\": \"Include records with no disclosed amount\",\n      \"type\": \"boolean\",\n      \"description\": \"When an amount filter is active, also keep records whose source publishes no dollar amount (for example City of Austin, TX).\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"dateFrom\": {\n      \"title\": \"Date from\",\n      \"type\": \"string\",\n      \"description\": \"Earliest check/warrant issue date (YYYY-MM-DD). Only sources that disclose dates are searched; California's statewide file has no date field and is skipped.\",\n      \"editor\": \"textfield\"\n    },\n    \"dateTo\": {\n      \"title\": \"Date to\",\n      \"type\": \"string\",\n      \"description\": \"Latest check/warrant issue date, inclusive (YYYY-MM-DD).\",\n      \"editor\": \"textfield\"\n    },\n    \"propertyType\": {\n      \"title\": \"Property type\",\n      \"type\": \"string\",\n      \"description\": \"Broad property-type group. California's 190 raw NAUPA codes are mapped into these groups; use `propertyTypeContains` for an exact raw-string filter.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"ALL\",\n        \"bankAccounts\",\n        \"securities\",\n        \"uncashedChecks\",\n        \"insurance\",\n        \"refunds\",\n        \"wages\",\n        \"pensions\",\n        \"trusts\",\n        \"safeDeposit\",\n        \"other\"\n      ],\n      \"enumTitles\": [\n        \"All property types\",\n        \"Bank accounts\",\n        \"Securities & dividends\",\n        \"Uncashed checks & warrants\",\n        \"Insurance & annuities\",\n        \"Refunds & rebates\",\n        \"Wages & payroll\",\n        \"Pensions & retirement\",\n        \"Trusts & estates\",\n        \"Safe-deposit boxes\",\n        \"Other\"\n      ],\n      \"default\": \"ALL\",\n      \"prefill\": \"ALL\"\n    },\n    \"propertyTypeContains\": {\n      \"title\": \"Raw property type contains\",\n      \"type\": \"string\",\n      \"description\": \"Advanced: keep only records whose raw source type contains this text, e.g. `Dividend` or `Endowment`. Combined with the group filter.\",\n      \"editor\": \"textfield\"\n    },\n    \"sortBy\": {\n      \"title\": \"Sort by\",\n      \"type\": \"string\",\n      \"description\": \"How to order results. `relevance` preserves source and file order. Records missing the chosen field sink to the bottom.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"amountDesc\",\n        \"amountAsc\",\n        \"dateDesc\",\n        \"dateAsc\",\n        \"ownerNameAsc\",\n        \"ownerNameDesc\",\n        \"relevance\"\n      ],\n      \"enumTitles\": [\n        \"Highest amount first\",\n        \"Lowest amount first\",\n        \"Most recent first\",\n        \"Oldest first\",\n        \"Owner name A–Z\",\n        \"Owner name Z–A\",\n        \"Relevance (source order)\"\n      ],\n      \"default\": \"amountDesc\",\n      \"prefill\": \"amountDesc\"\n    },\n    \"maxItems\": {\n      \"title\": \"Max items\",\n      \"type\": \"integer\",\n      \"description\": \"Hard cap on emitted records (1–50,000).\",\n      \"minimum\": 1,\n      \"maximum\": 50000,\n      \"default\": 20,\n      \"prefill\": 3\n    },\n    \"valueRange\": {\n      \"title\": \"California value range\",\n      \"type\": \"string\",\n      \"description\": \"Which California State Controller archive to scan for browsing and name searches. Exact property-ID lookups scan all four ranges (smallest first) so lower balances are not missed, then stop at the matching range. `All value ranges` scans four range files one at a time and is much heavier than the default.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"500plus\",\n        \"100to500\",\n        \"10to100\",\n        \"under10\",\n        \"all\"\n      ],\n      \"enumTitles\": [\n        \"$500 and above\",\n        \"$100 to $499.99\",\n        \"$10 to $99.99\",\n        \"Under $10\",\n        \"All value ranges\"\n      ],\n      \"default\": \"500plus\",\n      \"prefill\": \"500plus\"\n    },\n    \"iaFiscalYear\": {\n      \"title\": \"Iowa fiscal year\",\n      \"type\": \"string\",\n      \"description\": \"Which Iowa DAS outdated-warrant file(s) to read. `Latest` is the newest posted fiscal year.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"latest\",\n        \"all\",\n        \"2027\",\n        \"2026\",\n        \"2025\",\n        \"2024\",\n        \"2023\",\n        \"2022\"\n      ],\n      \"enumTitles\": [\n        \"Latest posted fiscal year\",\n        \"All fiscal years\",\n        \"FY2027\",\n        \"FY2026\",\n        \"FY2025\",\n        \"FY2024\",\n        \"FY2023\",\n        \"FY2022\"\n      ],\n      \"default\": \"latest\",\n      \"prefill\": \"latest\"\n    }\n  },\n  \"required\": [\n    \"mode\",\n    \"state\"\n  ]\n}",
    "readme": "# US Unclaimed Property & Funds Scraper\n\nSearch unclaimed money and uncashed checks across 12 public US registers in one run. The actor reads statewide bulk files from California and Iowa plus municipal open-data registers, then returns owner, amount, holder, property type, dates and property IDs where the source discloses them.\n\n## What it does\n\n- **Three modes:** `search` by owner name, `browse` a register, and `byPropertyId` for an exact property, warrant or check lookup.\n- **12 sources in 7 states:** California, Iowa, Massachusetts, Maryland, Minnesota, Rhode Island and Texas.\n- **Up to 50,000 records per run** — the old 1,000-row ceiling is gone, and every source is paginated or streamed to its own limit.\n- **Useful filters:** amount range, include/exclude records with no disclosed amount, date range, broad property-type groups, raw type text and property ID.\n- **Seven sort orders:** amount, date, owner name and source order.\n- **Empty fields are omitted** — the actor never invents a value for a field a source does not publish.\n\n## Services covered\n\n| State | Source | What it publishes |\n|---|---|---|\n| CA | California State Controller (SCO) | Statewide unclaimed property, weekly ZIP/CSV archive |\n| CA | Marin County | Uncashed county checks |\n| CA | City of Roseville | Stale-dated municipal checks |\n| CA | Sonoma County | Stale-dated county checks |\n| IA | Iowa Department of Administrative Services | Outdated state warrants by fiscal year |\n| MA | Town of Framingham | Unclaimed payroll checks |\n| MA | Town of Framingham | Unclaimed resident/vendor/AP checks |\n| MD | Montgomery County | Unclaimed vendor payments |\n| MN | Ramsey County | Unclaimed money |\n| RI | City of Providence | Uncashed municipal checks |\n| TX | City of Austin | Unclaimed property |\n| TX | City of Corpus Christi | Unclaimed property |\n\n## How it works\n\nMunicipal registers are queried through their public Socrata (SODA) JSON APIs with `$limit`, `$offset`, deterministic `$order` and server-side filters. California publishes four value-range ZIP archives (plus an all-records archive the actor does not download); the actor streams the selected range file to a temporary file with HTTP Range resume, scans the CSV parts line by line, and deletes the file. Iowa publishes one XLSX per fiscal year, read in openpyxl's read-only mode and deleted after the scan. All sources are anonymous: no account, cookie, API key or proxy setup is required.\n\nThe California statewide file has no date field. When a date filter is set, California statewide and the other date-less registers are skipped and the status message says so. The default California range is `$500 and above` (about 163 MB); choosing all value ranges scans four files one at a time, which takes much longer. A property-ID lookup always checks every California range, smallest archive first, and stops once the bucket containing the ID has been scanned, so an ID below `$500` is never hidden by the default.\n\n## Input\n\n| Field | Type | Default | Notes |\n|---|---|---|---|\n| `mode` | select | `search` | `search`, `browse` or `byPropertyId` |\n| `state` | select | `MN` | `ALL`, `CA`, `IA`, `MA`, `MD`, `MN`, `RI`, `TX` |\n| `jurisdiction` | select | `ALL` | Narrow to one of the 12 sources |\n| `ownerName` | text | — | Case-insensitive; word order and commas do not matter |\n| `propertyId` | text | — | Exact property ID, warrant or check number |\n| `minAmountUsd` | number | `0` | Amount floor; `0` means no floor |\n| `maxAmountUsd` | number | — | Amount ceiling |\n| `includeUnknownAmount` | boolean | `false` | Keep records with no amount when an amount filter is active |\n| `dateFrom` | text | — | Earliest date, `YYYY-MM-DD` |\n| `dateTo` | text | — | Latest date, inclusive, `YYYY-MM-DD` |\n| `propertyType` | select | `ALL` | 10 broad groups over raw NAUPA codes and source categories |\n| `propertyTypeContains` | text | — | Raw type substring filter, e.g. `Dividend` |\n| `sortBy` | select | `amountDesc` | Amount, date, owner name or source order |\n| `maxItems` | integer | `20` | `1`–`50,000` |\n| `valueRange` | select | `500plus` | California archive range; ignored for property-ID lookups, which scan all ranges |\n| `iaFiscalYear` | select | `latest` | Iowa fiscal year, `all`, or a specific year |\n\n### Examples\n\nSearch one name across every state:\n\n```json\n{\"mode\": \"search\", \"state\": \"ALL\", \"ownerName\": \"Smith\", \"maxItems\": 50}\n```\n\nBrowse California's largest balances:\n\n```json\n{\"mode\": \"browse\", \"state\": \"CA\", \"jurisdiction\": \"ca_sco\", \"minAmountUsd\": 1000, \"maxItems\": 100}\n```\n\nLook up a California property ID:\n\n```json\n{\"mode\": \"byPropertyId\", \"state\": \"CA\", \"propertyId\": \"13755891\"}\n```\n\nBrowse Iowa warrants from FY2026 with dates:\n\n```json\n{\"mode\": \"browse\", \"state\": \"IA\", \"iaFiscalYear\": \"2026\", \"dateFrom\": \"2025-07-01\", \"sortBy\": \"dateDesc\", \"maxItems\": 100}\n```\n\n## Output\n\nEvery record contains the fields the source actually discloses. Existing fields are unchanged; the revamp adds richer fields beside them.\n\n| Field | Description |\n|---|---|\n| `ownerName` | Owner/payee name |\n| `amountUsd` | Current cash balance or warrant/check amount |\n| `reportedDate` | Check, warrant or payment date (`YYYY-MM-DD`) |\n| `address`, `city`, `postalCode` | Owner last-known address, where disclosed |\n| `ownerState`, `ownerCountry` | Owner state/country, where disclosed (California) |\n| `recordId` | Source record/check/warrant ID |\n| `propertyId` | California property ID |\n| `checkNumber`, `warrantNumber` | Source check or warrant number |\n| `departmentCode` | Issuing Iowa department |\n| `vendorId`, `invoiceDate`, `paymentStatus` | Montgomery County vendor-payment fields |\n| `holderName` | Entity holding the funds |\n| `holderAddress`, `holderCity`, `holderState`, `holderZip` | Holder location, where disclosed (California) |\n| `propertyType` | Raw source category or NAUPA property-type string |\n| `cashReported`, `sharesReported` | Reported cash and share counts (California) |\n| `securitiesName`, `cusip` | Security description and CUSIP (California) |\n| `numberOfOwners`, `pendingClaims`, `paidClaims` | Ownership and claim counts (California) |\n| `valueRange` | California archive range the row came from |\n| `state`, `jurisdiction` | Two-letter state and source name |\n| `sourceKey`, `sourceName`, `sourceType` | Source traceability |\n| `sourceUpdatedAt` | Source file date (California/Iowa) |\n| `sourceUrl`, `claimUrl` | Public dataset page and official claim/search page |\n| `recordType` | Always `unclaimedProperty` |\n| `scrapedAt` | UTC scrape timestamp |\n\n## Usage cost\n\nThe actor runs on Apify's standard compute pricing. It uses no paid proxy and no external API key, so the only cost is the run's memory and compute time plus Apify's usual dataset/result charges. The default 2 GB memory is sized for the California ZIP streaming path. Start with a small `maxItems` and the default `$500+` range for browsing; a full California `all` scan is intentionally expensive in time because it reads four multi-hundred-megabyte archives.\n\n## FAQ\n\n**Does this search every US state?** No. It covers the 7 states listed above. Most other states publish their live search only through CAPTCHA- or WAF-gated portals, and this actor does not attempt to bypass those. The official state claim portals remain the right place to file a claim.\n\n**Why are some records missing an amount?** A few registers publish names without a dollar value. When an amount filter is active, those records are excluded unless `includeUnknownAmount` is enabled.\n\n**Why does a date filter drop California results?** The California statewide file has 25 columns but no date field. Date filters therefore skip it rather than guessing a date.\n\n**What is the difference between `search` and `byPropertyId`?** `search` treats the name as words in any order. `byPropertyId` performs an exact match against property IDs, warrants and check numbers. Both accept the other field as an additional filter. A California property-ID lookup scans all four value-range archives because an ID lives in only one of them; this can take several minutes.\n\n**How fresh is the data?** Municipal Socrata registers refresh on their own schedules, California posts new archives weekly (usually Thursday), and Iowa adds fiscal-year files as warrants are cancelled. The actor always reads the currently published source.\n\n**Can I get more than 5,000 rows from multiple sources at once?** Yes, up to 50,000, but a multi-source run keeps at most 5,000 candidates per source so memory stays bounded. To take a single source deeper, select that jurisdiction alone.\n\n**How do I claim money I find?** This actor only reports public records. Contact the `jurisdiction`/`holderName` office or use the `claimUrl` on the record.\n\n**Are the addresses and names personal data?** Yes — they are public-record claimant data. Use them only with a lawful basis, and do not combine them with other datasets to re-identify people.\n\n## Notes\n\n- Public-record data only: owner names and last-known addresses as published by government offices. No SSN, phone, email or claimant identity is collected.\n- No CAPTCHA solving, no login, no credentials, and no proxy configuration are required or supported.\n- California and Iowa archives are streamed and deleted per run; rows are never materialised in memory all at once.\n- Duplicate rows are removed by source + record identity, while legitimate co-owners on one property ID are preserved.\n- Invalid dates and inverted ranges produce a clear status message and a clean zero-record run rather than a crash.\n\n## Limitations\n\n- **7 states, not 50.** MissingMoney.com and most state live-search portals are behind CloudFront/WAF/Turnstile blocks. The actor links users to the official portals instead of bypassing them.\n- **No date for California statewide records.** The source does not publish one.\n- **California property-ID lookups are slower.** They must check every value-range archive (smallest first) and stop only after the matching bucket, because the default `$500+` range would otherwise hide lower balances.\n- **The California all-records archive is large.** The default `$500+` file is about 163 MB compressed; the full all-records ZIP is 3.25 GB, which is why the actor scans the four smaller range files instead.\n- **Some municipal datasets change schema.** Column names are verified against the live APIs; a renamed column causes that source to be skipped with a status note rather than returning wrong data.\n- **Amounts can be stale.** A published balance is the holder's last report, not a live claim valuation.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "us-county-and-city-unclaimed-funds-scraper",
      "title": "US Unclaimed Property & Funds Scraper",
      "description": "Search unclaimed money and uncashed checks from 12 public US registers in 7 states, including California and Iowa statewide files. Search by owner name or property ID, browse, and filter by amount, date and property type.",
      "version": "2.0",
      "buildTag": "latest",
      "memoryMbytes": 2048,
      "dockerfile": "./Dockerfile",
      "readme": "# US Unclaimed Property & Funds Scraper\n\nSearch unclaimed money and uncashed checks across 12 public US registers in one run. The actor reads statewide bulk files from California and Iowa plus municipal open-data registers, then returns owner, amount, holder, property type, dates and property IDs where the source discloses them.\n\n## What it does\n\n- **Three modes:** `search` by owner name, `browse` a register, and `byPropertyId` for an exact property, warrant or check lookup.\n- **12 sources in 7 states:** California, Iowa, Massachusetts, Maryland, Minnesota, Rhode Island and Texas.\n- **Up to 50,000 records per run** — the old 1,000-row ceiling is gone, and every source is paginated or streamed to its own limit.\n- **Useful filters:** amount range, include/exclude records with no disclosed amount, date range, broad property-type groups, raw type text and property ID.\n- **Seven sort orders:** amount, date, owner name and source order.\n- **Empty fields are omitted** — the actor never invents a value for a field a source does not publish.\n\n## Services covered\n\n| State | Source | What it publishes |\n|---|---|---|\n| CA | California State Controller (SCO) | Statewide unclaimed property, weekly ZIP/CSV archive |\n| CA | Marin County | Uncashed county checks |\n| CA | City of Roseville | Stale-dated municipal checks |\n| CA | Sonoma County | Stale-dated county checks |\n| IA | Iowa Department of Administrative Services | Outdated state warrants by fiscal year |\n| MA | Town of Framingham | Unclaimed payroll checks |\n| MA | Town of Framingham | Unclaimed resident/vendor/AP checks |\n| MD | Montgomery County | Unclaimed vendor payments |\n| MN | Ramsey County | Unclaimed money |\n| RI | City of Providence | Uncashed municipal checks |\n| TX | City of Austin | Unclaimed property |\n| TX | City of Corpus Christi | Unclaimed property |\n\n## How it works\n\nMunicipal registers are queried through their public Socrata (SODA) JSON APIs with `$limit`, `$offset`, deterministic `$order` and server-side filters. California publishes four value-range ZIP archives (plus an all-records archive the actor does not download); the actor streams the selected range file to a temporary file with HTTP Range resume, scans the CSV parts line by line, and deletes the file. Iowa publishes one XLSX per fiscal year, read in openpyxl's read-only mode and deleted after the scan. All sources are anonymous: no account, cookie, API key or proxy setup is required.\n\nThe California statewide file has no date field. When a date filter is set, California statewide and the other date-less registers are skipped and the status message says so. The default California range is `$500 and above` (about 163 MB); choosing all value ranges scans four files one at a time, which takes much longer. A property-ID lookup always checks every California range, smallest archive first, and stops once the bucket containing the ID has been scanned, so an ID below `$500` is never hidden by the default.\n\n## Input\n\n| Field | Type | Default | Notes |\n|---|---|---|---|\n| `mode` | select | `search` | `search`, `browse` or `byPropertyId` |\n| `state` | select | `MN` | `ALL`, `CA`, `IA`, `MA`, `MD`, `MN`, `RI`, `TX` |\n| `jurisdiction` | select | `ALL` | Narrow to one of the 12 sources |\n| `ownerName` | text | — | Case-insensitive; word order and commas do not matter |\n| `propertyId` | text | — | Exact property ID, warrant or check number |\n| `minAmountUsd` | number | `0` | Amount floor; `0` means no floor |\n| `maxAmountUsd` | number | — | Amount ceiling |\n| `includeUnknownAmount` | boolean | `false` | Keep records with no amount when an amount filter is active |\n| `dateFrom` | text | — | Earliest date, `YYYY-MM-DD` |\n| `dateTo` | text | — | Latest date, inclusive, `YYYY-MM-DD` |\n| `propertyType` | select | `ALL` | 10 broad groups over raw NAUPA codes and source categories |\n| `propertyTypeContains` | text | — | Raw type substring filter, e.g. `Dividend` |\n| `sortBy` | select | `amountDesc` | Amount, date, owner name or source order |\n| `maxItems` | integer | `20` | `1`–`50,000` |\n| `valueRange` | select | `500plus` | California archive range; ignored for property-ID lookups, which scan all ranges |\n| `iaFiscalYear` | select | `latest` | Iowa fiscal year, `all`, or a specific year |\n\n### Examples\n\nSearch one name across every state:\n\n```json\n{\"mode\": \"search\", \"state\": \"ALL\", \"ownerName\": \"Smith\", \"maxItems\": 50}\n```\n\nBrowse California's largest balances:\n\n```json\n{\"mode\": \"browse\", \"state\": \"CA\", \"jurisdiction\": \"ca_sco\", \"minAmountUsd\": 1000, \"maxItems\": 100}\n```\n\nLook up a California property ID:\n\n```json\n{\"mode\": \"byPropertyId\", \"state\": \"CA\", \"propertyId\": \"13755891\"}\n```\n\nBrowse Iowa warrants from FY2026 with dates:\n\n```json\n{\"mode\": \"browse\", \"state\": \"IA\", \"iaFiscalYear\": \"2026\", \"dateFrom\": \"2025-07-01\", \"sortBy\": \"dateDesc\", \"maxItems\": 100}\n```\n\n## Output\n\nEvery record contains the fields the source actually discloses. Existing fields are unchanged; the revamp adds richer fields beside them.\n\n| Field | Description |\n|---|---|\n| `ownerName` | Owner/payee name |\n| `amountUsd` | Current cash balance or warrant/check amount |\n| `reportedDate` | Check, warrant or payment date (`YYYY-MM-DD`) |\n| `address`, `city`, `postalCode` | Owner last-known address, where disclosed |\n| `ownerState`, `ownerCountry` | Owner state/country, where disclosed (California) |\n| `recordId` | Source record/check/warrant ID |\n| `propertyId` | California property ID |\n| `checkNumber`, `warrantNumber` | Source check or warrant number |\n| `departmentCode` | Issuing Iowa department |\n| `vendorId`, `invoiceDate`, `paymentStatus` | Montgomery County vendor-payment fields |\n| `holderName` | Entity holding the funds |\n| `holderAddress`, `holderCity`, `holderState`, `holderZip` | Holder location, where disclosed (California) |\n| `propertyType` | Raw source category or NAUPA property-type string |\n| `cashReported`, `sharesReported` | Reported cash and share counts (California) |\n| `securitiesName`, `cusip` | Security description and CUSIP (California) |\n| `numberOfOwners`, `pendingClaims`, `paidClaims` | Ownership and claim counts (California) |\n| `valueRange` | California archive range the row came from |\n| `state`, `jurisdiction` | Two-letter state and source name |\n| `sourceKey`, `sourceName`, `sourceType` | Source traceability |\n| `sourceUpdatedAt` | Source file date (California/Iowa) |\n| `sourceUrl`, `claimUrl` | Public dataset page and official claim/search page |\n| `recordType` | Always `unclaimedProperty` |\n| `scrapedAt` | UTC scrape timestamp |\n\n## Usage cost\n\nThe actor runs on Apify's standard compute pricing. It uses no paid proxy and no external API key, so the only cost is the run's memory and compute time plus Apify's usual dataset/result charges. The default 2 GB memory is sized for the California ZIP streaming path. Start with a small `maxItems` and the default `$500+` range for browsing; a full California `all` scan is intentionally expensive in time because it reads four multi-hundred-megabyte archives.\n\n## FAQ\n\n**Does this search every US state?** No. It covers the 7 states listed above. Most other states publish their live search only through CAPTCHA- or WAF-gated portals, and this actor does not attempt to bypass those. The official state claim portals remain the right place to file a claim.\n\n**Why are some records missing an amount?** A few registers publish names without a dollar value. When an amount filter is active, those records are excluded unless `includeUnknownAmount` is enabled.\n\n**Why does a date filter drop California results?** The California statewide file has 25 columns but no date field. Date filters therefore skip it rather than guessing a date.\n\n**What is the difference between `search` and `byPropertyId`?** `search` treats the name as words in any order. `byPropertyId` performs an exact match against property IDs, warrants and check numbers. Both accept the other field as an additional filter. A California property-ID lookup scans all four value-range archives because an ID lives in only one of them; this can take several minutes.\n\n**How fresh is the data?** Municipal Socrata registers refresh on their own schedules, California posts new archives weekly (usually Thursday), and Iowa adds fiscal-year files as warrants are cancelled. The actor always reads the currently published source.\n\n**Can I get more than 5,000 rows from multiple sources at once?** Yes, up to 50,000, but a multi-source run keeps at most 5,000 candidates per source so memory stays bounded. To take a single source deeper, select that jurisdiction alone.\n\n**How do I claim money I find?** This actor only reports public records. Contact the `jurisdiction`/`holderName` office or use the `claimUrl` on the record.\n\n**Are the addresses and names personal data?** Yes — they are public-record claimant data. Use them only with a lawful basis, and do not combine them with other datasets to re-identify people.\n\n## Notes\n\n- Public-record data only: owner names and last-known addresses as published by government offices. No SSN, phone, email or claimant identity is collected.\n- No CAPTCHA solving, no login, no credentials, and no proxy configuration are required or supported.\n- California and Iowa archives are streamed and deleted per run; rows are never materialised in memory all at once.\n- Duplicate rows are removed by source + record identity, while legitimate co-owners on one property ID are preserved.\n- Invalid dates and inverted ranges produce a clear status message and a clean zero-record run rather than a crash.\n\n## Limitations\n\n- **7 states, not 50.** MissingMoney.com and most state live-search portals are behind CloudFront/WAF/Turnstile blocks. The actor links users to the official portals instead of bypassing them.\n- **No date for California statewide records.** The source does not publish one.\n- **California property-ID lookups are slower.** They must check every value-range archive (smallest first) and stop only after the matching bucket, because the default `$500+` range would otherwise hide lower balances.\n- **The California all-records archive is large.** The default `$500+` file is about 163 MB compressed; the full all-records ZIP is 3.25 GB, which is why the actor scans the four smaller range files instead.\n- **Some municipal datasets change schema.** Column names are verified against the live APIs; a renamed column causes that source to be skipped with a status note rather than returning wrong data.\n- **Amounts can be stale.** A published balance is the holder's last report, not a live claim valuation.\n",
      "input": {
        "title": "US Unclaimed Property Scraper Input",
        "description": "Search unclaimed money and uncashed checks by owner name or property ID, or browse a state's public register. Sources include California and Iowa statewide files plus municipal open-data registers.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "description": "search: find records by owner name or property ID. browse: list a register without a name filter. byPropertyId: exact property/warrant/check lookup.",
            "editor": "select",
            "enum": [
              "search",
              "browse",
              "byPropertyId"
            ],
            "enumTitles": [
              "Search by owner name",
              "Browse a register",
              "Look up a property ID"
            ],
            "default": "search",
            "prefill": "search"
          },
          "state": {
            "title": "State",
            "type": "string",
            "description": "Which state's unclaimed-property source(s) to query. 'All states' fans out to every supported source in one run.",
            "editor": "select",
            "enum": [
              "ALL",
              "CA",
              "IA",
              "MA",
              "MD",
              "MN",
              "RI",
              "TX"
            ],
            "enumTitles": [
              "All states (multi-state search)",
              "California",
              "Iowa",
              "Massachusetts",
              "Maryland",
              "Minnesota",
              "Rhode Island",
              "Texas"
            ],
            "default": "MN",
            "prefill": "MN"
          },
          "jurisdiction": {
            "title": "Jurisdiction",
            "type": "string",
            "description": "Narrow to one specific government source (useful when a state has more than one, e.g. California or Massachusetts). 'All jurisdictions' queries every source in the selected state(s).",
            "editor": "select",
            "enum": [
              "ALL",
              "tx_austin",
              "tx_corpuschristi",
              "ri_providence",
              "ca_marin",
              "ca_roseville",
              "ca_sco",
              "ca_sonoma",
              "md_montgomery",
              "mn_ramsey",
              "ma_framingham_payroll",
              "ma_framingham_vendor",
              "ia_das"
            ],
            "enumTitles": [
              "All jurisdictions in the selected state(s)",
              "City of Austin, TX — Unclaimed Property (Municipal)",
              "City of Corpus Christi, TX — Unclaimed Property (Municipal)",
              "City of Providence, RI — Uncashed Municipal Check",
              "Marin County, CA — Uncashed County Check",
              "City of Roseville, CA — Stale-Dated Check (Municipal)",
              "California State Controller — Statewide Unclaimed Property",
              "Sonoma County, CA — Stale-Dated Check (County)",
              "Montgomery County, MD — Unclaimed Vendor Payment (County)",
              "Ramsey County, MN — Unclaimed Money (County)",
              "Town of Framingham, MA — Unclaimed Payroll Check (Municipal)",
              "Town of Framingham, MA — Unclaimed Resident/Vendor/AP Check (Municipal)",
              "State of Iowa (DAS) — Outdated State Warrant"
            ],
            "default": "ALL",
            "prefill": "ALL"
          },
          "ownerName": {
            "title": "Owner name",
            "type": "string",
            "description": "Full or partial owner/payee name (case-insensitive). Words can be in any order and commas are ignored, so `Smith, John` and `John Smith` both work.",
            "editor": "textfield",
            "prefill": "Johnson"
          },
          "propertyId": {
            "title": "Property ID",
            "type": "string",
            "description": "Exact property ID, warrant number or check number. Works in every mode; `byPropertyId` is the dedicated lookup mode.",
            "editor": "textfield"
          },
          "minAmountUsd": {
            "title": "Minimum amount (USD)",
            "type": "number",
            "description": "Only include records worth at least this much. 0 = no minimum. When an amount filter is active, records whose source discloses no amount are excluded unless `includeUnknownAmount` is on.",
            "minimum": 0,
            "maximum": 100000000,
            "default": 0,
            "prefill": 0
          },
          "maxAmountUsd": {
            "title": "Maximum amount (USD)",
            "type": "number",
            "description": "Only include records worth at most this much. Leave unset for no maximum.",
            "minimum": 0,
            "maximum": 100000000,
            "editor": "number"
          },
          "includeUnknownAmount": {
            "title": "Include records with no disclosed amount",
            "type": "boolean",
            "description": "When an amount filter is active, also keep records whose source publishes no dollar amount (for example City of Austin, TX).",
            "default": false,
            "prefill": false
          },
          "dateFrom": {
            "title": "Date from",
            "type": "string",
            "description": "Earliest check/warrant issue date (YYYY-MM-DD). Only sources that disclose dates are searched; California's statewide file has no date field and is skipped.",
            "editor": "textfield"
          },
          "dateTo": {
            "title": "Date to",
            "type": "string",
            "description": "Latest check/warrant issue date, inclusive (YYYY-MM-DD).",
            "editor": "textfield"
          },
          "propertyType": {
            "title": "Property type",
            "type": "string",
            "description": "Broad property-type group. California's 190 raw NAUPA codes are mapped into these groups; use `propertyTypeContains` for an exact raw-string filter.",
            "editor": "select",
            "enum": [
              "ALL",
              "bankAccounts",
              "securities",
              "uncashedChecks",
              "insurance",
              "refunds",
              "wages",
              "pensions",
              "trusts",
              "safeDeposit",
              "other"
            ],
            "enumTitles": [
              "All property types",
              "Bank accounts",
              "Securities & dividends",
              "Uncashed checks & warrants",
              "Insurance & annuities",
              "Refunds & rebates",
              "Wages & payroll",
              "Pensions & retirement",
              "Trusts & estates",
              "Safe-deposit boxes",
              "Other"
            ],
            "default": "ALL",
            "prefill": "ALL"
          },
          "propertyTypeContains": {
            "title": "Raw property type contains",
            "type": "string",
            "description": "Advanced: keep only records whose raw source type contains this text, e.g. `Dividend` or `Endowment`. Combined with the group filter.",
            "editor": "textfield"
          },
          "sortBy": {
            "title": "Sort by",
            "type": "string",
            "description": "How to order results. `relevance` preserves source and file order. Records missing the chosen field sink to the bottom.",
            "editor": "select",
            "enum": [
              "amountDesc",
              "amountAsc",
              "dateDesc",
              "dateAsc",
              "ownerNameAsc",
              "ownerNameDesc",
              "relevance"
            ],
            "enumTitles": [
              "Highest amount first",
              "Lowest amount first",
              "Most recent first",
              "Oldest first",
              "Owner name A–Z",
              "Owner name Z–A",
              "Relevance (source order)"
            ],
            "default": "amountDesc",
            "prefill": "amountDesc"
          },
          "maxItems": {
            "title": "Max items",
            "type": "integer",
            "description": "Hard cap on emitted records (1–50,000).",
            "minimum": 1,
            "maximum": 50000,
            "default": 20,
            "prefill": 3
          },
          "valueRange": {
            "title": "California value range",
            "type": "string",
            "description": "Which California State Controller archive to scan for browsing and name searches. Exact property-ID lookups scan all four ranges (smallest first) so lower balances are not missed, then stop at the matching range. `All value ranges` scans four range files one at a time and is much heavier than the default.",
            "editor": "select",
            "enum": [
              "500plus",
              "100to500",
              "10to100",
              "under10",
              "all"
            ],
            "enumTitles": [
              "$500 and above",
              "$100 to $499.99",
              "$10 to $99.99",
              "Under $10",
              "All value ranges"
            ],
            "default": "500plus",
            "prefill": "500plus"
          },
          "iaFiscalYear": {
            "title": "Iowa fiscal year",
            "type": "string",
            "description": "Which Iowa DAS outdated-warrant file(s) to read. `Latest` is the newest posted fiscal year.",
            "editor": "select",
            "enum": [
              "latest",
              "all",
              "2027",
              "2026",
              "2025",
              "2024",
              "2023",
              "2022"
            ],
            "enumTitles": [
              "Latest posted fiscal year",
              "All fiscal years",
              "FY2027",
              "FY2026",
              "FY2025",
              "FY2024",
              "FY2023",
              "FY2022"
            ],
            "default": "latest",
            "prefill": "latest"
          }
        },
        "required": [
          "mode",
          "state"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "US Unclaimed Property & Funds Scraper Output",
        "description": "One record per unclaimed-property entry from a public US register, with owner, amount, holder, property type, dates, property ID and source traceability wherever the source discloses them.",
        "properties": {
          "unclaimedProperty": {
            "type": "string",
            "title": "Unclaimed property records",
            "description": "Dataset containing all scraped unclaimed-property records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Unclaimed property records",
              "transformation": {
                "fields": [
                  "ownerName",
                  "amountUsd",
                  "state",
                  "jurisdiction",
                  "propertyType",
                  "reportedDate",
                  "propertyId",
                  "sourceUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "2.0.1",
    "imageDigest": "d121955be1a95481017e0969fc16ff28a10b4551e8b4f37d8aa516838d704991",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "2.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.014424444444444445
    }
  }
}