Zillow Rental Auto-Apply Bot - 3 Seconds per Application
Pricing
$35.00/month + usage
Zillow Rental Auto-Apply Bot - 3 Seconds per Application
Submit Zillow rental applications in 3 seconds vs 10+ minutes manually. Custom messages, ZPID/URL support, validation. Chain with search actors for search-to-apply automation. $35/month unlimited. US/Canada phone numbers.
Pricing
$35.00/month + usage
Rating
0.0
(0)
Developer
ClearPath
Maintained by CommunityActor stats
1
Bookmarked
5
Total users
0
Monthly active users
an hour ago
Last modified
Categories
Share
π Zillow Rental Application Request Submitter | Automatically Apply for Rentals
From Clearpath, creators of Zillow Bulk Search and Zillow ZIP Code Search. Find rentals, build your shortlist and send a request to apply.
Why choose this actor?
- Automate your request to apply. Provide a Zillow property ID or listing URL, your contact details and a message. The actor submits the rental request for that listing.
- Make every message your own. Use custom text or the built-in template. Add
{name}to insert the applicantβs name automatically. - Keep a record of each request. Get the property ID, applicant name and email, message, timestamp and success status in your dataset. Connect it to a search workflow, using one run for each selected rental.
Prepare your first rental request
Replace the example property ID and contact details with your own. Each run processes one rental listing.
{"zpid": 2069918407,"name": "Your Name","email": "you@example.com","phoneNumber": "+12025550123","message": "Hi, I'd like to apply for this rental."}
Open actor input to review your details and message before starting. Running the actor sends a real request to apply. It does not complete tenant screening or upload application documents. Listings that require a Zillow login are not supported; successful submission is not landlord approval.
| Clearpath Β· Zillow Suite | ||||
Larger searches | Local listings | Send inquiries | You are here | Export messages |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
clearpath/zillow-rental-application-submitter on Apify. Call: ApifyClient("TOKEN").actor("clearpath/zillow-rental-application-submitter").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: zpid (integer), name (string, required), email (string, required). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/clearpath~zillow-rental-application-submitter/builds/default (Bearer TOKEN) β inputSchema, actorDefinition.storages.dataset, readme. Pricing: See the actor Pricing tab for current rates. Get token: https://console.apify.com/account/integrations
Features
- Automated rental requests - Send a request to apply with your contact details and message
- π Integrate with any other Zillow Actor - Chain with search actors for automation
- βοΈ Custom Messages - Personalize with templates and variables
- Current pricing - See the Pricing tab for billing terms
π Quick Start
Basic - Single Property by ZPID
{"zpid": 2069918407,"name": "Sarah Johnson","email": "sarah.johnson@gmail.com","phoneNumber": "+12125551234"}
Single Property by URL
{"propertyUrl": "https://www.zillow.com/homedetails/137A-Christopher-St-1B-New-York-NY-10014/458222521_zpid/","name": "Michael Chen","email": "michael.chen@gmail.com","phoneNumber": "+14165551234"}
Advanced - Custom Message
{"zpid": 2069918407,"name": "Alex Rivera","email": "alex.rivera@gmail.com","phoneNumber": "+13105551234","message": "Hello,\n\nI'm very interested in your property and would love to schedule a viewing. I'm a software engineer at a stable tech company with excellent credit (750+) and strong rental history.\n\nI can provide:\n- Proof of income (recent pay stubs)\n- Credit report\n- Previous landlord references\n- Employment verification\n\nI'm looking to move in by the 1st of next month and can sign a lease immediately upon approval.\n\nThank you for your consideration!\n\nBest regards,\n{name}"}
β‘ Key Features
Instant Automated Submission
- Request-to-apply automation - Submit a rental request with your chosen message
- Automatic validation - Phone, email, and required fields checked
- Success tracking - Know exactly which applications succeeded or failed
π Apify Integration
- Chain with search actors - Use with zillow-bulk-scraper or zip-code-search
- Workflow automation - Build complete search-to-apply pipelines
- Programmatic access - Full API integration for custom workflows
βοΈ Custom Message Templates
- Professional default - Pre-written template included
- Fully customizable - Personalize every aspect of your message
- Variable interpolation - Use {name} placeholder for automatic insertion
π― Flexible Input
- ZPID or URL - Direct property ID or full Zillow URLs
- Speaking URLs supported - Works with friendly URLs like /apartments/city/building-name/
- Automatic extraction - Converts any format to property ID
π― Use Cases
For Individual Renters
- Competitive rental markets - Be first to apply in hot markets like NYC, SF, LA where properties rent within hours
- Apartment hunting automation - Apply to 50+ matching properties instantly when new listings appear
- Remote relocations - Submit applications from anywhere without visiting properties
- Less repeated typing - Reuse your contact details and message templates
- Application blitzes - Apply to every property in your target area in minutes
- Market research - Test application process across multiple properties and landlords
For Real Estate Professionals
- Client services - Submit applications on behalf of clients with their information
- Property managers - Streamline tenant application workflows for managed properties
- Relocation specialists - Automate applications for corporate relocations
- Rental agents - Request to apply for selected properties, using one run per listing
- Market analysis - Test landlord responsiveness across different properties
- Portfolio expansion - Quickly identify accepting landlords for new client placements
For Developers & Automation Specialists
- Search-to-apply pipelines - Chain zillow-bulk-scraper β filter β auto-apply workflows
- Scheduled automation - Run nightly to apply to new listings matching criteria
- Multi-platform integration - Combine with other rental platforms for comprehensive coverage
- Custom filtering - Build intelligent selection logic before batch application
- API orchestration - Integrate into existing property management systems
- Data collection - Track application acceptance rates and landlord response times
π Input Parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
| zpid | integer | Zillow Property ID (8-10 digits). Either ZPID or Property URL is required. | Optional* |
| propertyUrl | string | Full Zillow property URL. Supports both direct URLs (with _zpid/) and speaking URLs. Either ZPID or Property URL is required. | Optional* |
| name | string | Your full name as it should appear on the application (e.g., "Sarah Johnson") | Required |
| string | Your email address for application correspondence | Required | |
| phoneNumber | string | US/Canada phone in international format: +1XXXXXXXXXX (exactly 12 characters) | Required |
| message | string | Your message to the landlord/property manager. Uses professional default if not provided. | Professional template |
*Note: Either zpid OR propertyUrl must be provided (not both required, but at least one). If both are provided, zpid takes precedence.
Phone Number Format
- Format: +1XXXXXXXXXX (exactly 12 characters)
- Example: +12125551234 (New York), +14165551234 (Toronto), +13105551234 (Los Angeles)
- Supported: US and Canada only
- Validation: Automatic validation before submission
Default Message Template
If you don't provide a custom message, this professional template is used automatically:
Hello,I'm interested in applying for this rental property. I'm a reliable tenant with stable income, good credit, and positive rental history. I can provide all necessary documentation and references promptly.Please let me know the next steps in the application process. I'm happy to answer any questions you may have.Thank you for your consideration.Best regards,{name}
The {name} placeholder is automatically replaced with your actual name.
π Output
Each application returns comprehensive submission details:
{"zpid": 2069918407,"propertyUrl": "https://www.zillow.com/homedetails/2069918407_zpid/","applicantName": "Sarah Johnson","applicantEmail": "sarah.johnson@gmail.com","message": "Hello,\n\nI'm interested in applying...","success": true,"scrapedAt": "2025-11-16T15:47:37.080255"}
Success Response:
zpid- Property ID that was applied topropertyUrl- Full URL to the property listingapplicantName- Your name as submittedapplicantEmail- Your email as submittedmessage- The exact message sent to the landlordsuccess- true (application submitted successfully)scrapedAt- Timestamp of submission
Error Response:
{"zpid": 123456789,"propertyUrl": "https://www.zillow.com/homedetails/123456789_zpid/","applicantName": "Sarah Johnson","applicantEmail": "sarah.johnson@gmail.com","message": "Hello,\n\nI'm interested in applying...","success": false,"error": "Login required for this property - applications not supported for authenticated properties","scrapedAt": "2025-11-16T15:47:37.080255"}
Error Response Fields:
- Same fields as success, plus:
success- false (application failed)error- Description of why the application failed
π Apify Integration - Call from Other Actors
Perfect for automation workflows: Chain this actor with search actors to build complete search-to-apply pipelines.
Python - Chain with Search Results
from apify_client import ApifyClientclient = ApifyClient("your_apify_token")# Step 1: Search for properties with zillow-bulk-scraperprint("Searching for rental properties...")search_run = client.actor("your-search-actor-id").call(run_input={"locations": ["New York NY"],"propertyType": "forRent","minPrice": 2500,"maxPrice": 4000,"minBedrooms": 2,"homeTypes": ["apartment"]})# Step 2: Get search resultssearch_results = client.dataset(search_run["defaultDatasetId"]).iterate_items()# Step 3: Filter and apply to matching propertiesfor item in search_results:prop = item["rawData"]["property"]zpid = prop["zpid"]# Apply your custom filtering logicif prop.get("daysOnZillow", 999) <= 7: # Only new listingsprint(f"Applying to ZPID {zpid}...")# Call rental application actorapp_run = client.actor("your-application-actor-id").call(run_input={"zpid": zpid,"name": "Sarah Johnson","email": "sarah.johnson@gmail.com","phoneNumber": "+12125551234"})# Check application resultapp_results = list(client.dataset(app_run["defaultDatasetId"]).iterate_items())if app_results and app_results[0]["success"]:print(f"β Successfully applied to ZPID {zpid}")else:error = app_results[0].get("error", "Unknown error") if app_results else "No response"print(f"β Failed to apply to ZPID {zpid}: {error}")
JavaScript - Batch Application from Search
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'your_apify_token' });// Step 1: Search for propertiesconsole.log('Searching for rental properties...');const searchRun = await client.actor('your-search-actor-id').call({locations: ['Los Angeles CA'],propertyType: 'forRent',minPrice: 3000,maxPrice: 5000,minBedrooms: 3,homeTypes: ['singleFamily', 'townhome']});// Step 2: Get search resultsconst { items } = await client.dataset(searchRun.defaultDatasetId).listItems();// Step 3: Apply to all matching properties in parallelconst applications = items.filter(item => item.rawData.property.daysOnZillow <= 3) // Only very new listings.map(item => {const zpid = item.rawData.property.zpid;console.log(`Applying to ZPID ${zpid}...`);return client.actor('your-application-actor-id').call({zpid,name: 'Michael Chen',email: 'michael.chen@gmail.com',phoneNumber: '+13105551234',message: 'Custom message here...'});});// Wait for all applications to completeconst results = await Promise.all(applications);// Report resultsconsole.log(`\nπ Application Summary:`);console.log(`Total applications: ${results.length}`);results.forEach(async (run, index) => {const { items: appResults } = await client.dataset(run.defaultDatasetId).listItems();const result = appResults[0];if (result.success) {console.log(`β ZPID ${result.zpid}: Success`);} else {console.log(`β ZPID ${result.zpid}: ${result.error}`);}});
Integration Pattern: Search β Filter β Apply
Recommended Workflow:
- Use
zillow-bulk-scraperorzip-code-searchto find matching properties - Filter results programmatically (price, location, features, days on market)
- Call this actor with filtered property ZPIDs for batch application
- Track success/failure rates and landlord responses
Pricing
See the Pricing tab for current rates and billing terms.
π‘ Advanced Usage
Batch Application to Multiple Properties
Apply to 50+ properties in one run by calling the actor multiple times in parallel:
from apify_client import ApifyClientimport asyncioclient = ApifyClient("your_apify_token")# List of properties to apply toproperties = [{"zpid": 2069918407, "url": "https://zillow.com/..."},{"zpid": 458222521, "url": "https://zillow.com/..."},{"zpid": 123456789, "url": "https://zillow.com/..."},# ... 50 more properties]# Your application detailsapplicant_info = {"name": "Sarah Johnson","email": "sarah.johnson@gmail.com","phoneNumber": "+12125551234"}# Apply to all propertiesfor prop in properties:run_input = {**applicant_info, "zpid": prop["zpid"]}print(f"Applying to ZPID {prop['zpid']}...")run = client.actor("your-actor-id").call(run_input=run_input)# Check resultresults = list(client.dataset(run["defaultDatasetId"]).iterate_items())if results and results[0]["success"]:print(f"β Success: {prop['zpid']}")else:error = results[0].get("error", "Unknown") if results else "No response"print(f"β Failed: {prop['zpid']} - {error}")
Scheduled Automation - Apply to New Listings Daily
Set up automated applications to new listings matching your criteria:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'your_apify_token' });// Create scheduled run (daily at 8 AM)const schedule = await client.schedules().create({name: 'Daily Auto-Apply to New Rentals',actorId: 'your-application-actor-id',cronExpression: '0 8 * * *', // Daily at 8 AMtimezone: 'America/New_York',input: {zpid: 2069918407, // Update with dynamic ZPID from searchname: 'Alex Rivera',email: 'alex.rivera@gmail.com',phoneNumber: '+14165551234'}});console.log(`Scheduled automation created: ${schedule.id}`);
Custom Message Templates by Property Type
Customize your message based on property characteristics:
function getMessageForProperty(property) {const bedrooms = property.rawData.property.bedrooms;const price = property.rawData.property.price.value;if (bedrooms >= 3 && price > 3500) {// Luxury family homereturn `Hello,\n\nI'm interested in this beautiful ${bedrooms}-bedroom property. My family and I are looking for a long-term rental in a quality neighborhood, and your property perfectly fits our needs.\n\nWe have excellent credit, stable employment, and can provide strong references from previous landlords.\n\nBest regards,\n{name}`;} else if (bedrooms === 1) {// Studio/1BRreturn `Hello,\n\nI'm a young professional interested in your ${bedrooms}-bedroom apartment. I work in tech with a stable income and am looking for a clean, well-maintained property.\n\nI'm a quiet, responsible tenant who takes great care of rental properties.\n\nBest regards,\n{name}`;} else {// Standard applicationreturn null; // Use default template}}
π API Integration
Python
from apify_client import ApifyClient# Initialize the Apify clientclient = ApifyClient("your_apify_token")# Prepare application inputrun_input = {"zpid": 2069918407,"name": "Sarah Johnson","email": "sarah.johnson@gmail.com","phoneNumber": "+12125551234","message": "Hello,\n\nI'm interested in applying for this property..."}# Submit applicationprint("Submitting rental application...")run = client.actor("your-actor-id").call(run_input=run_input)# Get application resultprint("Checking application status...")for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item["success"]:print(f"β Application submitted successfully!")print(f" ZPID: {item['zpid']}")print(f" Property: {item['propertyUrl']}")print(f" Applicant: {item['applicantName']}")print(f" Email: {item['applicantEmail']}")else:print(f"β Application failed")print(f" ZPID: {item['zpid']}")print(f" Error: {item.get('error', 'Unknown error')}")
JavaScript/TypeScript
import { ApifyClient } from 'apify-client';// Initialize the Apify clientconst client = new ApifyClient({ token: 'your_apify_token' });// Prepare application inputconst input = {propertyUrl: 'https://www.zillow.com/homedetails/137A-Christopher-St-1B-New-York-NY-10014/458222521_zpid/',name: 'Michael Chen',email: 'michael.chen@gmail.com',phoneNumber: '+14165551234'};// Submit applicationconsole.log('Submitting rental application...');const run = await client.actor('your-actor-id').call(input);// Get application resultconsole.log('Checking application status...');const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => {if (item.success) {console.log('β Application submitted successfully!');console.log(` ZPID: ${item.zpid}`);console.log(` Property: ${item.propertyUrl}`);console.log(` Applicant: ${item.applicantName}`);console.log(` Email: ${item.applicantEmail}`);} else {console.log('β Application failed');console.log(` ZPID: ${item.zpid}`);console.log(` Error: ${item.error || 'Unknown error'}`);}});
π Data Export
Export your application records in multiple formats:
- JSON - Perfect for programmatic analysis and record keeping
- CSV - Import into spreadsheets for tracking success rates
- Excel - Create professional application logs with formatting
π€ Automation
Scheduled Runs
Set up automated application submission:
- Daily monitoring - Apply to new listings every morning
- Instant response - Be first to apply when properties match criteria
- Competitive edge - Beat other applicants in hot markets
Webhooks
Receive real-time notifications:
- Success alerts - Know immediately when applications are submitted
- Error notifications - Get alerted if applications fail
- Integration endpoints - Send results to your CRM or tracking system
API Access
Build custom workflows:
- Search-to-apply pipelines - Automate the entire apartment hunting process
- CRM integration - Track applications in your property management system
- Custom dashboards - Monitor application success rates over time
β FAQ
Q: How does automated application submission work? A: The actor sends a request to apply for a rental. Provide a property ID or URL, your name, email, phone number and message. It does not complete screening or upload documents.
Q: How fast is application submission? A: Duration depends on the listing and source response. Each run processes one rental request.
Q: Does this work with all Zillow rental properties? A: The actor works with properties that accept application requests without login. Some properties require tenant login for direct applications - these will return an error with details.
Q: What phone number formats are supported? A: Currently US and Canada only, in international format: +1XXXXXXXXXX (e.g., +12125551234). The phone number must be exactly 12 characters.
Q: Can I customize the application message? A: Yes! You can provide a fully custom message, or use the professional default template. Use the {name} placeholder to automatically insert your name.
Q: How do I know if an application succeeded? A: Each request returns a success/failure status. Success refers to submission of the request, not a completed application or landlord approval. Failure includes an error description.
Q: Can I apply to multiple properties at once? A: Yes! Call the actor multiple times (in parallel or sequentially) with different ZPIDs. Each run processes one property, so you can batch by running multiple actors simultaneously.
Q: Can I integrate this with search actors? A: Absolutely! This is the recommended workflow: Use zillow-bulk-scraper or zip-code-search to find properties, filter results programmatically, then call this actor to apply to matching properties.
Q: What information is included in the application? A: The application includes your name, email, phone number, and your message to the landlord. All fields are validated before submission.
Q: Will I get a confirmation email? A: Yes! Zillow automatically sends a confirmation email to the email address you provided, confirming that your application request was submitted to the landlord.
Q: Will my Zillow profile information be visible to landlords? A: Yes. Zillow automatically detects your account using the email you provide. If you have a Zillow renter profile with additional information (credit score, rental history, income verification, etc.), landlords will be able to view this profile information along with your application.
Q: Is my information secure? A: Yes. The actor only submits your information directly to Zillow's application system. No personal data is stored or logged (except in your dataset output for your own records).
Q: What's the cost? A: See the Pricing tab for current rates and billing terms.
Q: Can I schedule automated applications? A: Yes! Set up scheduled runs through Apify to automatically apply to properties on a daily, weekly, or custom schedule.
Q: What happens if a property doesn't accept applications? A: The actor will return an error message explaining why the application couldn't be submitted (e.g., "Login required for this property"). Your run will still succeed - only that specific property application will show as failed.
Q: Can I track my application history? A: Yes! All application results are stored in the dataset output, including success/failure status, timestamps, and the exact message sent to each landlord.
π Getting Started
1. Account Setup
- Sign up for Apify (free tier available, no credit card required)
- Review current billing terms in the Pricing tab
- Get your API token from account settings
2. Prepare Your Application
- Gather property details - ZPID or URL from Zillow listing
- Prepare your information - Name, email, phone (+1XXXXXXXXXX format)
- Customize message (optional) - Write a personalized message or use the default
3. Submit Your First Application
- Click "Start" with your input configuration
- Monitor progress in real-time through the run log
- Check dataset output for success confirmation
- Review the exact message that was sent to the landlord
4. Scale & Automate
- Use Apify API to integrate with search actors
- Set up webhooks for real-time success notifications
- Create scheduled runs for daily application automation
- Build search-to-apply pipelines for complete automation
- Track success rates across different properties and markets
π§ Support
- Email: max@mapa.slmail.me
- Feature Requests: Email or submit via issues
- Response Time: Typically within 24 hours
βοΈ Legal Compliance
This actor automates submission of rental applications through Zillow's public application system. Users are responsible for:
- Truthful information: Only submit accurate, truthful information in applications
- Legitimate intent: Use only for genuine rental applications, not spam or abuse
- Terms compliance: Follow Zillow's Terms of Service and applicable laws
- Privacy: Comply with data protection regulations (GDPR, CCPA)
Responsible Use: This tool is intended for legitimate rental application purposes. Do not use for spam, harassment, fraudulent applications, or any activities that violate platform terms or housing laws.
π Start Submitting Rental Applications Now
Automate your apartment hunt and never fill out rental forms manually again - submit to dozens of properties in seconds with professional, customizable applications at one simple monthly price.

