What you can build

What you can build with the Noir SMS API (and what you cannot)

The API does one thing well: it gives your code a real carrier mobile number, waits for an SMS, and hands you the text and the code. That small primitive fits many legitimate products and internal tools. Below are use cases we see as a good fit, each with the parts of the API it relies on, followed by a plain list of what is not allowed. If you are unsure whether your idea fits, read the Acceptable Use Policy before you build, not after. Endpoint details are at /api/docs/.

  • Same prices as the dashboard
  • Refund if no SMS
  • Signed webhooks

Quick answer

With the Noir SMS API at https://noirsms.com/api/v1 you can build anything that needs a real mobile number to receive one SMS: a Telegram or Discord bot that sells verifications under the reseller rules, an internal tool so employees never put their personal number on work accounts, tests of how your OTP SMS looks in many countries and languages, or a privacy layer for verifying your own accounts. Every use must be for legitimate accounts that belong to you or your customers. Bulk or automated account creation, ban evasion, spam, fraud and bypassing bank, fintech or KYC checks are not allowed. Docs: https://noirsms.com/api/docs/.

Highlights

01

Bots that sell codes

A Telegram or Discord bot can sell verification numbers to users who follow the same Acceptable Use Policy.

02

Team number desk

An internal tool gives staff a number for work sign-ups, so nobody uses a personal phone.

03

Localization checks

Receive your own OTP SMS in many countries to check language, sender and formatting.

04

Privacy for your accounts

Verify your own accounts without exposing your real number, then secure them with your own recovery methods.

A Telegram or Discord bot that sells verifications

A bot is a natural interface for a single verification: the user picks a service and a country, pays the bot owner, gets a number in the chat and receives the code a few seconds later. Your backend calls GET /services to build the menu, POST /numbers with max_price to buy, and listens for the signed sms.received webhook to post the code back into the right chat. If the number expires, the price returns to your balance and your bot should refund the user too.

A bot that sells to the public is a reseller, so the reseller rules apply in full: your users must follow the Noir SMS Acceptable Use Policy, you are responsible for abuse through your bot, and accounts that resell to abusers are closed. Also follow Telegram's or Discord's own bot and payment rules.

An internal tool so employees don't use personal numbers

Marketing, support and operations teams constantly sign up for tools that want a phone number. When people use their personal phones, the company loses access when they leave, and their private number ends up in vendor databases. A small internal page backed by the API can hand out a number for one verification and show the code, with the cost charged to one company balance and every purchase listed by GET /numbers?status=all.

Be honest with your team about the limits: numbers are single use and recycled later. For accounts the company keeps, the tool should prompt staff to add a durable recovery method, such as a shared mailbox or an authenticator app, right after verifying.

# Nothing arrived and cancelable_at has passed: cancel and get the price back
curl -X POST https://noirsms.com/api/v1/numbers/6026e15f-088d-45b5-bf22-70ed0b417afa/cancel \
  -H "Authorization: Bearer nsk_live_YOUR_KEY"

# Code arrived and you need a second SMS on the same number (free while open)
curl -X POST https://noirsms.com/api/v1/numbers/6026e15f-088d-45b5-bf22-70ed0b417afa/resend \
  -H "Authorization: Bearer nsk_live_YOUR_KEY"

Testing how your OTP SMS looks in many countries

If your app sends verification codes worldwide, the SMS a user receives in Canada, the UK or Brazil can differ from what you see at home: a different sender format, a translated template, a stripped character, a message split in two. By receiving your own OTP on real numbers from many countries, you can read sms[].text exactly as it arrived and check language, length and branding. GET /countries tells you where numbers are in stock today.

import requests

BASE = "https://noirsms.com/api/v1"
H = {"Authorization": "Bearer nsk_live_YOUR_KEY"}

# Which countries have numbers in stock right now?
countries = requests.get(f"{BASE}/countries", headers=H).json()["countries"]
for c in countries[:10]:
    services = requests.get(f"{BASE}/services", params={"country": c["country"]}, headers=H).json()["services"]
    print(c["country"], len(services), "services in stock")

A privacy layer for your own accounts

Some developers build a personal tool that verifies their own accounts with a temporary number, so their real phone number is not tied to every newsletter, marketplace or test environment they sign up for. That is the same use as the dashboard, just scripted. The same caution applies: for any account you plan to keep, add your own phone, email or authenticator afterwards, because the rented number will not be available for recovery later.

Not allowed

These uses are prohibited by the Noir SMS Acceptable Use Policy whether you use the dashboard, the API or a reseller. Accounts involved in them are closed, and resellers whose customers do them lose their account too.

  • Bulk or automated account creation on any platform, including farming accounts for sale.
  • Evading bans, suspensions or limits, including re-registering after a ban with a new number.
  • Spam, unsolicited bulk messaging, and fake engagement such as reviews, votes or followers.
  • Fraud, scams, impersonation and harassment.
  • Bypassing bank, fintech, payment, crypto-exchange or identity (KYC) verification.

Step by step

  1. Check the fitMake sure your idea serves legitimate accounts owned by you or by customers who follow the Acceptable Use Policy.
  2. Build on the APIUse /services and /countries for menus, POST /numbers to buy, and the sms.received webhook to deliver codes.
  3. Handle the edgesRefund users when numbers expire, cancel unused numbers after 2 minutes, and remind users to add their own recovery method.

Frequently asked questions

Can I build a Telegram bot that sells verification numbers?

Yes, as a reseller. Your users must follow the same Acceptable Use Policy, you are responsible for abuse through your bot, and accounts that resell to abusers are closed.

Can I use the API to create many accounts automatically?

No. Bulk or automated account creation is prohibited on Noir SMS and usually breaks the target platform's terms. Accounts doing it are closed.

Can my company use one balance for the whole team?

Yes. One account, one API key and one balance can back an internal tool. GET /numbers lists every number bought through the API.

Can I verify bank or crypto-exchange accounts through the API?

No. Bypassing bank, fintech, payment, crypto-exchange or identity (KYC) checks is prohibited, through the API or the dashboard.

Can I keep a number for a long time?

No. Each number is reserved for 20 minutes for one verification and is recycled later by the provider. Add your own recovery method to accounts you keep.

Related services

Related guides

More solutions

Start building with the Noir SMS API

Create a free account, add funds and generate your API key on the API page of your dashboard.