Как прописать API от timeweb?
Всем привет!
Пишу "Методы API для виртуального хостинга" на авторизацию в timeweb что бы в будущем взять к себе на сайт инфу по тарифам.
Методы API для виртуального хостинга
$data = array( 'accept' => 'application/json', 'x-app-key' => 'appkey', 'login' => 'parol', ); $ch = curl_init('https://api.timeweb.ru/v1.2/access/'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data, '', '&')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); print_r($res); |
$data = array( 'accept' => 'application/json', 'x-app-key' => 'appkey', 'login' => 'parol', ); $ch = curl_init('https://api.timeweb.ru/v1.2/access/'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data, '', '&')); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); print_r($res);
Только вот пишет:
{"error_code":"app_key_not_found","error_msg":"Application key not found"} |
{"error_code":"app_key_not_found","error_msg":"Application key not found"}
Что я не так пишу, подскажите, пожалуйста.
Дополнительно:
В примерах запросов ключ API передается через -H - то есть заголовками, а не параметрами.
curl -H "x-app-key: {appkey}"
x-app-key нужно передавать в заголовке.
следуйте инструкици
Вообще не должно быть этого в коде приложения. https://api.timeweb.ru/v1.2/access нужен только для получения токена. Последующая аутентификация в api с помощью этого токена.
x-app-key нужно в заголовке передавать, а не в теле, как вы делаете это. Пример:
curl -X POST "https://api.timeweb.ru/v1.2/access" -H "accept: application/json" -H "x-app-key: 9d999b163fdc572524028201a02c9999" -u cn90632:dhasfaGdss8F |
curl -X POST "https://api.timeweb.ru/v1.2/access" -H "accept: application/json" -H "x-app-key: 9d999b163fdc572524028201a02c9999" -u cn90632:dhasfaGdss8F
Лучше всего, сначала ознакомится с документацией, прежде чем, что-то пилить:
https://timeweb.com/ru/docs/publichnyj-api-timeweb...
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Я работаю с Timeweb Cloud API уже более 3 лет, и вижу несколько ключевых ошибок в вашем коде. Проблема именно в авторизации, давайте разберем пошагово:
Основные ошибки:
1. Неправильная передача x-app-key
// ❌ НЕПРАВИЛЬНО (как у вас)
$data = array(
'x-app-key' => 'appkey', // В теле запроса
);
// ✅ ПРАВИЛЬНО
$headers = array(
'accept: application/json',
'x-app-key: ваш_app_key_здесь', // В заголовках
);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
2. Неправильная передача логина/пароля
Timeweb использует Basic Auth, а не передачу в теле запроса.
3. Порядок работы с API
Сначала получаем токен через /access
Потом используем этот токен для других запросов
Рабочий код для получения токена:
<?php // Ваши данные из панели Timeweb $appKey = '9d999b163fdc572524028201a02c9999'; // Пример из документации $login = 'cn90632'; // Ваш ID клиента $password = 'dhasfaGdss8F'; // Ваш пароль
// Формируем запрос
$ch = curl_init('https://api.timeweb.ru/v1.2/access');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
// Заголовки
$headers = [
'accept: application/json',
'x-app-key: ' . $appKey,
'Content-Type: application/x-www-form-urlencoded'
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// Basic Auth (правильный способ)
curl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $password);
// Выполняем запрос
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
// Проверяем ответ
if ($httpCode == 200) {
$data = json_decode($response, true);
$token = $data['access_token'];
echo "Токен получен: " . $token;
} else {
echo "Ошибка: HTTP $httpCode
";
echo "Ответ: " . $response;
}
?>
После получения токена:
Для получения тарифов нужно делать уже другой запрос с токеном:
// Запрос информации об аккаунте (пример) $ch = curl_init('https://api.timeweb.ru/v1.2/account'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = [
'accept: application/json',
'x-app-key: ' . $appKey,
'Authorization: Bearer ' . $token // Токен из первого запроса
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
Что проверить в первую очередь:
App Key - точно ли он активен в панели Timeweb Cloud → раздел "API-ключи"
Логин - это ID клиента в формате cnXXXXX (находится в правом верхнем углу панели)
Пароль - пароль от аккаунта Timeweb (не от хостинга!)
Для работы с тарифами:
Внимательно изучите документацию, так как эндпоинты для тарифов могут отличаться:
https://timeweb.com/ru/docs/publichnyj-api-timeweb-cloud
Совет по безопасности:
Никогда не храните App Key и пароли в открытом виде в коде. Используйте:
Константы в отдельном конфигурационном файле
Переменные окружения
Базу данных с шифрованием
Если после правки все равно получаете ошибки, проверьте:
Включен ли API доступ в панели Timeweb
Не заблокирован ли IP-адрес сервера
Правильность настроек CURL (таймауты, SSL)
Удачи в интеграции! Timeweb Cloud API довольно стабилен, главное — правильно настроить авторизацию.

Для того чтобы подключить API от Timeweb к своему проекту, вам необходимо выполнить несколько шагов. Во-первых, вам нужно зарегистрироваться на сайте Timeweb и получить ключ API. Этот ключ будет использоваться для аутентификации при каждом запросе к API.
Далее, вы можете использовать различные методы API от Timeweb, такие как получение информации о доменах, хостинге, заказах и т.д. Для каждого метода API есть свой URL, который вы должны использовать при отправке запросов.
Пример использования API от Timeweb с помощью PHP:
Информация доступна только авторизованным пользователям.
В данном примере мы отправляем запрос к методу API "domains/getInfo" для получения информации о домене "example.com". Помните, что перед использованием API от Timeweb вам нужно ознакомиться с их документацией и правилами использования.