Overview
The Public Merchant API provides unauthenticated endpoints that power the customer-facing booking interface (Tango app). These endpoints allow customers to discover merchants, browse services, check availability, and gather information needed for making bookings.These endpoints are accessed via the
/api/v1/merchants/{merchantName} base path and do not require authentication.Base Path
{merchantName} path parameter is the merchant’s URL-friendly name (e.g., “joes-barber-shop”).
Endpoints
Get Merchant Information
Retrieve comprehensive information about a merchant including location, services, and business hours.Response
Display name of the merchant
URL-friendly merchant identifier
Primary contact email
Short introduction text
Current announcement or notice
Detailed about us information
Parking instructions
Payment methods and policies
Merchant’s timezone (e.g., “America/New_York”)
Primary location ID
Country name
City name
Postal/ZIP code
Street address
Full formatted address string
Geographic coordinates
Services grouped by category
Business hours by day of week (0=Sunday, 6=Saturday)
Get Service Details
Get detailed information about a specific service including phases and pricing.Path Parameters
URL-friendly merchant identifier
Location ID
Service ID
Response
Service ID
Service name
Service description
Total duration in minutes
Formatted price information
Price type: “fixed”, “variable”, or “per_person”
Service location address
Geographic coordinates
Service phases (for multi-phase services)
Get Booking Summary
Get a summary of service information for the booking confirmation screen.Response
Service name
Duration in minutes
Formatted price
Pricing model
Location address
Check Service Availability
Get available time slots for a service within a date range.Query Parameters
Start date in RFC3339 format (ISO 8601)
End date in RFC3339 format (ISO 8601)
Response
Returns an array of availability by date:Date in ISO format
Whether any slots are available on this date
Array of available morning time slots
Array of available afternoon time slots
Get Next Available Slot
Find the next available booking slot for a service.Response
Next available date
Next available time slot
Get Disabled Days
Get days when the service is unavailable for booking.Response
Array of day numbers when closed (0=Sunday, 6=Saturday)
Earliest bookable date
Latest bookable date
Use Cases
Customer Booking Flow
- Discovery: Get merchant information to display location and services
- Service Selection: Show service details when customer selects a service
- Date Selection: Use disabled days to configure the date picker
- Time Selection: Fetch availability for the selected date range
- Confirmation: Display booking summary before creating the booking
Integration Example
Best Practices
- Cache merchant information: Merchant info changes infrequently, cache it to reduce API calls
- Batch availability checks: Fetch availability for entire weeks rather than individual days
- Handle timezones: Always use the merchant’s timezone from the merchant info response
- Error handling: Handle cases where merchants or services don’t exist gracefully
- Respect disabled days: Use the disabled-days endpoint to prevent users from selecting unavailable dates