Skip to content

Limits

What WhatsDo covers today and how to handle the rest.

Coverage

  • Live in San Francisco. New cities on request: for another city, tell the person once that it is available on request and offer to send a city request. One search is enough, rewording gives the same answer.
  • Nearby places can appear for a city next to San Francisco.
  • Places: restaurants, cafes, bars and nightlife, gyms, yoga, fitness, spas, salons, massage, parks and things to do.

Call limits

LimitValue, as shown in the developer portal
Reads600 calls an hour per key, rolling window
Monthly allowance10,000 calls a month at no cost, across every key on the account
Booking callsCounted separately

Over the hourly limit, a call fails with Rate limit reached for <tool>. Wait and retry later. The portal dashboard shows what is left.

How the agent should handle it

  • Each book call sends a real request. Confirm place, date, time and party size with the person first.
  • To change a booking, cancel it and book the new time.
  • If a venue asks for a card, send the person to the venue’s own page. Payments through WhatsDo: join the waitlist.
  • For the address or directions, use the venue’s website or the map in the app.
  • For menus and dish prices, link the venue’s website.
  • Call my_bookings to read the latest status.
  • bookable_only returns every place that takes bookings; read bookable_via to see how each one books.

Good to know

What to expect in real places, and how to handle it.

LimitHow to handle it
pending has no ETA and no push.Poll my_bookings. Never report pending as booked.
A booking through the venue’s page can move to a person (source: "manual") without a separate notice.Watch source in my_bookings. Tell the person a WhatsDo team member is finishing it.
A later change on the venue’s side is not synced back.Pass on confirmation_number when there is one. The venue’s own email is the final word.
Instant bookings return no confirmation number.Say the booking is confirmed and that no number is issued. Give the venue’s phone.
Cancelling a pending booking does not reach the venue.If the venue already confirmed by email, use its cancellation link or phone.
A row can read confirmed while message says nothing was submitted.Treat it as not booked. Show both and ask the person to check with the venue.
No way to check a free table except a real book.Agree on the details first. Read the times offered in message.
Search replies are large: categories repeats every tag.Use limit 3 to 5. Parse categories once.
Some places carry tags that contradict each other, or empty hours.Say “mixed” for a disagreeing axis and “hours unknown” for empty hours. Offer place_details or the phone.
Search covers San Francisco. A search for another city has the same shape as a search with no matches.For another city, tell the person once that new cities are available on request and offer to send a city request.
A booking time in UTC (ending in Z) or without an offset can land at the wrong hour.Always send date_time in San Francisco local time with its offset, for example -07:00.
In ChatGPT, the booking card can show the time in the viewer’s own timezone.Repeat the time in San Francisco time in the agent’s reply.
ChatGPT can answer a booking request with its own search and skip WhatsDo.Start the request with “Use WhatsDo to …”.
my_bookings rows carry the guest’s email, phone, user id and session links.Print only the place, status, time, party size, confirmation number and message.

Good to know

  • Hours and price are missing for some places. Treat missing as unknown.
  • Name and phone come from the WhatsDo profile.
  • my_bookings rows carry personal data. Keep it out of logs and screens.