Bowmark AIdocs

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

FunctionWhat it does
listMarketsLists 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…
listStudiosLists 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.
listServicesLists 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"
}