И еще немного об алгоритмах.
Запрос к API подразумевает, что мы знаем точно, что ищем. Соответственно с очень большой вероятностью если мы заполним все поля запросов, то на выходе получим правильную запись из реестра в ответ. Но что в боте, что в приложении я хотел бы минимизировать эти вводные, для удобства пользователей. Поэтому на вводе всего 2 поля (ну да есть еще третье, опциональное), соответственно запрос становится неявным и начинается перебор вариантов (это не совсем поиск) Чем большую вариативность вводных мы задаем на, тем больше вариантов надо перебирать. А это тормозит процесс выдачи результатов, что при итак не быстрой работе аршина может вполне себе раздражать. Соответственно единственный вариант - многопоточность. Причём разделить потоки можно просто в лоб, а можно через внутренний прокси, и смену ip, зависит от ограничений принимающей стороны.