Local business schema for web extraction
A local business schema captures the details that describe a physical place: its name, full address, phone number, website, opening hours, category, and average rating. People extract this to build directories, enrich CRM records, verify and deduplicate location data, or analyze a competitive landscape in a given city. Turning a business listing into structured fields means you can map, sort, and join records instead of copying contact details by hand. Business listings are written in countless layouts, so describing each field is far more durable than maintaining selectors for every site. You define what an address or a set of opening hours is, and the model reads it from the rendered page. Anything the page leaves out, such as a phone number on a sparse listing, comes back as null rather than a plausible-looking invention. For contact data that accuracy is essential, because a fabricated phone number or address is worse than an empty field your team can choose to fill in.
Fields in a Local business schema
The fields teams most often extract for a local business, what type each one is, and whether it is usually present.
| Field | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | The business name as displayed on the listing. This is the anchor field for directories and for matching against records you already hold, so it is required. |
| address | string | optional | The full street address as written on the page, including city and postal code where present. Returned as text so you keep the exact formatting the listing uses for later normalization. |
| phone | string | optional | The contact phone number shown on the listing, kept as a string to preserve formatting and extensions. Returns null when no number is published rather than an invented one. |
| website | string | optional | The business website URL. Lets you follow up for richer data, verify the listing, and link directory entries back to the company's own pages. |
| hours | string | optional | Opening hours as shown on the page, such as Mon to Fri 9am to 6pm. Kept as text because hours are phrased many ways, and set to null when no hours are listed. |
| category | string | optional | The type of business, such as Restaurant, Plumber, or Dental clinic. Useful for filtering a directory and for segmenting a competitive analysis by industry within an area. |
| rating | number | optional | The average customer rating as a number, usually on a five point scale. Returned when the listing publishes one, giving you a quick quality signal for ranking or shortlisting places. |
| reviewCount | number | optional | How many reviews back the rating, parsed as a number. Pairs with rating to gauge confidence, since a high score from a handful of reviews carries less weight than one from many. |
The schema
Copy this and send it with any URL.
{
"name": "string",
"address": "string",
"phone": "string",
"website": "string",
"hours": "string",
"category": "string",
"rating": "number",
"reviewCount": "number"
} Example output
Validated JSON back, matching the schema.
{
"name": "Maple Street Coffee Roasters",
"address": "412 Maple Street, Portland, OR 97205",
"phone": "(503) 555-0182",
"website": "https://example.com",
"hours": "Mon to Sat 7am to 7pm, Sun 8am to 4pm",
"category": "Coffee shop",
"rating": 4.7,
"reviewCount": 932
}