Tend Dental
Reads Tend Dental's public booking chain — every market, every studio, every service a studio offers — straight from hellotend.com's own Next.js data…
Reads Tend Dental's public booking chain — every market, every studio, every service a studio offers — straight from hellotend.com's own Next.js data route, no key, no browser.
Domain: hellotend.com
Also known as: Tend Dental, Tend, hellotend, hellotend.com, tenddental
Call it directly
bowmark.providers.hellotend.listMarkets(): Promise<HellotendMarket[]>
bowmark.providers.hellotend.listStudios(market?: string): Promise<HellotendStudio[]>
bowmark.providers.hellotend.listServices(market: string, studio: string): Promise<HellotendService[]>Functions
| Function | What it does |
|---|---|
listMarkets | Lists every market Tend serves — the 6 metros the booking chain currently offers (NYC, Washington DC, Atlanta, Boston, Chicago, Nashville), with each market's slug, lat/lon and… |
listStudios | Lists every Tend dental studio — 33+ across all markets, with name, slug, market, address, lat/lon, opening date, the service codes that studio accepts, and whether it offers family-booking. |
listServices | Lists the service codes a specific Tend studio offers (Dental Exam CLNCHK, Clear Aligners INVISALN, Emergency EMGNCY, Sleep Apnea Consult SLPCONS, Cosmetic, Procedures) with each service's… |
Types
interface HellotendMarket {
slug: string; // e.g. "new-york-city"
name: string; // e.g. "New York City"
location: { lat: number; lon: number } | null;
bookingEnabled: boolean;
}
interface HellotendStudio {
slug: string; // e.g. "hells-kitchen" — what listServices takes
name: string;
market: string; // e.g. "new-york-city"
address: string | null;
location: { lat: number; lon: number } | null;
openingDate: string | null;
serviceCodes: string[]; // ["CLNCHK","WHTNG",...] — the codes this studio accepts
bookingEnabled: boolean;
familyBookingEnabled: boolean;
}
interface HellotendService {
code: string | null; // e.g. "CLNCHK" — null on category-level entries
name: string; // e.g. "Exam"
longName: string | null; // e.g. "Dental Exam"
description: string | null;
bookingDescription: string | null;
duration: string | null; // e.g. "70 minutes or less"
}