Everything the web app does is available over HTTP with an API key. Request a number for a service and country, poll until the code arrives or the window closes, then release the number. There is no subscription to provision and no seat to buy, so an integration that runs twice a month costs what those two runs cost.
This is for anyone automating a verification step in a system they run. Scripts, test suites, internal tooling, a job that runs at three in the morning. The API was written for that person first and the web app second.
The shape of an integration
Ask for a number for the service and country you need and you get back an activation id and the number itself. Poll the activation until the code appears. Release it, or let it expire and refund itself. That is the whole loop, and it is the same three calls in every language.
We publish clients for Python and Node, and the protocol is compatible with the handler_api convention that most tooling in this space already speaks, so an existing integration usually needs a base URL and a key rather than a rewrite.
What the billing model means for code
You are charged when a code arrives, not when you ask for a number. An activation that times out returns the full amount automatically, so retry logic does not need to reconcile charges afterwards.
Prices move with supplier cost and stock, and the price for a given service and country is readable before you commit, so a job can decline anything above a threshold you set.