100MB FREEResidential proxiesClaim
NumberOTP

CLI: notp

Everything numberotp.com does, from your terminal: numbers, codes, rentals, top-ups, keys, webhooks and a live dashboard.

1Install

Homebrew$ brew install DishantSinghDev2/tap/notp
macOS / Linux$ curl -fsSL https://www.numberotp.com/install.sh | sh

The script detects your OS and CPU, checks the download against the release checksums and installs to /usr/local/bin (or ~/.local/bin). Set NOTP_INSTALL_DIR to choose another folder.

Windows: download notp_<version>_windows_amd64.zip (or arm64) from the releases page, unzip it and add the folder with notp.exe to your PATH.

Check it works with notp --version. To update, run brew upgrade notp or the install command again.

2Sign in

notp login     # opens numberotp.com — approve this terminal therenotp whoami

No password is typed into the terminal. Your session is stored in the OS keychain (Keychain, Credential Manager or Secret Service), and notp logout revokes it on the server too.

In CI or on a server, use an API key instead: set NOTP_API_KEY, or run notp login --with-api-key < key.txt. Several accounts? Add --profile work to any command.

3Get a number and its code

notp buy                                    # pick the service and country from a listnotp buy whatsapp --country uk              # or say it directlynotp buy telegram --country india --copy    # code copied to the clipboard when it landsnotp buy discord.com --country usa --max-price 1.5

Services can be a name, a code or a website (discord.com). Countries can be a name (uk, usa), an ISO code (de) or an id (16). Not sure where to buy? notp prices whatsapp --sort price compares price, stock and success rate by country.

FlagWhat it does
--copy, -cCopy the code to the clipboard when it arrives
--max-priceNever pay more than this (USD)
--poolauto (best measured delivery), 1, 2 or 3
--timeoutStop waiting after this long (default 20m); the number stays open
--no-waitPrint the number and return; get the code later with notp wait <id>
--yes, -ySkip the confirmation

4Manage your numbers

notp ls --active        # open numbersnotp show <id>          # code and every SMSnotp wait <id>          # wait for the codenotp resend <id>        # another SMS on the same numbernotp finish <id>        # done — close itnotp cancel <id>        # no SMS? cancel for a full refund

5Scripts and CI

export NOTP_API_KEY=notp_…CODE=$(notp buy telegram --country usa -q) || exit $?echo "verification code: $CODE" notp ls --json > numbers.json      # --json works on every command
Exit codeMeaning
0Success
1Error
2The number expired or was canceled (it was refunded)
3--timeout passed (the number is still open)
4Not signed in
64Bad usage
130Interrupted

6Rentals, balance and reminders

notp rent telegram --country usa --hours 24   # 2, 4, 12 or multiples of 24 up to 720notp rentalsnotp balancenotp tx                                        # recent transactionsnotp topup 25                                  # opens checkout, waits for confirmationnotp reminders add whatsapp uk                 # email me when it's back in stock

7For developers: keys, webhooks, events

notp keys create ci --scope read,buy           # a limited key for CI or an AI agentnotp webhook set https://example.com/hooks/numberotpnotp listen --forward-to localhost:3000/api/webhook   # real, signed events to your dev servernotp events tail --json                        # every event, livenotp sessions                                  # apps, CLIs and agents signed in to your account

notp listen only forwards to your own machine (localhost, *.localhost, *.test).

8Shell completion

Homebrew installs completions for you. Otherwise:

notp completion zsh > "${fpath[1]}/_notp"     # zshnotp completion bash > /etc/bash_completion.d/notpnotp completion fish > ~/.config/fish/completions/notp.fish
Run notp with no arguments for a live dashboard, and notp <command> --help for every flag. Building an app instead? See the SDK guide.