{
  "mode": "merchants",
  "query": {
    "neighborhood": "embarcadero",
    "include_nearby": true,
    "service": null,
    "day": null,
    "date": null,
    "time_after": null,
    "time_before": null,
    "open_on_date": false,
    "open_after": null,
    "has_booking": null,
    "depth": null,
    "q": null,
    "view": "summary",
    "limit": 20,
    "offset": 0,
    "resolved": {
      "neighborhood": "embarcadero"
    }
  },
  "total": 5,
  "count": 5,
  "limit": 20,
  "offset": 0,
  "next_offset": null,
  "results": [
    {
      "ref": "san-francisco/hair-salon/hairshaper",
      "name": "Hair Shaper",
      "depth": "profiled",
      "depth_note": "Profiled: researched in depth from the salon’s own website and online booking system — normalized haircut offerings, online-booking prices, stylists (booking-system names), booking rules and candidate start times.",
      "last_verified_at": "2026-10-24T00:30:36Z",
      "neighborhood": "Financial District / South Beach",
      "address": "121 Spear St Suite B10, San Francisco, CA 94105",
      "phone": "(415)979-9772",
      "booking_cta": {
        "label": "Book on Bookzilla",
        "url": "https://agentsalonsf.com/out?m=san-francisco/hair-salon/hairshaper&to=https%3A%2F%2Fbook.appt.cm%2F%23%2Fbusiness%2Fc5207a75-f584-4b11-a61d-4e2a106f898a%2Fembed%2Fview"
      },
      "license_status": null,
      "hours_for_day": {
        "day": "Fr 2026-10-23",
        "status": "open_per_published_hours",
        "hours": "09:00–18:30",
        "note": "Published opening hours, not live appointment slots.",
        "unconfirmed": false,
        "conflict": false
      },
      "matched_offerings": [
        "Beard orBand Trim: $21, 20 min",
        "Buzz cut: $35, 20 min",
        "Hair Cut for Short hair: $37, 30 min"
      ],
      "price_note": "Prices as published by the business.",
      "availability_basis": "schedule_candidates",
      "candidate_start_times": {
        "slotBasis": "schedule_candidates",
        "bookingsSubtracted": false,
        "slotBasisLabel": "candidate start times from the salon's published staff schedule; existing bookings are not subtracted, so some may already be taken — confirm on the booking page",
        "availability_basis": "schedule_candidates",
        "confirmed": false,
        "freshness": "fresh",
        "captured_at": "2026-10-24T00:30:36.306Z",
        "query": "https://agentsalonsf.com/api/v1/availability?salon=hairshaper&offering=<offering id>&date=2026-10-23"
      },
      "canonical_url": "https://agentsalonsf.com/salons/hairshaper",
      "freshness": {
        "data_refreshed_at": "2026-10-23T05:54:36Z",
        "prices_checked_at": "2026-10-23T05:54:36Z"
      },
      "not_verified": "live appointment slots; not confirmed by phone"
    },
    {
      "ref": "san-francisco/hair-salon/one-twenty-for-hair-financial-district-south-beach",
      "name": "One-Twenty For Hair",
      "depth": "listed",
      "depth_note": "Listed: imported from public records (CA licence data, SF business registry, OpenStreetMap) and the business’s own website; not profiled in depth.",
      "last_verified_at": "2026-10-22T17:32:18Z",
      "neighborhood": "Financial District / South Beach",
      "address": "155 Main St, San Francisco, CA 94105",
      "phone": null,
      "booking_cta": {
        "label": "Book on Fresha",
        "url": "https://agentsalonsf.com/out?m=san-francisco/hair-salon/one-twenty-for-hair-financial-district-south-beach&to=https%3A%2F%2Fwww.fresha.com%2Fa%2Fone-twenty-for-hair-san-francisco-155-main-street-h95ft5ok"
      },
      "license_status": "current",
      "hours_for_day": {
        "day": "Fr 2026-10-23",
        "status": "hours_unknown",
        "hours": null,
        "note": "Published opening hours, not live appointment slots.",
        "unconfirmed": true,
        "conflict": false
      },
      "matched_offerings": [
        "Deep Conditioning Treatment: from $40",
        "Blow-Dry: from $50",
        "Up-Do: from $60"
      ],
      "price_note": "Starting prices as published by the business; the final price may be higher.",
      "availability_basis": "none",
      "canonical_url": "https://agentsalonsf.com/salons/one-twenty-for-hair-financial-district-south-beach",
      "freshness": {
        "data_refreshed_at": "2026-10-23T11:05:07Z",
        "prices_checked_at": "2026-10-22T17:32:15Z"
      },
      "not_verified": "live appointment slots; not confirmed by phone"
    },
    {
      "ref": "san-francisco/hair-salon/dune-barbershop-financial-district-south-beach",
      "name": "Dune Barbershop",
      "depth": "listed",
      "depth_note": "Listed: imported from public records (CA licence data, SF business registry, OpenStreetMap) and the business’s own website; not profiled in depth.",
      "last_verified_at": "2026-10-22T17:34:46Z",
      "neighborhood": "Financial District / South Beach",
      "address": "100 Market St, San Francisco, CA",
      "phone": null,
      "booking_cta": {
        "label": "Book on Fresha",
        "url": "https://agentsalonsf.com/out?m=san-francisco/hair-salon/dune-barbershop-financial-district-south-beach&to=https%3A%2F%2Fwww.fresha.com%2Fa%2Fdune-barbershop-san-francisco-100-market-street-y2lt1lxd"
      },
      "license_status": null,
      "hours_for_day": {
        "day": "Fr 2026-10-23",
        "status": "hours_unknown",
        "hours": null,
        "note": "Published opening hours, not live appointment slots.",
        "unconfirmed": true,
        "conflict": false
      },
      "matched_offerings": [],
      "price_note": "No matching published prices.",
      "availability_basis": "none",
      "canonical_url": "https://agentsalonsf.com/salons/dune-barbershop-financial-district-south-beach",
      "freshness": {
        "data_refreshed_at": "2026-10-23T11:05:07Z",
        "prices_checked_at": null
      },
      "not_verified": "live appointment slots; not confirmed by phone"
    },
    {
      "ref": "san-francisco/hair-salon/diva-international-financial-district-south-beach",
      "name": "Diva International",
      "depth": "listed",
      "depth_note": "Listed: imported from public records (CA licence data, SF business registry, OpenStreetMap) and the business’s own website; not profiled in depth.",
      "last_verified_at": "2026-10-22T17:09:35Z",
      "neighborhood": "Financial District / South Beach",
      "address": "1 Market St, San Francisco, CA 94105",
      "phone": null,
      "booking_cta": null,
      "license_status": "current",
      "hours_for_day": {
        "day": "Fr 2026-10-23",
        "status": "hours_unknown",
        "hours": null,
        "note": "Published opening hours, not live appointment slots.",
        "unconfirmed": true,
        "conflict": false
      },
      "matched_offerings": [
        "Fringe: from $15, 15 min",
        "Flat or Curly Iron: from $20, 15 min",
        "Conditioning Treatments (add-on: from $20, 15 min"
      ],
      "price_note": "Starting prices as published by the business; the final price may be higher.",
      "availability_basis": "none",
      "canonical_url": "https://agentsalonsf.com/salons/diva-international-financial-district-south-beach",
      "freshness": {
        "data_refreshed_at": "2026-10-23T11:05:07Z",
        "prices_checked_at": "2026-10-22T14:51:51Z"
      },
      "not_verified": "live appointment slots; not confirmed by phone"
    },
    {
      "ref": "san-francisco/hair-salon/ahmets-barber-and-hair-styling-financial-district-south-beach",
      "name": "Ahmet's Barber and Hair Styling",
      "depth": "listed",
      "depth_note": "Listed: imported from public records (CA licence data, SF business registry, OpenStreetMap) and the business’s own website; not profiled in depth.",
      "last_verified_at": "2026-10-22T17:09:35Z",
      "neighborhood": "Financial District / South Beach",
      "address": "201 Sacramento St, San Francisco, CA 94111",
      "phone": null,
      "booking_cta": null,
      "license_status": "delinquent",
      "hours_for_day": {
        "day": "Fr 2026-10-23",
        "status": "hours_unknown",
        "hours": null,
        "note": "Published opening hours, not live appointment slots.",
        "unconfirmed": true,
        "conflict": false
      },
      "matched_offerings": [],
      "price_note": "No matching published prices.",
      "availability_basis": "none",
      "canonical_url": "https://agentsalonsf.com/salons/ahmets-barber-and-hair-styling-financial-district-south-beach",
      "freshness": {
        "data_refreshed_at": "2026-10-23T11:05:07Z",
        "prices_checked_at": null
      },
      "not_verified": "live appointment slots; not confirmed by phone"
    }
  ],
  "warnings": [],
  "notes": "Summary view (default): hours_for_day is published opening hours for `date` (default: today in the city’s timezone), not live slots; matched_offerings are up to 3 offerings for `service` (else the 3 cheapest). Offering constraints (haircut_type, hair_length, max_price, stylist, specialty, require_availability, after, before) are applied here too: only salons with an offering meeting all of them are returned, and only those offerings are shown; max_price counts only prices known to be within the cap; require_availability=true (with date/after/before as the window) counts only provider-confirmed start times — none exist today — and salons with only schedule-derived candidates are listed under `unconfirmed`. Use view=full for every field, https://agentsalonsf.com/api/v1/merchants/{ref} for full provenance, and https://agentsalonsf.com/api/v1/availability?ref=&date=&service= for a one-salon booking answer. To book, open booking_cta.url (the business’s own booking page). Ordered by depth (profiled, then detailed, then listed), then: businesses with published prices and online booking first, then online booking, then published prices, then the rest; within each group by how complete the published information is, then alphabetically. No paid placement.",
  "dataset_revision": "b-merchants@2026-10-23T11:05:07Z#4f15ef234749",
  "attribution": "Data © OpenStreetMap contributors (ODbL), DataSF (ODC-PDDL), California DCA licensee data, and the businesses’ own websites."
}