- Всё API работает по протоколу HTTPS.
- Авторизация осуществляется по протоколу OAuth2.
- Все данные доступны только в формате JSON.
- Базовый URL —
https://api.hh.ru/ - Возможны запросы к данным любого сайта группы компаний HeadHunter
- Даты форматируются в соответствии с
ISO 8601:
YYYY-MM-DDThh:mm:ss±hhmm.
В запросе необходимо передавать заголовок User-Agent, но если ваша реализация
http клиента не позволяет, можно отправить HH-User-Agent. Если не отправлен ни
один заголовок, то ответом будет 400 Bad Request.
Указание в заголовке названия приложения и контактной почты разработчика
позволит нам оперативно с вами связаться в случае необходимости.
Заголовки User-Agent и HH-User-Agent взаимозаменяемы, в случае, если вы отправите оба заголовка,
обработан будет только HH-User-Agent.
User-Agent: MyApp/1.0 (my-app-feedback@example.com)
Подробнее про ошибки в заголовке User-Agent.
Данные, передающиеся в теле запроса, должны удовлетворять требованиям:
- Валидный JSON (допускается передача как минифицированного варианта, так и pretty print варианта с дополнительными пробелами и сбросами строк).
- Рекомендуется использование кодировки UTF-8 без дополнительного экранирования
(
{"name": "Иванов Иван"}). - Также возможно использовать ascii кодировку с экранированием
(
{"name": "\u0418\u0432\u0430\u043d\u043e\u0432 \u0418\u0432\u0430\u043d"}). - К типам данных в определённым полях накладываются дополнительные условия,
описанные в каждом конкретном методе. В JSON типами данных являются
string,number,boolean,null,object,array.
Ответ свыше определенной длины будет сжиматься методом gzip.
API широко использует информирование при помощи кодов ответов. Приложение должно корректно их обрабатывать.
В случае неполадок и сбоев, возможны ответы с кодом 503 и 500.
При каждой ошибке, помимо кода ответа, в теле ответа может быть выдана дополнительная информация, позволяющая разработчику понять причину соответствующего ответа.
Более подробно про возможные ошибки.
В ответах и параметрах API можно найти ключи, не описанные в документации. Обычно это означает, что они оставлены для совместимости со старыми версиями. Их использование не рекомендуется. Если ваше приложение использует такие ключи, перейдите на использование актуальных ключей, описанных в документации.
К любому запросу, подразумевающему выдачу списка объектов, можно в параметрах
указать page=N&per_page=M. Нумерация идёт с нуля, по умолчанию выдаётся
первая (нулевая) страница с 20 объектами на странице. Во всех ответах, где
доступна пагинация, единообразный корневой объект:
{
"found": 1,
"per_page": 1,
"pages": 1,
"page": 0,
"items": [{}]
}API поддерживает технологию CORS для запроса данных из
браузера с произвольного домена. Этот метод более предпочтителен, чем
использование JSONP. Он не ограничен методом GET. Для отладки CORS доступен
специальный метод. Для использования JSONP передайте параметр
?callback=callback_name.