Real Estate

Commercial Property

/extract/json

Schema for commercial real estate property listings including office, retail, and industrial.

Download the schemareal-estate/commercial-property.json

commercial-property.schema

// names marked ? are optional

address:string// Street address of the commercial property. Commonly found in: listing page header, property details section, contact block.
city:string// City where the property is located. Commonly found in: listing address, breadcrumb navigation, property header.
state:string// State or province of the property. Commonly found in: listing address, breadcrumb navigation, property header.
zip_code:string// ZIP or postal code. Commonly found in: listing address line, property details.
latitude?:number// Geographic latitude coordinate. Commonly found in: map embed data, JSON-LD structured data, page metadata.
longitude?:number// Geographic longitude coordinate. Commonly found in: map embed data, JSON-LD structured data, page metadata.
price?:number// Listing price or annual lease rate. Commonly found in: listing price header, property financials section, asking price display.
price_type:string// Whether the property is listed for sale or lease. Commonly found in: listing type badge, property header, transaction type field. One of: sale, lease, other.
lease_type?:string// Type of lease structure (Net, Gross, or Modified Gross). Commonly found in: lease details section, property financials, listing details table. One of: NNN, gross, modified_gross, other.
price_per_sqft?:number// Price or rent per square foot. Commonly found in: property financials section, listing stats, price breakdown.
cap_rate?:number// Capitalization rate as a percentage. Commonly found in: investment highlights, property financials, listing stats.
noi?:number// Net Operating Income (NOI) in dollars. Commonly found in: investment highlights, property financials, income section.
building_class?:string// Building class rating (A, B, or C). Commonly found in: property details table, building specs section, listing highlights. One of: A, B, C, other.
property_type:string// Type of commercial property. Commonly found in: listing header, property type badge, breadcrumb navigation. One of: office, retail, industrial, multifamily, mixed_use, land, other.
total_sqft?:number// Total square footage of the building. Commonly found in: property specs, building details, listing summary.
available_sqft?:number// Available square footage for lease. Commonly found in: availability section, space details, listing specs.
lot_size_sqft?:number// Total lot size in square feet. Commonly found in: property details table, land details, site specs.
year_built?:number// Year the building was constructed. Commonly found in: property details table, building specs, overview section.
floors?:number// Number of floors in the building. Commonly found in: building details, property specs table, listing details.
zoning?:string// Zoning classification of the property. Commonly found in: property details table, zoning section, public records link.
parking_ratio?:number// Parking spaces per 1,000 square feet. Commonly found in: parking details, property specs, building amenities.
loading_docks?:number// Number of loading docks (industrial properties). Commonly found in: industrial specs, property details, building features.
clear_height_ft?:number// Clear ceiling height in feet (industrial properties). Commonly found in: industrial specs, building features, property details table.
occupancy_rate?:number// Current building occupancy rate as a percentage. Commonly found in: investment highlights, property financials, occupancy section.
broker_name?:string// Name of the listing broker or agent. Commonly found in: broker contact card, listing agent section, sidebar.
broker_firm?:string// Name of the brokerage firm. Commonly found in: broker contact card, listing attribution, footer.
status?:string// Current listing status. Commonly found in: listing status badge, property header, availability section.
listing_date?:string// Date the property was listed. Commonly found in: listing stats section, property history, metadata.
page_title?:string// Title of the source page. Tabstack auto-fills this from page metadata when left empty.
favicon?:string// Favicon URL of the source page. Tabstack auto-fills this from page metadata when left empty.

Try it live

A sample Commercial Property document, generated from the schema. Edit it, or paste a real response, and see it checked against the schema instantly. It runs in your browser, nothing is sent anywhere.

your-output.json
validation

Valid, matches Commercial Property

Every required field is present and each value matches its type. Extra fields are allowed. A field the page does not carry is not guaranteed to come back as null, so check values rather than only checking for null.

/extract/json

Copy-paste usage

The same call in TypeScript, Python, and curl. Point it at your own URL and go. The schema drives the response, so you get back the fields you asked for instead of a page to parse.

Features

  • Typed TypeScript and Python SDKs
  • One call, no parsing code and no second LLM pass
  • The same field names on every request, even when the page layout changes
commercial-property.ts
// curl -sfLO https://raw.githubusercontent.com/Mozilla-Ocho/tabstack-schemas/main/real-estate/commercial-property.json
import Tabstack from '@tabstack/sdk'
import schema from './commercial-property.json' with { type: 'json' }

const client = new Tabstack() // reads TABSTACK_API_KEY from the environment

try {
  const data = await client.extract.json({
    url: 'https://example.com/listing/123',
    json_schema: schema,
    effort: 'standard', // 'min' | 'standard' | 'max'
  })

  console.log(data)
} catch (err) {
  console.error('Extraction failed:', err)
}

Ship this schema in one call.

Pass a URL, get matching JSON back. Free to start, no extraction layer to maintain.