S SMSFixMyBM
Login Sign up

API

Automate rentals instead of clicking through the dashboard. Every account can issue its own API key โ€” generate yours on the Profile page (it is shown once, then stored only as a hash). Send it as a query parameter ?api_key=YOUR_KEY, an X-API-Key header, or an Authorization: Bearer header.

How a rental flows

  1. 1. Ask for a number โ€” choose a service and receive a USA number plus a rental ID.
  2. 2. Poll for the code โ€” check the rental status every few seconds until the SMS code shows up.
  3. 3. Done โ€” once the code is delivered the rental completes on its own; there is nothing else to confirm.

Endpoints

GET/api/v1/balance

Your wallet balance.

{"ok":true,"balance_cents":856,"balance":"8.56","currency":"USD"}

GET/api/v1/services

The full catalogue with final prices (markup already included).

{"ok":true,"services":[{"code":"wa","name":"WhatsApp","price":"1.44", ...}]}

POST/api/v1/rent

Rent a number. Body (JSON or form): {"service":"wa"} โ€” the service codes are the ones from the services list.

{"ok":true,"rental_id":"r_1","service":"wa","phone":"+15551234567",
 "price_cents":144,"status":"active","expires_at":"2026-10-21T12:20:00.000Z"}

GET/api/v1/rentals/:id/status

Status of one of your rentals. While it is active this also checks the provider, so the code appears here as soon as it lands.

{"ok":true,"rental_id":"r_1","status":"completed","code":"482916",
 "charged":true,"price_cents":144}

Errors come back as {"ok":false,"error":"..."} with a matching HTTP status (401 for a bad key, 402 for low balance, 409 when your active-rental limit is full, 503 while a service is unavailable).

Billing rule

Exactly like the dashboard: your wallet is debited only when a code is delivered. Rentals that expire or are cancelled before any code arrives are free, and every charge is written to your wallet history.

๐Ÿ’ฌ