# CrowdPull Rental Comps Workflow

> CrowdPull Rental Comps Workflow is a paid API for AI agents from crowdpull.click, paid per call via x402, $0.29/call, status unknown (last checked 2026-09-14).

Scrapes and normalizes rental listing data from Zillow and Apartments.com for a given location to produce comparable rental market datasets

## Facts

- Endpoint: POST https://crowdpull.click/api/workflows/rental-comps
- Price: $0.29/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/crowdpull-rental-comps-workflow-21c37cf9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_pXV3ilEanvTzD4cPTwrRH

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability crowdpull-rental-comps-workflow-21c37cf9 -d '<json body>'
```

Example prompt: Pull rental comps for 2-bedroom apartments in Austin, TX — scrape both Zillow and Apartments.com and give me up to 50 normalized listings with enrichment included.

## When to prefer this

Use this endpoint when you need aggregated, normalized rental comparable data from both Zillow and Apartments.com in a single call with deduplication and ranking already applied. Prefer this over calling individual scrapers separately when you want a unified rental comps dataset for a specific market without building your own ETL pipeline.

## Known failure modes

- Invalid or unsupported location string — scraper returns empty results
- maxItems or maxPerSource exceeds allowed limits — validation error returned
- Specified source not in allowed enum (zillow-listings-scraper, apartments-com-rentals-scraper) — schema validation failure
- Scraper timeout if waitForFinishSeconds is too low for large result sets
- Payment failure via x402 protocol — 402 response before job is dispatched
- Source site structure change causes scraper to return partial or malformed data

## How this service works

CrowdPull turns public web pages into useful datasets for marketplaces, housing, reviews, jobs, social posts, drug prices, video, and public records.

## Output

Returns a job token, workflow ID, and an array of job objects representing the scraping tasks dispatched to Zillow and Apartments.com scrapers. Once complete, the jobs contain normalized, deduplicated, and ranked rental listing records including rent prices, unit details, and location data for the requested market.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "properties": {
    "query": {
     "type": "string",
     "description": "Main search term, keyword, product, role, company, or item."
    },
    "filters": {
     "type": "object",
     "additionalProperties": true
    },
    "sources": {
     "type": "array",
     "items": {
      "enum": [
       "zillow-listings-scraper",
       "apartments-com-rentals-scraper"
      ],
      "type": "string"
     },
     "description": "Optional subset of sources to run. Omit to use the workflow defaults."
    },
    "location": {
     "type": "string",
     "description": "City, ZIP, state, market, or source-supported location."
    },
    "maxItems": {
     "type": "integer",
     "default": 25,
     "maximum": 250,
     "minimum": 1
    },
    "searchQuery": {
     "type": "string",
     "description": "Alias for query."
    },
    "maxPerSource": {
     "type": "integer",
     "default": 25,
     "maximum": 100,
     "minimum": 1
    },
    "sourceInputs": {
     "type": "object",
     "description": "Optional per-source input overrides keyed by source name.",
     "additionalProperties": true
    },
    "includeDetails": {
     "type": "boolean",
     "default": false
    },
    "includeEnrichment": {
     "type": "boolean",
     "default": true
    }
   },
   "description": "Rental Comps Bundle request. CrowdPull fans this out to the selected public-data sources, then normalizes, deduplicates, and ranks the rows.",
   "additionalProperties": true
  },
  "options": {
   "type": "object",
   "properties": {
    "build": {
     "type": "string",
     "maxLength": 100,
     "minLength": 1
    },
    "memory": {
     "type": "integer",
     "maximum": 8192,
     "minimum": 128
    },
    "waitForFinishSeconds": {
     "type": "integer",
     "default": 10,
     "maximum": 60,
     "minimum": 0
    }
   },
   "description": "Optional CrowdPull job options. CrowdPull caps each paid job so low-cost agent calls cannot accidentally start a large collection.",
   "additionalProperties": false
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "type": "object",
  "required": [
   "token",
   "workflow",
   "jobs"
  ],
  "properties": {
   "jobs": {
    "type": "array",
    "items": {
     "type": "object"
    }
   },
   "token": {
    "type": "string"
   },
   "workflow": {
    "type": "string"
   }
  },
  "additionalProperties": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/crowdpull-rental-comps-workflow-21c37cf9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from crowdpull.click](https://www.zero.xyz/host/crowdpull.click/llms.txt)
