Name | dadata JSON |
Version |
25.7.0
JSON |
| download |
home_page | None |
Summary | Data cleansing, enrichment and suggestions via Dadata API |
upload_time | 2025-07-30 14:43:17 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | None |
keywords |
dadata
clean
suggest
api
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Dadata API Client
> Data cleansing, enrichment and suggestions via [Dadata API](https://dadata.ru/api)
Thin Python wrapper over Dadata API.
## Installation
```sh
pip install dadata
```
Requirements:
- Python 3.9+
- [httpx](https://pypi.org/project/httpx/)
## Usage
Import Dadata client and set API keys:
```python
from dadata import Dadata
token = "Replace with Dadata API key"
secret = "Replace with Dadata secret key"
```
Use `with Dadata()` if you want a context-managed client:
```python
with Dadata(token, secret) as dadata:
...
```
Alternatively, use `dadata.close()` if you want to close a client explicitly:
```python
dadata = Dadata(token, secret)
...
dadata.close()
```
Call API methods as specified below.
## Usage (async)
Import Dadata client and set API keys:
```python
from dadata import DadataAsync
token = "Replace with Dadata API key"
secret = "Replace with Dadata secret key"
```
Use `async with DadataAsync()` if you want a context-managed client:
```python
async with DadataAsync(token, secret) as dadata:
...
```
Alternatively, use `await dadata.close()` if you want to close a client explicitly:
```python
dadata = DadataAsync(token, secret)
...
await dadata.close()
```
Call API methods as specified below (add `async` / `await` keywords where applicable).
## Options
The default request timeout is 3 seconds. You can change it with the `timeout` parameter:
```python
with Dadata(token, secret, timeout=1) as dadata:
...
```
## Postal Address
### [Validate and cleanse address](https://dadata.ru/api/clean/address/)
```python
>>> dadata.clean(name="address", source="мск сухонская 11 89")
{
'source': 'мск сухонская 11 89',
'result': 'г Москва, ул Сухонская, д 11, кв 89',
'postal_code': '127642',
'country': 'Россия',
'region': 'Москва',
'city_area': 'Северо-восточный',
'city_district': 'Северное Медведково',
'street': 'Сухонская',
'house': '11',
'flat': '89',
'flat_area': '34.6',
'flat_price': '6854710',
'fias_id': '5ee84ac0-eb9a-4b42-b814-2f5f7c27c255',
'timezone': 'UTC+3',
'geo_lat': '55.8782557',
'geo_lon': '37.65372',
'qc_geo': 0,
'qc': 0,
'metro': [ ... ],
...
}
```
### [Geocode address](https://dadata.ru/api/geocode/)
Same API method as "validate and cleanse":
```python
>>> dadata.clean(name="address", source="москва сухонская 11")
{
'source': 'мск сухонская 11 89',
'result': 'г Москва, ул Сухонская, д 11, кв 89',
...
'geo_lat': '55.8782557',
'geo_lon': '37.65372',
'beltway_hit': 'IN_MKAD',
'beltway_distance': None,
'qc_geo': 0,
...
}
```
### [Reverse geocode address](https://dadata.ru/api/geolocate/)
```python
>>> dadata.geolocate(name="address", lat=55.878, lon=37.653)
[
{ 'value': 'г Москва, ул Сухонская, д 11', ... },
{ 'value': 'г Москва, ул Сухонская, д 11А', ... },
{ 'value': 'г Москва, ул Сухонская, д 13', ... },
...
]
```
### [GeoIP city](https://dadata.ru/api/iplocate/)
```python
>>> dadata.iplocate("46.226.227.20")
{
'value': 'г Краснодар',
'unrestricted_value': '350000, Краснодарский край, г Краснодар',
'data': { ... }
}
```
### [Autocomplete (suggest) address](https://dadata.ru/api/suggest/address/)
```python
>>> dadata.suggest(name="address", query="самара метал")
[
{ 'value': 'г Самара, пр-кт Металлургов', ... },
{ 'value': 'г Самара, ул Металлистов', ... },
{ 'value': 'г Самара, поселок Зубчаниновка, ул Металлургическая', ... },
...
]
```
Show suggestions in English:
```python
>>> dadata.suggest(name="address", query="samara metal", language="en")
[
{ 'value': 'Russia, gorod Samara, prospekt Metallurgov', ... },
{ 'value': 'Russia, gorod Samara, ulitsa Metallistov', ... },
{ 'value': 'Russia, gorod Samara, poselok Zubchaninovka, ulitsa Metallurgicheskaya', ... },
...
]
```
Constrain by city (Yuzhno-Sakhalinsk):
```python
>>> locations = [{ "kladr_id": "6500000100000" }]
>>> dadata.suggest(name="address", query="Ватутина", locations=locations)
[
{'value': 'г Южно-Сахалинск, ул Ватутина' ... }
]
```
Constrain by specific geo point and radius (in Vologda city):
```python
>>> geo = [{ "lat": 59.244634, "lon": 39.913355, "radius_meters": 200 }]
>>> dadata.suggest(name="address", query="сухонская", locations_geo=geo)
[
{'value': 'г Вологда, ул Сухонская' ... }
]
```
Boost city to top (Toliatti):
```python
>>> boost = [{ "kladr_id": "6300000700000" }]
>>> dadata.suggest(name="address", query="авто", locations_boost=boost)
[
{'value': 'Самарская обл, г Тольятти, Автозаводское шоссе' ... },
{'value': 'Самарская обл, г Тольятти, ул Автомобилистов' ... },
{'value': 'Самарская обл, г Тольятти, ул Автостроителей' ... },
...
]
```
### [Find address by FIAS ID](https://dadata.ru/api/find-address/)
```python
>>> dadata.find_by_id(name="address", query="9120b43f-2fae-4838-a144-85e43c2bfb29")
[
{ 'value': 'г Москва, ул Снежная', ... }
]
```
Find by KLADR ID:
```python
>>> dadata.find_by_id(name="address", query="77000000000268400")
```
### [Find postal office](https://dadata.ru/api/suggest/postal_unit/)
Suggest postal office by address or code:
```python
>>> dadata.suggest(name="postal_unit", query="дежнева 2а")
[
{
'value': '127642',
'unrestricted_value': 'г Москва, проезд Дежнёва, д 2А',
'data': { ... }
}
]
```
Find postal office by code:
```python
>>> dadata.find_by_id(name="postal_unit", query="127642")
[
{
'value': '127642',
'unrestricted_value': 'г Москва, проезд Дежнёва, д 2А',
'data': { ... }
}
]
```
Find nearest postal office:
```python
>>> dadata.geolocate(name="postal_unit", lat=55.878, lon=37.653, radius_meters=1000)
[
{
'value': '127642',
'unrestricted_value': 'г Москва, проезд Дежнёва, д 2А',
'data': { ... }
}
]
```
### [Get City ID for delivery services](https://dadata.ru/api/delivery/)
```python
>>> dadata.find_by_id(name="delivery", query="3100400100000")
[
{
'value': '3100400100000',
'unrestricted_value': 'fe7eea4a-875a-4235-aa61-81c2a37a0440',
'data': {
...
'boxberry_id': '01929',
'cdek_id': '344',
'dpd_id': '196006461'
}
}
]
```
### [Get address strictly according to FIAS](https://dadata.ru/api/find-fias/)
```python
>>> dadata.find_by_id(name="fias", query="9120b43f-2fae-4838-a144-85e43c2bfb29")
[
{ 'value': 'г Москва, ул Снежная', ... }
]
```
### [Suggest country](https://dadata.ru/api/suggest/country/)
```python
>>> dadata.suggest(name="country", query="та")
[
{ 'value': 'Таджикистан', ... },
{ 'value': 'Таиланд', ... },
{ 'value': 'Тайвань', ... },
...
]
```
## Company or individual enterpreneur
## [Find company by INN](https://dadata.ru/api/find-party/)
```python
>>> dadata.find_by_id(name="party", query="7707083893")
[
{
'value': 'ПАО СБЕРБАНК',
'unrestricted_value': 'ПАО СБЕРБАНК',
'data': {
'inn': '7707083893',
'kpp': '773601001',
...
}
},
...
]
```
Find by INN and KPP:
```python
>>> dadata.find_by_id(name="party", query="7707083893", kpp="540602001")
[
{
'value': 'СИБИРСКИЙ БАНК ПАО СБЕРБАНК',
'unrestricted_value': 'СИБИРСКИЙ БАНК ПАО СБЕРБАНК',
'data': {
'inn': '7707083893',
'kpp': '540602001',
...
}
}
]
```
### [Suggest company](https://dadata.ru/api/suggest/party/)
```python
>>> dadata.suggest(name="party", query="сбер")
[
{ 'value': 'ПАО СБЕРБАНК', ... },
{ 'value': 'АО "СБЕРБРОКЕР"', ... },
{ 'value': 'АО "СБЕРИНВЕСТКАПИТАЛ"', ... },
...
]
```
Constrain by specific regions (Saint Petersburg and Leningradskaya oblast):
```python
>>> locations = [{ "kladr_id": "7800000000000" }, { "kladr_id": "4700000000000"}]
>>> dadata.suggest(name="party", query="сбер", locations=locations)
```
Constrain by active companies:
```python
>>> dadata.suggest(name="party", query="сбер", status=["ACTIVE"])
```
Constrain by individual entrepreneurs:
```python
>>> dadata.suggest(name="party", query="сбер", type="INDIVIDUAL")
```
Constrain by head companies, no branches:
```python
>>> dadata.suggest(name="party", query="сбер", branch_type=["MAIN"])
```
### [Find affiliated companies](https://dadata.ru/api/find-affiliated/)
```python
>>> dadata.find_affiliated("7736207543")
[
{ 'value': 'ООО "ДЗЕН.ПЛАТФОРМА"', ... },
{ 'value': 'ООО "ЕДАДИЛ"', ... },
{ 'value': 'ООО "ЗНАНИЕ"', ... },
...
]
```
Search only by manager INN:
```python
>>> dadata.find_affiliated("773006366201", scope=["MANAGERS"])
[
{ 'value': 'ООО "ЯНДЕКС"', ... },
{ 'value': 'МФ "ФОИ"', ... },
{ 'value': 'АНО ДПО "ШАД"', ... },
]
```
## Bank
### [Find bank by BIC, SWIFT or INN](https://dadata.ru/api/find-bank/)
```python
>>> dadata.find_by_id(name="bank", query="044525225")
[
{
'value': 'ПАО Сбербанк',
'unrestricted_value': 'ПАО Сбербанк',
'data': {
'bic': '044525225',
'swift': 'SABRRUMM',
'inn': '7707083893',
...
}
}
]
```
Find by SWIFT code:
```python
>>> dadata.find_by_id(name="bank", query="SABRRUMM")
```
Find by INN:
```python
>>> dadata.find_by_id(name="bank", query="7728168971")
```
Find by INN and KPP:
```python
>>> dadata.find_by_id(name="bank", query="7728168971", kpp="667102002")
```
Find by registration number:
```python
>>> dadata.find_by_id(name="bank", query="1481")
```
### [Suggest bank](https://dadata.ru/api/suggest/bank/)
```python
>>> dadata.suggest(name="bank", query="ти")
[
{ 'value': 'АО «Тимер Банк»', ... },
{ 'value': 'АО «Тинькофф Банк»', ... },
{ 'value': '«Азиатско-Тихоокеанский Банк» (ПАО)', ... },
...
]
```
## Personal name
### [Validate and cleanse name](https://dadata.ru/api/clean/name/)
```python
>>> dadata.clean(name="name", source="Срегей владимерович иванов")
{
'source': 'Срегей владимерович иванов',
'result': 'Иванов Сергей Владимирович',
...
'surname': 'Иванов',
'name': 'Сергей',
'patronymic': 'Владимирович',
'gender': 'М',
'qc': 1
}
```
### [Suggest name](https://dadata.ru/api/suggest/name/)
```python
>>> dadata.suggest(name="fio", query="викт")
[
{ 'value': 'Виктор', ... },
{ 'value': 'Виктория', ... },
{ 'value': 'Викторова', ... },
...
]
```
Suggest female first name:
```python
>>> dadata.suggest(name="fio", query="викт", parts=["NAME"], gender="FEMALE")
[
{ 'value': 'Виктория', ... },
{ 'value': 'Викторина', ... }
]
```
## Phone
### [Validate and cleanse phone](https://dadata.ru/api/clean/phone/)
```python
>>> dadata.clean(name="phone", source="9168-233-454")
{
'source': '9168-233-454',
'type': 'Мобильный',
'phone': '+7 916 823-34-54',
'provider': 'ПАО "Мобильные ТелеСистемы"',
'country': 'Россия',
'region': 'Москва и Московская область',
'timezone': 'UTC+3',
'qc': 0,
...
}
```
## Passport
### [Validate passport](https://dadata.ru/api/clean/passport/)
```python
>>> dadata.clean(name="passport", source="4509 235857")
{
'source': '4509 235857',
'series': '45 09',
'number': '235857',
'qc': 0
}
```
### [Suggest issued by](https://dadata.ru/api/suggest/fms_unit/)
```python
>>> dadata.suggest(name="fms_unit", query="772 053")
[
{ 'value': 'ОВД ЗЮЗИНО Г. МОСКВЫ', ... },
{ 'value': 'ОВД РАЙОНА ЗЮЗИНО УВД ЮГО-ЗАО Г. МОСКВЫ', ... },
{ 'value': 'ПАСПОРТНО-ВИЗОВЫМ ОТДЕЛЕНИЕМ ОВД РАЙОНА ЗЮЗИНО Г. МОСКВЫ', ... },
...
]
```
## Email
### [Validate email](https://dadata.ru/api/clean/email/)
```python
>>> dadata.clean(name="email", source="serega@yandex/ru")
{
'source': 'serega@yandex/ru',
'email': 'serega@yandex.ru',
'local': 'serega',
'domain': 'yandex.ru',
'type': 'PERSONAL',
'qc': 4
}
```
### [Suggest email](https://dadata.ru/api/suggest/email/)
```python
>>> dadata.suggest(name="email", query="maria@")
[
{ 'value': 'maria@mail.ru', ... },
{ 'value': 'maria@gmail.com', ... },
{ 'value': 'maria@yandex.ru', ... },
...
]
```
## Other datasets
### [Tax office](https://dadata.ru/api/suggest/fns_unit/)
```python
>>> dadata.find_by_id(name="fns_unit", query="5257")
[
{
'value': 'Инспекция ФНС России по Канавинскому району г.Нижнего Новгорода',
'unrestricted_value': 'Инспекция ФНС России по Канавинскому району г.Нижнего Новгорода',
'data': {
'code': '5257'
'oktmo': '22701000',
'inn': '5257046101',
'kpp': '525701001',
...
}
}
]
```
### [Regional court](https://dadata.ru/api/suggest/region_court/)
```python
>>> dadata.suggest(name="region_court", query="таганско")
[
{ 'value': 'Судебный участок № 371 Таганского судебного района г. Москвы', ... },
{ 'value': 'Судебный участок № 372 Таганского судебного района г. Москвы', ... },
{ 'value': 'Судебный участок № 373 Таганского судебного района г. Москвы', ... },
...
]
```
### [Metro station](https://dadata.ru/api/suggest/metro/)
```python
>>> dadata.suggest(name="metro", query="алек")
[
{ 'value': 'Александровский сад', ... },
{ 'value': 'Алексеевская', ... },
{ 'value': 'Площадь Александра Невского 1', ... },
...
]
```
Constrain by city (Saint Petersburg):
```python
>>> filters = [{ "city": "Санкт-Петербург" }]
>>> dadata.suggest(name="metro", query="алек", filters=filters)
[
{ 'value': 'Площадь Александра Невского 1', ... },
{ 'value': 'Площадь Александра Невского 2', ... }
]
```
### [Car brand](https://dadata.ru/api/suggest/car_brand/)
```python
>>> dadata.suggest(name="car_brand", query="фо")
[
{ 'value': 'Volkswagen', ... },
{ 'value': 'Ford', ... },
{ 'value': 'Foton', ... }
]
```
### [Currency](https://dadata.ru/api/suggest/currency/)
```python
>>> dadata.suggest(name="currency", query="руб")
[
{ 'value': 'Белорусский рубль', ... },
{ 'value': 'Российский рубль', ... }
]
```
### [OKVED 2](https://dadata.ru/api/suggest/okved2/)
```python
>>> dadata.suggest(name="okved2", query="космических")
[
{ 'value': 'Производство космических аппаратов (в том числе спутников), ракет-носителей', ... },
{ 'value': 'Производство автоматических космических аппаратов', ... },
{ 'value': 'Деятельность космических лабораторий', ... },
...
]
```
### [OKPD 2](https://dadata.ru/api/suggest/okpd2/)
```python
>>> dadata.suggest(name="okpd2", query="калоши")
[
{ 'value': 'Услуги по обрезинованию валенок (рыбацкие калоши)', ... }
]
```
## Profile API
Balance:
```python
>>> dadata.get_balance()
150.00
```
Usage stats:
```python
>>> dadata.get_daily_stats()
{
'date': '2024-10-10',
'services': {
'clean': 200,
'company': 0,
'company_similar': 0,
'merging': 0,
'suggestions': 15000,
},
'remaining': {
'clean': 800,
'company': 50,
'company_similar': 0,
'merging': 15000,
'suggestions': 185000
}
}
```
Dataset versions:
```python
>>> dadata.get_versions()
{
'dadata': { 'version': 'stable (9048:bf33b2acc8ba)' },
'factor': {
'resources': { ... },
'version': '20.06 (eb70078e)'
},
'suggestions': {
'resources': { ... },
'version': '20.5 (b55eb7c4)'
}
}
```
## Development setup
```sh
$ python3 -m venv env
$ . env/bin/activate
$ make deps
$ tox
```
## Contributing
This project only accepts bug fixes.
## [Changelog](CHANGELOG.md)
This library uses [CalVer](https://calver.org/) with YY.MM.MICRO schema. See changelog for details specific to each release.
## License
[MIT](https://choosealicense.com/licenses/mit/)
Raw data
{
"_id": null,
"home_page": null,
"name": "dadata",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "dadata, clean, suggest, api",
"author": null,
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/26/f2/14c4dbfacbd6a4432909625b4e35e2c04f459dfb6fa8cd87451736f44a13/dadata-25.7.0.tar.gz",
"platform": null,
"description": "# Dadata API Client\n\n> Data cleansing, enrichment and suggestions via [Dadata API](https://dadata.ru/api)\n\nThin Python wrapper over Dadata API.\n\n## Installation\n\n```sh\npip install dadata\n```\n\nRequirements:\n\n- Python 3.9+\n- [httpx](https://pypi.org/project/httpx/)\n\n## Usage\n\nImport Dadata client and set API keys:\n\n```python\nfrom dadata import Dadata\n\ntoken = \"Replace with Dadata API key\"\nsecret = \"Replace with Dadata secret key\"\n```\n\nUse `with Dadata()` if you want a context-managed client:\n\n```python\nwith Dadata(token, secret) as dadata:\n ...\n```\n\nAlternatively, use `dadata.close()` if you want to close a client explicitly:\n\n```python\ndadata = Dadata(token, secret)\n...\ndadata.close()\n```\n\nCall API methods as specified below.\n\n## Usage (async)\n\nImport Dadata client and set API keys:\n\n```python\nfrom dadata import DadataAsync\n\ntoken = \"Replace with Dadata API key\"\nsecret = \"Replace with Dadata secret key\"\n```\n\nUse `async with DadataAsync()` if you want a context-managed client:\n\n```python\nasync with DadataAsync(token, secret) as dadata:\n ...\n```\n\nAlternatively, use `await dadata.close()` if you want to close a client explicitly:\n\n```python\ndadata = DadataAsync(token, secret)\n...\nawait dadata.close()\n```\n\nCall API methods as specified below (add `async` / `await` keywords where applicable).\n\n## Options\n\nThe default request timeout is 3 seconds. You can change it with the `timeout` parameter:\n\n```python\nwith Dadata(token, secret, timeout=1) as dadata:\n ...\n```\n\n## Postal Address\n\n### [Validate and cleanse address](https://dadata.ru/api/clean/address/)\n\n```python\n>>> dadata.clean(name=\"address\", source=\"\u043c\u0441\u043a \u0441\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f 11 89\")\n{\n 'source': '\u043c\u0441\u043a \u0441\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f 11 89',\n 'result': '\u0433 \u041c\u043e\u0441\u043a\u0432\u0430, \u0443\u043b \u0421\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f, \u0434 11, \u043a\u0432 89',\n 'postal_code': '127642',\n 'country': '\u0420\u043e\u0441\u0441\u0438\u044f',\n 'region': '\u041c\u043e\u0441\u043a\u0432\u0430',\n 'city_area': '\u0421\u0435\u0432\u0435\u0440\u043e-\u0432\u043e\u0441\u0442\u043e\u0447\u043d\u044b\u0439',\n 'city_district': '\u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0435 \u041c\u0435\u0434\u0432\u0435\u0434\u043a\u043e\u0432\u043e',\n 'street': '\u0421\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f',\n 'house': '11',\n 'flat': '89',\n 'flat_area': '34.6',\n 'flat_price': '6854710',\n 'fias_id': '5ee84ac0-eb9a-4b42-b814-2f5f7c27c255',\n 'timezone': 'UTC+3',\n 'geo_lat': '55.8782557',\n 'geo_lon': '37.65372',\n 'qc_geo': 0,\n 'qc': 0,\n 'metro': [ ... ],\n ...\n}\n```\n\n### [Geocode address](https://dadata.ru/api/geocode/)\n\nSame API method as \"validate and cleanse\":\n\n```python\n>>> dadata.clean(name=\"address\", source=\"\u043c\u043e\u0441\u043a\u0432\u0430 \u0441\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f 11\")\n{\n 'source': '\u043c\u0441\u043a \u0441\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f 11 89',\n 'result': '\u0433 \u041c\u043e\u0441\u043a\u0432\u0430, \u0443\u043b \u0421\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f, \u0434 11, \u043a\u0432 89',\n ...\n 'geo_lat': '55.8782557',\n 'geo_lon': '37.65372',\n 'beltway_hit': 'IN_MKAD',\n 'beltway_distance': None,\n 'qc_geo': 0,\n ...\n}\n```\n\n### [Reverse geocode address](https://dadata.ru/api/geolocate/)\n\n```python\n>>> dadata.geolocate(name=\"address\", lat=55.878, lon=37.653)\n[\n { 'value': '\u0433 \u041c\u043e\u0441\u043a\u0432\u0430, \u0443\u043b \u0421\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f, \u0434 11', ... },\n { 'value': '\u0433 \u041c\u043e\u0441\u043a\u0432\u0430, \u0443\u043b \u0421\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f, \u0434 11\u0410', ... },\n { 'value': '\u0433 \u041c\u043e\u0441\u043a\u0432\u0430, \u0443\u043b \u0421\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f, \u0434 13', ... },\n ...\n]\n```\n\n### [GeoIP city](https://dadata.ru/api/iplocate/)\n\n```python\n>>> dadata.iplocate(\"46.226.227.20\")\n{\n 'value': '\u0433 \u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440',\n 'unrestricted_value': '350000, \u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440\u0441\u043a\u0438\u0439 \u043a\u0440\u0430\u0439, \u0433 \u041a\u0440\u0430\u0441\u043d\u043e\u0434\u0430\u0440',\n 'data': { ... }\n}\n```\n\n### [Autocomplete (suggest) address](https://dadata.ru/api/suggest/address/)\n\n```python\n>>> dadata.suggest(name=\"address\", query=\"\u0441\u0430\u043c\u0430\u0440\u0430 \u043c\u0435\u0442\u0430\u043b\")\n[\n { 'value': '\u0433 \u0421\u0430\u043c\u0430\u0440\u0430, \u043f\u0440-\u043a\u0442 \u041c\u0435\u0442\u0430\u043b\u043b\u0443\u0440\u0433\u043e\u0432', ... },\n { 'value': '\u0433 \u0421\u0430\u043c\u0430\u0440\u0430, \u0443\u043b \u041c\u0435\u0442\u0430\u043b\u043b\u0438\u0441\u0442\u043e\u0432', ... },\n { 'value': '\u0433 \u0421\u0430\u043c\u0430\u0440\u0430, \u043f\u043e\u0441\u0435\u043b\u043e\u043a \u0417\u0443\u0431\u0447\u0430\u043d\u0438\u043d\u043e\u0432\u043a\u0430, \u0443\u043b \u041c\u0435\u0442\u0430\u043b\u043b\u0443\u0440\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f', ... },\n ...\n]\n```\n\nShow suggestions in English:\n\n```python\n>>> dadata.suggest(name=\"address\", query=\"samara metal\", language=\"en\")\n[\n { 'value': 'Russia, gorod Samara, prospekt Metallurgov', ... },\n { 'value': 'Russia, gorod Samara, ulitsa Metallistov', ... },\n { 'value': 'Russia, gorod Samara, poselok Zubchaninovka, ulitsa Metallurgicheskaya', ... },\n ...\n]\n```\n\nConstrain by city (Yuzhno-Sakhalinsk):\n\n```python\n>>> locations = [{ \"kladr_id\": \"6500000100000\" }]\n>>> dadata.suggest(name=\"address\", query=\"\u0412\u0430\u0442\u0443\u0442\u0438\u043d\u0430\", locations=locations)\n[\n {'value': '\u0433 \u042e\u0436\u043d\u043e-\u0421\u0430\u0445\u0430\u043b\u0438\u043d\u0441\u043a, \u0443\u043b \u0412\u0430\u0442\u0443\u0442\u0438\u043d\u0430' ... }\n]\n```\n\nConstrain by specific geo point and radius (in Vologda city):\n\n```python\n>>> geo = [{ \"lat\": 59.244634, \"lon\": 39.913355, \"radius_meters\": 200 }]\n>>> dadata.suggest(name=\"address\", query=\"\u0441\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f\", locations_geo=geo)\n[\n {'value': '\u0433 \u0412\u043e\u043b\u043e\u0433\u0434\u0430, \u0443\u043b \u0421\u0443\u0445\u043e\u043d\u0441\u043a\u0430\u044f' ... }\n]\n```\n\nBoost city to top (Toliatti):\n\n```python\n>>> boost = [{ \"kladr_id\": \"6300000700000\" }]\n>>> dadata.suggest(name=\"address\", query=\"\u0430\u0432\u0442\u043e\", locations_boost=boost)\n[\n {'value': '\u0421\u0430\u043c\u0430\u0440\u0441\u043a\u0430\u044f \u043e\u0431\u043b, \u0433 \u0422\u043e\u043b\u044c\u044f\u0442\u0442\u0438, \u0410\u0432\u0442\u043e\u0437\u0430\u0432\u043e\u0434\u0441\u043a\u043e\u0435 \u0448\u043e\u0441\u0441\u0435' ... },\n {'value': '\u0421\u0430\u043c\u0430\u0440\u0441\u043a\u0430\u044f \u043e\u0431\u043b, \u0433 \u0422\u043e\u043b\u044c\u044f\u0442\u0442\u0438, \u0443\u043b \u0410\u0432\u0442\u043e\u043c\u043e\u0431\u0438\u043b\u0438\u0441\u0442\u043e\u0432' ... },\n {'value': '\u0421\u0430\u043c\u0430\u0440\u0441\u043a\u0430\u044f \u043e\u0431\u043b, \u0433 \u0422\u043e\u043b\u044c\u044f\u0442\u0442\u0438, \u0443\u043b \u0410\u0432\u0442\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u0435\u0439' ... },\n ...\n]\n```\n\n### [Find address by FIAS ID](https://dadata.ru/api/find-address/)\n\n```python\n>>> dadata.find_by_id(name=\"address\", query=\"9120b43f-2fae-4838-a144-85e43c2bfb29\")\n[\n { 'value': '\u0433 \u041c\u043e\u0441\u043a\u0432\u0430, \u0443\u043b \u0421\u043d\u0435\u0436\u043d\u0430\u044f', ... }\n]\n```\n\nFind by KLADR ID:\n\n```python\n>>> dadata.find_by_id(name=\"address\", query=\"77000000000268400\")\n```\n\n### [Find postal office](https://dadata.ru/api/suggest/postal_unit/)\n\nSuggest postal office by address or code:\n\n```python\n>>> dadata.suggest(name=\"postal_unit\", query=\"\u0434\u0435\u0436\u043d\u0435\u0432\u0430 2\u0430\")\n[\n {\n 'value': '127642',\n 'unrestricted_value': '\u0433 \u041c\u043e\u0441\u043a\u0432\u0430, \u043f\u0440\u043e\u0435\u0437\u0434 \u0414\u0435\u0436\u043d\u0451\u0432\u0430, \u0434 2\u0410',\n 'data': { ... }\n }\n]\n```\n\nFind postal office by code:\n\n```python\n>>> dadata.find_by_id(name=\"postal_unit\", query=\"127642\")\n[\n {\n 'value': '127642',\n 'unrestricted_value': '\u0433 \u041c\u043e\u0441\u043a\u0432\u0430, \u043f\u0440\u043e\u0435\u0437\u0434 \u0414\u0435\u0436\u043d\u0451\u0432\u0430, \u0434 2\u0410',\n 'data': { ... }\n }\n]\n```\n\nFind nearest postal office:\n\n```python\n>>> dadata.geolocate(name=\"postal_unit\", lat=55.878, lon=37.653, radius_meters=1000)\n[\n {\n 'value': '127642',\n 'unrestricted_value': '\u0433 \u041c\u043e\u0441\u043a\u0432\u0430, \u043f\u0440\u043e\u0435\u0437\u0434 \u0414\u0435\u0436\u043d\u0451\u0432\u0430, \u0434 2\u0410',\n 'data': { ... }\n }\n]\n```\n\n### [Get City ID for delivery services](https://dadata.ru/api/delivery/)\n\n```python\n>>> dadata.find_by_id(name=\"delivery\", query=\"3100400100000\")\n[\n {\n 'value': '3100400100000',\n 'unrestricted_value': 'fe7eea4a-875a-4235-aa61-81c2a37a0440',\n 'data': {\n ...\n 'boxberry_id': '01929',\n 'cdek_id': '344',\n 'dpd_id': '196006461'\n }\n }\n]\n```\n\n### [Get address strictly according to FIAS](https://dadata.ru/api/find-fias/)\n\n```python\n>>> dadata.find_by_id(name=\"fias\", query=\"9120b43f-2fae-4838-a144-85e43c2bfb29\")\n[\n { 'value': '\u0433 \u041c\u043e\u0441\u043a\u0432\u0430, \u0443\u043b \u0421\u043d\u0435\u0436\u043d\u0430\u044f', ... }\n]\n```\n\n### [Suggest country](https://dadata.ru/api/suggest/country/)\n\n```python\n>>> dadata.suggest(name=\"country\", query=\"\u0442\u0430\")\n[\n { 'value': '\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d', ... },\n { 'value': '\u0422\u0430\u0438\u043b\u0430\u043d\u0434', ... },\n { 'value': '\u0422\u0430\u0439\u0432\u0430\u043d\u044c', ... },\n ...\n]\n```\n\n## Company or individual enterpreneur\n\n## [Find company by INN](https://dadata.ru/api/find-party/)\n\n```python\n>>> dadata.find_by_id(name=\"party\", query=\"7707083893\")\n[\n {\n 'value': '\u041f\u0410\u041e \u0421\u0411\u0415\u0420\u0411\u0410\u041d\u041a',\n 'unrestricted_value': '\u041f\u0410\u041e \u0421\u0411\u0415\u0420\u0411\u0410\u041d\u041a',\n 'data': {\n 'inn': '7707083893',\n 'kpp': '773601001',\n ...\n }\n },\n ...\n]\n```\n\nFind by INN and KPP:\n\n```python\n>>> dadata.find_by_id(name=\"party\", query=\"7707083893\", kpp=\"540602001\")\n[\n {\n 'value': '\u0421\u0418\u0411\u0418\u0420\u0421\u041a\u0418\u0419 \u0411\u0410\u041d\u041a \u041f\u0410\u041e \u0421\u0411\u0415\u0420\u0411\u0410\u041d\u041a',\n 'unrestricted_value': '\u0421\u0418\u0411\u0418\u0420\u0421\u041a\u0418\u0419 \u0411\u0410\u041d\u041a \u041f\u0410\u041e \u0421\u0411\u0415\u0420\u0411\u0410\u041d\u041a',\n 'data': {\n 'inn': '7707083893',\n 'kpp': '540602001',\n ...\n }\n }\n]\n```\n\n### [Suggest company](https://dadata.ru/api/suggest/party/)\n\n```python\n>>> dadata.suggest(name=\"party\", query=\"\u0441\u0431\u0435\u0440\")\n[\n { 'value': '\u041f\u0410\u041e \u0421\u0411\u0415\u0420\u0411\u0410\u041d\u041a', ... },\n { 'value': '\u0410\u041e \"\u0421\u0411\u0415\u0420\u0411\u0420\u041e\u041a\u0415\u0420\"', ... },\n { 'value': '\u0410\u041e \"\u0421\u0411\u0415\u0420\u0418\u041d\u0412\u0415\u0421\u0422\u041a\u0410\u041f\u0418\u0422\u0410\u041b\"', ... },\n ...\n]\n```\n\nConstrain by specific regions (Saint Petersburg and Leningradskaya oblast):\n\n```python\n>>> locations = [{ \"kladr_id\": \"7800000000000\" }, { \"kladr_id\": \"4700000000000\"}]\n>>> dadata.suggest(name=\"party\", query=\"\u0441\u0431\u0435\u0440\", locations=locations)\n```\n\nConstrain by active companies:\n\n```python\n>>> dadata.suggest(name=\"party\", query=\"\u0441\u0431\u0435\u0440\", status=[\"ACTIVE\"])\n```\n\nConstrain by individual entrepreneurs:\n\n```python\n>>> dadata.suggest(name=\"party\", query=\"\u0441\u0431\u0435\u0440\", type=\"INDIVIDUAL\")\n```\n\nConstrain by head companies, no branches:\n\n```python\n>>> dadata.suggest(name=\"party\", query=\"\u0441\u0431\u0435\u0440\", branch_type=[\"MAIN\"])\n```\n\n### [Find affiliated companies](https://dadata.ru/api/find-affiliated/)\n\n```python\n>>> dadata.find_affiliated(\"7736207543\")\n[\n { 'value': '\u041e\u041e\u041e \"\u0414\u0417\u0415\u041d.\u041f\u041b\u0410\u0422\u0424\u041e\u0420\u041c\u0410\"', ... },\n { 'value': '\u041e\u041e\u041e \"\u0415\u0414\u0410\u0414\u0418\u041b\"', ... },\n { 'value': '\u041e\u041e\u041e \"\u0417\u041d\u0410\u041d\u0418\u0415\"', ... },\n ...\n]\n```\n\nSearch only by manager INN:\n\n```python\n>>> dadata.find_affiliated(\"773006366201\", scope=[\"MANAGERS\"])\n[\n { 'value': '\u041e\u041e\u041e \"\u042f\u041d\u0414\u0415\u041a\u0421\"', ... },\n { 'value': '\u041c\u0424 \"\u0424\u041e\u0418\"', ... },\n { 'value': '\u0410\u041d\u041e \u0414\u041f\u041e \"\u0428\u0410\u0414\"', ... },\n]\n```\n\n## Bank\n\n### [Find bank by BIC, SWIFT or INN](https://dadata.ru/api/find-bank/)\n\n```python\n>>> dadata.find_by_id(name=\"bank\", query=\"044525225\")\n[\n {\n 'value': '\u041f\u0410\u041e \u0421\u0431\u0435\u0440\u0431\u0430\u043d\u043a',\n 'unrestricted_value': '\u041f\u0410\u041e \u0421\u0431\u0435\u0440\u0431\u0430\u043d\u043a',\n 'data': {\n 'bic': '044525225',\n 'swift': 'SABRRUMM',\n 'inn': '7707083893',\n ...\n }\n }\n]\n```\n\nFind by SWIFT code:\n\n```python\n>>> dadata.find_by_id(name=\"bank\", query=\"SABRRUMM\")\n```\n\nFind by INN:\n\n```python\n>>> dadata.find_by_id(name=\"bank\", query=\"7728168971\")\n```\n\nFind by INN and KPP:\n\n```python\n>>> dadata.find_by_id(name=\"bank\", query=\"7728168971\", kpp=\"667102002\")\n```\n\nFind by registration number:\n\n```python\n>>> dadata.find_by_id(name=\"bank\", query=\"1481\")\n```\n\n### [Suggest bank](https://dadata.ru/api/suggest/bank/)\n\n```python\n>>> dadata.suggest(name=\"bank\", query=\"\u0442\u0438\")\n[\n { 'value': '\u0410\u041e \u00ab\u0422\u0438\u043c\u0435\u0440 \u0411\u0430\u043d\u043a\u00bb', ... },\n { 'value': '\u0410\u041e \u00ab\u0422\u0438\u043d\u044c\u043a\u043e\u0444\u0444 \u0411\u0430\u043d\u043a\u00bb', ... },\n { 'value': '\u00ab\u0410\u0437\u0438\u0430\u0442\u0441\u043a\u043e-\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0438\u0439 \u0411\u0430\u043d\u043a\u00bb (\u041f\u0410\u041e)', ... },\n ...\n]\n```\n\n## Personal name\n\n### [Validate and cleanse name](https://dadata.ru/api/clean/name/)\n\n```python\n>>> dadata.clean(name=\"name\", source=\"\u0421\u0440\u0435\u0433\u0435\u0439 \u0432\u043b\u0430\u0434\u0438\u043c\u0435\u0440\u043e\u0432\u0438\u0447 \u0438\u0432\u0430\u043d\u043e\u0432\")\n{\n 'source': '\u0421\u0440\u0435\u0433\u0435\u0439 \u0432\u043b\u0430\u0434\u0438\u043c\u0435\u0440\u043e\u0432\u0438\u0447 \u0438\u0432\u0430\u043d\u043e\u0432',\n 'result': '\u0418\u0432\u0430\u043d\u043e\u0432 \u0421\u0435\u0440\u0433\u0435\u0439 \u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447',\n ...\n 'surname': '\u0418\u0432\u0430\u043d\u043e\u0432',\n 'name': '\u0421\u0435\u0440\u0433\u0435\u0439',\n 'patronymic': '\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440\u043e\u0432\u0438\u0447',\n 'gender': '\u041c',\n 'qc': 1\n}\n```\n\n### [Suggest name](https://dadata.ru/api/suggest/name/)\n\n```python\n>>> dadata.suggest(name=\"fio\", query=\"\u0432\u0438\u043a\u0442\")\n[\n { 'value': '\u0412\u0438\u043a\u0442\u043e\u0440', ... },\n { 'value': '\u0412\u0438\u043a\u0442\u043e\u0440\u0438\u044f', ... },\n { 'value': '\u0412\u0438\u043a\u0442\u043e\u0440\u043e\u0432\u0430', ... },\n ...\n]\n```\n\nSuggest female first name:\n\n```python\n>>> dadata.suggest(name=\"fio\", query=\"\u0432\u0438\u043a\u0442\", parts=[\"NAME\"], gender=\"FEMALE\")\n[\n { 'value': '\u0412\u0438\u043a\u0442\u043e\u0440\u0438\u044f', ... },\n { 'value': '\u0412\u0438\u043a\u0442\u043e\u0440\u0438\u043d\u0430', ... }\n]\n```\n\n## Phone\n\n### [Validate and cleanse phone](https://dadata.ru/api/clean/phone/)\n\n```python\n>>> dadata.clean(name=\"phone\", source=\"9168-233-454\")\n{\n 'source': '9168-233-454',\n 'type': '\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439',\n 'phone': '+7 916 823-34-54',\n 'provider': '\u041f\u0410\u041e \"\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0422\u0435\u043b\u0435\u0421\u0438\u0441\u0442\u0435\u043c\u044b\"',\n 'country': '\u0420\u043e\u0441\u0441\u0438\u044f',\n 'region': '\u041c\u043e\u0441\u043a\u0432\u0430 \u0438 \u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c',\n 'timezone': 'UTC+3',\n 'qc': 0,\n ...\n}\n```\n\n## Passport\n\n### [Validate passport](https://dadata.ru/api/clean/passport/)\n\n```python\n>>> dadata.clean(name=\"passport\", source=\"4509 235857\")\n{\n 'source': '4509 235857',\n 'series': '45 09',\n 'number': '235857',\n 'qc': 0\n}\n```\n\n### [Suggest issued by](https://dadata.ru/api/suggest/fms_unit/)\n\n```python\n>>> dadata.suggest(name=\"fms_unit\", query=\"772 053\")\n[\n { 'value': '\u041e\u0412\u0414 \u0417\u042e\u0417\u0418\u041d\u041e \u0413. \u041c\u041e\u0421\u041a\u0412\u042b', ... },\n { 'value': '\u041e\u0412\u0414 \u0420\u0410\u0419\u041e\u041d\u0410 \u0417\u042e\u0417\u0418\u041d\u041e \u0423\u0412\u0414 \u042e\u0413\u041e-\u0417\u0410\u041e \u0413. \u041c\u041e\u0421\u041a\u0412\u042b', ... },\n { 'value': '\u041f\u0410\u0421\u041f\u041e\u0420\u0422\u041d\u041e-\u0412\u0418\u0417\u041e\u0412\u042b\u041c \u041e\u0422\u0414\u0415\u041b\u0415\u041d\u0418\u0415\u041c \u041e\u0412\u0414 \u0420\u0410\u0419\u041e\u041d\u0410 \u0417\u042e\u0417\u0418\u041d\u041e \u0413. \u041c\u041e\u0421\u041a\u0412\u042b', ... },\n ...\n]\n```\n\n## Email\n\n### [Validate email](https://dadata.ru/api/clean/email/)\n\n```python\n>>> dadata.clean(name=\"email\", source=\"serega@yandex/ru\")\n{\n 'source': 'serega@yandex/ru',\n 'email': 'serega@yandex.ru',\n 'local': 'serega',\n 'domain': 'yandex.ru',\n 'type': 'PERSONAL',\n 'qc': 4\n}\n```\n\n### [Suggest email](https://dadata.ru/api/suggest/email/)\n\n```python\n>>> dadata.suggest(name=\"email\", query=\"maria@\")\n[\n { 'value': 'maria@mail.ru', ... },\n { 'value': 'maria@gmail.com', ... },\n { 'value': 'maria@yandex.ru', ... },\n ...\n]\n```\n\n## Other datasets\n\n### [Tax office](https://dadata.ru/api/suggest/fns_unit/)\n\n```python\n>>> dadata.find_by_id(name=\"fns_unit\", query=\"5257\")\n[\n {\n 'value': '\u0418\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u044f \u0424\u041d\u0421 \u0420\u043e\u0441\u0441\u0438\u0438 \u043f\u043e \u041a\u0430\u043d\u0430\u0432\u0438\u043d\u0441\u043a\u043e\u043c\u0443 \u0440\u0430\u0439\u043e\u043d\u0443 \u0433.\u041d\u0438\u0436\u043d\u0435\u0433\u043e \u041d\u043e\u0432\u0433\u043e\u0440\u043e\u0434\u0430',\n 'unrestricted_value': '\u0418\u043d\u0441\u043f\u0435\u043a\u0446\u0438\u044f \u0424\u041d\u0421 \u0420\u043e\u0441\u0441\u0438\u0438 \u043f\u043e \u041a\u0430\u043d\u0430\u0432\u0438\u043d\u0441\u043a\u043e\u043c\u0443 \u0440\u0430\u0439\u043e\u043d\u0443 \u0433.\u041d\u0438\u0436\u043d\u0435\u0433\u043e \u041d\u043e\u0432\u0433\u043e\u0440\u043e\u0434\u0430',\n 'data': {\n 'code': '5257'\n 'oktmo': '22701000',\n 'inn': '5257046101',\n 'kpp': '525701001',\n ...\n }\n }\n]\n```\n\n### [Regional court](https://dadata.ru/api/suggest/region_court/)\n\n```python\n>>> dadata.suggest(name=\"region_court\", query=\"\u0442\u0430\u0433\u0430\u043d\u0441\u043a\u043e\")\n[\n { 'value': '\u0421\u0443\u0434\u0435\u0431\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u2116 371 \u0422\u0430\u0433\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u0441\u0443\u0434\u0435\u0431\u043d\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430 \u0433. \u041c\u043e\u0441\u043a\u0432\u044b', ... },\n { 'value': '\u0421\u0443\u0434\u0435\u0431\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u2116 372 \u0422\u0430\u0433\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u0441\u0443\u0434\u0435\u0431\u043d\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430 \u0433. \u041c\u043e\u0441\u043a\u0432\u044b', ... },\n { 'value': '\u0421\u0443\u0434\u0435\u0431\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u2116 373 \u0422\u0430\u0433\u0430\u043d\u0441\u043a\u043e\u0433\u043e \u0441\u0443\u0434\u0435\u0431\u043d\u043e\u0433\u043e \u0440\u0430\u0439\u043e\u043d\u0430 \u0433. \u041c\u043e\u0441\u043a\u0432\u044b', ... },\n ...\n]\n```\n\n### [Metro station](https://dadata.ru/api/suggest/metro/)\n\n```python\n>>> dadata.suggest(name=\"metro\", query=\"\u0430\u043b\u0435\u043a\")\n[\n { 'value': '\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u043e\u0432\u0441\u043a\u0438\u0439 \u0441\u0430\u0434', ... },\n { 'value': '\u0410\u043b\u0435\u043a\u0441\u0435\u0435\u0432\u0441\u043a\u0430\u044f', ... },\n { 'value': '\u041f\u043b\u043e\u0449\u0430\u0434\u044c \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u041d\u0435\u0432\u0441\u043a\u043e\u0433\u043e 1', ... },\n ...\n]\n```\n\nConstrain by city (Saint Petersburg):\n\n```python\n>>> filters = [{ \"city\": \"\u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\" }]\n>>> dadata.suggest(name=\"metro\", query=\"\u0430\u043b\u0435\u043a\", filters=filters)\n[\n { 'value': '\u041f\u043b\u043e\u0449\u0430\u0434\u044c \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u041d\u0435\u0432\u0441\u043a\u043e\u0433\u043e 1', ... },\n { 'value': '\u041f\u043b\u043e\u0449\u0430\u0434\u044c \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0430 \u041d\u0435\u0432\u0441\u043a\u043e\u0433\u043e 2', ... }\n]\n```\n\n### [Car brand](https://dadata.ru/api/suggest/car_brand/)\n\n```python\n>>> dadata.suggest(name=\"car_brand\", query=\"\u0444\u043e\")\n[\n { 'value': 'Volkswagen', ... },\n { 'value': 'Ford', ... },\n { 'value': 'Foton', ... }\n]\n```\n\n### [Currency](https://dadata.ru/api/suggest/currency/)\n\n```python\n>>> dadata.suggest(name=\"currency\", query=\"\u0440\u0443\u0431\")\n[\n { 'value': '\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c', ... },\n { 'value': '\u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c', ... }\n]\n```\n\n### [OKVED 2](https://dadata.ru/api/suggest/okved2/)\n\n```python\n>>> dadata.suggest(name=\"okved2\", query=\"\u043a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445\")\n[\n { 'value': '\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043e\u0432 (\u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0441\u043f\u0443\u0442\u043d\u0438\u043a\u043e\u0432), \u0440\u0430\u043a\u0435\u0442-\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439', ... },\n { 'value': '\u041f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043e\u0432', ... },\n { 'value': '\u0414\u0435\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043b\u0430\u0431\u043e\u0440\u0430\u0442\u043e\u0440\u0438\u0439', ... },\n ...\n]\n```\n\n### [OKPD 2](https://dadata.ru/api/suggest/okpd2/)\n\n```python\n>>> dadata.suggest(name=\"okpd2\", query=\"\u043a\u0430\u043b\u043e\u0448\u0438\")\n[\n { 'value': '\u0423\u0441\u043b\u0443\u0433\u0438 \u043f\u043e \u043e\u0431\u0440\u0435\u0437\u0438\u043d\u043e\u0432\u0430\u043d\u0438\u044e \u0432\u0430\u043b\u0435\u043d\u043e\u043a (\u0440\u044b\u0431\u0430\u0446\u043a\u0438\u0435 \u043a\u0430\u043b\u043e\u0448\u0438)', ... }\n]\n```\n\n## Profile API\n\nBalance:\n\n```python\n>>> dadata.get_balance()\n150.00\n```\n\nUsage stats:\n\n```python\n>>> dadata.get_daily_stats()\n{\n 'date': '2024-10-10',\n 'services': {\n 'clean': 200,\n 'company': 0,\n 'company_similar': 0,\n 'merging': 0,\n 'suggestions': 15000,\n },\n 'remaining': {\n 'clean': 800,\n 'company': 50,\n 'company_similar': 0,\n 'merging': 15000,\n 'suggestions': 185000\n }\n}\n```\n\nDataset versions:\n\n```python\n>>> dadata.get_versions()\n{\n 'dadata': { 'version': 'stable (9048:bf33b2acc8ba)' },\n 'factor': {\n 'resources': { ... },\n 'version': '20.06 (eb70078e)'\n },\n 'suggestions': {\n 'resources': { ... },\n 'version': '20.5 (b55eb7c4)'\n }\n}\n```\n\n## Development setup\n\n```sh\n$ python3 -m venv env\n$ . env/bin/activate\n$ make deps\n$ tox\n```\n\n## Contributing\n\nThis project only accepts bug fixes.\n\n## [Changelog](CHANGELOG.md)\n\nThis library uses [CalVer](https://calver.org/) with YY.MM.MICRO schema. See changelog for details specific to each release.\n\n## License\n\n[MIT](https://choosealicense.com/licenses/mit/)\n",
"bugtrack_url": null,
"license": null,
"summary": "Data cleansing, enrichment and suggestions via Dadata API",
"version": "25.7.0",
"project_urls": {
"Source": "https://github.com/hflabs/dadata-py"
},
"split_keywords": [
"dadata",
" clean",
" suggest",
" api"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "dabbd7819222b16a1e5b7c9436122e9ec8106a322b454984b10045d090620c56",
"md5": "5ecd72f65bc29a76bde352d24fefa2a5",
"sha256": "0363dfe4e2a08ba6c4bdf064b2e6517d203b423fe61ad7eb131f4288b78a481c"
},
"downloads": -1,
"filename": "dadata-25.7.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5ecd72f65bc29a76bde352d24fefa2a5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 10054,
"upload_time": "2025-07-30T14:43:16",
"upload_time_iso_8601": "2025-07-30T14:43:16.298977Z",
"url": "https://files.pythonhosted.org/packages/da/bb/d7819222b16a1e5b7c9436122e9ec8106a322b454984b10045d090620c56/dadata-25.7.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "26f214c4dbfacbd6a4432909625b4e35e2c04f459dfb6fa8cd87451736f44a13",
"md5": "24163fc6372a7cdc0a11f27bdfc5983e",
"sha256": "b6b122ad261eb6b59452fea26ece31c44e6d2d73dee6319143534d0648556b62"
},
"downloads": -1,
"filename": "dadata-25.7.0.tar.gz",
"has_sig": false,
"md5_digest": "24163fc6372a7cdc0a11f27bdfc5983e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 7883,
"upload_time": "2025-07-30T14:43:17",
"upload_time_iso_8601": "2025-07-30T14:43:17.287761Z",
"url": "https://files.pythonhosted.org/packages/26/f2/14c4dbfacbd6a4432909625b4e35e2c04f459dfb6fa8cd87451736f44a13/dadata-25.7.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-30 14:43:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hflabs",
"github_project": "dadata-py",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"tox": true,
"lcname": "dadata"
}