# /zachestnyibiznes/companies/search

`POST /api/zachestnyibiznes/companies/search`

Price: 10 credits

Search Russian companies and sole proprietors (FNS/EGRUL/EGRIP registry) by name, INN, OGRN, address or person, with filters by registration status, region, legal form (OKOPF), ownership form (OKFS), activity (OKVED), special tax regime, contacts, presence of branches/financials, and ranges on revenue, charter capital, headcount and registration date.

## How to use it

Search the Russian company registry. Provide query (name/INN/OGRN/address/person) and count. Optional filters: entity_type (ul/ip), status (one or more), region, legal_form, ownership_form, okved, additional_okved, licenses (one or more authorities), tax_mode (one or more), contacts, has_subdivisions, has_financials, and numeric ranges revenue_min/max, net_profit_min/max, profit_before_tax_min/max, balance_min/max, receivables_min/max, payables_min/max, fixed_assets_min/max, inventory_min/max, charter_capital_min/max, employees_min/max, arbitration_as_defendant_amount/count_min/max, arbitration_as_plaintiff_amount/count_min/max, and registered_after/before (DD.MM.YYYY). Each result has id (OGRN), url, company_type, name, status, inn, ogrn, director, director_url, address, charter_capital, registered_at.

## Parameters

- `access-token` (string, required)

## Request body

