A real phone number your agent can read SMS from
Plenty of services still confirm things by text message. An agent has no SIM card. Renting one number through an API closes that gap: the number is real, incoming SMS land in a JSON endpoint, and the rental outlives any single session.
One order rents a UK mobile number for 3 months at a fixed price. Incoming messages are read with a single GET, cached for 30 seconds server-side.
# 1. price and terms
curl "https://blinkcodes.com/api/public/phone/info"
# 2. rent the number
curl -X POST https://blinkcodes.com/api/public/create-order \
-H "Idempotency-Key: sms-line-01" \
-d '{"email":"agent@example.com","product_type":"phone_rental"}'
# 3. pay, poll until completed
curl "https://blinkcodes.com/api/public/order/{order_id}?token={access_token}"
# -> {"status":"completed","phone":{"phone_number":"+44...","expires_at":"..."}}
# 4. read incoming SMS (token arrives with the delivery email)
curl "https://blinkcodes.com/api/public/phone/dashboard/{token}/messages"How the agent reads messages
The delivery email carries a dashboard link whose token also works as an API credential. GET /api/public/phone/dashboard/{token}/messages returns the SMS inbox as JSON: sender, text, timestamp. Poll it after triggering whatever sends the text.
The token is the whole auth model, so treat it like a password. An optional PIN can be set on the dashboard as a second factor for the human-facing view.
Terms worth knowing before ordering
The rental runs 3 months from activation and the order response carries expires_at. Renewal is its own order type (phone_rental_renew, authenticated by the dashboard token), so a long-lived agent can keep its number without human help.
Fulfilment for phone rentals is asynchronous by design: after payment the order stays in fulfilling while the number is provisioned, usually minutes. Poll the order endpoint; the completed response carries the number.
What this is for, and what it is not
Good fits: an agent that registers for services on its operator's behalf, monitoring flows that confirm by SMS, teams that need a shared inbox for one number, testing SMS delivery from your own product.
The number is a real mobile number with a real operator behind it. Use it within the law and the terms of whatever service you point it at. Abuse gets the rental terminated.
Phone rental specifics
Is this a virtual number or a real one?
A real UK mobile number with a carrier behind it, not a VoIP endpoint. Services that reject known virtual ranges treat it like any other mobile number.
How does an agent get the SMS without a mailbox?
The messages endpoint. GET /api/public/phone/dashboard/{token}/messages returns the inbox as JSON. The token arrives with the delivery email; store it once and the agent never touches email again.
How long does provisioning take after payment?
Minutes, not seconds: the number is provisioned asynchronously after the payment settles. The order status moves from fulfilling to completed, and polling the order endpoint is the intended way to wait.
Can the rental be extended?
Yes. Create an order with product_type phone_rental_renew and the dashboard_token. Email is read from the existing rental, so a leaked token can extend the rental but never redirect it.
Can I pick the country or get several numbers?
Currently one product: a UK number for 3 months. Several numbers means several orders, each with its own token and inbox. If you need another country, write to support@blinkcodes.com, demand shapes the roadmap.