
Each call is priced across the routes you hold and sent down the cheapest one. In a route group, when a supplier fails, the call rolls to the next.
One supplier is one price and one point of failure.
Smart Routing lets you hold several routes to the same destination and chooses per call: cheapest first by the real per-prefix rate, or highest stated answer rate first where completing the call is worth more than the last fraction of a cent. In a route group on your Switch, when a supplier returns congestion or times out, the call moves to the next candidate, and every attempt is recorded so a call that failed over three times still reads as one call. You keep the low rate without losing the minutes when a supplier goes down.
Cheapest first, by the real per-destination rate.
Highest stated answer rate first.
Ordered candidates in a route group, each attempt recorded so you can see what happened.
Every attempt is grouped under its call, so a three-supplier failover reads as one call.
Different behaviour per destination, down to the prefix.
Smart Routing works at two levels. Any API request can choose its own route by strategy, and on the Switch a route group orders several suppliers and fails over between them.
Every active public route on the marketplace is a candidate for a smart-routed request. On the Switch, the routes you buy, your private routes and your supplier trunks become the suppliers in your route groups.
Set strategy to cheapest, best_quality or balanced on a call or message. For customer traffic, set a route group to Least cost, Priority order or Weighted split.
The Smart Routing screen shows the route a destination would take and the alternatives behind it. Route Trace shows the full switch decision without dialling.
The call is priced at the prefix it matched. In a route group, a retryable SIP answer moves it to the next supplier, and every candidate is written to the call record.
Leave routeId off a call or message and name a strategy instead. Smart Routing gathers every route that serves the number, prices each one from the rate deck row that matches the longest prefix, and ranks the most specific matches first. Only then does your rule decide: the lowest rate, the highest stated answer rate, or the most answer rate for the money. A cheap country-wide rate never outranks a mobile rate for a mobile number.
447 is a longer match than 44, so the mobile routes rank first before any price is compared.
A route group puts your suppliers for a destination into one ordered chain. Least cost sends the cheapest buy rate for the dialled prefix first, Priority order follows the order you set, and Weighted split shares first attempts by load. When a supplier answers with a failure that means another supplier might carry the call, such as a 503 or a timeout, the call moves on, one supplier at a time, inside the group's attempt limit and setup budget. A busy line, a decline or an authentication refusal ends the chain, because retrying those only creates false traffic.
Billed once, for the leg that connected. The failed attempt cost nothing.
Finding out whether a number will route used to mean placing a real call and reading a 503. Route Trace runs the same resolvers the switch runs and shows the decision instead: how the number was normalised, which dialplan rule matched, which route group took it, what each supplier's buy rate matched and whether it had room. Every supplier that could have carried the call and did not is listed with its reason.
Nothing was dialled. Save the trace with a note to keep it.
Price, prefix, supplier rules and SIP answers: each one checked on every call, and each one written down.
cheapest ranks by rate, best_quality by the answer rate stated on the listing with price as the tiebreak, and balanced by answer rate per unit of cost.
Every candidate is priced from the rate deck row matching the most digits of the number, and billed at that row's rate and increment.
GET /routes/resolve returns the route a destination would take and up to four alternatives, with rate, answer rate, caller ID type and matched prefix.
Route groups pick the first supplier by Least cost, Priority order or Weighted split, then walk the rest one at a time.
Give a group entries per prefix. The longest matching band is used, shorter bands catch the rest, and a blank prefix covers every destination.
Each SIP answer gets a verdict: move on, end the call, or stop the chain and log a supplier refusal. Suppliers can override the codes and cap attempts per call.
The leg that carried the call, each failed leg, candidates skipped with a reason and candidates never reached, with the buy rate for each.
Blocked and allowed prefixes, country lists, number length, schedules and maintenance windows are checked per call, and a refusal names the rule.
Least-cost routing only pays when the cheap route completes, the chain stops where it should and you can show what happened.
Least cost orders suppliers by the buy rate for the exact destination, taken from the same rate lookup billing uses. A supplier with no rate for the number never enters the chain, so a missing price can never pose as the cheapest one.
Calls move on only when another supplier might carry them. Busy lines and refusals end the chain, so a carrier never sees a burst of retries that looks like an attack, and your answer rate is not padded with calls that were never going to connect.
A customer's call only rides the supply you assigned to that customer. If none of it can carry the call, the call is refused with a reason their switch can act on, never quietly sent somewhere you did not pick.
A route bought on the marketplace sits in a route group beside your own supplier trunks, so new supply for a destination is one purchase away and fails over like everything else in the group.
| The usual way | On PacketExchange | |
|---|---|---|
| Picking a route | A default supplier per destination, edited by hand when prices move | Chosen per request by strategy, from the rate at the longest matching prefix |
| Country-wide rates | A cheap country rate can win traffic for ranges it was never priced for | The most specific prefix outranks a shorter one before price is compared |
| Failover | Every failure retried everywhere, busy lines and refusals included | Retryable answers advance; busy, decline and authentication refusals stop the chain |
| Unpriced suppliers | A missing rate reads as zero and wins the least-cost sort | Left out of the chain, with the reason recorded |
| A slow connect | The record shows the winning supplier and nothing else | One row per candidate: tried, skipped with a reason, or not reached |
| Checking a number | Place a real call and read the error code | Route Trace shows the decision and every excluded supplier without dialling |
Buy at the lowest rate on offer at the moment of the call.
A dead route stops costing you completed, billable minutes.
Premium where the call must connect, standard where price wins.
Smart Routing adds nothing to the price of a call or message. A smart-routed request is billed like any other: the rate of the route that carried it, at the prefix it matched, plus the platform fee of 2% of the carrier rate, capped at $0.001.
Route groups, dialplans, Route Trace and attempt records come with the Switch, whose plans are priced by concurrent calls and minutes switched. Termination is billed separately.
See all pricingThe rate deck row that won the match sets both the rate and the billing increment.
However many suppliers a call tries first, it is billed once, when a leg connects.
Top up by card or crypto from $5, or by bank wire from $100, and every call draws from the same balance.
Test API keys resolve the route and the rate exactly as live traffic does, then simulate the call, so no real call is placed and your balance is untouched.
No. Every active public route on the marketplace is a candidate for a smart-routed API call. US voice is the exception: it needs a complete compliance profile and an approved purchase of the route.
The answer rate stated on each listing, with price breaking ties. Balanced divides that answer rate by the price, so a route has to be good value on both, and a listing that states no answer rate is treated as 50%.
By default 404, 408, 484, 488, 500, 502, 503, 504 and 606 move the call to the next supplier in a route group. Busy (486, 600), decline (603) and no answer (480) end the call, and 401, 403 and 407 stop the chain and are logged as a supplier refusal. A group can set its own failover codes, and a supplier can override them where its codes mean something different.
No. Only a leg that connects is billed, so an attempt that fails or goes unanswered on the way costs nothing.
Yes. Pass routeId with a route you have bought and the request goes over that route, exactly as before. Smart Routing only applies when routeId is left out.
A smart-routed API call goes to the best route for that request. Sequential failover across several suppliers runs in route groups on the Switch, for traffic from your customers' trunks and from sub-account API keys.
Open the call record: the route attempts section lists every candidate in order, with the SIP answer, why the engine moved on or stopped, and which one carried the call. To ask the same question before a call is placed, run a Route Trace.
Yes. The same three strategies pick SMS routes by the rate at the longest matching prefix, and the resolve preview accepts type=sms.