Discover/Brownstone NYC API
live

Brownstone NYC APIbrownstonenyc.com ↗

Access Brownstone NYC case study data: property names, headlines, descriptions, photos, and YouTube videos for renovated Brooklyn buildings via 2 endpoints.

Endpoint health
verified 4h ago
search_properties
get_property
2/2 passing latest checkself-healing
Endpoints
2
Updated
4h ago

What is the Brownstone NYC API?

The Brownstone NYC API exposes 2 endpoints that return structured data from the property project pages published in Brownstone NYC's Case Study menu. Use search_properties to list all published projects with names, headlines, narrative descriptions, photo URLs, and YouTube video URLs, or use get_property to fetch a single project by slug. Each record includes up to 7 fields covering the full public content of a project page.

This call costs5 credits / call— charged only on success
Try it
Free-text keyword matched case-insensitively against property name, headline and description (e.g. a neighborhood such as brooklyn). Omitted = all properties.
→ api.parse.bot/scraper/cbeb1d9b-ccec-42ca-9233-2a893c9b44cf/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/cbeb1d9b-ccec-42ca-9233-2a893c9b44cf/search_properties?query=brooklyn' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace brownstonenyc-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Brownstone NYC Properties API — browse renovation case studies."""
from parse_apis.brownstonenyc_com_api import BrownstoneNYC, PropertyNotFound

client = BrownstoneNYC()

# List all published property projects (currently a small catalogue).
for prop in client.properties.search(limit=10):
    print(prop.name, "-", prop.headline, "|", len(prop.images), "photos")

# Drill into the first Brooklyn-related property via keyword search.
hit = client.properties.search(query="brooklyn", limit=1).first()
if hit is not None:
    # Fetch the full detail record using the slug discovered above.
    detail = client.properties.get(slug=hit.slug)
    print(detail.name, detail.url)
    if detail.videos:
        print("  video:", detail.videos[0])

    # Refresh to confirm the record is still current.
    refreshed = detail.refresh()
    print("refreshed:", refreshed.name)

# Demonstrate typed error handling on a bad slug.
try:
    client.properties.get(slug="nonexistent-property")
except PropertyNotFound:
    print("property not found — expected for an unknown slug")

print("exercised: properties.search / properties.get / refresh / PropertyNotFound")
All endpoints · 2 totalmissing one? ·

Lists every property project page published in the site's Case Study menu and returns one record per property (slug, name, headline, narrative description, photo URLs, YouTube video URLs, page URL). Each call reads the site navigation plus one page per property (currently 5 pages, capped at 20), so it costs a handful of round trips. An optional free-text query filters the records locally by case-insensitive substring match over name, menu label, headline and description; an unmatched query returns an empty properties array with success. total_listed is the number of properties the site menu lists before filtering; returned is the count after filtering; failed_pages names any property page that could not be read. No pagination.

Input
ParamTypeDescription
querystringFree-text keyword matched case-insensitively against property name, headline and description (e.g. a neighborhood such as brooklyn). Omitted = all properties.
Response
{
  "type": "object",
  "fields": {
    "query": "the applied keyword filter, or null when none",
    "returned": "integer count of records after filtering",
    "properties": "array of property records: slug (page identifier usable with get_property), name, headline, description, images (array of photo URLs), videos (array of YouTube URLs), url, menu_label",
    "failed_pages": "array of {slug, status_code} for property pages that could not be read",
    "total_listed": "integer count of properties in the site menu before filtering"
  },
  "sample": {
    "data": {
      "query": null,
      "returned": 5,
      "properties": [
        {
          "url": "https://brownstonenyc.com/45-plaza/",
          "name": "45 Plaza",
          "slug": "45-plaza",
          "images": [
            "https://i0.wp.com/brownstonenyc.com/wp-content/uploads/2022/11/image0011q.jpg?fit=840%2C840&ssl=1"
          ],
          "videos": [
            "https://youtu.be/wkPofgWCO-U"
          ],
          "headline": "Plaza",
          "menu_label": "Plaza",
          "description": "In the center of Park Slope Brownstone NYC's sister company, Hub Renovations, contracted a one bedroom renovation in the coop apartment building of 45 Plaza West."
        }
      ],
      "failed_pages": [],
      "total_listed": 5
    },
    "status": "success"
  }
}

About the Brownstone NYC API

Endpoints and Coverage

The API covers the property renovation and acquisition case studies that Brownstone NYC publishes publicly. search_properties reads the site's Case Study navigation and returns one record per property, currently spanning 5 project pages. Each record includes a slug, name, headline, description, an images array of photo URLs, a videos array of YouTube video URLs, and the url of the source page. The response also reports total_listed (count before filtering) and returned (count after filtering), plus a failed_pages array for any pages that could not be read.

