nofollow
BLACKFRIDAY2018

-30% скидки на любую оплату
подробнее

Черная пятница в SE Ranking: 30% скидки на любую оплату. подробнее

Начало работы

Авторизация

Для использования API необходимо получить API-ключ в аккаунте пользователя SE Ranking. API-ключ необходимо передавать в параметре token для каждого вызываемого метода или в HTTP-заголовке Authorization.

Если метод API вызван без API-ключа или в запросе передан недействительный API-ключ, сервер возвращает ошибку “no token” или “incorrect token”.

Получение API-ключа

Чтобы начать пользоваться API:

  1. Войдите в аккаунт пользователя;
  2. Перейдите в раздел Настройки -> API;
  3. Нажмите кнопку Получить API-ключ.

Вызов методов

Взаимодействие с API идёт по протоколу HTTPS. Все вызовы методов API — HTTP-запросы GET/POST/PUT/DELETE к URL:

https://api4.seranking.com/

Все принимаемые и выдаваемые данные передаются в кодировке UTF-8. Данные передаваемые в теле POST/PUT запроса должны быть в формате JSON.

При успешном вызове возвращается HTTP код 2xx.

В случае ошибки возвращается HTTP 4xx или HTTP 5xx и описание ошибки.

curl -X GET "https://api4.seranking.com/account/balance" -H "Authorization: Token be2165b7d065e278e7305c1c7ef791f283f5d14b"

HTTP/1.0 200 OK
Content-Type:  application/json

{"currency":"rur","value":2296380.85}

------
curl -X GET "https://api4.seranking.com/sites"

HTTP/1.0 403 Forbidden
Content-Type:  application/json

{"message":"No token"}

------
curl -X POST "https://api4.seranking.com" -H "Authorization: Token be2165b7d065e278e7305c1c7ef791f283f5d14b" -d "{\"url\":\"http://example.com\",\"title\":\"example1\"}"

HTTP/1.0 201 Created
Content-Type:  application/json

{"site_id":147696}
$apiKey = 'API_KEY';
$url = 'https://api4.seranking.com/sites';
$context = stream_context_create([
    'http' => [
        'method' => 'POST',
        'ignore_errors' => true,
        'header' => [
            "Authorization: Token $apiKey",
            "Content-Type: application/json; charset=utf-8"
        ],
        'content' => json_encode([
        'url' => 'https://example.com',
        'title' => 'my test project'
        ])
    ]
]);
$httpStatus = null;
$result = file_get_contents($url, 0, $context);
if (isset($http_response_header)) {
    preg_match('`HTTP/[0-9\.]+\s+([0-9]+)`', $http_response_header[0], $matches);
    $httpStatus = $matches[1];
}
if (!$result) {
    echo "Ошибка выполнения запроса!";
} else {
    $result = json_decode($result);
    if (201 == $httpStatus) {
        echo $result->site_id;
    } else {
        echo 'Ошибка '.$result->message;
    }
}
$url = 'API_BASE_URL/sites';
$token = 'API_KEY';
$curl = curl_init($url);
curl_setopt_array($curl, [
    CURLOPT_HTTPHEADER => ['Authorization: Token '.$token],
    CURLOPT_HEADER => 0,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_POST =>true,
    CURLOPT_POSTFIELDS=>json_encode([
        'url' => 'https://example.com',
        'title' => 'my new test project'
        ])
]);
$content = curl_exec($curl);
if (!$content) {
        echo "Ошибка выполнения запроса!";
} else {
    $info = curl_getinfo($curl);
    $result = json_decode($content);
    if (201 == $info['http_code']) {
    echo $result->site_id;
} else {
    echo 'Ошибка '.$result->message;
    }
}