- `timeout` (integer) — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)
- `query` (string, required) — Search query: company name, INN, OGRN, address or person name (minLength: 1)
- `count` (integer, required) — Max number of results to return (min: 1)
- `entity_type` (string, nullable) — Restrict to legal entities (ul) or sole proprietors (ip) (one of: "ul", "ip")
- `status` (array, nullable) — Registration status filter (one or more) (one of: "active", "liquidating", "reorganizing", "liquidated", "bankrupting", "registration_erroneous", "registration_invalid", "bankruptcy_case_opened")
- `region` (string, nullable) — Russian region/federal subject of registration (one of: "respublika_adygeya", "respublika_bashkortostan", "respublika_buryatiya", "respublika_altay", "respublika_dagestan", "respublika_ingushetiya", "kabardino_balkarskaya_respublika", "respublika_kalmykiya", "karachaevo_cherkesskaya_respublika", "respublika_kareliya", "respublika_komi", "respublika_mariy_el", "respublika_mordoviya", "respublika_saha_yakutiya", "respublika_severnaya_osetiya_alaniya", "respublika_tatarstan_tatarstan", "respublika_tyva", "udmurtskaya_respublika", "respublika_hakasiya", "chechenskaya_respublika", "chuvashskaya_respublika_chuvashiya", "altayskiy_kray", "krasnodarskiy_kray", "krasnoyarskiy_kray", "primorskiy_kray", "stavropolskiy_kray", "habarovskiy_kray", "amurskaya_oblast", "arhangelskaya_oblast", "astrahanskaya_oblast", "belgorodskaya_oblast", "bryanskaya_oblast", "vladimirskaya_oblast", "volgogradskaya_oblast", "vologodskaya_oblast", "voronezhskaya_oblast", "ivanovskaya_oblast", "irkutskaya_oblast", "kaliningradskaya_oblast", "kaluzhskaya_oblast", "kamchatskiy_kray", "kemerovskaya_oblast", "kirovskaya_oblast", "kostromskaya_oblast", "kurganskaya_oblast", "kurskaya_oblast", "leningradskaya_oblast", "lipetskaya_oblast", "magadanskaya_oblast", "moskovskaya_oblast", "murmanskaya_oblast", "nizhegorodskaya_oblast", "novgorodskaya_oblast", "novosibirskaya_oblast", "omskaya_oblast", "orenburgskaya_oblast", "orlovskaya_oblast", "penzenskaya_oblast", "permskiy_kray", "pskovskaya_oblast", "rostovskaya_oblast", "ryazanskaya_oblast", "samarskaya_oblast", "saratovskaya_oblast", "sahalinskaya_oblast", "sverdlovskaya_oblast", "smolenskaya_oblast", "tambovskaya_oblast", "tverskaya_oblast", "tomskaya_oblast", "tulskaya_oblast", "tyumenskaya_oblast", "ulyanovskaya_oblast", "chelyabinskaya_oblast", "zabaykalskiy_kray", "yaroslavskaya_oblast", "moskva", "sankt_peterburg", "evreyskaya_avtonomnaya_oblast", "nenetskiy_avtonomnyy_okrug", "hanty_mansiyskiy_avtonomnyy_okrug_yugra", "chukotskiy_avtonomnyy_okrug", "yamalo_nenetskiy_avtonomnyy_okrug", "zaporozhskaya_oblast", "respublika_krym", "sevastopol", "donetskaya_narodnaya_respublika", "luganskaya_narodnaya_respublika", "hersonskaya_oblast", "inye_territorii_vklyuchaya_gorod_i_kosmodrom_bay")
- `legal_form` (string, nullable) — Legal form (OKOPF), e.g. LLC or public JSC (one of: "hozyaystvennye_tovarischestva", "polnye_tovarischestva", "tovarischestva_na_vere_kommanditnye_tovarischest", "hozyaystvennye_obschestva", "aktsionernye_obschestva", "publichnye_aktsionernye_obschestva", "nepublichnye_aktsionernye_obschestva", "obschestva_s_ogranichennoy_otvetstvennostyu", "hozyaystvennye_partnerstva", "proizvodstvennye_kooperativy_arteli", "selskohozyaystvennye_proizvodstvennye_kooperativ", "selskohozyaystvennye_arteli_kolhozy", "rybolovetskie_arteli_kolhozy", "kooperativnye_hozyaystva_koophozy", "proizvodstvennye_kooperativy_krome_selskohozyays", "krestyanskie_fermerskie_hozyaystva", "prochie_yuridicheskie_litsa_yavlyayuschiesya_kom", "potrebitelskie_kooperativy", "garazhnye_i_garazhno_stroitelnye_kooperativy", "zhilischnye_ili_zhilischno_stroitelnye_kooperati", "zhilischnye_nakopitelnye_kooperativy", "kreditnye_potrebitelskie_kooperativy", "kreditnye_potrebitelskie_kooperativy_grazhdan", "kreditnye_kooperativy_vtorogo_urovnya", "potrebitelskie_obschestva", "obschestva_vzaimnogo_strahovaniya", "selskohozyaystvennye_potrebitelskie_pererabatyva", "selskohozyaystvennye_potrebitelskie_sbytovye_tor", "selskohozyaystvennye_potrebitelskie_obsluzhivayu", "selskohozyaystvennye_potrebitelskie_snabzhenches", "selskohozyaystvennye_potrebitelskie_zhivotnovodc", "selskohozyaystvennye_potrebitelskie_rastenievodc", "fondy_prokata", "obschestvennye_organizatsii", "politicheskie_partii", "profsoyuznye_organizatsii", "obschestvennye_dvizheniya", "organy_obschestvennoy_samodeyatelnosti", "territorialnye_obschestvennye_samoupravleniya", "assotsiatsii_soyuzy", "assotsiatsii_soyuzy_ekonomicheskogo_vzaimodeystv", "sovety_munitsipalnyh_obrazovaniy_subektov_rossiy", "soyuzy_assotsiatsii_kreditnyh_kooperativov", "soyuzy_assotsiatsii_kooperativov", "soyuzy_assotsiatsii_obschestvennyh_obedineniy", "soyuzy_assotsiatsii_obschin_malochislennyh_narod", "soyuzy_potrebitelskih_obschestv", "advokatskie_palaty", "notarialnye_palaty", "torgovo_promyshlennye_palaty", "obedineniya_rabotodateley", "obedineniya_fermerskih_hozyaystv", "nekommercheskie_partnerstva", "advokatskie_byuro", "kollegii_advokatov", "samoreguliruemye_organizatsii", "obedineniya_assotsiatsii_i_soyuzy_blagotvoriteln", "tovarischestva_sobstvennikov_nedvizhimosti", "sadovodcheskie_ili_ogorodnicheskie_nekommerchesk", "tovarischestva_sobstvennikov_zhilya", "kazachi_obschestva_vnesennye_v_gosudarstvennyy_r", "obschiny_korennyh_malochislennyh_narodov_rossiys", "predstavitelstva_yuridicheskih_lits", "filialy_yuridicheskih_lits", "obosoblennye_podrazdeleniya_yuridicheskih_lits", "strukturnye_podrazdeleniya_obosoblennyh_podrazde", "paevye_investitsionnye_fondy", "prostye_tovarischestva", "rayonnye_sudy_gorodskie_sudy_mezhrayonnye_sudy_r", "mezhpravitelstvennye_mezhdunarodnye_organizatsii", "nepravitelstvennye_mezhdunarodnye_organizatsii", "organizatsionno_pravovye_formy_dlya_kommerchesko", "glavy_krestyanskih_fermerskih_hozyaystv", "individualnye_predprinimateli", "organizatsionno_pravovye_formy_dlya_deyatelnosti", "advokaty_uchredivshie_advokatskiy_kabinet", "notariusy_zanimayuschiesya_chastnoy_praktikoy", "unitarnye_predpriyatiya", "unitarnye_predpriyatiya_osnovannye_na_prave_oper", "federalnye_kazennye_predpriyatiya", "kazennye_predpriyatiya_subektov_rossiyskoy_feder", "munitsipalnye_kazennye_predpriyatiya", "unitarnye_predpriyatiya_osnovannye_na_prave_hozy", "federalnye_gosudarstvennye_unitarnye_predpriyati", "gosudarstvennye_unitarnye_predpriyatiya_subektov", "munitsipalnye_unitarnye_predpriyatiya", "fondy", "blagotvoritelnye_fondy", "negosudarstvennye_pensionnye_fondy", "obschestvennye_fondy", "ekologicheskie_fondy", "avtonomnye_nekommercheskie_organizatsii", "religioznye_organizatsii", "publichno_pravovye_kompanii", "gosudarstvennye_korporatsii", "gosudarstvennye_kompanii", "otdeleniya_inostrannyh_nekommercheskih_nepravite", "uchrezhdeniya", "uchrezhdeniya_sozdannye_rossiyskoy_federatsiey", "federalnye_gosudarstvennye_avtonomnye_uchrezhden", "federalnye_gosudarstvennye_byudzhetnye_uchrezhde", "federalnye_gosudarstvennye_kazennye_uchrezhdeniy", "uchrezhdeniya_sozdannye_subektom_rossiyskoy_fede", "gosudarstvennye_avtonomnye_uchrezhdeniya_subekto", "gosudarstvennye_byudzhetnye_uchrezhdeniya_subekt", "gosudarstvennye_kazennye_uchrezhdeniya_subektov", "gosudarstvennye_akademii_nauk", "uchrezhdeniya_sozdannye_munitsipalnym_obrazovani", "munitsipalnye_avtonomnye_uchrezhdeniya", "munitsipalnye_byudzhetnye_uchrezhdeniya", "munitsipalnye_kazennye_uchrezhdeniya", "chastnye_uchrezhdeniya", "blagotvoritelnye_uchrezhdeniya", "obschestvennye_uchrezhdeniya")
- `ownership_form` (string, nullable) — Ownership form (OKFS), e.g. private or federal (one of: "rossiyskaya_sobstvennost", "gosudarstvennaya_sobstvennost", "federalnaya_sobstvennost", "sobstvennost_subektov_rossiyskoy_federatsii", "munitsipalnaya_sobstvennost", "chastnaya_sobstvennost", "sobstvennost_rossiyskih_grazhdan_postoyanno_proz", "sobstvennost_potrebitelskoy_kooperatsii", "sobstvennost_obschestvennyh_i_religioznyh_organi", "sobstvennost_blagotvoritelnyh_organizatsiy", "sobstvennost_politicheskih_obschestvennyh_obedin", "sobstvennost_professionalnyh_soyuzov", "sobstvennost_obschestvennyh_obedineniy", "sobstvennost_religioznyh_obedineniy", "smeshannaya_rossiyskaya_sobstvennost", "smeshannaya_rossiyskaya_sobstvennost_s_doley_gos", "smeshannaya_rossiyskaya_sobstvennost_s_doley_fed", "smeshannaya_rossiyskaya_sobstvennost_s_doley_sob", "smeshannaya_rossiyskaya_sobstvennost_s_dolyami_f", "inaya_smeshannaya_rossiyskaya_sobstvennost", "sobstvennost_gosudarstvennyh_korporatsiy", "inostrannaya_sobstvennost", "sobstvennost_mezhdunarodnyh_organizatsiy", "sobstvennost_inostrannyh_gosudarstv", "sobstvennost_inostrannyh_yuridicheskih_lits", "sobstvennost_inostrannyh_grazhdan_i_lits_bez_gra", "smeshannaya_inostrannaya_sobstvennost", "sovmestnaya_rossiyskaya_i_inostrannaya_sobstvenn", "sovmestnaya_federalnaya_i_inostrannaya_sobstvenn", "sovmestnaya_sobstvennost_subektov_rossiyskoy_fed", "sovmestnaya_munitsipalnaya_i_inostrannaya_sobstv", "sovmestnaya_chastnaya_i_inostrannaya_sobstvennos", "sovmestnaya_sobstvennost_obschestvennyh_i_religi")
- `okved` (string, nullable) — Primary OKVED activity code (e.g. 62.01)
- `additional_okved` (string, nullable) — Additional (secondary) OKVED activity code to match (e.g. 62.02)
- `licenses` (array, nullable) — Only companies holding licences from these authorities (one or more) (one of: "alcohol", "rospotrebnadzor", "roszdravnadzor", "rostehnadzor", "minkultury", "minpromtorg_avia", "minpromtorg_med", "minpromtorg_weapon", "fns", "obrnadzor")
- `tax_mode` (array, nullable) — Special tax-regime filter (one or more) (one of: "eshn", "usn", "envd", "srp", "ausn", "none")
- `contacts` (string, nullable) — Filter by presence of contact details (one of: "with_contacts", "without_contacts", "all")
- `has_subdivisions` (boolean, nullable) — Only companies that have branches/subdivisions
- `has_financials` (boolean, nullable) — Only companies that have published financial reporting
- `revenue_min` (integer, nullable) — Minimum annual revenue in RUB (min: 0)
- `revenue_max` (integer, nullable) — Maximum annual revenue in RUB (min: 0)
- `net_profit_min` (integer, nullable) — Minimum net profit in RUB
- `net_profit_max` (integer, nullable) — Maximum net profit in RUB
- `profit_before_tax_min` (integer, nullable) — Minimum profit before tax in RUB
- `profit_before_tax_max` (integer, nullable) — Maximum profit before tax in RUB
- `balance_min` (integer, nullable) — Minimum balance-sheet total (assets) in RUB (min: 0)
- `balance_max` (integer, nullable) — Maximum balance-sheet total (assets) in RUB (min: 0)
- `receivables_min` (integer, nullable) — Minimum accounts receivable in RUB (min: 0)
- `receivables_max` (integer, nullable) — Maximum accounts receivable in RUB (min: 0)
- `payables_min` (integer, nullable) — Minimum accounts payable in RUB (min: 0)
- `payables_max` (integer, nullable) — Maximum accounts payable in RUB (min: 0)
- `fixed_assets_min` (integer, nullable) — Minimum fixed assets in RUB (min: 0)
- `fixed_assets_max` (integer, nullable) — Maximum fixed assets in RUB (min: 0)
- `inventory_min` (integer, nullable) — Minimum inventory in RUB (min: 0)
- `inventory_max` (integer, nullable) — Maximum inventory in RUB (min: 0)
- `charter_capital_min` (integer, nullable) — Minimum charter capital in RUB (min: 0)
- `charter_capital_max` (integer, nullable) — Maximum charter capital in RUB (min: 0)
- `employees_min` (integer, nullable) — Minimum headcount (min: 0)
- `employees_max` (integer, nullable) — Maximum headcount (min: 0)
- `arbitration_as_defendant_amount_min` (integer, nullable) — Minimum total claim amount where the company is a defendant, in RUB (min: 0)
- `arbitration_as_defendant_amount_max` (integer, nullable) — Maximum total claim amount where the company is a defendant, in RUB (min: 0)
- `arbitration_as_defendant_count_min` (integer, nullable) — Minimum number of arbitration cases as a defendant (min: 0)
- `arbitration_as_defendant_count_max` (integer, nullable) — Maximum number of arbitration cases as a defendant (min: 0)
- `arbitration_as_plaintiff_amount_min` (integer, nullable) — Minimum total claim amount where the company is a plaintiff, in RUB (min: 0)
- `arbitration_as_plaintiff_amount_max` (integer, nullable) — Maximum total claim amount where the company is a plaintiff, in RUB (min: 0)
- `arbitration_as_plaintiff_count_min` (integer, nullable) — Minimum number of arbitration cases as a plaintiff (min: 0)
- `arbitration_as_plaintiff_count_max` (integer, nullable) — Maximum number of arbitration cases as a plaintiff (min: 0)
- `registered_after` (string, nullable) — Registered on or after this date (DD.MM.YYYY)
- `registered_before` (string, nullable) — Registered on or before this date (DD.MM.YYYY)

