Skip to main content

VAKSMS API for Python 3

About

This library is a wrapper for the https://vak-sms.com/api/vak/ API from enthusiasts. All methods are described and all types are explicitly defined. Methods that create requests to https://vak-sms.com/api/vak/ return a pydantic's models for each response. Please write about all problems related to the library to issues

API is up-to-date as of 22 May 2025.

Features

  • It's completely asynchronous
  • You can use multiple clients to work with multiple users or shops
  • All methods for working with API are implemented
  • The library returns strictly typed for responses from APIs
  • For each method, docstrings are used
  • The library handle {type: error} responses and throws VaksmsBadRequest exception
  • Modern, strict code for Python 3.10+

Library Installation

  • Install via pip: pip install aiovaksms
  • Download sources - git clone https://github.com/AioSmsProviders/aiovaksms

Getting Started

first steps (new in 3.0 update)

import asyncio

from aiovaksms import Vaksms


async def main():
    client = Vaksms('TOKEN') # use vaksms.com domain (not work in russia)
    client = Vaksms('TOKEN', base_url='https://moresms.net') # work in russia

    number = await client.get_number('ya')
    print(number.tel)  # 79995554433

    # recieve smscode
    sms_code = await number.wait_sms_code(timeout=300, per_attempt=5) # do not indicate timeout and per_attempt
    print(sms_code) #1234

    # set status
    await number.set_status('end')
    # bad - ban number
    # end - cancel number
    # send - new sms


asyncio.run(main())

Get user balance

import asyncio

from aiovaksms import Vaksms


async def main():
    client = Vaksms('TOKEN') # use vaksms.com domain (not work in russia)
    client = Vaksms('TOKEN', base_url='https://moresms.net') # work in russia
    balances = await client.get_balance()
    print(balances)  # balance = 100.0


asyncio.run(main())

Get number count

import asyncio

from aiovaksms import Vaksms

async def main():
    client = Vaksms('TOKEN') # use vaksms.com domain (not work in russia)
    client = Vaksms('TOKEN', base_url='https://moresms.net') # work in russia
    
    data = await client.get_count_number('cp')
    print(data)  # service='cp' count=4663 price=18.0


asyncio.run(main())

Get country list

import asyncio

from aiovaksms import Vaksms


async def main():
    client = Vaksms('TOKEN') # use vaksms.com domain (not work in russia)
    client = Vaksms('TOKEN', base_url='https://moresms.net') # work in russia
    data = await client.get_country_list()
    print(data)  # [CountryOperator(countryName='Tajikistan', countryCode='tj', operatorList=['babilon mobile', 'beeline', 'megafon', 'tcell']), CountryOperator(countryName='Zimbabwe', countryCode='zw', operatorList=['econet', 'netone', 'telecel'])... ]


asyncio.run(main())

Get number

import asyncio

from aiovaksms import Vaksms


async def main():
    client = Vaksms('TOKEN') # use vaksms.com domain (not work in russia)
    client = Vaksms('TOKEN', base_url='https://moresms.net') # work in russia
    data = await client.get_number('ya')
    
    # An exclusive function for obtaining the lifetime of a number
    # all known services whose lifetime differs from the standard 20 minutes
    # are included in the library database as of 10/02/2024
    # also work with "rent=True" parameter
    print(data.lifetime) # 1200 lifetime from date of purchase
    print(data.lives_up_to) # 1727823949 unix time of death
    
    print(data)  # tel=79296068469 service='ya' idNum='1725546315697382' lifetime=1200 lives_up_to=1727823949


asyncio.run(main())

Recieve smscode

import asyncio

from aiovaksms import Vaksms


async def main():
    client = Vaksms('TOKEN')  # use vaksms.com domain (not work in russia)
    client = Vaksms('TOKEN', base_url='https://moresms.net')  # work in russia
    data = await client.get_sms_code('1725546315697382') # 1725546315697382 is number id (idNum)
    print(data)  # smsCode='1234'


asyncio.run(main())

request a new sms

import asyncio

from aiovaksms import Vaksms


async def main():
    client = Vaksms('TOKEN') # use vaksms.com domain (not work in russia)
    client = Vaksms('TOKEN', base_url='https://moresms.net') # work in russia
    data = await client.set_status('1725546315697382', 'send') # 1725546315697382 is number id (idNum)
    print(data)  # ready


asyncio.run(main())

get service full name, service info, service icons

this method not in official vaksms documentation

import asyncio

from aiovaksms import Vaksms


async def main():
    client = Vaksms('TOKEN') # use vaksms.com domain (not work in russia)
    client = Vaksms('TOKEN', base_url='https://moresms.net') # work in russia
    data = await client.get_count_number_list()
    print(data)  # {'mr': Service(name='VK - MailRu', icon='https://vak-sms.com/static/service/mr.png', info='Тут можно принять смс от сервисов VKGroup.Не забывайте проверять номера на занятость через восстановление. Подробнее в базе знаний - https://bit.ly/3M6tXup', cost=22.0, rent=False, quantity=41153, private=False), ... }
    print(data['mr'].name) # VK - MailRu
    

asyncio.run(main())

Contact

License

Released under GPL by @lolkofka.

Metadata

Release files for aiovaksms 3.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiovaksms 3.0.2
File Size Uploaded Provenance Actions
aiovaksms-3.0.2.tar.gz 33.5 kB Without provenance Details for aiovaksms-3.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aiovaksms 3.0.2
File Interpreter ABI Platform Actions
aiovaksms-3.0.2-py3-none-any.whl Python 3 none any Details for aiovaksms-3.0.2-py3-none-any.whl

Total release size: 67.5 kB

Release files / aiovaksms-3.0.2.tar.gz

Download URL aiovaksms-3.0.2.tar.gz
Size 33.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9c303dd12ae2fe00e7d90d46df0f73722f2341a89660d790789a22a39c47273b
BLAKE2b-256 checksum
How to use checksums
e09258b70f024b490bcba120690303b38d23de61c87aec859b55e20d83511f9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / aiovaksms-3.0.2-py3-none-any.whl

Download URL aiovaksms-3.0.2-py3-none-any.whl
Size 34.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f743791a31a9e9c5ab0bc80df427a4de3b7dbf6c11b1c604055944b8bf623e89
BLAKE2b-256 checksum
How to use checksums
16dac584b5ca4f0103a1e7b00e2ed8a2fa9b7a2075539ce0143a15ce67cb374f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Security for aiovaksms 3.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page