Zillow platform500 trial credits · No credit card required

Zillow Batch listing details API

Collect up to five Zillow native IDs with individual source outcomes. Get structured JSON through one RealtyCrawl API key.

Send native_ids as an array of one to five unique numeric Zillow ZPID strings. Optional transaction and status selectors apply to the batch. Inspect each ID’s success or failure outcome. This operation requests source data through its enabled adapter. Preserve observation times, source warnings and any idempotent-replay metadata. Check live capabilities for accepted inputs and availability before running your request.

Zillow API

What can you do with the Batch listing details API?

Collect up to five Zillow native IDs with individual source outcomes.

Example request

curl --request POST 'https://realtycrawl.dev/v1/zillow/listings/batch' \
  --header "x-api-key: $REALTYCRAWL_API_KEY" \
  --header 'X-Max-Credits: 50' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: YOUR_IDEMPOTENCY_KEY' \
  --data '{"native_ids":["29419686"]}'

Parameters

Parameters for Zillow Batch listing details API
ParameterRequiredDescription
native_idsYesnative ids
transactionNoTransaction type: sale, rent, lease, or auction. Support varies by source.
statusNoAn array of listing statuses to include, where supported.

Send native_ids as an array of one to five unique numeric Zillow ZPID strings. Optional transaction and status selectors apply to the batch. Inspect each ID’s success or failure outcome.

Example response

What does the Zillow Batch listing details API return?

The response includes an array of per-ID batch outcomes in data, plus source outcomes and request metadata. Explore the structure below before making a call.

Illustrative response
{
  "data": [
    {
      "native_id": "29419686",
      "status": "success",
      "listing": {
        "id": "example_listing",
        "source": {
          "platform": "zillow",
          "native_id": "29419686",
          "url": null,
          "provider": "example",
          "observed_at": "2026-01-01T12:00:00Z",
          "access_class": "public_portal"
        },
        "transaction": "sale",
        "status": "unknown",
        "property": {
          "id": null,
          "address": {
            "country": "US"
          },
          "property_type": "unknown"
        },
        "price": {
          "amount": null,
          "currency": null,
          "kind": "unknown"
        },
        "observed_at": "2026-01-01T12:00:00Z",
        "native_id": "29419686"
      },
      "error_code": null
    }
  ],
  "meta": {
    "request_id": "example_request",
    "schema_version": "1.0.0",
    "generated_at": "2026-01-01T12:00:00Z",
    "completeness": "unknown",
    "sources": [
      {
        "platform": "zillow",
        "status": "success"
      }
    ]
  }
}

Schema example with placeholder values; not a live source result. Actual fields, values, and completeness vary by source and request.

API details

How does the Zillow Batch listing details API work?

Send a POST request with your API key and accepted inputs. RealtyCrawl returns structured JSON and preserves the source context for your application.

Method

POST

Response

JSON · CSV · NDJSON

POST /v1/zillow/listings/batch
Why RealtyCrawl

Why use RealtyCrawl for Zillow Batch listing details?

Keep source collection behind a shared interface so you can focus on the product you’re building.

Developer first

How do you bring real estate data into your app?

Use familiar HTTP requests, inspect a common schema, and connect the results to the tools your team already uses.

One key, many sources

Use the same credential across supported operations and check capabilities for each source.

Property data with context

Keep currencies, area units, source identifiers, and observation times with your results.

Your language, your workflow

Call the API with cURL, Python, TypeScript, or any backend that can send an HTTP request.

import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'zillow'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=zillow'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=zillow'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'redfin'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=redfin'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=redfin'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'realtor'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=realtor'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=realtor'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'rightmove'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=rightmove'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=rightmove'
import requests

# Check current source availability before collecting.
response = requests.get(
    'https://realtycrawl.dev/v1/meta/capabilities',
    params={'platform': 'idealista'}
)
response.raise_for_status()
capabilities = response.json()
// Check current source availability before collecting.
const response = await fetch(
  'https://realtycrawl.dev/v1/meta/capabilities?platform=idealista'
);
if (!response.ok) throw new Error('Request failed');
const capabilities = await response.json();
curl 'https://realtycrawl.dev/v1/meta/capabilities?platform=idealista'
Capability excerpt · illustrative
{
  "platform": "zillow",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "redfin",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "realtor",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "US"
  ],
  "execution": "sync"
}
{
  "platform": "rightmove",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "GB"
  ],
  "execution": "sync"
}
{
  "platform": "idealista",
  "operation": "searchPlatformListings",
  "status": "active",
  "geographies": [
    "ES"
  ],
  "execution": "sync"
}
Browse the platform catalog
FAQ

Have a question?
We got answers

Find answers to common questions about Zillow requests, responses, and credits.

Contact us
How can I try the Zillow Batch listing details API?

Create an account for 500 trial credits, check live capabilities for Zillow, and use the example request above with your API key. This operation lists 50 credits per successful item.

What does the Batch listing details API return?

The JSON response contains an array of per-ID batch outcomes in data. The meta object carries request diagnostics and source outcomes. CSV/NDJSON exports contain data records with request and credit metadata in headers.

Where do I put the request parameters?

Send native_ids as an array of one to five unique numeric Zillow ZPID strings. Optional transaction and status selectors apply to the batch. Inspect each ID’s success or failure outcome.

Is this endpoint available for every market?

Availability is operation-specific. Check /v1/meta/capabilities for the platform’s live status, accepted selectors, and markets. Unavailable requests are not charged.

Is this an official Zillow endpoint?

RealtyCrawl is an independent real estate data API and is not affiliated with Zillow.

Ready to use Zillow Batch listing details?

Get your API key and start building a source-linked property workflow.

Get an API key

50 credits per successful item · Failed calls are refunded