## Response

### 200 — Successful Response

- `@type` (string) (default: "ZachestnyibiznesSearchResult")
- `id` (string, required)
- `url` (string, required)
- `company_type` (string, required)
- `name` (string, nullable)
- `status` (string, nullable)
- `inn` (string, nullable)
- `ogrn` (string, nullable)
- `director` (string, nullable)
- `director_url` (string, nullable)
- `address` (string, nullable)
- `charter_capital` (integer, nullable)
- `registered_at` (string, nullable)

## Errors

### 422 — Validation Error

The request body did not validate

What to do: Check the fields against this schema. A URN with the wrong prefix is the most common cause.

- `detail` (array)
  - `loc` (array, required)
  - `msg` (string, required)
  - `type` (string, required)
  - `input` (any)
  - `ctx` (object)

### 408

The request ran past its time limit

What to do: Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.

### 412

The entity was not found, or a precondition failed

What to do: Retrying will not help: either the entity does not exist, or the input points at a different one.

### 429

Too many requests: a rate limit or a usage window is exhausted

What to do: When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.

### 500

Something broke on our side

What to do: Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.

### 529

Rate limit reached, or the endpoint is overloaded

What to do: Wait at least 30 seconds, then retry.

## Response envelope

Success: Array of objects (may be empty if no results)

Error: Error may coexist with partial results if it occurs mid-execution. Check X-Error header and status code.

Every response carries these headers:

- `X-Error` — Error message text (present only on error)
- `X-Request-ID` — Unique request identifier
- `X-Execution-Time` — Execution time in seconds
- `X-Result-Count` — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.
- `X-Total-Available-Results` — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.
- `X-Warning` — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.
- `X-Retry-After` — Seconds to wait before retrying. Present only on 429.

