Reference

    VerifyPulse API

    Eight endpoints, one header, no SDK. Buy a number, poll for the code, and release it when you are done.

    connection
    base
    https://verifypulse.com/api/v1
    auth
    X-API-Key
    limit
    100 / 15 min

    Key-based auth

    One header on every request. Rotate or revoke from the dashboard.

    Real-time operations

    Numbers are issued instantly; status reflects the live pool.

    Rate limited

    100 requests per 15 minutes per IP, reported in response headers.

    Base URL

    Every path below is relative to this origin. HTTPS only.

    https://verifypulse.com/api/v1

    Getting an API key

    1. 1Log in to your VerifyPulse account
    2. 2Open the API Keys section in your dashboard
    3. 3Create a new key with a descriptive name
    4. 4Store it securely — it is shown only once

    Sending the key

    header — preferred

    X-API-Key: your_api_key_here

    query parameter

    ?api_key=your_api_key_here
    Manage API keys
    endpoints8 total
    • GET/balanceGet your current account balance
    • GET/countriesGet list of available countries for SMS verification
    • GET/servicesGet available services for a specific country and operator
    • POST/buy-numberPurchase a phone number for SMS verification
    • GET/numbersGet list of all your purchased numbers
    • GET/numbers/{number_id}/statusCheck the status of a number and get the SMS code if received
    • POST/numbers/{number_id}/cancelCancel a number and get a refund (if within the time limit)
    • POST/numbers/{number_id}/repeatBuy a new number with the same parameters as an existing one
    GET /balance — 200
    {
      "success": true,
      "balance": 25.50,
      "currency": "USD"
    }
    POST /buy-number — 200
    {
      "success": true,
      "number": {
        "id": "abc123def456",
        "number": "+79001234567",
        "number_id": "12345",
        "country": "Russia",
        "country_id": "0",
        "operator": "any",
        "service": "vk",
        "price": 0.15,
        "status": "active",
        "created_at": "2024-01-15T10:30:00.000Z"
      }
    }
    node · axios
    const axios = require('axios');
    
    const API_KEY = 'your_api_key_here';
    const BASE_URL = 'https://verifypulse.com/api/v1';
    
    // Get balance
    async function getBalance() {
      try {
        const response = await axios.get(`${BASE_URL}/balance`, {
          headers: { 'X-API-Key': API_KEY }
        });
        console.log('Balance:', response.data.balance);
      } catch (error) {
        console.error('Error:', error.response.data.error);
      }
    }
    
    // Buy a number
    async function buyNumber() {
      try {
        const response = await axios.post(`${BASE_URL}/buy-number`, {
          country: 'Russia',
          countryID: '0',
          operator: 'any',
          service: 'vk'
        }, {
          headers: { 'X-API-Key': API_KEY }
        });
        console.log('Number:', response.data.number);
      } catch (error) {
        console.error('Error:', error.response.data.error);
      }
    }
    python · requests
    import requests
    
    API_KEY = 'your_api_key_here'
    BASE_URL = 'https://verifypulse.com/api/v1'
    
    headers = {'X-API-Key': API_KEY}
    
    # Get balance
    def get_balance():
        response = requests.get(f'{BASE_URL}/balance', headers=headers)
        if response.status_code == 200:
            data = response.json()
            print(f"Balance: {data['balance']}")
        else:
            print(f"Error: {response.json()['error']}")
    
    # Buy a number
    def buy_number():
        data = {
            'country': 'Russia',
            'countryID': '0',
            'operator': 'any',
            'service': 'vk'
        }
        response = requests.post(f'{BASE_URL}/buy-number', json=data, headers=headers)
        if response.status_code == 200:
            data = response.json()
            print(f"Number: {data['number']}")
        else:
            print(f"Error: {response.json()['error']}")
    shell · curl
    # Get balance
    curl -H "X-API-Key: your_api_key_here" \
         https://verifypulse.com/api/v1/balance
    
    # Buy a number
    curl -X POST \
         -H "X-API-Key: your_api_key_here" \
         -H "Content-Type: application/json" \
         -d '{"country":"Russia","countryID":"0","operator":"any","service":"vk"}' \
         https://verifypulse.com/api/v1/buy-number
    
    # Check number status
    curl -H "X-API-Key: your_api_key_here" \
         https://verifypulse.com/api/v1/numbers/12345/status
    error envelope
    {
      "success": false,
      "error": "Error message description"
    }
    400

    Bad Request

    Invalid parameters or insufficient balance

    401

    Unauthorized

    Invalid or missing API key

    404

    Not Found

    Resource not found

    429

    Too Many Requests

    Rate limit exceeded

    Best practices

    • Store API keys securely — never expose them in client-side code
    • Use HTTPS for all API requests
    • Implement proper error handling for every call
    • Use exponential backoff when retrying transient errors
    • Monitor your usage so you do not hit the rate limit

    Ready to wire it up?

    Generate a key, or open a ticket if something in here does not behave as documented.