---
metadata:
  - name: generator
    content: Diplodoc Platform v5.66.1
alternate:
  - https://yandex.com/support/market-distr/ru/api/concepts/authorization.md
  - href: https://yandex.com/support/market-distr/ru/api/concepts/authorization.md
    type: text/markdown
    title: Markdown version
  - href: https://yandex.com/support/market-distr/ru/llms.txt?revision=r22075821
    rel: describedby
keywords: Авторизация
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/support/market-distr/ru/llms.txt?revision=r22075821


# Авторизация

В API реферальной программы авторизация производится при помощи специального авторизационного ключа. При отправке запросов ключ нужно передавать в HTTP‑заголовке `Authorization`.

## Получение ключа {#getting-a-key}

1. Перейдите по [ссылке](https://oauth.yandex.ru/authorize?response_type=token&client_id=39cc54c2ba234ee49c72caf32693e101) и авторизуйтесь с тем Яндекс ID, для которого хотите получить ключ.

1. Сохраните полученный ключ — он понадобится для запросов в API. 

О том, как отозвать ключ, читайте в [Справке Яндекс ID](https://yandex.ru/dev/id/doc/ru/tokens/token-invalidate).

## Использование ключа {#usage}

Авторизационный ключ необходимо передавать во всех запросах в HTTP‑заголовке `Authorization`. Если запрос отправлен без авторизационного ключа или с недействительным ключом, сервер реферальной программы возвращает HTTP‑статус `401 Authorization failed`.

Пример запроса с HTTP‑заголовком `Authorization` на языке PHP:

```php
// Входные данные
$authKey = 'OAuth <token>';
$requestURL = 'https://api.content.market.yandex.ru/v3/affiliate/orders?clid=2310490';

// Установка HTTP-заголовков запроса
$headers = array("Authorization: $authKey");

// Инициализация c URL
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $requestURL);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);

// Выполнение запроса, получение результата
$result = curl_exec($curl);

// Обработка результата выполнения запроса
if(!$result) {
    echo 'Ошибка cURL: ' . curl_errno($curl) . ' - ' . curl_error($curl); 
}
else {
    // Разделение полученных HTTP-заголовков и тела ответа
    $responseHeadersSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
    $responseHeaders = substr($result, 0, $responseHeadersSize);
    $responseBody = substr($result, $responseHeadersSize);
    $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    
    if ($httpCode == 200) {
        // Если HTTP-код ответа равен 200, то выводится отформатированное тело ответа 
        // в формате JSON
        echo 'Запрос: ' . $requestURL;
        $decodedBody = json_decode($responseBody);
        echo '<br>Тело ответа: <pre>' . json_encode(
            $decodedBody, 
            JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES
        ) . '</pre>'; 
    }
    else {
        echo 'HTTP-код ответа: ' . $httpCode;
        // Если тело ответа не пустое, то производится попытка декодирования JSON-кода
        if (!empty($responseBody)) {
            $decodedBody = json_decode($responseBody);
            if ($decodedBody != null) {
                // Если ответ содержит тело в формате JSON, 
                // то выводится отформатированное тело в формате JSON
                echo '<br>Тело ответа: <pre>' . json_encode(
                    $decodedBody, 
                    JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES
                ) . '</pre>'; 
            }
            else {
                // Если не удалось декодировать JSON либо тело имеет другой формат, 
                // то выводится преобразованное тело ответа
                echo '<br>Тело ответа: <pre>' . htmlspecialchars($responseBody) . "</pre>"; 
            }
        }
    }

    // Вывод необработанных HTTP-заголовков запроса и ответа
    echo '<hr>Заголовки запроса: <pre>' . curl_getinfo($curl, CURLINFO_HEADER_OUT) . '</pre>';
    echo 'Заголовки ответа: <pre>' . $responseHeaders . '</pre>';
}

curl_close($curl);
```

## Работа с несколькими площадками {#multiple-clids}

Ключ действует для всех площадок, добавленных в вашем аккаунте. Чтобы получить данные по конкретной площадке, передайте её идентификатор в параметре `place_id`.

Идентификатор площадки доступен в разделе «Блоги» личного кабинета Реферальной программы Яндекс Маркета.
