Оформление
Вакансии
GET /integration/v1/vacanciesОбласть доступа vacancies:read.
Параметры
Общие — since, limit, cursor, см. синхронизацию. Плюс свой:
| Параметр | Значения | По умолчанию |
|---|---|---|
status | open, paused, closed, archived, draft, all | open |
Умолчание open выбрано специально: витрине нужны действующие позиции, и молча отдать ей архив значило бы показать людям то, чего уже нет.
bash
curl -H "X-API-Key: $KEY" \
"https://api.odamiai.uz/api/integration/v1/vacancies?status=open&limit=200"Ответ
json
{
"items": [
{
"id": "clx7k2p0000abc",
"title": "Frontend-разработчик (React)",
"status": "open",
"city": "Алматы",
"officeAddress": "ул. Абая, 150",
"experience": "От 1 года",
"workFormat": "hybrid",
"workFormats": ["Гибрид"],
"salaryFrom": 700000,
"salaryTo": 1200000,
"salaryCurrency": "KZT",
"salaryGross": false,
"employmentForm": "Полная занятость",
"workSchedule": ["5/2"],
"skills": ["React", "TypeScript"],
"languages": ["Английский (B2)"],
"professionalRoles": ["Программист, разработчик"],
"description": "<p>…</p>",
"responsibilities": "…",
"positionsCount": 2,
"sourceUrl": "https://hh.kz/vacancy/123456",
"publishedAt": "2026-07-24T09:00:00.000Z",
"createdAt": "2026-07-24T09:00:00.000Z",
"updatedAt": "2026-08-01T12:00:00.000Z"
}
],
"nextCursor": null
}Оговорки, которые сэкономят вам вечер
Статусов пять, а не три. paused — позицию временно остановили, она вернётся; closed — наняли или отменили; archived — сняли с показа. Мы не схлопываем их в «открыта / в архиве», потому что это было бы неправдой: пауза не равна закрытию. Если вашей витрине нужны два состояния — решайте на своей стороне, вам виднее, что показывать людям.
Формат работы приходит дважды. workFormat — наша нормализация в remote | office | hybrid | other, workFormats — исходные названия как их отдаёт hh.ru («Удалённо», «На месте работодателя», «Гибрид»). Второе поле есть именно затем, чтобы вы могли не доверять первому: вакансия с «Удалённо» и «На месте» одновременно нормализуется в hybrid, и это трактовка, а не факт.
salaryFrom может равняться salaryTo. У вакансии, где указана только верхняя граница («до 1 200 000»), обе границы совпадут — так устроен импорт с hh.ru, и на нашей стороне «от» и «до» уже неразличимы. Показывать такую вилку как диапазон не стоит.
city — это регион hh, а не всегда город. Для областных вакансий там может оказаться название области. Точный адрес, если он указан, лежит в officeAddress.
description содержит HTML. Он приходит с hh.ru как есть. responsibilities — тот же текст без разметки, если вам нужен plain text.