# Discover businesses, lines and services

Read the allowed resources and fields before constructing an entry request.

## Find a business

Use GET /waitlist/businesses to list accessible businesses and GET /waitlist/businesses/{businessId} for one business. The response includes its ID, name, slug and time zone. Use IDs in later calls; labels may change.

## Read a line’s join requirements

Use GET /waitlist/queues?businessId=BUSINESS_ID and GET /waitlist/queues/{queueId}. The detail response describes supported services, public custom fields, working hours and walk-in or booking availability.

Submit customData using the returned field IDs. Respect required fields, number types and select option values. Fields are limited to the line’s public definitions; internal SMS-template or provider fields are outside this contract.

## Follow opaque cursors

List requests accept limit up to 100. Continue with nextCursor until it is null, retaining the same filters. A cursor marks your next position. Return it unchanged. An invalid cursor returns a validation error.

Entry pages are ordered by updatedAt and ID. Entries can move while you paginate because these are current snapshots. Use the immutable event feed to capture changes reliably.
