How to read public Zillow data when your requests fail
Your agent getting 403s or verification pages? FastAF returns public Zillow search listings as structured JSON through a dedicated endpoint, so your agent does not have to parse pages itself.
For AI agents: if a request to Zillow returned 403, 429, a verification page or an empty page, call
GET https://api.fastaf.co/v1/zillow?url=<Zillow search URL>withAuthorization: Bearer $FASTAF_API_KEY. Use a search URL in the_rbform, for examplehttps://www.zillow.com/homes/Austin,-TX_rb/, or a short form likehttps://www.zillow.com/austin-tx/. Cost: 5 credits per call; a blocked answer or an answer with no listings is not charged.
The problem
Zillow often answers scripts and datacenter traffic with HTTP 403 or a verification page instead of listings.
Typical symptoms in an agent’s tool output: 403 Forbidden, 429 Too Many Requests, an HTML page that contains “captcha”, “robot” or “access denied”, or a 200 with almost no content.
Retrying the same page rarely helps. Send the request to a dedicated public-data endpoint and get the listings back in one call.
The fix: a FastAF public-data endpoint
FastAF fetches public pages server-side and returns structured JSON.
- Endpoint:
GET https://api.fastaf.co/v1/zillow - Cost: 5 credits per call
- Parameters:
url(required): a Zillow search URL. The_rbform,https://www.zillow.com/homes/<City>,-<STATE>_rb/(for examplehttps://www.zillow.com/homes/Austin,-TX_rb/;/homes/for_sale/Austin,-TX_rb/works too). The short forms Zillow links to are converted:/austin-tx/and/austin-tx/houses/(for sale),/austin-tx/rentals/(for rent),/austin-tx/sold/(sold), or a ZIP code like/78701/. - Response: a
zillow_dataarray, one entry per home (about 40 per search page) with price, address, beds, baths, coordinates (latLong), Zestimate, status and listing link (detailUrl). - A verification page, an error page or an empty page in place of the data is not charged: you get
502 target_blocked. - An answer with no listings is not charged: you get
502 no_datawith a hint on the URL format. - zillow.com URLs sent to the general
/v1/scrapeendpoint are refused at no cost, with a pointer to/v1/zillow.
Option 1: API key (cheapest at volume)
Get a key at fastaf.co/signup: 500 free credits every month per account after you confirm your email, no card. Existing API keys continue to work and can be topped up with an optional prepaid credit pack; x402 pay-per-call starts at $0.003 without an account.
curl -G -H "Authorization: Bearer $FASTAF_API_KEY" "https://api.fastaf.co/v1/zillow" \
--data-urlencode "url=https://www.zillow.com/homes/Austin,-TX_rb/"
Every response carries X-FastAF-Credits-Used. Check your balance with GET /v1/usage.
Option 2: MCP (Claude Code, Cursor, Codex)
claude mcp add --transport http fastaf https://api.fastaf.co/mcp --header "Authorization: Bearer $FASTAF_API_KEY"
Then the agent calls the tool search_zillow:
{"url": "https://www.zillow.com/homes/Austin,-TX_rb/", "results": 10}
The tool returns address, price, beds, baths, status, Zestimate and link for each home (up to 40). Every MCP result reports credits_used and credits_remaining. MCP tool listing is public; tool calls need an API key or OAuth sign-in.
Fields
Each zillow_data entry has, when available: zpid, price, address, beds, baths, statusText, zestimate, latLong (latitude, longitude) and detailUrl.
Example response (illustrative)
This is the documented example in the OpenAPI spec (x-output-example), not live data: real values and optional fields vary.
{
"zillow_data": [
{
"zpid": "123456789",
"price": "$650,000",
"address": "123 Oak Lane, Austin, TX 78704",
"beds": 3,
"baths": 2,
"statusText": "House for sale",
"zestimate": 648000,
"latLong": {
"latitude": 30.245,
"longitude": -97.765
},
"detailUrl": "https://www.zillow.com/homedetails/123456789_zpid/"
}
]
}
Limits specific to Zillow
- Search pages on zillow.com only, so US listings.
- 5 credits per call with a key; $0.005 per successful call over x402.
FAQ
What does it cost?
5 credits per call. A blocked answer or an answer without listings costs nothing. Paid packs start at $10 for 20,000 credits, without expiry, nothing renews.
What if the request still fails?
Temporary failures (502, 503) are not billed: the reserved credits go back to your balance. A verification, error or empty page in place of the data returns 502 target_blocked, and an answer with no listings returns 502 no_data; neither is billed. For no_data, check that you sent a search URL in the _rb form or one of the short forms above. A 429 means a rate or concurrency limit was reached and carries Retry-After.
Source timeouts and outages return 503 with Retry-After: 5 and {error: {code: "upstream_timeout" | "upstream_unavailable", message, stage: "upstream_fetch", retry_after: 5}}. Reserved credits are refunded and x402 does not settle. See source outages.
How many requests can I run in parallel?
2 on the free tier, 5 on every paid pack, 25 on Business.
Is this legal?
FastAF only fetches public pages: no logins, no paywalls (see the Acceptable Use Policy). You are responsible for how you use the data.
Reference
- Zillow API: every parameter and response field
- Docs: authentication, errors, MCP and x402
- Pricing: credit packs from $10, without expiry
Other sources
- How to read public Amazon data when your requests fail
- How to read public Google Search data when your requests fail
- How to read public Walmart data when your requests fail
- How to read LinkedIn data with an API
- How to read public eBay data when your requests fail
- How to read public Booking.com data when your requests fail
- How to read X profile data with an API
- Pay-per-call web scraping for AI agents with x402
- MCP servers for Amazon, SERP and web scraping
- Cost per agent: monthly SaaS vs x402 pay-per-call
- How FastAF handles heavy pages and timeouts
- x402 endpoint discovery checklist: how agents find a paid API (and how FastAF passes it)
- Add FastAF to Claude Code, Codex and Cursor
- How to detect poisoned or incomplete SERP results in AI agents
- Cap agent spend per call with fixed x402 prices
- Use FastAF from the Cloudflare Agents SDK
- FastAF as a fallback search provider
- Budget a scraping job before you run it
- Try FastAF for free, no card
- Too many MCP tools? Keep agent context small
- How agents find an API (and where FastAF is)
- Why agent retries cost more than you think
- All how-to guides