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
| Limit | Value, as shown in the developer portal |
|---|---|
| Reads | 600 calls an hour per key, rolling window |
| Monthly allowance | 10,000 calls a month at no cost, across every key on the account |
| Booking calls | Counted 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
bookcall 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_bookingsto read the latest status. bookable_onlyreturns every place that takes bookings; readbookable_viato see how each one books.
Good to know
What to expect in real places, and how to handle it.
| Limit | How 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_bookingsrows carry personal data. Keep it out of logs and screens.