Как оптимизировать задачу?
Я сварщик ненастоящий, но вижу два пути: 
- Отсылать на сервер данные массивом, а не поштучно.
- Отправлять штучные запросы параллельно.

Оба решения требуют чтения доков на этот сервис или разговора с местными инженерами. Так как первый может не поддерживаться, а второй может вас забанить за спам :)
Можно попробовать вынести в очередь (RabbitMQ например, обрабатывать каждого клиента отдельной задачей в очереди) и выполнять задачи несколькими воркерами, то есть параллельно. Единственное, важно что бы вас не забанил сторонний сервис и вы не положили его нагрузкой. Что бы регулировать нагрузку, нужно менять количество воркеров обрабатывающих поступающие задачи