Skip to main content
GET
Read a market data result
Use result_url unchanged on the API origin and authenticate with a Key permitted to read every Run. The response uses the same fields as the initial Solution response. HTTP 200 can still carry result_status: pending; keep polling until status is terminal. This read creates no Runs, calls no Providers and does not resume fallback.

Query Parameters

token
string
required

Opaque result context returned in result_url. Keep it unchanged and authenticate with a Key permitted to read every listed Run.

Required string length: 1 - 16384

Response

MarketDataResult

id
string
required
run_url
string
required

Open this Run in the console. Requires Workspace membership.

provider
string
required
Pattern: ^[a-z0-9][a-z0-9-]*$
endpoint
string
required
Pattern: ^\/.+$
endpoint_version
integer
required
status
enum<string>
required

QUEUED or RUNNING: still in progress. COMPLETED: a Provider response is available, including non-2xx responses. FAILED: read failure. STOPPED: stopped before dispatch. Read charge_usd separately from status.

Available options:
QUEUED,
RUNNING,
COMPLETED,
FAILED,
STOPPED
failure
object | null
required

Why the Run failed. Non-null only when status is FAILED.

input
object
required
output
object
required

Normalized fields per action. The Provider's native output is not repeated here; it stays on the Run (GET /v1/runs/:id). Values a Provider does not report are null; an empty answer keeps the action's shape with every field null (or items: []) and result_status no_result. Money is USD unless the action carries a currency field. Dates named *_date are YYYY-MM-DD, *_at are ISO 8601 UTC, and *_text is display text exactly as returned.

  • property_value: address, property_type, bedrooms, bathrooms, living_area_sqft (living area), lot_size_sqft, year_built, latitude, longitude, estimated_value_usd, value_low_usd, value_high_usd, comparables_count (number of comparable sales behind the estimate)
  • property_rent: address, property_type, bedrooms, bathrooms, living_area_sqft (living area), lot_size_sqft, year_built, latitude, longitude, estimated_rent_usd (monthly), rent_low_usd, rent_high_usd, comparables_count (number of comparable rentals behind the estimate)
  • property_search: items[]: property_id, address, property_type, bedrooms, bathrooms, living_area_sqft (living area), lot_size_sqft, year_built, latitude, longitude, last_sale_price_usd, last_sale_date (YYYY-MM-DD), owner_names[], owner_type, owner_mailing_address, owner_occupied
  • listings_sale: items[]: listing_id, address, property_type, bedrooms, bathrooms, living_area_sqft (living area), lot_size_sqft, year_built, latitude, longitude, status, listing_type, listed_date (YYYY-MM-DD), days_on_market, hoa_fee_usd (monthly HOA fee), mls_name, mls_number, agent {name, phone, email, website}, office {name, phone, email, website}, price_usd (asking price)
  • listings_rental: items[]: listing_id, address, property_type, bedrooms, bathrooms, living_area_sqft (living area), lot_size_sqft, year_built, latitude, longitude, status, listing_type, listed_date (YYYY-MM-DD), days_on_market, hoa_fee_usd (monthly HOA fee), mls_name, mls_number, agent {name, phone, email, website}, office {name, phone, email, website}, monthly_rent_usd
  • market_stats: zip, updated_at (ISO 8601 UTC, when RentCast last refreshed the aggregate), sale {average_price_usd, median_price_usd, average_price_per_sqft_usd, median_price_per_sqft_usd, average_days_on_market, median_days_on_market, total_listings, new_listings}, rental {average_rent_usd, median_rent_usd, average_rent_per_sqft_usd, median_rent_per_sqft_usd (monthly rent), average_days_on_market, median_days_on_market, total_listings, new_listings}
  • stock_quote: symbol, name, exchange, currency, price (regular-session last price, in currency; Google Finance quotes may be delayed), change (absolute, in currency, vs the previous regular close), change_percent (percent points vs the previous regular close: 1.5 = 1.5%), extended_hours_session (the session label as shown, e.g. Pre-market or After hours; null during regular hours), extended_hours_price, extended_hours_change and extended_hours_change_percent (the extended-hours quote vs the regular-session price, same units), as_of_text (the Google Finance page timestamp exactly as shown, not ISO and not the time of price)
provider_response
object | null
required

Non-null only when status is COMPLETED.

  • For 2xx responses, output contains Provider-native JSON (any shape), or null for an empty body.
  • For non-2xx responses, error contains the Provider's error body and output is null.

Sensitive fields are removed from both bodies.

charge_usd
string | null
required

Total charge of runs in this Solution response. Null until all listed Runs settle. Each Run retains its own charge; failures can also be charged.

Pattern: ^(0|[1-9]\d*)\.(\d{2}|\d{2}\d{0,3}[1-9])$
charge_basis
object | null
required

Single-Run charge basis, or null for a multi-Run total. Read runs[].charge_basis for each charge.

stoppable
boolean
required

Whether a stop request can currently be accepted. This does not guarantee that the Run can stop before dispatch.

stop_requested_at
string<date-time> | null
required

When a stop was requested. The Run can still continue if dispatch had already started.

created_at
string<date-time>
required

ISO-8601 UTC timestamp

started_at
string<date-time> | null
required

ISO-8601 UTC timestamp

completed_at
string<date-time> | null
required

ISO-8601 UTC timestamp

task_id
string | null
required
metadata
object
required

Your stored tracking fields. Use them to filter Runs. They never go to the Provider or affect routing, Price, or idempotency.

  • Up to 20 keys: lowercase letters, digits, and underscores; start with a letter; at most 40 characters.
  • Values: strings of 1–500 characters.
  • user_id: your End user's opaque ID, never their email address or name.
action
enum<string>
required
Available options:
property_value,
property_rent,
property_search,
listings_sale,
listings_rental,
market_stats,
stock_quote
result_status
enum<string>
required

Business delivery status, independent of the final Run lifecycle in status. no_result is an empty but valid answer; error means the Provider output could not be delivered.

Available options:
success,
no_result,
error,
pending
error
object | null
required
runs
object[]
required
result_url
string
required

Authenticated, read-only URL path for polling this normalized result and total charge. Use with the API origin. Does not create Runs or resume fallback. GET /v1/runs/:id still returns the native, individual Run.