### Fetch Request Example (CORS) Source: https://context7.com/hhru/api/llms.txt Example of a fetch request from a browser demonstrating CORS handling. ```javascript # Пример fetch-запроса из браузера (CORS) # fetch('https://api.hh.ru/vacancies?text=Python&area=1', { # headers: { # 'Authorization': 'Bearer XXXXXXXX', # 'User-Agent': 'MyApp/1.0 (feedback@example.com)' # } # }) # .then(res => res.json()) # .then(data => console.log(data.items)); ``` -------------------------------- ### Initial GET Request with Etag Source: https://github.com/hhru/api/blob/master/docs/cache.md This is an example of an initial GET request to an API endpoint. The response includes Etag, Cache-Control, and Expires headers, which can be used for client-side caching. ```http GET /areas/1 HTTP/1.1 Host: api.hh.ru User-Agent: MyApp/1.0 (my-app-feedback@example.com) ``` ```http HTTP/1.1 200 OK Etag: W/"ai-356a192-57E047847BCE15-RU10e33" Content-Type: application/json; charset=UTF-8 Content-Length: 61 Expires: Tue, 03 Oct 2017 07:01:04 GMT Cache-Control: max-age=1200 { "areas": [], "id": "1", "name": "Москва", "parent_id": "113" } ``` -------------------------------- ### GET Request for Resume Download Source: https://github.com/hhru/api/blob/master/docs/employer_resumes.md Use this GET request to download a resume. The URL is obtained from the API response. Ensure standard API headers are included. ```http GET https://....(ссылка, полученная в полной или сокращенной выдаче резюме API) ``` -------------------------------- ### Available Action for Assessment Tool Source: https://github.com/hhru/api/blob/master/docs/assessment.md An example of an 'action' object within an assessment tool, indicating that the 'proceed' action is enabled. This is used when an applicant can start or continue a test. ```json { "id": "proceed", "name": "Перейти к тестированию", "enabled": true, "alternate_url": "https://hh.ru/applicant/assessment/123" } ``` -------------------------------- ### Error Examples Source: https://context7.com/hhru/api/llms.txt Examples of common error responses from the API, including bad arguments, expired tokens, duplicate vacancies, and CAPTCHA requirements. ```APIDOC ## Error Responses ### Bad Argument ```json # HTTP/1.1 400 Bad Request { "errors": [{ "type": "bad_argument", "value": "employer_id" }] } ``` ### Expired Authorization Token ```json # HTTP/1.1 403 Forbidden { "errors": [{ "type": "oauth", "value": "token_expired" }] } ``` ### Duplicate Vacancy ```json # HTTP/1.1 403 Forbidden { "errors": [ { "type": "vacancies", "value": "duplicate", "found": 2, "items": [{ "id": 1337 }, { "id": 78789890 }] } ] } ``` ### CAPTCHA Required ```json # HTTP/1.1 403 Forbidden { "errors": [ { "type": "captcha_required", "value": "captcha_required", "fallback_url": "https://hh.ru/account/connect/register...", "captcha_url": "https://hh.ru/account/captcha?state=..." } ] } ``` ``` -------------------------------- ### Completed Phone Call Example Source: https://github.com/hhru/api/blob/master/docs/phone_calls.md This JSON object provides an example of a completed phone call, including its ID, status, creation time, last change time, and duration in seconds. ```json { "id": 111, "status": "call_ended", "creation_time": "2022-03-04T19:39:58+0300", "last_change_time": "2022-03-04T19:41:58+0300", "duration_seconds": 120 } ``` -------------------------------- ### Get Resume Source: https://github.com/hhru/api/blob/master/README.md Retrieves the details of a specific resume. ```APIDOC ## Get Resume ### Description Retrieves the details of a specific resume. ### Method GET ### Endpoint /resumes/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the resume to retrieve. ### Response #### Success Response (200) - **id** (string) - Resume ID. - **first_name** (string) - First name. - **last_name** (string) - Last name. - **middle_name** (string) - Middle name. - **title** (string) - Resume title. - **salary** (object) - Salary information. - **amount** (integer) - Salary amount. - **currency** (string) - Currency code. - **area** (object) - Area information. - **id** (string) - Area ID. - **name** (string) - Area name. - **experience** (object) - Experience information. - **id** (string) - Experience ID. - **name** (string) - Experience name. - **employment** (object) - Employment information. - **id** (string) - Employment ID. - **name** (string) - Employment name. - **schedule** (object) - Schedule information. - **id** (string) - Schedule ID. - **name** (string) - Schedule name. - **photo** (object) - Photo information. - **small** (string) - URL to the small version of the photo. - **medium** (string) - URL to the medium version of the photo. - **large** (string) - URL to the large version of the photo. - **published_at** (string) - Publication date. - **created_at** (string) - Creation date. - **url** (string) - URL to the resume. - **actions** (object) - Available actions. - **show_photo** (boolean) - Whether photo can be shown. - **contact** (object) - Contact information. - **email** (string) - Email address. - **phone** (string) - Phone number. - **name** (string) - Contact person name. - **icq** (string) - ICQ number. - **skype** (string) - Skype username. - **skills** (array) - List of skills. - **name** (string) - Skill name. - **education** (object) - Education information. - **level** (object) - Education level. - **id** (string) - Level ID. - **name** (string) - Level name. - **sections** (array) - List of education sections. - **institution** (string) - Institution name. - **department** (string) - Department name. - **level** (object) - Education level. - **id** (string) - Level ID. - **name** (string) - Level name. - **year** (integer) - Graduation year. - **experience_items** (array) - List of work experience items. - **company** (string) - Company name. - **description** (string) - Description of responsibilities. - **start** (string) - Start date. - **end** (string) - End date. - **area** (object) - Area information. - **id** (string) - Area ID. - **name** (string) - Area name. - **title** (string) - Job title. - **responsibilities** (string) - Detailed responsibilities. ### Response Example { "id": "12345", "first_name": "Иван", "last_name": "Петров", "middle_name": "Сергеевич", "title": "Разработчик", "salary": { "amount": 100000, "currency": "RUR" }, "area": { "id": "1", "name": "Москва" }, "experience": { "id": "between1And3", "name": "от 1 года до 3 лет" }, "employment": { "id": "full", "name": "полная занятость" }, "schedule": { "id": "full_day", "name": "полный день" }, "photo": { "small": "https://.../small.jpg", "medium": "https://.../medium.jpg", "large": "https://.../large.jpg" }, "published_at": "2023-10-27T10:00:00+03:00", "created_at": "2023-10-27T10:00:00+03:00", "url": "https://hh.ru/resume/12345", "actions": { "show_photo": true }, "contact": { "email": "ivan.petrov@example.com", "phone": "+79001234567", "name": "Иван Петров", "icq": "123456789", "skype": "ivan.petrov" }, "skills": [ { "name": "Python" }, { "name": "Django" }, { "name": "JavaScript" } ], "education": { "level": { "id": "higher", "name": "высшее" }, "sections": [ { "institution": "МГУ", "department": "Факультет ВМК", "level": { "id": "higher", "name": "высшее" }, "year": 2020 } ] }, "experience_items": [ { "company": "Яндекс", "description": "Разработка веб-сервисов", "start": "2020-09-01", "end": "2023-09-01", "area": { "id": "1", "name": "Москва" }, "title": "Разработчик", "responsibilities": "Разработка и поддержка бэкенда сервисов компании." } ] } ``` -------------------------------- ### Get Skill Set Suggests Source: https://github.com/hhru/api/blob/master/docs/suggests.md Retrieves suggestions for key skills. ```APIDOC ## Get Skill Set Suggests ### Description Retrieves suggestions for key skills. ### Method GET ### Endpoint /suggests/skill_set ``` -------------------------------- ### User Info Response Source: https://github.com/hhru/api/wiki/Авторизация Example JSON response from the /user endpoint after successful authorization. ```json { "first_name": "Имя", "last_name": "Фамилия", "is_admin": false, "is_anonymous": false, "is_applicant": true, "is_employer": false, "mid_name": "Отчество", "email": "contact@example.com" } ``` -------------------------------- ### Get Positions Suggestions Source: https://github.com/hhru/api/blob/master/docs/suggests.md Retrieves suggestions for resume positions. ```APIDOC ## Get Positions Suggestions ### Description Retrieves suggestions for resume positions. ### Method GET ### Endpoint /suggests/resume_positions ``` -------------------------------- ### Get Areas Suggests Source: https://github.com/hhru/api/blob/master/docs/suggests.md Retrieves suggestions for all regions. ```APIDOC ## Get Areas Suggests ### Description Retrieves suggestions for all regions. ### Method GET ### Endpoint /suggests/areas ``` -------------------------------- ### Get Negotiations Source: https://github.com/hhru/api/blob/master/docs/negotiations.md Retrieves a list of all negotiations (applications/invitations) for the candidate. ```APIDOC ## Get Negotiations ### Description Retrieves a list of all negotiations (applications/invitations) for the candidate. ### Method GET ### Endpoint /negotiations ``` -------------------------------- ### Get Registered Companies Suggests Source: https://github.com/hhru/api/blob/master/docs/suggests.md Retrieves suggestions for registered companies. ```APIDOC ## Get Registered Companies Suggests ### Description Retrieves suggestions for registered companies. ### Method GET ### Endpoint /suggests/companies ``` -------------------------------- ### Get Vacancy Upgrades Source: https://github.com/hhru/api/blob/master/README.md Retrieves a list of available upgrades for a specific vacancy. ```APIDOC ## GET /vacancies/{vacancy_id}/upgrade ### Description Retrieves a list of available upgrades for a specific vacancy, such as boosting visibility. ### Method GET ### Endpoint /vacancies/{vacancy_id}/upgrade ### Parameters #### Path Parameters - **vacancy_id** (integer) - Required - The ID of the vacancy to get upgrade options for. ### Response #### Success Response (200) - **items** (array) - List of available upgrade options. ### Request Example ```json { "example": "GET /vacancies/12345/upgrade" } ``` ### Response Example ```json { "example": { "items": [ { "id": "highlight", "name": "Highlight Vacancy", "price": 100 } ] } } ``` ``` -------------------------------- ### Get Professional Roles Suggests Source: https://github.com/hhru/api/blob/master/docs/suggests.md Retrieves suggestions for professional roles. ```APIDOC ## Get Professional Roles Suggests ### Description Retrieves suggestions for professional roles. ### Method GET ### Endpoint /suggests/professional_roles ``` -------------------------------- ### Get Resume Search Keywords Suggests Source: https://github.com/hhru/api/blob/master/docs/suggests.md Retrieves suggestions for resume search keywords. ```APIDOC ## Get Resume Search Keywords Suggests ### Description Retrieves suggestions for resume search keywords. ### Method GET ### Endpoint /suggests/resume_search_keywords ``` -------------------------------- ### Get Vacancy Visitors Source: https://github.com/hhru/api/blob/master/docs/employer_vacancies.md Retrieves information about visitors to a specific vacancy. ```APIDOC ## GET /employer/vacancies/{vacancy_id}/visitors ### Description Retrieves information about visitors to a specific vacancy. ### Method GET ### Endpoint /employer/vacancies/{vacancy_id}/visitors ### Parameters #### Path Parameters - **vacancy_id** (string) - Required - The ID of the vacancy to get visitor information for. ``` -------------------------------- ### Get Educational Institutions Suggests Source: https://github.com/hhru/api/blob/master/docs/suggests.md Retrieves suggestions for educational institutions. ```APIDOC ## Get Educational Institutions Suggests ### Description Retrieves suggestions for educational institutions. ### Method GET ### Endpoint /suggests/educational_institutions ``` -------------------------------- ### Get Vacancy Search Keywords Source: https://github.com/hhru/api/blob/master/docs/suggests.md Retrieves suggestions for vacancy search keywords. ```APIDOC ## Get Vacancy Search Keywords ### Description Retrieves suggestions for vacancy search keywords. ### Method GET ### Endpoint /suggests/vacancy_search_keywords ``` -------------------------------- ### Get Current User Info (Application) Source: https://github.com/hhru/api/blob/master/README.md Retrieves information about the currently authenticated application. ```APIDOC ## GET /openapi/redoc#tag/Informaciya-o-prilozhenii/operation/get-current-user-info ### Description Retrieves information about the currently authenticated application. ### Method GET ### Endpoint /openapi/redoc#tag/Informaciya-o-prilozhenii/operation/get-current-user-info ``` -------------------------------- ### How to invite a candidate for an interview (candidate already applied) Source: https://github.com/hhru/api/blob/master/docs/FAQ.md This section details the process of inviting a candidate who has already applied to a vacancy. It involves fetching collections of responses, retrieving candidate actions, and then performing the interview action. ```APIDOC ## GET /negotiations?vacancy_id={vacancy_id} ### Description Fetches collections of candidate responses and invitations for a given vacancy. ### Method GET ### Endpoint /negotiations?vacancy_id={vacancy_id} ### Parameters #### Query Parameters - **vacancy_id** (integer) - Required - The ID of the vacancy to retrieve negotiations for. ### Response #### Success Response (200) - **collections** (array) - A list of negotiation collections, each containing an `id`, `name`, `description`, and `url`. ## GET /negotiations/{collection_id}?vacancy_id={vacancy_id} ### Description Retrieves the available actions for a specific candidate response within a collection. ### Method GET ### Endpoint /negotiations/{collection_id}?vacancy_id={vacancy_id} ### Parameters #### Path Parameters - **collection_id** (string) - Required - The ID of the collection (e.g., 'response'). #### Query Parameters - **vacancy_id** (integer) - Required - The ID of the vacancy. ### Response #### Success Response (200) - **actions** (array) - A list of available actions for the candidate response, each with an `id`, `enabled` status, `method`, `url`, and `arguments`. ## PUT /negotiations/interview/{negotiation_id} ### Description Invites a candidate for an interview by performing the 'interview' action. ### Method PUT ### Endpoint /negotiations/interview/{negotiation_id} ### Parameters #### Path Parameters - **negotiation_id** (string) - Required - The ID of the negotiation to perform the interview action on. #### Query Parameters - **message** (string) - Required - The message to send to the candidate. ### Response #### Success Response (200) - (No specific response body documented, implies success if no error is returned.) ``` -------------------------------- ### Initiate User Authorization (Authorization Code Flow) Source: https://context7.com/hhru/api/llms.txt Redirect users to this URL to grant your application access to their hh.ru data. Replace YOUR_CLIENT_ID and https://yourapp.com/callback with your application's specific details. ```bash # Шаг 1: Перенаправление пользователя на страницу авторизации # https://hh.ru/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=https://yourapp.com/callback ``` -------------------------------- ### API Request with Access Token Source: https://github.com/hhru/api/wiki/Авторизация Authorize API requests by including the access token in the Authorization header as a Bearer token. This example shows a GET request to the /user endpoint. ```http GET /user HTTP/1.1 User-Agent: Example App (contact@example.com) Host: api.hh.ru Accept: */* Authorization: Bearer ACCESS_TOKEN ``` -------------------------------- ### Conditional Caching with Etag Source: https://context7.com/hhru/api/llms.txt Demonstrates how to use Etag headers for conditional caching to avoid re-downloading unchanged data. Includes examples for initial fetch, subsequent requests with If-None-Match, and HEAD requests. ```bash # Первый запрос — получаем данные и сохраняем Etag curl -i -X GET "https://api.hh.ru/areas/1" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" # HTTP/1.1 200 OK # Etag: W/"ai-356a192-57E047847BCE15-RU10e33" # Cache-Control: max-age=1200 # Expires: Tue, 03 Oct 2024 07:01:04 GMT # # { "id": "1", "name": "Москва", "parent_id": "113", "areas": [] } # Повторный запрос с If-None-Match — сервер вернёт 304 если данные не изменились curl -i -X GET "https://api.hh.ru/areas/1" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" \ -H "If-None-Match: W/"ai-356a192-57E047847BCE15-RU10e33"" # HTTP/1.1 304 Not Modified <- данные не изменились, тело пустое # Проверка изменений без получения тела (HEAD запрос) curl -I -X HEAD "https://api.hh.ru/areas/1" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" \ -H "If-None-Match: W/"ai-356a192-57E047847BCE15-RU10e33"" ``` -------------------------------- ### Get Application Token (Client Credentials) Source: https://context7.com/hhru/api/llms.txt Use this method to obtain an access token for your application. This token represents the application itself, not a specific user. Ensure you replace YOUR_CLIENT_ID and YOUR_CLIENT_SECRET with your actual credentials. The token is valid for 1209600 seconds. ```bash curl -X POST "https://hh.ru/oauth/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET" ``` ```json # Ответ: # { # "access_token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", # "token_type": "bearer", # "expires_in": 1209600 # } ``` -------------------------------- ### Download Resume as PDF using HH.ru API Source: https://context7.com/hhru/api/llms.txt Download a resume in PDF format. This requires employer authorization and may be subject to daily view limits or insufficient service errors if contacts are not open. ```bash # Скачивание резюме в формате PDF curl -X GET "https://hh.ru/api_resume_converter/502ff8b100018bddf30039ed1f63735f4dda66/ИвановИван.pdf?type=pdf" \ -H "Authorization: Bearer EMPLOYER_TOKEN" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" \ -o resume.pdf # 200 OK — файл в теле ответа # 429 Too Many Requests — превышен дневной лимит просмотров # 403 Forbidden — недостаточно услуг для скачивания с контактами ``` -------------------------------- ### Employer Invites Applicant to Vacancy (via response) Source: https://context7.com/hhru/api/llms.txt Steps for an employer to invite an applicant to an interview. This involves first getting collections of responses and then performing an action like 'interview'. Requires an EMPLOYER_TOKEN. ```bash # Шаг 1: Получить коллекции откликов по вакансии и доступные действия curl -X GET "https://api.hh.ru/negotiations?vacancy_id=99999999" \ -H "Authorization: Bearer EMPLOYER_TOKEN" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" ``` ```bash # Шаг 2: Получить список откликов из коллекции "Неразобранные" curl -X GET "https://api.hh.ru/negotiations/response?vacancy_id=99999999" \ -H "Authorization: Bearer EMPLOYER_TOKEN" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" ``` ```bash # Шаг 3: Пригласить соискателя (выполнить действие interview) curl -X PUT "https://api.hh.ru/negotiations/interview/123456789?message=Приглашаем+вас+на+собеседование+в+пятницу+в+14:00" \ -H "Authorization: Bearer EMPLOYER_TOKEN" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" ``` -------------------------------- ### Get Negotiation Source: https://github.com/hhru/api/blob/master/README.md Retrieves details of a specific negotiation. ```APIDOC ## GET /negotiations/{negotiation_id} ### Description Retrieves detailed information about a specific negotiation, including messages. ### Method GET ### Endpoint /negotiations/{negotiation_id} ### Parameters #### Path Parameters - **negotiation_id** (integer) - Required - The ID of the negotiation to retrieve. ### Response #### Success Response (200) - **id** (integer) - Negotiation ID. - **vacancy** (object) - Details of the vacancy. - **resume** (object) - Details of the resume. - **employer_state** (string) - Current state of the negotiation from the employer's perspective. - **messages** (array) - List of messages in the negotiation. - **id** (integer) - Message ID. - **text** (string) - Message content. - **date** (string) - Message timestamp. - **from_employer** (boolean) - Indicates if the message is from the employer. ### Response Example ```json { "id": 5001, "vacancy": { "id": "12345", "name": "Software Engineer", "url": "https://hh.ru/vacancy/12345" }, "resume": { "id": "67890", "title": "Senior Python Developer", "url": "https://hh.ru/resume/67890" }, "employer_state": "new", "messages": [ { "id": 1001, "text": "Hello, we are interested in your profile.", "date": "2023-10-27T10:00:00+03:00", "from_employer": true }, { "id": 1002, "text": "Thank you for your interest.", "date": "2023-10-27T10:05:00+03:00", "from_employer": false } ] } ``` ``` -------------------------------- ### Download Resume Source: https://github.com/hhru/api/blob/master/docs/employer_resumes.md To download a resume, use the URL obtained from the API response. This requires standard API headers. The response will contain the requested file upon success. ```APIDOC ## GET Resume Download ### Description Allows users to download their resumes in PDF or RTF format. The filename may include the applicant's name or desired position. ### Method GET ### Endpoint `https://....(URL obtained from resume listing API)` ### Parameters No explicit parameters are listed for this endpoint, but standard API headers are required. ### Request Example (No request body is specified) ### Response #### Success Response (200) - The response body contains the requested resume file. #### Response Example (Binary file content for PDF or RTF) ### Errors - `404 Not Found`: If the resume does not exist or is not accessible to the user. - `429 Too Many Requests`: If the daily view limit is exceeded (when authorized as an employer). - `403 Forbidden`: If there are insufficient services to download a resume with contacts. - Additional error details may be provided in the response body, referencing `errors.md#resumes`. ``` -------------------------------- ### Get Locales Source: https://github.com/hhru/api/blob/master/README.md Retrieves localization information for the API. ```APIDOC ## GET /openapi/redoc#tag/Obshie-spravochniki/operation/get-locales ### Description Retrieves localization information for the API. ### Method GET ### Endpoint /openapi/redoc#tag/Obshie-spravochniki/operation/get-locales ``` -------------------------------- ### How to invite a candidate for an interview (candidate has not applied) Source: https://github.com/hhru/api/blob/master/docs/FAQ.md This section outlines the process for inviting a candidate who has not yet applied to any of your vacancies. It involves fetching active vacancies applicable to the candidate's resume and then performing a specific negotiation action. ```APIDOC ## GET /employers/{employer_id}/vacancies/active?resume_id={resume_id} ### Description Retrieves a list of active vacancies for an employer that are applicable to a specific resume. ### Method GET ### Endpoint /employers/{employer_id}/vacancies/active?resume_id={resume_id} ### Parameters #### Path Parameters - **employer_id** (integer) - Required - The ID of the employer. #### Query Parameters - **resume_id** (integer) - Required - The ID of the resume to find applicable vacancies for. ### Response #### Success Response (200) - **items** (array) - A list of active vacancies, each containing `negotiations_actions`. - **negotiations_actions** (array) - A list of available negotiation actions for the vacancy, including `id`, `name`, `enabled`, `method`, `url`, and `arguments`. ## POST /negotiations/phone_interview ### Description Invites a candidate for a phone interview by performing the 'phone_interview' action. ### Method POST ### Endpoint /negotiations/phone_interview ### Parameters #### Query Parameters - **resume_id** (integer) - Required - The ID of the resume of the candidate to invite. - **vacancy_id** (integer) - Required - The ID of the vacancy to invite the candidate for. - **message** (string) - Required - The message to send to the candidate. ### Response #### Success Response (200) - (No specific response body documented, implies success if no error is returned.) ``` -------------------------------- ### Search Resumes by Parameters Source: https://context7.com/hhru/api/llms.txt Use this endpoint to find resumes based on keywords, area, experience, and pagination. Requires an EMPLOYER_TOKEN. ```bash curl -X GET "https://api.hh.ru/resumes?text=Python&area=1&experience=between1And3&per_page=10" \ -H "Authorization: Bearer EMPLOYER_TOKEN" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" ``` -------------------------------- ### Get Webhook Subscriptions Source: https://github.com/hhru/api/blob/master/README.md Lists the notifications to which the user is subscribed. ```APIDOC ## GET /openapi/redoc#tag/Webhook-API/operation/get-webhook-subscriptions ### Description Lists the notifications to which the user is subscribed. ### Method GET ### Endpoint /openapi/redoc#tag/Webhook-API/operation/get-webhook-subscriptions ``` -------------------------------- ### Get Manager Settings Source: https://github.com/hhru/api/blob/master/README.md Retrieves the preferences of the employer manager. ```APIDOC ## GET /openapi/redoc#tag/Menedzhery-rabotodatelya/operation/get-manager-settings ### Description Retrieves the preferences of the employer manager. ### Method GET ### Endpoint /openapi/redoc#tag/Menedzhery-rabotodatelya/operation/get-manager-settings ``` -------------------------------- ### Download Resume PDF Source: https://context7.com/hhru/api/llms.txt Downloads a resume in PDF format. Subject to daily viewing limits and service availability. ```APIDOC ## GET /api_resume_converter/{resume_id}/{filename}.pdf ### Description Downloads a resume in PDF format. ### Method GET ### Endpoint https://hh.ru/api_resume_converter/{resume_id}/{filename}.pdf ### Parameters #### Query Parameters - **type** (string) - Required - Must be set to `pdf`. ### Response #### Success Response (200 OK) - The PDF file is returned in the response body. #### Error Responses - **429 Too Many Requests**: Daily viewing limit exceeded. - **403 Forbidden**: Insufficient services to download with contacts. ``` -------------------------------- ### Get Vacancy Stats Source: https://github.com/hhru/api/blob/master/docs/employer_vacancies.md Retrieves statistics for a specific vacancy. ```APIDOC ## GET /employer/vacancies/{vacancy_id}/stats ### Description Retrieves statistics for a specific vacancy. ### Method GET ### Endpoint /employer/vacancies/{vacancy_id}/stats ### Parameters #### Path Parameters - **vacancy_id** (string) - Required - The ID of the vacancy to get statistics for. ``` -------------------------------- ### Verify Token and Get User Info Source: https://context7.com/hhru/api/llms.txt Use the access token to retrieve information about the currently authenticated user. This is useful for confirming the token's validity and understanding the user's context. ```bash # Проверка токена — получение информации о текущем пользователе curl -X GET "https://api.hh.ru/me" \ -H "Authorization: Bearer XXXXXXXX" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" ``` -------------------------------- ### Get Employer Managers Source: https://github.com/hhru/api/blob/master/README.md Retrieves a list of managers associated with an employer. ```APIDOC ## GET /employers/managers ### Description Retrieves a list of managers associated with the authenticated employer. ### Method GET ### Endpoint /employers/managers ### Response #### Success Response (200) - **managers** (array) - List of manager objects. - **id** (integer) - Manager ID. - **name** (string) - Manager name. - **email** (string) - Manager email. - **role** (string) - Manager role. ### Response Example ```json { "managers": [ { "id": 101, "name": "John Doe", "email": "john.doe@example.com", "role": "recruiter" } ] } ``` ``` -------------------------------- ### Suggest Skills by Text Source: https://context7.com/hhru/api/llms.txt Provides autocomplete suggestions for skills based on a text query. ```bash # Подсказки по ключевым навыкам curl -X GET "https://api.hh.ru/suggests/skill_set?text=Python" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" ``` -------------------------------- ### Get Employer Info Source: https://github.com/hhru/api/blob/master/README.md Retrieves detailed information about a specific employer. ```APIDOC ## GET /employers/{employer_id} ### Description Retrieves detailed information about a specific employer. ### Method GET ### Endpoint /employers/{employer_id} ### Parameters #### Path Parameters - **employer_id** (integer) - Required - The ID of the employer to retrieve. #### Query Parameters - **host** (string) - Optional - The host to use for the employer's URL (e.g., 'hh.ru'). ### Response #### Success Response (200) - **id** (integer) - Employer ID. - **name** (string) - Employer name. - **url** (string) - URL to the employer's page. - **alternate_url** (string) - Alternate URL to the employer's page. - **logo_urls** (object) - Object containing different sizes of logo URLs. - **accredited_it_employer** (boolean) - Indicates if the employer is an accredited IT employer. - **trusted** (boolean) - Indicates if the employer is trusted. - **description** (string) - Detailed description of the employer. - **site_url** (string) - Employer's official website URL. - **open_vacancies_url** (string) - URL to the employer's open vacancies. - **counters** (object) - Object containing various counters (e.g., open vacancies). ### Request Example ```http GET /employers/12345 ``` ### Response Example ```json { "id": 12345, "name": "Google", "url": "https://hh.ru/employer/12345", "alternate_url": "https://hh.ru/employer/12345", "logo_urls": { "240": "https://img.hhcdn.ru/employer-logo/12345.png", "90": "https://img.hhcdn.ru/employer-logo/12345_90.png", "original": "https://img.hhcdn.ru/employer-logo/12345_original.png" }, "accredited_it_employer": true, "trusted": true, "description": "Google is a multinational technology company...", "site_url": "https://about.google/", "open_vacancies_url": "https://hh.ru/search/vacancy?employer_id=12345", "counters": { "open_vacancies": 50 } } ``` ``` -------------------------------- ### Get actions for a negotiation collection Source: https://github.com/hhru/api/blob/master/docs/FAQ.md Fetch the possible actions that can be performed on a negotiation within a specific collection, such as inviting a candidate to an interview. The response includes details on available methods and arguments. ```http GET /negotiations/response?vacancy_id=123456 ``` ```json { "actions": [ { "id": "interview", "enabled": true, "method": "PUT", "url": "https://api.hh.ru/negotiations/interview/123456789", "arguments": [ { "id": "message", "required": true, "required_arguments": [] } ... ] ... } ... ] ... } ``` -------------------------------- ### Get Locales for Resume Source: https://github.com/hhru/api/blob/master/README.md Retrieves localization information specifically for resumes. ```APIDOC ## GET /openapi/redoc#tag/Obshie-spravochniki/operation/get-locales-for-resume ### Description Retrieves localization information specifically for resumes. ### Method GET ### Endpoint /openapi/redoc#tag/Obshie-spravochniki/operation/get-locales-for-resume ``` -------------------------------- ### Initiate a phone interview invitation Source: https://github.com/hhru/api/blob/master/docs/FAQ.md Send a POST request to initiate a phone interview with a candidate. This action is performed after retrieving applicable vacancies for a resume. ```http POST /negotiations/phone_interview?resume_id=123456&vacancy_id=654321&message=new_msg ``` -------------------------------- ### Get Manager Accounts Source: https://github.com/hhru/api/blob/master/README.md Retrieves the list of accounts managed by the employer. ```APIDOC ## GET /openapi/redoc#tag/Menedzhery-rabotodatelya/operation/get-manager-accounts ### Description Retrieves the list of accounts managed by the employer. ### Method GET ### Endpoint /openapi/redoc#tag/Menedzhery-rabotodatelya/operation/get-manager-accounts ``` -------------------------------- ### Download Links for Resume Source: https://github.com/hhru/api/blob/master/docs/employer_resumes.md Provides direct links to download a resume in various formats, such as PDF and RTF. ```APIDOC ## GET /resumes/{resume_id}/download ### Description Provides direct links to download a resume in various formats, such as PDF and RTF. ### Method GET ### Endpoint /resumes/{resume_id}/download ### Response #### Success Response (200) Returns a JSON object containing download URLs for different formats. #### Response Example ```json { "pdf": { "url": "https://hh.ru/api_resume_converter/0123456789abcdef/ИвановИванИванович.pdf?type=pdf" }, "rtf": { "url": "https://hh.ru/api_resume_converter/0123456789abcdef/ИвановИванИванович.rtf?type=rtf" } } ``` ``` -------------------------------- ### Handle Not Found Error Source: https://context7.com/hhru/api/llms.txt Example of handling a 404 Not Found error when requesting a non-existent resource, showing the expected JSON error format. ```bash # Пример: запрос несуществующей вакансии curl -X GET "https://api.hh.ru/vacancies/0000000" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" # HTTP/1.1 404 Not Found # { "errors": [{ "type": "not_found" }] } ``` -------------------------------- ### Get Archived Vacancy List Source: https://github.com/hhru/api/blob/master/docs/employer_vacancies.md Retrieves a list of all archived vacancies. ```APIDOC ## GET /employer/vacancies/archived ### Description Retrieves a list of all archived vacancies. ### Method GET ### Endpoint /employer/vacancies/archived ``` -------------------------------- ### Invite a candidate to an interview Source: https://github.com/hhru/api/blob/master/docs/FAQ.md Perform a PUT request to invite a candidate to an interview. This action is typically performed after retrieving available actions for a negotiation collection. ```http PUT /negotiations/interview/123456789?message=new_msg ``` -------------------------------- ### Obtaining an Application Token Source: https://github.com/hhru/api/blob/master/docs/authorization_for_application.md This section describes how to obtain an application access token. It is recommended to generate this token once and request a new one only if it has been compromised. The current access token can be viewed on the developer portal. ```APIDOC ## Получение токена приложения > > !! Данный метод доступен в [OpenAPI](https://api.hh.ru/openapi/redoc#tag/Avtorizaciya-prilozheniya) ``` -------------------------------- ### Suggest Vacancy Keywords by Text Source: https://context7.com/hhru/api/llms.txt Provides autocomplete suggestions for vacancy search keywords based on a text query. ```bash # Подсказки по ключевым словам поиска вакансий curl -X GET "https://api.hh.ru/suggests/vacancy_search_keyword?text=backend" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" ``` -------------------------------- ### Get Vacancies Source: https://github.com/hhru/api/blob/master/README.md Retrieves a list of vacancies based on specified search criteria. ```APIDOC ## GET /vacancies ### Description Retrieves a list of vacancies. This endpoint allows searching and filtering vacancies based on various parameters. ### Method GET ### Endpoint /vacancies ### Parameters #### Query Parameters - **text** (string) - Optional - Text to search for in vacancies. - **area** (integer) - Optional - Area ID to filter vacancies by location. - **employer_id** (integer) - Optional - Employer ID to filter vacancies by employer. ### Response #### Success Response (200) - **items** (array) - List of vacancy objects. - **found** (integer) - Total number of vacancies found. - **pages** (integer) - Total number of pages available. - **per_page** (integer) - Number of vacancies per page. - **page** (integer) - Current page number. ### Request Example ```json { "example": "GET /vacancies?text=developer&area=1&employer_id=123" } ``` ### Response Example ```json { "example": { "items": [ { "id": 12345, "name": "Software Developer", "area": {"id": "1", "name": "Moscow"}, "employer": {"id": "123", "name": "Tech Company"} } ], "found": 100, "pages": 10, "per_page": 10, "page": 0 } } ``` ``` -------------------------------- ### Open Resume Contacts using HH.ru API Source: https://context7.com/hhru/api/llms.txt Explicitly open the contact information for a resume. This action consumes a contact view and requires employer authorization. It is initiated via a GET request to a specific URL provided in the resume's `actions` field. ```bash # Открытие контактной информации (списание контакта) curl -X GET "https://api.hh.ru/resumes/502ff8b100018bddf30039ed1f63735f4dda66?with_contact=true" \ -H "Authorization: Bearer EMPLOYER_TOKEN" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" ``` -------------------------------- ### Get Messages in Negotiation Source: https://github.com/hhru/api/blob/master/docs/negotiations.md Retrieves the list of messages within a specific negotiation. ```APIDOC ## Get Messages in Negotiation ### Description Retrieves the list of messages within a specific negotiation. ### Method GET ### Endpoint /negotiation/{negotiation_id}/messages ``` -------------------------------- ### Get Prolongation Vacancy Info Source: https://github.com/hhru/api/blob/master/docs/employer_vacancies.md Retrieves information about the possibility of prolonging a vacancy. ```APIDOC ## GET /employer/vacancies/{vacancy_id}/prolongation-info ### Description Retrieves information about the possibility of prolonging a vacancy. ### Method GET ### Endpoint /employer/vacancies/{vacancy_id}/prolongation-info ### Parameters #### Path Parameters - **vacancy_id** (string) - Required - The ID of the vacancy to check for prolongation. ``` -------------------------------- ### Get Fields of Study Suggestions Source: https://github.com/hhru/api/blob/master/docs/suggests.md Retrieves suggestions for fields of study (specializations). ```APIDOC ## Get Fields of Study Suggestions ### Description Retrieves suggestions for fields of study (specializations). ### Method GET ### Endpoint /suggests/specializations ``` -------------------------------- ### Suggest Regions by Text Source: https://context7.com/hhru/api/llms.txt Provides autocomplete suggestions for regions based on a text query. ```bash # Подсказки по регионам (autocomplete) curl -X GET "https://api.hh.ru/suggests/areas?text=Моск" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" ``` -------------------------------- ### Expired Token Error Response Source: https://context7.com/hhru/api/llms.txt Example of an error response for an expired authorization token. ```json { "errors": [{ "type": "oauth", "value": "token_expired" }] } ``` -------------------------------- ### Suggest Universities by Text Source: https://context7.com/hhru/api/llms.txt Provides autocomplete suggestions for university names based on a text query. ```bash # Подсказки по названиям университетов curl -X GET "https://api.hh.ru/educational_institutions/suggests?text=МГУ" \ -H "User-Agent: MyApp/1.0 (feedback@example.com)" ``` -------------------------------- ### Get Employer Departments Source: https://github.com/hhru/api/blob/master/README.md Retrieves a list of departments for an employer. This endpoint is accessible by employers. ```APIDOC ## GET /employer/departments ### Description Retrieves a list of departments for an employer. ### Method GET ### Endpoint /employer/departments ### Parameters None explicitly documented. ### Request Example None provided. ### Response #### Success Response (200) - A list of employer departments, each with an ID and name. #### Response Example ```json { "id": "string", "name": "string" } ``` ``` -------------------------------- ### Get Vacancy Statistics Source: https://github.com/hhru/api/blob/master/README.md Retrieves statistics related to a specific vacancy, such as views and responses. ```APIDOC ## GET /employer/vacancies/{vacancy_id}/stats ### Description Retrieves statistics for a specific vacancy, including views and responses. ### Method GET ### Endpoint /employer/vacancies/{vacancy_id}/stats ### Parameters #### Path Parameters - **vacancy_id** (integer) - Required - The ID of the vacancy to get statistics for. ### Response #### Success Response (200) - **views** (integer) - Number of times the vacancy has been viewed. - **responses** (integer) - Number of responses received for the vacancy. ### Request Example ```json { "example": "GET /employer/vacancies/12345/stats" } ``` ### Response Example ```json { "example": { "views": 1500, "responses": 50 } } ``` ```