Integrating a messaging API used to mean sending yourself forty text messages. Every account now has a test key, prefixed sk_test_, next to its live keys.
What a test request does
Everything except the last step. The number is normalised, the destination resolved, the sender rule applied, the text encoded and segmented, the price computed from the live rate card. The response is the real response, with "status": "test". Nothing is handed to a carrier and nothing is debited.
Webhooks too
Test messages emit webhooks to your endpoints, signed like real ones, walking through message.sent and message.delivered a second apart. Numbers ending in 0001 to 0004 simulate failed, expired, rejected and a slow delivery, so you can exercise every branch of your handler.
What it does not do
It does not tell you whether a real message will be delivered; only a carrier can. When the integration works, switch the key and send one real message to yourself. That is the whole go-live procedure.


