All integrations

DaData

DATA · DATA & ANALYTICS

Address, company, and bank lookups with suggestions and standardization.

Connecting DaData in practice

DaData counts 10,000 free suggestion requests a day across every suggestion type together, and answers an exhausted daily quota with 403 — the same status it uses for an unknown API key and for an unconfirmed email address. An agent cannot tell "out of quota" from "bad credentials" without opening the dashboard.

Rate limits

  • Maximum request frequency: 30 requests per second from a single IP address.
  • Free usage: 10,000 requests per day, counted across address, company, bank, name and email suggestions together. Suggestions stop answering until the next day.
  • Beyond the free tier the daily request count follows the tariff plan.
  • 429 is returned for too many requests per second, or too many new connections per minute.
  • Per request: query at most 300 characters, count defaults to 10 and maxes at 20, and locations and locations_boost take at most 10 conditions each.

Worth knowing

  • 403 covers three unrelated conditions — a non-existent API key, an unconfirmed email address, and an exhausted daily request limit — so it cannot be treated as a permanent authorization failure.
  • 405 is returned for any HTTP method other than POST, and 413 for an over-long query or too many conditions, so malformed calls fail on the method before they fail on the data.
  • Foreign addresses come back with a restricted field set regardless of tariff: postcode, country, region, settlement, timezone and coordinates only, everything else empty. Russia resolves to the flat, Belarus, Kazakhstan and Uzbekistan to the building, everywhere else to the city.
  • "The user picked a specific address" is a specific API shape — count=1 with the query text taken from a previous response’s unrestricted_value — and a free-text query with count=1 is not the same thing.

Checked against DaData address suggestions API (2026-09-29), DaData API index (2026-09-29)

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

dadata_get_api_v2_profile_balanceREAD

Read the connected DaData account's prepaid balance in rubles -- the balance the standardization tools spend. via GET /api/v2/profile/balance

api
dadata_get_api_v2_stat_dailyREAD

Read the connected DaData account's API usage for the current day: suggestions, standardization and merging request counts against their daily limits. via GET /api/v2/stat/daily

api
dadata_get_api_v2_versionREAD

Read the versions of the reference datasets DaData is currently serving (FIAS, EGRUL, banks and the rest) and the service versions behind them. via GET /api/v2/version

api
dadata_post_api_4_1_rs_findaffiliated_partyREAD

Find Russian companies affiliated with the queried INN through shared founders or managers (scope selects which relation is followed). via POST /api/4_1/rs/findAffiliated/party

api
dadata_post_api_4_1_rs_findbyemail_companyREAD

Find Russian companies that list the queried email address in their public registry details. via POST /api/4_1/rs/findByEmail/company

api
dadata_post_api_4_1_rs_findbyid_addressREAD

Look up a Russian address by FIAS or KLADR identifier: returns the full structured address with codes and coordinates. via POST /api/4_1/rs/findById/address

api
dadata_post_api_4_1_rs_findbyid_bankREAD

Look up a Russian bank by exact BIC, SWIFT, INN or registration number: returns the bank's registry record with payment details. via POST /api/4_1/rs/findById/bank

api
dadata_post_api_4_1_rs_findbyid_by_nameREAD

Look up a record of a named DaData reference directory by its identifier (path names the directory). Russian reference data. via POST /api/4_1/rs/findById/{name}

api
dadata_post_api_4_1_rs_findbyid_fiasREAD

Look up a Russian address in the FIAS registry by FIAS identifier: returns the full structured address record. via POST /api/4_1/rs/findById/fias

api
dadata_post_api_4_1_rs_findbyid_partyREAD

Look up a Russian company or sole proprietor by exact INN or OGRN: returns the registry record (name, status, addresses, management) for each matching branch. via POST /api/4_1/rs/findById/party

api
dadata_post_api_4_1_rs_geolocate_addressREAD

Reverse geocoding: find the Russian addresses (down to individual buildings) nearest to a latitude/longitude point, ranked by distance. via POST /api/4_1/rs/geolocate/address

api
dadata_post_api_4_1_rs_geolocate_by_nameREAD

Find the entries of a named DaData directory nearest to a latitude/longitude point (path names the directory). Russian reference data. via POST /api/4_1/rs/geolocate/{name}

api
dadata_post_api_4_1_rs_iplocate_addressREAD

Resolve an IPv4 address to the Russian city it belongs to, with the city's full structured address. Omitting the ip argument resolves the caller's own address, which through this integration is the gateway's, so pass ip explicitly. via POST /api/4_1/rs/iplocate/address

api
dadata_post_api_4_1_rs_suggest_addressREAD

Autocomplete Russian addresses from a free-form query: returns up to 20 ranked suggestions with structured components and FIAS/KLADR codes. Coverage is Russia only; queries are typically in Russian. via POST /api/4_1/rs/suggest/address

api
dadata_post_api_4_1_rs_suggest_bankREAD

Find Russian banks and their branches by name, BIC, SWIFT, INN or registration number: returns ranked suggestions with payment details. via POST /api/4_1/rs/suggest/bank

api
dadata_post_api_4_1_rs_suggest_by_nameREAD

Autocomplete over a named DaData reference directory (path names the directory, e.g. country, currency, okved2, fms_unit): returns ranked suggestions for a free-form query. Russian-language reference data. via POST /api/4_1/rs/suggest/{name}

api
dadata_post_api_4_1_rs_suggest_emailREAD

Autocomplete an email address as it is typed: completes the local part and popular mail domains. via POST /api/4_1/rs/suggest/email

api
dadata_post_api_4_1_rs_suggest_fiasREAD

Autocomplete Russian addresses against the FIAS state address registry: returns ranked suggestions with FIAS codes. Coverage is Russia only. via POST /api/4_1/rs/suggest/fias

api
dadata_post_api_4_1_rs_suggest_fioREAD

Autocomplete Russian personal names (surname, given name, patronymic): returns ranked FIO suggestions with gender and name-part breakdown. via POST /api/4_1/rs/suggest/fio

api
dadata_post_api_4_1_rs_suggest_partyREAD

Find Russian companies and sole proprietors by name fragment, INN, OGRN or address: returns ranked suggestions with registry (EGRUL) details. Queries and results are Russian-centric. via POST /api/4_1/rs/suggest/party

api
dadata_post_api_v1_cleanWRITE

Standardize records with several fields at once: `structure` names the column types and `data` carries the rows. Russian-centric data. PAID per record from the account's prepaid balance (~0.20 RUB each; 20 requests/second limit); on an unfunded account DaData answers with its payment-required error. via POST /api/v1/clean

api
dadata_post_api_v1_clean_by_typeWRITE

Standardize an array of raw strings of one declared type (path names it: NAME, ADDRESS, PHONE, EMAIL, BIRTHDATE, PASSPORT, VEHICLE, AS_IS, SIMPLE_PARTY_NAME): DaData cleans, normalizes and enriches each value. Russian-centric data. PAID per record from the account's prepaid balance (~0.20 RUB each; 20 requests/second limit); on an unfunded account DaData answers with its payment-required error. via POST /api/v1/clean/{type}

api

Put DaData behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.