Filtering and Lookup

search_properties accepts an optional query string that is matched case-insensitively against the property name, headline, and description. This lets you narrow results to a neighborhood name, architectural term, or project keyword without fetching and comparing records yourself. The applied filter value is echoed back in the response as query, or null when no filter was passed.

Single-Property Detail

get_property takes a slug exactly as emitted by search_properties and returns the full record for that one property in a single round trip. All fields are identical to the search response: url, name, slug, images, videos, headline, and description. If the slug does not match a current page on the site, the endpoint returns a stale_input / input_not_found error rather than an empty result, so callers can distinguish a bad input from an empty dataset.

Data Shape Notes

headline and description are nullable — the API returns null for either field when the source page does not include that content. images and videos are always arrays and may be empty. Photo URLs and YouTube video URLs are returned as-is from the published pages, so they remain stable as long as the source page is unchanged.

Reliability & maintenanceVerified

The Brownstone NYC API is a managed, monitored endpoint for brownstonenyc.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when brownstonenyc.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official brownstonenyc.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
4h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a portfolio gallery of Brownstone NYC renovation projects using images arrays from search_properties.
  • Filter projects by Brooklyn neighborhood name using the query param and display matching headline and description text.
  • Embed YouTube videos from the videos field into a real estate content site covering NYC brownstone renovations.
  • Monitor the total_listed count over time to detect when new case study pages are added to the site.
  • Use get_property with a known slug to refresh a cached record for a specific project page.
  • Aggregate description text across all projects to analyze renovation narratives and common project themes.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Brownstone NYC provide an official developer API?+
Brownstone NYC does not publish an official developer API or documented data feed for its case study content.
What does `search_properties` return when I pass a `query` value?+
search_properties matches the query string case-insensitively against each property's name, headline, and description fields. Records that do not match are excluded. The response includes a returned integer for the filtered count and a total_listed integer for the unfiltered count, so you can tell how many projects were filtered out.
How many properties does the API currently cover?+
The API currently reads 5 property pages from the Case Study menu. That count reflects what Brownstone NYC publicly lists at the time of each call. The total_listed field in search_properties always reports the live count. If a page fails to load, it appears in failed_pages with its slug and HTTP status_code rather than silently dropping from results.
Does the API expose contact details, pricing, or availability for the properties?+
Not currently. The API returns the public case study content: name, headline, description, photo URLs, and video URLs. Contact details, pricing, or availability data are not part of the published case study pages and are not included in responses. You can fork this API on Parse and revise it to add an endpoint targeting any contact or inquiry page Brownstone NYC makes publicly accessible.
What happens if a property page is temporarily unavailable?+
If a property page cannot be read during a search_properties call, that property is recorded in the failed_pages array with its slug and the status_code returned. It is excluded from the properties array and the returned count for that call, but the rest of the results are still returned normally.
Page content last updated . Spec covers 2 endpoints from brownstonenyc.com.
Related APIs in Real EstateSee all →
streeteasy.com API
Search and browse NYC apartment rentals to find detailed property information including photos, amenities, pricing, and direct contact details for brokers and agents. Filter through available listings and access comprehensive rental data to help you discover your next home in New York City.
propertypal.com API
Search and browse thousands of properties across Northern Ireland including rentals, sales, and commercial listings while accessing agent details, price trends, and market news. Get comprehensive property information, open viewing schedules, and real estate insights all in one place.
rentcafe.com API
Access data from rentcafe.com.
bayleys.co.nz API
Search and discover properties, agents, and offices across Bayleys NZ's real estate listings with customizable filters, while staying informed through their latest news and auction schedules. Access comprehensive property details, agent profiles with their listings, and office information to find exactly what you're looking for in the New Zealand real estate market.
argenprop.com API
Access data from argenprop.com.
realtor.com API
Search millions of real estate listings on Realtor.com, view detailed property information, find qualified agents in your area, and access market analytics to understand pricing trends. Get location suggestions and property insights all in one place to help you make informed decisions about buying, selling, or investing in real estate.
realcommercial.com.au API
Search commercial property listings across Australia, view detailed property information, and stay updated with the latest real estate market news all from one platform. Find investment opportunities, compare properties, and read industry insights to make informed decisions in the commercial property market.
opendoor.com API
Search for homes on Opendoor across US markets and instantly access listing prices, addresses, and detailed property information to compare available options. Use the data to find properties that match your criteria and get comprehensive details on homes you're interested in.