Сообщение об ошибке не приходит от curl, это ответ API.Так что API нужно что-то.
Вы можете проверить, есть ли документация для этого API, которая объясняет сообщение об ошибке более подробно.
Единственное отличие, которое я вижу между терминалом curl и php: php не устанавливает заголовок USER AGENTпо умолчанию.Возможно, этот заголовок отсутствует в вашем запросе.Я не знаю вашу версию curl, но что-то вроде этого могло бы работать:
curl_setopt($ch, CURLOPT_USERAGENT, 'curl/7.61.1');
ОБНОВЛЕНИЕ: , как упомянуто hanshenrik
curl_setopt($ch, CURLOPT_USERAGENT, 'curl/' . curl_version()['version']);