Limits and errors
The allowance
Each traveller has an allowance of 150 points, refilled gradually so that an empty allowance is full again after 10 minutes. Every tool call takes points according to the work it does upstream. The cost of each tool is in the tool reference and in the points field of tools.json. Typical costs:
| Call | Points |
|---|---|
| Narrowing an earlier search, reading a watch list | 0 |
| Finding a hotel, airport or place by name | 1 |
| Hotel details, rates or reviews | 2 |
| A hotel or flight search | 5 |
| Chloe's deeper look at alternatives | 8 |
| A price comparison or price match request | 10 |
| Hotels across nearby dates | 20 |
A call the allowance cannot pay is refused with the text: "Too many requests in a short time. Tell the traveller to wait a few minutes and try again; do not retry now." Nothing is charged for a refused call.
The allowance belongs to the traveller, across every assistant they use. It is never shared by address.
Other caps
| What | Cap |
|---|---|
| New price comparisons | 30 per traveller per hour |
| Emails to the Dyme team (price match, call-back, change, cancellation) | 5 of each per traveller per day |
| Option emails to the traveller | 5 per traveller per day |
Timing
- Searches take 4 to 12 seconds, most of it the supplier's search. Narrowing an earlier search is immediate.
- A price comparison takes up to a minute. The tool answers straight away with a card that fills itself in.
- Search results are kept for about 30 minutes, and a search can be re-run for 12 hours from its
trip_id, so follow-up questions do not need a new search.
Errors
| Situation | What comes back |
|---|---|
| No or expired token | HTTP 401 with WWW-Authenticate; the assistant signs in again |
| An argument the tool cannot use (for example an airline name where a code is needed) | A tool result with isError: true and one sentence saying what to send instead |
| An upstream failure | A tool result with isError: true and one plain sentence; details stay in Dyme's logs |
| A filter that matches nothing | A normal result saying so, and how many the search found before the filter |