From the interface, renting a number looks like a single button. Underneath, it's a short but dense chain of decisions: pick a country, choose a pool, reserve a specific line, wait for the message, and hand the code back to the dashboard. The fewer steps the user sees, the more work falls on the infrastructure.
It all starts with a pool. A pool is a set of active lines from one carrier in one country that we have access to receive messages on. Pools aren't equal: one has better deliverability for messaging apps, another for banking services, and a third keeps its numbers alive longer but has fewer of them. So a request like "give me a number for Telegram in Indonesia" turns into a selection problem: the system looks at each pool's delivery history over the last few hours and picks the one where the odds of getting the code are highest.
Then the number gets reserved. From that moment it's locked to that order, and the waiting window starts. The default window is twenty minutes — enough time for someone to enter the number into a signup form, wait for it to be sent, and receive the message. Everything that arrives on the line during that window goes through a parser, which separates the code from the surrounding text, discards service broadcasts, and passes the result back to the order.
Price comes down to three things: the cost of access to the line, the probability of success, and demand. Numbers in countries with expensive mobile service and strict SIM registration cost more — there are simply fewer of them. Services that aggressively filter out virtual numbers also push the price up: keeping deliverability up means using fresher, more expensive pools.
If the code never arrives, the order closes itself. We don't count a failed attempt as a service rendered, so the money is refunded to the balance automatically — no ticket, no back-and-forth. For us it's also a signal: a run of empty orders on one pool means that pool has degraded and needs to drop in priority. That way, failure statistics work for output quality instead of against the user.
Have a question about this post? Write to us.
All materials