# Real Estate Skip Trace | Owner Phone & Email | $10-$15/1K (`apivault_labs/real-estate-skip-trace-go`) Actor

Real estate skip tracing for US property owner lookup. Find owner names, phones, emails, mailing addresses, absentee status, equity, portfolios, LLC agents, APNs, and distress signals in bulk. No login or cookies. Tiered PPE: $10-$15/1K results. JSON, CSV, Excel, API, webhook.

- **URL**: https://apify.com/apivault\_labs/real-estate-skip-trace-go.md
- **Developed by:** [Apivault Labs](https://apify.com/apivault_labs) (community)
- **Categories:** Real estate, Lead generation, Business
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 delivered skip-trace results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## 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

## Real Estate Skip Tracing — Find Property Owner Phones & Emails

![Real Estate Skip Tracing — find, verify, and prioritize property owner leads](https://api.apify.com/v2/key-value-stores/u4YZtIlXXYEybGzl4/records/real-estate-skip-tracing-go-hero-v1.png)

**Find the owner behind a US property and get the contact and deal data needed
to qualify the lead.** Built for real estate wholesalers, investors, agents,
acquisition teams, and property researchers.

Give it a US property address (or a whole list) and get back one record per
property — owner, contacts, deal signals and a lead score — from public
records, with **no external API key or third-party subscription required for
the standard workflow.**

Use this real estate skip tracing Actor for bulk property owner lookup without
supplying browser cookies or logging in to third-party sites. Run it manually,
through the Apify API, on a schedule, or as part of an automation. Export
successful records to JSON, CSV, Excel, or a webhook.

### Quick start

1. Open **Input** and paste one or more complete US addresses into
   **Property addresses — recommended**.
2. Keep **Skip trace owner phones & emails** enabled.
3. Click **Start**.
4. Open the dataset and use **Owner & Contact** for outreach or **Deal Signals**
   for lead qualification. Export either view to CSV, Excel, or JSON.

Example input:

```json
{
  "addresses": [
    "123 Main St, Springfield, IL 62704",
    "2551 Pinebluff Dr, Dallas, TX 75228"
  ],
  "skipTraceContacts": true,
  "detectAbsentee": true,
  "estimateEquity": true
}
```

For better matches, always include the city, two-letter state, and ZIP. Leave
all other search fields empty unless you intentionally want to combine modes.

***

### What you get per property

- 👤 **Owner name** — an LLC/trust is pierced to the real person when possible
- 📞 **Skip-traced phones** — E.164-normalized, each enriched offline with **line
  type** (mobile / landline / VoIP / toll-free), **carrier**, validity and
  timezone, so you dial the right number at the right time
- ✉️ **Skip-traced emails** — returned with a concise availability and quality
  status when enough evidence is available
- 💬 **Live WhatsApp check** *(opt-in)* — confirms a number is active now and adds
  a WhatsApp outreach channel + public profile photo when available
- 🔗 **One-tap outreach links** — ready `tel:`, `sms:`, `mailto:` and `wa.me`
  links built from the contacts found
- 🏚️ **Absentee owner** — mailing address ≠ property address (a top wholesale signal)
- 💰 **Estimated equity & mortgage**, **length of ownership**, purchase price/date
- ⚠️ **Distress signals** *(opt-in)* — tax delinquency, foreclosure, auction,
  vacancy and code violations, with a 0–1 `distressScore`
- 🚨 **Distressed lead lists** — pull fresh motivated-seller leads straight from
  public city records: housing code violations, sheriff sales, delinquent
  taxes and adjudicated property, each resolved to its owner with a reason to
  call (`leadReasons`)
- 🎯 **Lead score** — `leadScore` (0–100) + `leadQuality` (hot / warm / cold /
  dead) so you can sort and work the best leads first
- 👪 Relatives, aliases, age, current + previous addresses and match confidence

### Popular use cases

- **Wholesale lead qualification** — find owner contact data and prioritize
  absentee, high-equity, long-held, or potentially distressed properties.
- **Property owner lookup** — turn a property address or APN into a structured
  ownership record.
- **Real estate skip tracing** — enrich an existing property list with phone,
  email, mailing-address, and match-confidence fields.
- **Portfolio discovery** — search a person or company and find other properties
  associated with the same owner, across every covered state and county in one
  query. Each portfolio includes a free summary row with the property count,
  states covered, and combined estimated value.
- **LLC research** — look for public registered-agent and officer information,
  then continue with a person search when appropriate.
- **Market monitoring** — schedule an area lead list with monitor mode on and
  get only what changed since the last run: new properties, new owners, and
  big assessed-value moves. The first run is a free baseline.
- **CRM enrichment** — export flat records to a spreadsheet or send structured
  JSON into an API, webhook, workflow, or lead-management system.

***

### Choose the right search mode

| Input | What it does |
|---|---|
| `addresses` | Property address → owner + contacts + deal signals |
| `ownerNames` | Known owner (aligned to `addresses`) → straight to contacts |
| `leadListAreas` | A ZIP or "City, ST" → **every owner in the area** as a lead list, flagged absentee + high-equity |
| `distressLists` | Fresh **motivated-seller leads** from public city records (code violations, sheriff sales, delinquent taxes, adjudicated property) — resolved to owner + reason to call |
| `ownerSearch` | Owner name → **every property that owner holds** (reverse portfolio) |
| `apnSearch` | Parcel/APN number → owner + property |
| `businessSearch` | LLC / company → its **registered agent** (+ officers where published) |
| `names` / `personAddresses` / `phoneNumbers` / `emails` | Direct people search (name / address / phone / email) |
| `universalSearch` | One box: give any mix of name / email / phone / address — it detects each signal, chains and merges into one profile |

Most real estate users should start with `addresses`. Use `universalSearch`
when you do not know which direct people-search field fits your data. Multiple
modes can be combined, but each populated field launches additional searches.

***

### Key options

- `verifyEmails` — email availability and quality status (default on)
- `detectAbsentee`, `estimateEquity` — derived deal signals (default on)
- `distressSignals` — tax / foreclosure / vacancy / code signals (opt-in)
- `checkWhatsApp` + `whatsappMaxPerPerson` — live WhatsApp check (opt-in)
- `linkOwnerProperties` — also return the owner's whole portfolio
- `onlyAbsentee`, `minEquity`, `maxLeadsPerArea` — lead-list filters
- `maxContactsPerOwner`, `maxResultsPerQuery`, `maxConcurrency`
- `flatOutput` — flatten nested fields for spreadsheet/CSV export

***

### Output & views

Five ready-made dataset views:

- **🏠 Owner & Contact** — property, owner, absentee, best phone/email, equity,
  ownership years, confidence
- **🎯 Deal Signals** — equity, value, mortgage, tax-delinquent, foreclosure, vacant
- **People & Contacts** — direct people-search matches and best contacts
- **Owner Portfolio** — properties associated with an owner query
- **LLC & Registered Agent** — available public business-registration matches

Each record also carries the full detail: `phonesDetailed`, `emailsVerified`,
`outreachLinks`, `distressSignals` / `distressScore`, `leadScore` /
`leadQuality`, relatives, aliases, age, addresses and source attribution.

***

### Pricing

Pay per result (PPE): one `result` event is charged for each delivered record.
Empty, blocked, invalid, and no-match lookups do not trigger the event. There is
no separate Actor-start fee, and the listed result price includes platform
usage generated by the Actor.

| Apify tier | Price per result | Price per 1,000 |
|---|---:|---:|
| Free | $0.015 | $15 |
| Bronze | $0.012 | $12 |
| Silver | $0.011 | $11 |
| Gold | $0.010 | $10 |
| Platinum | $0.010 | $10 |
| Diamond | $0.010 | $10 |

Always check the live **Pricing** tab before a run; it is the source of truth.

### Use from AI agents, n8n, Make, or any API client

The Actor is a plain HTTP API: one POST starts a run, the dataset returns
JSON. It works the same from ChatGPT/Claude agents (Apify MCP), n8n, Make,
Zapier, GitHub Actions, or curl.

```bash
## 1) Start a run (find owners for a list of addresses)
curl -L "https://api.apify.com/v2/acts/apivault_labs~real-estate-skip-trace-go/runs" \
  -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \
  -d '{"addresses": ["1200 Smith St, Houston, TX", "40 Waterside Plaza, New York, NY"]}'

## 2) Read results (datasetId from the run object)
curl -L "https://api.apify.com/v2/datasets/$DATASET_ID/items?format=json" \
  -H "Authorization: Bearer $APIFY_TOKEN"
```

Prompt patterns that work well with AI agents:

- *"Find the owner, phone, and email for 123 Main St, Austin, TX"*
- *"List absentee owners in Tampa, FL and skip-trace their phones"*
- *"Show me code-violation and tax-delinquent leads in New Orleans"*
- *"What else does Main Street Holdings LLC own? Give me a portfolio rollup"*
- *"Monitor this ZIP weekly and alert me only when owners or values change"*

Saved presets for the most common jobs (absentee-owner lists, distress lead
lists, LLC portfolios, area monitoring) are available under **Examples** —
copy one and just change the city or name.

### Coverage and accuracy

Property and business-record coverage varies by US state and county. Contact,
equity, mortgage, absentee, and distress fields are best-effort signals compiled
from public sources; not every field is available for every property. Review
important matches before outreach or investment decisions.

Every result also carries a `leadReasons` list — human-readable reasons to
prioritize the lead (for example: *absentee owner*, *high equity*,
*LLC/entity owner*, *long ownership (15 yrs)*, *high-value property*,
*phone on file*) — alongside the numeric `leadScore` and `leadQuality` label.

Assessor/parcel owner records are queried live from these public sources:

| Statewide parcel sources | Records |
|---|---|
| Arkansas Statewide (GeoStor Planning Cadastre) | 2,117,780 |
| Colorado Statewide (OIT Public Parcels) | 2,599,761 |
| Connecticut Statewide (CAMA) | 1,290,196 |
| Florida Statewide (FDOR Cadastral) | 10,831,924 |
| Idaho Statewide (Public Parcels) | 380,988 |
| Iowa Statewide (Iowa Parcels) | 2,450,589 |
| Maryland Statewide (SDAT Property Data) | 2,396,022 |
| Massachusetts Statewide | 2,559,286 |
| Minnesota Statewide (MnGeo Open Parcels) | 2,708,126 |
| Montana Statewide (Cadastral Framework) | 921,006 |
| New Jersey Statewide (MOD-IV Composite) | 3,478,727 |
| New York Statewide (NYS Tax Parcels) | 5,510,061 |
| North Carolina Statewide (NC OneMap) | 5,938,639 |
| North Dakota Statewide | 748,548 |
| Pennsylvania Statewide (PASDA Parcels) | 4,685,585 |
| Tennessee Statewide (Property Boundaries Public Use) | 2,138,531 |
| Texas Statewide (StratMap) | 14,333,926 |
| Vermont Statewide | 343,860 |
| Wisconsin Statewide (V12 Parcel DB) | 3,574,646 |
| **Subtotal** | **69,008,201** |

| County / metro parcel sources | Records |
|---|---|
| Alameda County, CA (Oakland/Berkeley) | 489,766 |
| Arapahoe, CO (Littleton/Centennial) | 218,065 |
| Bexar County, TX (San Antonio) | 725,727 |
| Broward, FL (Fort Lauderdale) | 554,681 |
| Clark County, NV (Las Vegas) | 839,630 |
| Cobb, GA (Marietta) | 366,264 |
| Cook County, IL (Chicago) | 1,429,213 |
| Cuyahoga, OH (Cleveland) | 520,912 |
| Dallas, TX | 548,830 |
| Denton, TX | 383,031 |
| Detroit, MI (Parcels) | 377,863 |
| Duval County, FL (Jacksonville) | 400,000 |
| El Paso, CO (Colorado Springs) | 207,799 |
| Fairfax, VA (partial - appraised values file) | 31,849 |
| Fort Bend County, TX | 385,654 |
| Franklin County, OH (Columbus) | 492,379 |
| Fulton County, GA (Atlanta) | 373,004 |
| Gwinnett, GA (Lawrenceville) | 305,466 |
| Hamilton, OH (Cincinnati) | 420,246 |
| Harris, TX (Houston) | 1,548,457 |
| Hennepin, MN (Minneapolis) | 448,087 |
| Hillsborough County, FL (Tampa) | 500,000 |
| King, WA (Seattle) | 636,536 |
| Lee County, FL (Cape Coral/Fort Myers) | 564,719 |
| Maricopa, AZ (Phoenix) | 1,759,816 |
| Miami-Dade County, FL | 943,228 |
| Montgomery County, TX | 336,769 |
| Nashville-Davidson, TN | 286,831 |
| New York City, NY (5 boroughs: Manhattan/Kings/Queens/Bronx/Richmond) | 856,670 |
| Orange County, FL (Orlando) | 450,000 |
| Orange, NC (Chapel Hill/Durham edge) | 192,688 |
| Palm Desert, CA | 36,890 |
| Philadelphia, PA | 547,329 |
| Pinellas County, FL (St. Petersburg/Clearwater) | 437,172 |
| Polk, WI | 48,867 |
| Salt Lake, UT (partial - buffer subset) | 39,982 |
| San Bernardino County, CA | 839,913 |
| Suffolk, MA (Boston) | 184,548 |
| Tarrant, TX (Fort Worth) | n/a |
| Travis, TX (Austin) | n/a |
| Utah County, UT (Provo/Orem) | 284,092 |
| Wake, NC | n/a |
| Williamson County, TX (Austin suburb) | 289,628 |
| **Subtotal** | **20,302,601** |

That is roughly **89,310,802 assessor parcels** addressable by property address, owner name, or APN — before counting the people-search, business-registry, and distressed-lead sources.

### FAQ

#### Do I need an account, API key, login, or cookies?

No login, browser cookies, or external API key is required for the standard
workflow. Optional bring-your-own services are clearly marked in the Input tab.

#### Can I run bulk real estate skip tracing?

Yes. Paste multiple property addresses or people-search values, one per line.
For large jobs, start with a small sample to confirm coverage and output shape,
then increase the batch size.

#### Which export formats are available?

Use the Apify dataset to download JSON, CSV, Excel, XML, or RSS. You can also
read results through the Apify API, send them to a webhook, or connect them to
an automation platform.

#### Why are some fields empty?

Public-record availability varies by jurisdiction and person. An empty contact
or deal-signal field means the Actor did not find enough support to return that
value; it should not be interpreted as proof that the information does not
exist.

***

### ⚖️ Legal & Acceptable Use

**Please read this section carefully. By running this Actor you accept these terms.**

> **Bottom line:** this is a neutral, general-purpose tool that retrieves
> already-public records. **You — the user — decide which address or person to
> look up and how to use the results, so you alone are responsible and liable
> for that use.** Any unlawful, harmful, harassing, or otherwise prohibited use
> is solely your responsibility, and you agree to indemnify the operator against
> any resulting claims.

**1. Public data only.** The Actor retrieves information from publicly available
public-record and business sources. It does not access private, paywalled, or
login-protected data.

**2. Not a Consumer Reporting Agency.** This Actor and its operator are **not a
consumer reporting agency (CRA)** as defined by the U.S. Fair Credit Reporting
Act (FCRA), and the output is **not a "consumer report."** You may **NOT** use
this Actor or its output, in whole or in part, to make decisions about a
person's eligibility for:

- credit or loans,
- employment or contracting,
- housing, rental, or tenant screening,
- insurance, or
- any other purpose regulated by the FCRA.

**3. You are the responsible party.** You act as the data controller for every
lookup you run. **You are solely responsible** for using the data lawfully and
for complying with all applicable laws and regulations, including but not
limited to the **FCRA**, the **Driver's Privacy Protection Act (DPPA)**, the
**Gramm-Leach-Bliley Act (GLBA)**, the **Telephone Consumer Protection Act
(TCPA)**, and state privacy laws such as the **CCPA/CPRA** and similar statutes.
Intended for lawful business uses such as real-estate outreach, due diligence,
and skip tracing — never for stalking, harassment, or any unlawful purpose.

**4. Removal requests.** If a person asks to have their information excluded,
stop processing it and honor applicable opt-out / deletion rights.

**5. Indemnification.** You assume all risk and liability arising from your use
of this Actor, and **you agree to defend, indemnify and hold the operator
harmless** from any and all claims, losses, fines, or liabilities — including
reasonable legal fees — resulting from your use or misuse of the Actor or its
output, or your breach of these terms or of any law.

> This is general information, **not legal advice**. If you are unsure whether
> your intended use is permitted, consult your own legal counsel before running
> this Actor.

# Actor input Schema

## `addresses` (type: `array`):

Main real-estate workflow: property address → owner → phones and emails → deal signals. Enter one complete US address per line, including city, two-letter state, and ZIP. Example: "123 Main St, Springfield, IL 62704".

## `ownerNames` (type: `array`):

Optional. If you already know the owner name(s), add them here to skip the owner-resolution step and go straight to contact skip tracing. One per line.

## `universalSearch` (type: `array`):

Not sure which mode to use? Enter any person signal here. Examples: "John Smith; Dallas, TX", "john@example.com", "+1 214 555 0182", or "Jane Doe; 2551 Pinebluff Dr, Dallas, TX". The Actor detects the input type and builds a consolidated person profile.

## `names` (type: `array`):

Direct people search by name (not tied to a property). One per line; add a city/state for accuracy, e.g. "Jane Doe; Austin, TX".

## `personAddresses` (type: `array`):

Find the people who live (or lived) at a residential address. One per line, e.g. "123 Main St, Springfield, IL 62704".

## `phoneNumbers` (type: `array`):

Reverse phone lookup: find the owner of a US phone number. One per line, e.g. "(202) 555-0182".

## `emails` (type: `array`):

Reverse email lookup: find the person behind an email address. One per line.

## `maxResultsPerQuery` (type: `integer`):

Cap how many people to return per name/address/phone/email query.

## `leadListAreas` (type: `array`):

Build an owner lead list for a whole area: every property owner in a ZIP or city, flagged absentee & high-equity. One per line, e.g. "37215" or "Nashville, TN". Coverage = counties with an owner-exposing parcel layer.

## `onlyAbsentee` (type: `boolean`):

In area lead lists, keep only absentee owners (mailing address in a different city/state than the property) — the hottest wholesale signal.

## `minEquity` (type: `integer`):

In area lead lists, keep only owners whose estimated equity is at least this. 0 = no filter. (Equity uses assessed value where available.)

## `maxLeadsPerArea` (type: `integer`):

Cap how many owner leads to return per area query.

## `monitor` (type: `boolean`):

For area lead lists: compare against the previous run of the same area and return only what changed — new properties, new owners, big assessed-value moves. The first run of an area is a free baseline; later runs are charged per changed record. Schedule the actor to run daily/weekly to watch a market.

## `ownerSearch` (type: `array`):

Find properties associated with a person or company. One per line. Add a state for faster, more precise matching, e.g. "John Smith; TX" or "ACME HOLDINGS LLC; FL". The people-per-query setting controls the result cap.

## `businessSearch` (type: `array`):

Find available registered-agent and officer information for a company. Enter one company per line with its state, e.g. "ACME HOLDINGS LLC; NY". Use the returned person name in Quick or Name search when you need contact details. Coverage varies by state.

## `apnSearch` (type: `array`):

Look up the owner of a parcel by its APN / parcel number. One per line. Include the state (APN formats are state/county-specific), e.g. "117-24-001A; AZ".

## `skipTraceContacts` (type: `boolean`):

Resolve the owner's phone numbers and emails from public records. Turn off for a property-and-owner-only run (cheaper/faster).

## `verifyEmails` (type: `boolean`):

Add an availability and quality status to each email found. Included at no additional Actor event charge.

## `checkWhatsApp` (type: `boolean`):

For each person, live-check their best phone number(s) on WhatsApp (keyless). Confirms the number is ACTIVE and adds a WhatsApp outreach channel + public profile photo when available. Tags `phonesDetailed[].whatsapp` and a person-level `whatsapp` flag. Slower (one live lookup per number).

## `whatsappMaxPerPerson` (type: `integer`):

How many of a person's numbers to live-check on WhatsApp (best/mobile first). Only used when the WhatsApp check is on.

## `linkOwnerProperties` (type: `boolean`):

For each property address, also return EVERY other property the same owner holds in that state (address → owner → their whole portfolio). Adds `portfolioCount` + `portfolioProperties`.

## `detectAbsentee` (type: `boolean`):

Flag owners whose mailing address differs from the property address — a strong wholesaling / investor signal.

## `estimateEquity` (type: `boolean`):

Estimate the owner's equity from assessed/market value minus mortgage/lien signals — a motivated-seller indicator.

## `distressSignals` (type: `boolean`):

Look for tax delinquency, foreclosure/pre-foreclosure and vacancy signals. Slower; best for high-value target lists.

## `maxContactsPerOwner` (type: `integer`):

Cap how many phone numbers and emails to return per owner.

## `timeout` (type: `integer`):

Max wait per page fetch.

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

Retry attempts after a temporary lookup failure.

## `maxConcurrency` (type: `integer`):

How many addresses to process in parallel. Higher can speed up large batches; lower is gentler and may be more stable.

## `flatOutput` (type: `boolean`):

Flatten nested fields (phones, emails, addresses) into single columns for a clean CSV / Excel / Google Sheets export.

## `distressLists` (type: `array`):

Pull fresh motivated-seller leads from public city/county records: NYC housing code violations, New Orleans sheriff sales, Richmond VA delinquent taxes, Baton Rouge adjudicated property. Each lead is resolved to its owner (assessor lookup or inline records) and skip-traced on request. Use "all" for every source, or pick keys: nyc\_violations, nola\_sheriff\_sales, richmond\_tax\_delinquent, batonrouge\_adjudicated.

## `distressAreas` (type: `array`):

Limit a list to an area the source supports: NYC borough name (e.g. "Queens"), or ZIP for Baton Rouge. Leave empty for the whole city.

## `distressMaxResults` (type: `integer`):

Cap leads returned per list source (newest first).

## Actor input object example

```json
{
  "maxResultsPerQuery": 20,
  "onlyAbsentee": false,
  "minEquity": 0,
  "maxLeadsPerArea": 100,
  "monitor": false,
  "skipTraceContacts": true,
  "verifyEmails": true,
  "checkWhatsApp": false,
  "whatsappMaxPerPerson": 2,
  "linkOwnerProperties": false,
  "detectAbsentee": true,
  "estimateEquity": true,
  "distressSignals": false,
  "maxContactsPerOwner": 10,
  "timeout": 25,
  "maxRetries": 2,
  "maxConcurrency": 4,
  "flatOutput": false,
  "distressMaxResults": 15
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `ownerContacts` (type: `string`):

No description

## `dealSignals` (type: `string`):

No description

## `people` (type: `string`):

No description

## `portfolio` (type: `string`):

No description

## `business` (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("apivault_labs/real-estate-skip-trace-go").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("apivault_labs/real-estate-skip-trace-go").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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 apivault_labs/real-estate-skip-trace-go --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,apivault_labs/real-estate-skip-trace-go"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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