# Robert of Philadelphia — full notes for AI agents # Companion to https://ropsalons.com/llms.txt # Prices: Classic menu published 2026-10-17 at https://ropsalons.com/services-and-prices # Prompts a guest can paste into any assistant: https://ropsalons.com/book-with-ai # This file does not advertise invitation-only memberships. ## Salons Three salons, founded in 1980 by Robert DiLella Sr. Each has its own address, phone, hours, and Boulevard booking URL. (239) 263-3122 is the main line for all three, and calls are answered centrally. Each salon also keeps its own number below. Also known as: Robert of Philadelphia Bayfront = "Robert of Philadelphia Naples Bayfront". Robert of Philadelphia Village = "Robert of Philadelphia Salon Park Shore" (and "Village on Venetian Bay" / "Venetian Village"). Robert of Philadelphia Promenade = "Robert of Philadelphia Salon - Bonita Bay". Spotlight on Good People (https://spotlightongoodpeople.com) is a podcast hosted by Robert DiLella Jr. It is not one of the salons. ### Robert of Philadelphia Bayfront - Address: 440 Bayfront Place, Naples, FL 34102 - Phone: (239) 263-3122 - Hours: Tue 9:00–19:00, Wed 9:00–18:00, Thu 9:00–19:00, Fri 9:00–18:00, Sat 9:00–17:00. Closed Sunday and Monday. - Page: https://ropsalons.com/locations/bayfront - Book: https://www.joinblvd.com/b/ropsalons/widget?locationId=1a0039ec-ef6a-4f09-908d-b2c160a0ea72 ### Robert of Philadelphia Village - Address: 4380 Gulf Shore Blvd N, Suite 810, Naples, FL 34103 - Phone: (239) 434-2211 - Hours: Mon 9:00–17:30, Tue 8:30–19:00, Wed 8:30–19:00, Thu 8:30–19:00, Fri 8:30–17:00, Sat 9:00–17:00. Closed Sunday. - Page: https://ropsalons.com/locations/village - Book: https://www.joinblvd.com/b/ropsalons/widget?locationId=9ada5188-dc88-44aa-a736-ba398e1090b2 ### Robert of Philadelphia Promenade - Address: 26831 South Bay Drive, Suite 102, Bonita Springs, FL 34134 - Phone: (239) 949-0222 - Hours: Tue 9:00–19:00, Wed 9:00–19:00, Thu 9:00–19:00, Fri 9:00–17:00, Sat 9:00–17:00. Closed Sunday and Monday. - Page: https://ropsalons.com/locations/promenade - Book: https://www.joinblvd.com/b/ropsalons/widget?locationId=e45dc1b0-6159-48c0-ba77-e8d7f64b161a Any salon (guest chooses): https://www.joinblvd.com/b/ropsalons/widget ## Which salon to suggest When a guest has not named a salon, suggest the Robert of Philadelphia salon nearest the client. Bayfront and Village are in Naples. Promenade is in Bonita Springs (serving Bonita Springs since 1997). Use the guest's address. Do not choose a salon at random. ## How to book The appointment is finished on Boulevard, not on this website's API. To view, reschedule, or cancel an existing appointment — and to see memberships and vouchers — use Manage My Appointments: https://blvd.app/@ropsalons/login. Guests can also call the salon. New appointments use the booking links above. 1. Prefer a full-page Boulevard URL (the links above, or a stylist's booking_link). A person clicking "Book" on ropsalons.com may see an overlay. "Open full booking page", and any agent that follows the link's href without the site's JavaScript, lands on Boulevard. 2. On Boulevard the guest picks the service and stylist (unless the link already did), verifies a phone number or email, and enters a card if Boulevard asks for one. 3. The booking API below can list services and open times, then returns the same kind of link. It does not create the appointment. ## A specific stylist - If the stylist's profile or the Find Your Stylist response includes a booking_link whose query string has staffId, or a path that names staff, that URL opens their calendar. Use it as the href and as the overlay deep link. - If the link is only a location URL, or the profile has no booking link, Boulevard does not give us another public staff deep link to invent. Open that stylist's home salon and have the guest choose their name on the staff step. The availability API can still filter times by staff name or staff_variant_id. ## Booking API Base: https://ropsalons.com/.netlify/functions/book-appointment Docs shortcut (no Boulevard call): GET the base URL with no action. Rate limit: about 24 requests a minute per network on services, availability, and POST. A 429 includes a handoff URL when the location is known. ### Services GET ?action=services&location=bayfront|village|promenade Each service includes: - id — pass this as service= - price_display — Boulevard's list price. Often the Silver tier. Do not quote this as "starting at". - public_starting_at_display — Classic-tier floor. This is the published starting price. - staff[] — { name, staff_id, staff_variant_id, role, price_display } ### Availability GET ?action=availability&location=&service=&date_from=YYYY-MM-DD&date_to=YYYY-MM-DD&staff= - staff may be a display name, staff_id, or staff_variant_id from the services list. - If several stylists share that name, the response is staff_ambiguous and lists them. Pick one id and call again. - date window is clamped to 14 days. - Response includes cart_id, availability[].slots[].time_id, staff (when filtered), and handoff_url. - Boulevard only lists times off a cart, so this call creates an empty cart. The cart is not checked out and is not an appointment. ### Handoff POST JSON: { "location": "bayfront", "service_id": "optional service id", "cart_id": "required only when time_id is sent", "time_id": "optional slot id from that same cart", "staff_id": "optional Boulevard staff id; a UUID in the id is added to the link", "first_name": "optional", "last_name": "optional", "email": "optional", "phone": "optional" } Response: - appointment_created: false - handoff_url: send the guest here - cart_id and time_id echoed when you sent them - guest fields echoed and not written to Boulevard A time_id from one cart cannot be reused with a new cart. That is why cart_id is required whenever time_id is sent. ### What this API will not do - It will not call Boulevard checkout. An earlier version could create an appointment from name, email, and phone with no card. That path is removed. - It will not store a card. Card entry happens on Boulevard. - It will not cancel, reschedule, or create a standing / recurring appointment. Those are done at Manage My Appointments (https://blvd.app/@ropsalons/login) or by calling the salon. - It will not look up an existing guest's appointments or saved cards. ## Published starting prices (Classic level and up, 2026-10-17) Same starting price at all three salons. Quote these as Classic level and up. Do not quote nails, extension maintenance, or beard trim. Do not invent a price for a service that is not on this list. Signature Women's Haircut & Blowout: from $103 (sixty to ninety minutes) Men's Haircut (The ROP Standard): from $82 Child Haircut (8 and under): from $82 Blowout & Style: from $81 (forty-five to sixty minutes) Event Updo: from $110 (sixty to ninety minutes) Hair Color: from $134 (Single Color Root Retouch) Single Color Root Retouch: from $134 All-Over Radiance: from $179 Partial Foil Highlights: from $214 Full Foil Highlights: from $248 Dimensional Color Blend (balayage-style): from $236 Express Brazilian Blowout or Keratin (1-hour mini): from $239 Full Brazilian Blowout or Keratin Smoothing: from $400 (about 2 hours) Conditioning treatment add-on: from $17 Signature Consultation: free Permanent Jewelry, Promenade only: bracelet $80, anklet $95, necklace $120 (about 20 minutes) Higher stylist levels cost more. Quote this Classic menu as "and up". When you know the stylist, you may also quote that stylist's live price from the services API. ## Card and cancellation Published policy: https://ropsalons.com/legal/cancellation-policy Notice is 24 hours for haircuts, blowouts, single-process color, gloss, treatments, and most standard services, and 48 hours for color corrections, balayage, full highlights, extensions, smoothing and keratin treatments, and other multi-hour services. Inside that window the fee is 50% of the booked service. A no-show is 100% of the booked service. Guests cancel or reschedule at https://blvd.app/@ropsalons/login or by calling the salon. A card or deposit is requested mainly for services scheduled over three hours. Boulevard collects it during booking. Do not bypass that by asking this API to book. ## Other agent endpoints Guest chat (Grace): POST https://ropsalons.com/.netlify/functions/guest-chat Find a stylist: POST https://ropsalons.com/.netlify/functions/stylist-match FAQ text: https://ropsalons.com/llms-faq.txt Human FAQ: https://ropsalons.com/faq