# All Property Management Scraper \[$2.50/1K💰] | Emails | Fees (`ahmed_jasarevic/allpropertymanagement-scraper`) Actor

Scrape US property management companies by state or city: emails, phones, offices, management fees, services and certifications. Export to CSV, JSON or API for B2B lead lists and rental market research.

- **URL**: https://apify.com/ahmed_jasarevic/allpropertymanagement-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## All Property Management Scraper

Scrape US property management companies from the All Property Management directory — company emails, phones, offices, management fees, services and certifications — for one state, a list of cities, or all 50 states.

### Build Property Management Lead Lists And Rental Market Research

- Build a B2B lead list of US property management companies with public emails and phones
- Research management fees, services and portfolio sizes by state or city
- Recruit local managers for HOA, single-family, multi-family or commercial portfolios
- Enrich CRM and outreach records with office addresses and service ZIPs
- Monitor the directory for new offices and newly published bios on a weekly schedule

### How It Works

![How the All Property Management Scraper turns a US state or city into a dataset of management companies with emails, fees and services.](https://api.apify.com/v2/key-value-stores/oeuA0kLOyhbRM4fzt/records/how-it-works-allpropertymanagement-scraper.webp)

The Actor collects publicly available All Property Management directory data and normalizes it into one schema. Provide states or cities; it reads the published directory and company profiles, then writes one row per company.

- `states` and `cities` choose the coverage; leaving both empty scans all 50 states plus DC.
- `includeProfileDetails` adds phone, website, fees, services and certifications.
- A 200-company California run finishes in roughly 10 seconds.

Each row is one company with its main office, service ZIPs, property types, portfolio brackets, fee signals and certifications. Export the dataset as JSON, CSV or Excel, or read it through the Apify API for a CRM, lead-scoring pipeline or market report.

### Scrape Property Management Companies In All 50 States

The directory covers roughly 1,800 companies nationwide.

- `states` takes two-letter codes. The default is `["CA"]`.
- `cities` takes `"City, ST"` entries and adds city-level searches on top of the selected states.
- Leaving **both** `states` and `cities` empty scans all 50 states plus DC. That is the widest and slowest mode.
- `maxItems` defaults to 200 and caps at 5,000 companies per run.

One company may serve several states and appear in more than one state search; the Actor de-duplicates by company id before writing rows.

### Extract Management Fees, Services And Certifications

Bio enrichment (`includeProfileDetails`, on by default) adds the fields that make the directory useful for screening rather than just contact lookup:

- **Management fees** — monthly flat fee, leasing fee and percent of rent, plus the raw sentence used to derive them
- **Services** — screening, maintenance, accounting, rent collection, leasing, inspections, 24/7 response, HOA and commercial
- **Certifications** — NARPM, CPM, IREM, CCIM, CRMC, AMO, CAI and similar mentions
- **Portfolio signals** — property types, units-managed brackets, founded year and years in business

Fee parsing is intentionally conservative: `managementFee.percentOfRent` is only set when the bio states a percentage, and `raw` keeps the original sentence so every number can be verified.

### Property Management Data For Lead Generation And Market Research

Typical workflows:

- **B2B outreach** — filter by state, city or service ZIP, then push emails and phones into a CRM
- **Investor shortlisting** — compare fee structure and services for HOA or single-family portfolios
- **Market mapping** — count managers per metro and identify gaps in coverage
- **Competitor tracking** — re-run monthly and diff new companies, offices and certifications

### Input

| Field | Type | Required | Default | Notes |
| --- | --- | --- | --- | --- |
| `states` | array of strings | No | `["CA"]` | Two-letter US state codes, e.g. `CA`, `TX`, `FL`. Empty + empty cities = all 50 states + DC. |
| `cities` | array of strings | No | — | `"City, ST"` format, e.g. `"Austin, TX"`. The state code is required. |
| `maxItems` | integer | No | `200` | Maximum companies saved in one run. Minimum 1, maximum 5,000. |
| `includeProfileDetails` | boolean | No | `true` | Collect each company profile for phone, website, fees, services and certifications. Turn off for a cheaper directory-only run. |
| `proxy` | object | No | — | Standard Apify proxy configuration. Off by default. |

### Output

One row per property management company.

| Field | Description |
| --- | --- |
| `companyId`, `name`, `profileUrl`, `logoUrl`, `tagline` | Company identity. `profileUrl` redirects to the canonical profile. |
| `phone`, `website`, `email` | Public contact details listed in the directory or the company bio. Not every company publishes all three. |
| `address`, `city`, `state`, `zip` | Main office. |
| `serviceZips`, `additionalOffices` | ZIPs and addresses of listed branch offices. |
| `propertyTypes`, `unitsManagedRanges` | Managed property categories and portfolio-size brackets. |
| `unitsManagedMentioned`, `foundedYear`, `yearsInBusiness` | Bio-derived portfolio size and age signals. |
| `managementFee` | `raw`, `monthlyFlatFeeUsd`, `leasingFeeUsd`, `percentOfRent`, `flatFeeMentioned`, `percentOfRentMentioned`. |
| `services`, `servicesList` | Booleans plus a list for screening, maintenance, accounting, eviction, rent collection, leasing, inspections, 24/7 response, HOA and commercial. |
| `certifications` | NARPM, CPM, IREM, CCIM, CRMC, AMO, CAI, licensed and similar mentions. |
| `businessDescription` | First 1,200 characters of the company bio. |
| `foundInState`, `profileStatus`, `scrapedAt` | Run metadata. `profileStatus` is `ok`, `unavailable`, `skipped` or `failed`. |

### Example Input

```json
{
  "states": ["CA", "TX"],
  "cities": ["Austin, TX"],
  "maxItems": 500,
  "includeProfileDetails": true
}
```

### Example Output

```json
{
  "companyId": 48059,
  "name": "Wells Association Management",
  "profileUrl": "https://www.allpropertymanagement.com/property-management/companies/48059/",
  "phone": "(619) 555-0123",
  "website": "https://example.com",
  "email": "info@example.com",
  "address": {
    "street": "501 West Broadway Suite 800",
    "city": "San Diego",
    "state": "CA",
    "zip": "92101",
    "country": "US"
  },
  "serviceZips": ["92101"],
  "propertyTypes": ["Homeowners Association (50-99 units)"],
  "unitsManagedRanges": ["Homeowners Association (50-99 units)"],
  "managementFee": {
    "raw": "Our management fee is 8% of rent.",
    "monthlyFlatFeeUsd": null,
    "leasingFeeUsd": null,
    "percentOfRent": 8,
    "flatFeeMentioned": false,
    "percentOfRentMentioned": true
  },
  "servicesList": ["maintenance", "accounting", "rentCollection"],
  "certifications": ["NARPM"],
  "profileStatus": "ok",
  "scrapedAt": "2026-10-23T08:04:15.000Z"
}
```

### Schedule Property Management Directory Monitoring

Every run is a normal Apify Actor run, so you can:

- call it through the **Apify API** and read the dataset with `GET /v2/datasets/{datasetId}/items`
- export to **JSON, CSV, Excel or HTML** from the Console
- connect **Zapier, Make or Google Sheets** through Apify integrations
- set a **webhook** to notify your app when a run finishes

For monitoring, schedule a weekly run on the states you care about with `includeProfileDetails: false` for a cheap change check, then re-run with bios only for the companies you plan to contact.

### Related Actors

- [All Property Management Scraper](https://apify.com/piotrv1001/all-property-management-scraper) — an alternative scraper for the same directory, focused on email-first B2B leads
- [Property Management Leads Scraper](https://apify.com/scrapesage/property-management-leads-scraper) — property management companies with contact emails and lead scores
- [Apartments.com Scraper](https://apify.com/scrapesage/apartments-com-scraper) — rental listings with the management company behind each property
- [US Rental Listings & Real Estate Data API](https://apify.com/housingfeed/rental-listings-api) — a large US rental listings feed for rent comps
- [Redfin Scraper](https://apify.com/scrapesage/redfin-scraper) — for-sale and sold homes with listing agents and brokerages

### FAQ

#### Is there an official All Property Management API?

No public developer API is documented. This Actor collects the publicly visible directory search and company profile data without authentication.

#### Why use this Actor instead of scraping the directory manually?

Manual collection means clicking every profile and copying fees and services by hand. This Actor enumerates a state in about 1.2 seconds, fetches bios in parallel and normalizes the fee text into comparable fields, so a 500-company list takes minutes rather than hours.

#### What are alternatives to this Actor?

Other Apify Actors cover the same directory with an email-first focus, and general B2B databases (Apollo, ZoomInfo) sell company contacts by industry. Those databases are broader but usually do not include this directory's management-fee and service fields.

#### Does every company include an email and phone?

No. The Actor returns what the directory and the company bio publish. Some companies list only a phone, only a website, or no direct contact at all; `profileStatus` and the empty fields show what was available at run time.

#### How do I get a list of property management companies in California?

Run the Actor with `states: ["CA"]` and a `maxItems` you are comfortable with. Leaving `includeProfileDetails` on adds fees, services and certifications; turning it off returns directory contact data faster and cheaper.

#### Can I monitor the directory for new companies?

Yes. Schedule a weekly or monthly run and compare `companyId` values between datasets. New ids are new directory entries, and changed fee or service fields show updated bios.

### For AI Agents & LLM Apps

Returns one row per US property management company, including public contact details, offices, management fees, services and certifications.

Minimal working input:

```json
{ "states": ["CA"], "maxItems": 20 }
```

Wider scan (all 50 states + DC — roughly 1,800 companies):

```json
{ "maxItems": 500, "includeProfileDetails": false }
```

Output fields: `companyId`, `name`, `profileUrl`, `phone`, `website`, `email`, `address`, `city`, `state`, `zip`, `serviceZips`, `additionalOffices`, `propertyTypes`, `unitsManagedRanges`, `managementFee`, `services`, `servicesList`, `certifications`, `yearsInBusiness`, `profileStatus`, `scrapedAt`.

Behaviors an agent should know:

- Leaving **both** `states` and `cities` empty triggers the all-US scan; that is much slower than a single-state run.
- `includeProfileDetails: false` removes the per-company profile pass and drops fee, service and certification fields.
- `maxItems` is a hard output cap, not a page size.
- The free tier returns the first 10 companies of a run; paid plans return the full `maxItems`.

Billing: pay-per-event at **$0.0025 per company** ($2.50 per 1,000) plus a **$0.00005** Actor start event.

### Legal & Compliance Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by All Property Management or Buildium. It collects only publicly visible directory pages; it does not log in, bypass paywalls or solve CAPTCHAs.

The output can include business contact data such as company emails and phone numbers. Users are responsible for complying with the source site's Terms of Service and with applicable marketing and data-protection law, including CAN-SPAM, GDPR and CCPA where relevant. Do not use this data for unsolicited outreach in violation of those laws.

### SEO Keywords

all property management scraper, allpropertymanagement scraper, property management company list, property management companies california, property management companies texas, property management companies florida, property management leads, property management email list, us property management directory, hoa management companies, property management fees, property manager database, rental property management data, b2b property management leads, property management market research, scrape property management companies, property management company emails, allpropertymanagement api

# Actor input Schema

## `states` (type: `array`):

Two-letter US state codes to scrape (e.g. CA, TX, FL). Every property management company serving each state is returned. Leave this AND Cities empty to scan all 50 states + DC (about 1,800 companies).

## `cities` (type: `array`):

Optional city filters in the form "City, ST" (e.g. "Austin, TX"). Adds city-level searches on top of the selected states. The state code is required because the directory API only returns results for a city within a state.

## `maxItems` (type: `integer`):

Maximum number of property management companies to save in one run.

## `includeProfileDetails` (type: `boolean`):

Fetch each company's bio from the lightweight JSON detail API to extract the bio-derived fields (website, phone, fees, services, certifications, years in business). Turn off for a cheaper, faster run that only returns directory data (name, address, email, property types, logo).

## `proxy` (type: `object`):

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "states": [
    "CA"
  ],
  "maxItems": 200,
  "includeProfileDetails": true,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (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 = {
    "states": [
        "CA"
    ],
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/allpropertymanagement-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 = {
    "states": ["CA"],
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/allpropertymanagement-scraper").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 '{
  "states": [
    "CA"
  ],
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call ahmed_jasarevic/allpropertymanagement-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/allpropertymanagement-scraper"
        }
    }
}
```

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/vhQClQDTA2lEBGsko/builds/KkTZ7YQonLraz6pUi/openapi.json
