API

REST API. Panel ile aynı ücret kuralları. Anahtarı URL’ye değil, istek başlığına koy. getBalance her zaman canlıdır.

Aynı ücret kuralları

Alımlar önce bakiyeden düşer; başarısız olursa iade. İlk SMS’ten sonra requestNextSms veya rent/:id/next ile bir SMS daha istenebilir. Satın alma ~20 dk; kiralama süre bitene kadar. Profil · Nasıl kullanılır.

getNumber
GET /api/v1/account/getNumber?serviceId=x-api-key: ••••••GET /api/v1/account/getMessage/<id>→ { "code": "847291" }

Account

Prefer Authorization: Bearer or x-api-key — keys stay out of access logs. PHP path URLs still work for scripts (not browsers).

GET
/api/v1/account/getBalance

Live spendable balance (PHP shape)

GET
/api/v1/account/getServices

Catalog by category

GET
/api/v1/account/getServiceDetails/:id

Price + stock

GET
/api/v1/account/countryMappings

Country name → ISO

GET
/api/v1/account/getActivations

History + TTL sync (may refund expired PENDING)

GETPOST
/api/v1/account/getNumber?serviceId=

Buy

GET
/api/v1/account/getNumber/:serviceId

Buy via path

GET
/api/v1/account/getMessage/:id

Poll SMS

GETPOST
/api/v1/account/requestNextSms/:id

Next SMS on the same number

GET
/api/v1/account/cancelNumber/:id

Cancel + refund if eligible

GETPOST
/api/v1/account/rent

List (soft-expire) / buy rent

GET
/api/v1/account/getRentActivations

Rent list PHP alias

GET
/api/v1/account/getRentNumber/:country/:service/:time

Rent buy PHP alias

GET
/api/v1/account/getRentMessage/:id

Rent poll PHP alias

GET
/api/v1/account/cancelRentNumber/:id

Rent cancel PHP alias

GET
/api/v1/account/rent/:id/message

Poll rent SMS

POST
/api/v1/account/rent/:id/next

Request another SMS on the same rental

POST
/api/v1/account/rent/:id/cancel

Cancel rent

Legacy path key

PHP-style `/api/v1/<apiKey>/…` for curl/bots. Disabled in production unless ALLOW_PATH_API_KEYS=true. Browser Origin is always ignored — use Bearer / x-api-key.

GET
/api/v1/<apiKey>/getBalance

Live spendable balance (PHP shape)

GET
/api/v1/<apiKey>/getServices

Catalog by category

GET
/api/v1/<apiKey>/getServiceDetails/:id

Price + stock + country flag

GET
/api/v1/<apiKey>/countryMappings

Country name → ISO

GETPOST
/api/v1/<apiKey>/getNumber?serviceId=

Buy (also GET …/getNumber/:serviceId)

GET
/api/v1/<apiKey>/getMessage/:id

Poll SMS — PHP-shaped status 0|1|-1

GETPOST
/api/v1/<apiKey>/requestNextSms/:id

Request another SMS on the same number

GET
/api/v1/<apiKey>/cancelNumber/:id

Cancel + refund if eligible

GET
/api/v1/<apiKey>/getActivations

History + TTL sync (may refund expired PENDING)

GETPOST
/api/v1/<apiKey>/rent

List / buy rent

GET
/api/v1/<apiKey>/getRentActivations

Rent list (PHP path)

GET
/api/v1/<apiKey>/getRentNumber/:country/:service/:time

Rent buy (PHP path)

GET
/api/v1/<apiKey>/getRentMessage/:id

Rent poll (PHP path)

GET
/api/v1/<apiKey>/cancelRentNumber/:id

Rent cancel (PHP path)

GET
/api/v1/<apiKey>/rent/:id/message

Poll rent SMS

POST
/api/v1/<apiKey>/rent/:id/next

Request another SMS on the same rental

POST
/api/v1/<apiKey>/rent/:id/cancel

Cancel rent (2–20 min, no SMS)

Public catalog

No auth — categories, services, rent catalog, social proof.

GET
/api/v1/getCategories

Public categories

GET
/api/v1/getAllServices

Public services

GET
/api/v1/getRandomOrder

Social proof

GET
/api/v1/getActivisions

Recent success feed

GET
/api/v1/getServerTimestamp

Unix timestamp (plain text)

GET
/api/v1/getRentCountries

Rent countries + flags

GET
/api/v1/getRentServicesList

Rent services catalog

GET
/api/v1/getRentServices/:countryId

Rent prices (?time=hours)

Responses

// buy (activation or rent — rent title "Rental purchased")
{ "success": true, "number_id": "<id>", "number": "+…", "id": "<id>" }
{ "success": false, "message": "…", "error": "NO_NUMBERS|INSUFFICIENT_BALANCE|…" }

// getMessage (activation + rent poll — rent also keeps message / rent_status)
{ "id": "<id>", "code": "123456"|null, "status": 0|1|-1, "sms_entries": [...], "finished": false }

// cancel (rent: "Rental canceled")
{ "success": true, "message": "Number canceled and balance refunded.", "refunded": true }

Errors

JSON body is always { "error": "<CODE>" } for auth failures, or buy/cancel success: false with message + error. Never provider brand names.

HTTPCodeWhen
401INVALID_KEYMissing / unknown API key
403BANNEDAccount banned (key may still resolve)
429RATE_LIMITEDPer-user or public IP throttle
400INSUFFICIENT_BALANCEBuy / rent debit refused
400NO_NUMBERSNo stock for that line
400TOO_EARLY_CANCEL / TOO_EARLYCancel before min window (rent: TOO_EARLY)
400HAS_SMSCancel blocked — SMS already delivered
400INVALID_STATEWrong status for poll / next / cancel
400PROVIDER_ERRORUpstream failure (generic copy)
400BUY_UNCERTAINDebit held — do not retry until settle

Ops cron

Header only: Authorization: Bearer <CRON_SECRET> or x-cron-secret. GET /api/cron/expire-stale — expire PENDING, finish SUCCESS past TTL, expire rents. GET /api/cron/update-prices — catalog costs and USD→TRY.

Numara almaya hazır mısın?

Hesap oluştur. Anahtar, girişten sonra Profil’de.