Turn your own Android phone into an SMS gateway for your application. One API request sends a sign-in code, an order update or an alert through your SIM, and signed webhooks tell your systems what happened next.
Not open to the public yet. Ask for access and we will contact you.
POST/v1/messages/send
POST https://sms-api.nxsvs.com/v1/messages/send
x-api-key: <your API key>
Idempotency-Key: <a unique ID for this request>
Content-Type: application/json
{
"from": "<your connected phone number>",
"to": "<recipient's phone number>",
"content": "<your message>"
}
What happens to it
pending
sending
sent
delivered
Or failed / expired. "Delivered" appears where the recipient's network reports delivery.
Your phone, your numberMessages leave from your SIM, and recipients see your own number.
One request per messageSend from any language over HTTPS with an API key.
Events, not pollingStatus changes and replies arrive at your webhook.
VerifiableEvery webhook is signed and timestamped.
How it works
The path of a message.
NXSVS SMS sits between your application and your phone. It checks your key, queues the message and tracks it; your phone does the sending, over your own mobile operator.
Your applicationSends an HTTPS request with your API key.
NXSVS SMSChecks the key, queues the message and tracks its status.
Your Android phoneThe NXSVS SMS Gateway app sends it from your SIM.
Your mobile operatorCarries the SMS, under your SIM's plan.
Your customerSees your number, and can reply to it.
And back: sent, delivered, failed and expired messages, replies, and your phone going offline or online reach your application as signed webhooks.
Platform
Built for systems, not just phones.
The controls a team needs to run messaging from its own software.
Signed webhooks for every event
Your endpoint hears about each change as it happens, signed with HMAC-SHA256 so you can prove it came from NXSVS SMS.
message.phone.sent
message.phone.delivered
message.send.failed
message.send.expired
message.phone.received
phone.heartbeat.offline
phone.heartbeat.online
Scoped API keys
Give each application its own key, starting nx_, instead of sharing your account key. Keys are sent in the x-api-key header.
Scheduled sending
Set send_at to queue a message up to 20 days ahead.
Safe retries
Send an Idempotency-Key header, and a retried request never sends the same message twice.
Two-way messaging
Texts your phone receives reach your account and your webhook.
Phone monitoring
Get an event when a phone drops offline, and another when it comes back.
Dual-SIM
On a dual-SIM phone, choose which SIM a message goes from.
Your own references
Attach a request_id to trace each message back to your own records. Include attachment URLs to send MMS.
Developers
An API you can read in a minute.
Versioned under /v1, authenticated with one header, and answered with the queued message straight away. Full guides and an interactive API reference open with the service.
Message statuses
pending
Accepted and queued.
sending
Your phone has picked it up.
sent
Your phone handed it to the mobile network.
delivered
The recipient's network reported delivery. Not every network reports it.
failed
It could not be sent.
expired
It was not sent in time.
Send a message · values in <angle brackets> are yours
POST https://sms-api.nxsvs.com/v1/messages/send
x-api-key: <your API key>
Idempotency-Key: <a unique ID for this request>
Content-Type: application/json
{
"from": "<your connected phone number>",
"to": "<recipient's phone number>",
"content": "<your message>",
"send_at": "<optional: an ISO time up to 20 days ahead>",
"request_id": "<optional: your own reference>"
}
X-Webhook-Event-Id: <unique event ID>
X-Webhook-Timestamp: <timestamp>
X-Webhook-Signature: v1=<hex HMAC-SHA256 of
timestamp + "." + body>
Recompute the signature with your webhook's secret,
compare it, and use the event ID to skip repeats.
Security and control
Plain about what is protected.
What NXSVS SMS does to keep your keys, events and messages under your control, and one honest note on what SMS itself cannot do.
Keys you can scope
A separate key per application, so one leaked key does not expose the whole account.
Signed, timestamped webhooks
Verify the HMAC-SHA256 signature on every delivery, and use the timestamp and event ID to reject replays and repeats.
Your data, scoped to your account
Messages, phones and keys are looked up within the account that owns them.
Retries without duplicates
Idempotency keys make a network retry safe: the same request never sends twice.
Optional content encryption
Message content can be encrypted between your application and your phone. The SMS itself still travels as ordinary text on the mobile network.
Phones you pair yourself
A phone joins your account by scanning a QR code from your own dashboard.
What you need
One phone, one SIM, one app.
NXSVS SMS sends through a phone you own. That phone has to stay ready to send.
An Android phoneRunning Android 9 or newer.
An active SIMOne that can send SMS. On a dual-SIM phone, either SIM works.
The NXSVS SMS Gateway appPaired with your account by scanning a QR code.
Power and a connectionKept on and online over Wi-Fi or mobile data, with battery optimisation off for the app.
Pricing
Start free. Scale on request.
Plans are set up by our team while NXSVS SMS is in early access. SMS charges are separate: your mobile operator bills them under your SIM's plan.
Texts go out through your own SIM, so your mobile operator charges for them under your plan. Your NXSVS SMS plan covers the platform: the account, the API, webhooks and the queue.
Not yet. It is in early access: ask for access and we will contact you when your account is ready.
Can messages show my brand name instead of a number?
No. Messages are sent from your phone's own number. There is no alphanumeric sender ID.
Who charges for the SMS?
Your mobile operator, under your SIM's plan. Your NXSVS SMS plan covers the platform: the account, the API, webhooks and the queue.
What if my phone goes offline?
Your webhook receives phone.heartbeat.offline, and phone.heartbeat.online when it is back. A message your phone cannot send in time is marked expired, and you are told by webhook.
Will I know a message was delivered?
You will know when your phone has sent it. "Delivered" appears when the recipient's network reports delivery, and not every network does.
Is it for bulk or marketing messages?
No. It sends from an ordinary SIM, which is not a bulk route. It is made for the messages your own customers expect from you: codes, updates and alerts.
Your code. Your phone. Your number.
Tell us what you want to send, and we will get back to you with access and a quote.