Documentation
Host a number: point your DID at the platform and earn per check
Ask AI about this page
A hosted number is a phone number you own, pointed at the platform's SIP ingress, that other customers' caller ID checks call. You enrol it, point it, and prove it with one call from any phone. Every check that reaches it credits US$0.15 to your balance.
What a hosted number is#
A caller ID check calls a number the platform holds in the destination country and reads the caller ID that arrives. The platform's own numbers are bought from number providers, which do not sell into many of the countries operators ask about. A hosted number is the other source: a customer's own number, pointed at the platform, that other customers' checks call. The customer is paid per use.
Nothing on the check side changes. A customer picks a country and the platform leases a free number in it, the platform's own or a hosted one, oldest-used first. Customers never see the number. Its owner can check their own routes against it too, and is not paid for that.
1 · Enrol#
- Open Host a number in the portal (under Testing tools).
- Enter the number in international format (+254712345678), pick its country and kind.
- Enrol. The number is created in status pointing and the page shows where to point it.
The number must be one you own and can route. Numbers are unique across the platform, so a number already enrolled cannot be enrolled again. Each account can host up to ten numbers (ask support for more).
2 · Point the number at the platform#
In your carrier's, DID provider's or PBX's routing, set the destination for the number to the SIP address the page shows. Every value is on the page with a copy button:
| Setting | Value |
|---|---|
| SIP host | The platform's SIP ingress host, as shown on the page (the same host trunks point at; see SIP integration). |
| Port and transport | 5060, UDP or TCP |
| Request URI user | The number's digits in international format without the plus: sip:254712345678@<host>:5060. National format and a 00 prefix are recognised too. |
| Source address to allow | Shown on the page. Needed only when your side filters calls by source. |
| Codecs | G.711 PCMU or PCMA |
| Authentication | None. The platform recognises the call by the number dialled and only while a check or your test holds the number. |
A hosted number needs no digest credentials: it is identified by the dialled number, and the platform only takes the call while your test is running or a check holds the lease. Any other call to it is refused, so pointing a number at the platform does not open a free destination.
3 · The pointing test#
Press I've pointed it, start the test. The number moves to testing and the platform listens for one call to it for 15 minutes. Call the number from any phone. The platform answers with a short announcement, records the caller ID your carrier delivered and the seconds of audio it received, and the number becomes active. The page updates by itself.
If no call arrives in the window, the number returns to pointing and the page says so. The usual causes are the request URI carrying something other than the number, a source-address filter on your side, or a transport other than UDP or TCP.
4 · Earnings and health#
- Every check whose call reaches the number adds US$0.15 to your account balance the moment it completes (ledger type cli_host_credit), whatever the check's verdict. It is the same balance that pays for calls, analysis and checks: nothing to claim or transfer. A check whose call never arrived pays nothing.
- The page shows, per number, checks served, earnings, the last call and the test result; the Billing page shows the ledger lines.
- A number that gets no call on three checks in a row is paused as unreachable so no further check is wasted on it. Fix the pointing and press Test again.
- Pause keeps a number enrolled but out of the pool; Remove deletes it. Neither is possible during the seconds a check is using the number.
- To take earnings out as cash instead of spending them, write to support.
API and agents#
Everything above is also available through the API.
| Call | What it does |
|---|---|
| GET /api/customer/hosted-numbers | Your numbers, the pointing instructions, the credit per use, earnings, and the countries other customers are asking for. |
| POST /api/customer/hosted-numbers | Enrol: {"e164": "+254712345678", "country": "KE", "kind": "mobile"}. Returns the number with its pointing instructions. |
| POST /api/customer/hosted-numbers/{id}/test | Start the pointing test; then call the number. |
| GET /api/customer/hosted-numbers/{id} | The number, its test result and recent calls. |
| PATCH /api/customer/hosted-numbers/{id} | {"status": "paused"} or {"status": "active"}. |
| DELETE /api/customer/hosted-numbers/{id} | Remove the number. |
The MCP tools host_number, test_hosted_number and list_hosted_numbers wrap the same calls, so an agent can enrol and test a number in one conversation. See the agent guide.
Frequently asked questions#
Which format should the request URI carry?
The number's digits in international format without the plus sign, as shown on the page. National format with the trunk prefix, and the 00 international prefix, are recognised as well. The platform matches the dialled digits against your enrolled number.
Does the platform need to be allowed on my side?
Only if your carrier or PBX filters calls by source address. The address to allow is shown on the page. It is the same address customers point their trunks at.
Why was my number paused as unreachable?
Three checks in a row were placed to it and no call arrived at the platform. Usually the pointing changed, or a source-address filter was added. Fix it and press Test again. The next call makes it live again.
Can I verify my own routes against my own number?
Yes. Pick its country like any other. The check calls your number through the route you chose and reads what arrived. You pay the check fee as usual and are not credited for your own number, so there is nothing to game.
What does a check's call carry?
A roughly 12-second announcement played by the platform, so the route's audio can be graded. The caller ID the check reads is the From header of the call your carrier delivered.
Is the number ever called outside a check?
Only during your own pointing test. Any other call to it is refused, so the number cannot be used as a free destination.