# California Unclaimed Property Scraper (`codingfrontend/ca-unclaimed-property-scraper`) Actor

Unofficial search tool for California State Controller public unclaimed-property CSV archives; not affiliated with or endorsed by the SCO.

- **URL**: https://apify.com/codingfrontend/ca-unclaimed-property-scraper.md
- **Developed by:** [Coding Frontned](https://apify.com/codingfrontend) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### What does California Unclaimed Property Scraper do?

**California Unclaimed Property Scraper** searches the official weekly `.CSV` archives published by the [California State Controller's Office](https://sco.ca.gov/upd_download_property_records.html). It is an unofficial structured-data API alternative for filtering public records by owner name, city, holder business, property ID, balance, and official value-range file.

The Actor searches public records only. It does not file claims, access claimant accounts, check claim status, bypass login controls, or determine who is legally entitled to property. It is not affiliated with or endorsed by the California State Controller's Office.

### Why use California Unclaimed Property Scraper?

- Search real SCO weekly files rather than cached or fabricated samples.
- Browse one of five official ranges: `$0–$9.99`, `$10–$99.99`, `$100–$499.99`, `$500+`, or all records.
- Filter by reported owner, owner city, holder business, exact property ID, or cash balance.
- Extract rich fields covering cash, securities, owners, claims, holders, addresses, and CUSIP.
- Deduplicate with a stable `propertyId + ownerName` identity.
- Stream CSV parts from the downloaded ZIP and stop after the requested result or scan limit.
- Schedule searches and integrate datasets through Apify APIs, webhooks, and exports.

### What data can California Unclaimed Property Scraper extract?

| Field | Type | Description |
| --- | --- | --- |
| `propertyId` | string | California public property identifier |
| `propertyType` | string | SCO/NAUPA property description |
| `ownerName` | string | Name as reported in the weekly file |
| `currentCashBalance` | number | Current public cash balance |
| `cashReported` | number | Originally reported cash |
| `sharesReported` | number | Reported securities quantity |
| `securitiesName` | string | Security name when available |
| `holderName` | string | Business that reported the property |
| `pendingClaims` | integer | Public pending-claim count |
| `paidClaims` | integer | Public paid-claim count |
| `sourceFileUpdatedAt` | string | Last-Modified time of the weekly ZIP |

Unavailable optional cells are omitted instead of output as empty values.

### How to search California unclaimed property

1. Open the Actor input tab.
2. Select an official value-range archive.
3. Enter an owner-name, city, holder, property-ID, or balance filter. Leave filters empty to browse the first records in the selected range.
4. Set a small `maxResults` and a realistic `maxRowsScanned`.
5. Ensure `maxDownloadMbytes` is above the current official file size.
6. Click **Start** and inspect the dataset.
7. Follow the official source link and California claim instructions if you believe a record belongs to you.

### How much will it cost to search California unclaimed property?

Compute is normally modest, but official archives are large and data-transfer/storage usage can dominate cost. At the time of documentation, even the smallest `$500+` archive exceeds 150 MB, while the all-records archive exceeds 3 GB. File sizes change weekly. Use one narrow range, strict scan limits, exact filters, and the default four-minute internal deadline. Check your Apify usage page for current plan pricing.

### Input

See the input tab for full configuration options.

- `valueRange`: one official weekly ZIP.
- `ownerName`, `city`, `holderName`: case-insensitive substring filters.
- `propertyId`: exact public property ID.
- `minCashBalance`, `maxCashBalance`: inclusive numeric filters.
- `maxResults`: unique record limit.
- `maxRowsScanned`: CSV processing safety limit.
- `maxRunMillis`: Actor-side deadline below five minutes.
- `maxDownloadMbytes`: prevents accidentally downloading a larger-than-expected archive.

### Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

```json
[
  {
    "recordId": "13755891:ADAMS GEORGE T",
    "propertyId": "13755891",
    "propertyType": "63: Non Standard NAUPA Code for - Endowments",
    "cashReported": 5675.28,
    "ownerName": "ADAMS GEORGE T",
    "ownerCity": "AGOURA",
    "ownerState": "CA",
    "currentCashBalance": 5675.28,
    "pendingClaims": 1,
    "paidClaims": 0,
    "holderName": "WEST COAST LIFE INSURANCE COMPANY",
    "valueRange": "500-plus",
    "sourceFileUrl": "https://claimit.ca.gov/upd-property-records/04_From_500_To_Beyond.zip"
  }
]
```

The example shows the live schema, but every run reads the current weekly file and values can change.

### Tips and advanced options

- Start with `$500+`; it is usually the smallest archive.
- Exact property IDs produce deterministic filtering but the file still must be downloaded.
- A broad query may reach `maxRowsScanned` without a result. Narrow it or deliberately raise the limit while staying under five minutes.
- Never infer ownership solely from a name match. Use the official free claim process.

### FAQ, disclaimers, and support

#### Is this an official SCO service?

No. It is an independent Actor that searches files the SCO makes public.

#### Can this Actor claim property?

No. Claims and identity verification must use official California channels.

#### Why did the run stop before scanning the whole file?

The archive size, row limit, download limit, and deadline protect predictable resource use. Increase only the specific limit you understand.

> Our Actor is ethical and does not intentionally extract private user data. It extracts only information published in the SCO's public weekly records. Results contain personal data such as names and reported addresses. Personal data is protected by the GDPR in the European Union and by other regulations around the world. Do not scrape or use personal data unless you have a legitimate reason. If you are unsure whether your reason is legitimate, consult your lawyers.

Use the Actor's **Issues** tab for reproducible problems and the **API** tab for programmatic runs.

# Actor input Schema

## `valueRange` (type: `string`):

Select one official weekly SCO archive. Larger ranges require more download time and memory.

## `ownerName` (type: `string`):

Case-insensitive substring to match in the reported owner name.

## `city` (type: `string`):

Optional case-insensitive substring to match in the owner city.

## `holderName` (type: `string`):

Optional case-insensitive substring to match the reporting holder business.

## `propertyId` (type: `string`):

Optional exact California property ID.

## `minCashBalance` (type: `number`):

Optional inclusive lower balance filter.

## `maxCashBalance` (type: `number`):

Optional inclusive upper balance filter.

## `maxResults` (type: `integer`):

Stop after this many unique property-owner records.

## `maxRowsScanned` (type: `integer`):

Safety limit across all CSV parts in the selected archive.

## `maxRunMillis` (type: `integer`):

Actor-side safety deadline, capped below the required five-minute run limit.

## `maxDownloadMbytes` (type: `integer`):

Abort when the official Content-Length exceeds this safety limit. Raise it deliberately for larger files.

## `maxRetries` (type: `integer`):

Total bounded attempts for the single official archive download.

## `proxyConfiguration` (type: `object`):

Optional Apify Proxy configuration. Direct public download is used by default.

## Actor input object example

```json
{
  "valueRange": "500-plus",
  "ownerName": "ADAMS GEORGE T",
  "maxResults": 10,
  "maxRowsScanned": 250000,
  "maxRunMillis": 240000,
  "maxDownloadMbytes": 200,
  "maxRetries": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("codingfrontend/ca-unclaimed-property-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("codingfrontend/ca-unclaimed-property-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call codingfrontend/ca-unclaimed-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=codingfrontend/ca-unclaimed-property-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/TmaYIhyrAZ4toQ3lV/builds/tE5JIcXRaveTTaLcK/openapi.json
