Спеціалізовані endpoint’и
Читання та запис відпусток, майна, підбору персоналу, метаданих документів, опитувань, цілей і бази знань — з версіюванням за адресою /api/integrations/v1.
Автентифікуйтеся ключем API з визначеними правами, щоб читати або безпечно оновлювати активи, дані рекрутингу, метадані документів, опитування, цілі та базу знань у власному середовищі HRlume.
Читання та запис відпусток, майна, підбору персоналу, метаданих документів, опитувань, цілей і бази знань — з версіюванням за адресою /api/integrations/v1.
Кожен ключ має редаговане призначення, термін дії, опціональний список дозволених IP та незалежні права читання/запису — нічого не успадковується за замовчуванням.
Кожен endpoint на цій сторінці має готовий до виконання приклад запиту й відповіді — не потрібно синхронізувати окрему колекцію Postman.
Редактор ключів API робить межі безпеки видимими: призначення, термін дії, обмеження IP та області читання/запису вибираються незалежно, із чіткими попередженнями про конфіденційні дозволи.
Відкрийте налаштування ключа API →
Шукайте за ресурсом, шляхом, правом доступу чи можливістю, а потім уточніть результат за HTTP-методом.
Спробуйте іншу назву ресурсу, право доступу або HTTP-метод.
HRlume не використовує одне спільне джерело мультитенантного API. Замініть наведений нижче зразок хосту джерелом вашого власного розміщеного або виділеного екземпляра HRlume.
https://app.yourcompany.comcurl "https://app.yourcompany.com/api/employees?paginate=1&limit=20" \
-H "X-API-KEY: your_api_key"
Створіть ключі Налаштування → Безпека → Ключі API у вашому екземплярі HRlume. Необроблений токен відображається один раз. Зберігайте його в секретному менеджері та ніколи не розміщуйте в коді браузера чи загальнодоступному сховищі.
Виберіть чітке призначення для кожного ключа — сторонній сервіс, аналітика/BI, автоматизація процесів, особисте використання або спеціальна українська/англійська мітка — щоб адміністратори могли ідентифікувати його пізніше. Ім’я, призначення, термін дії, білий список IP-адрес і області можна редагувати без обертання секретного маркера. Мета є описовою; доступ контролюється вибраними областями.
X-API-KEY: your_api_keyAuthorization: Bearer your_api_keyВстановіть конкретну дату закінчення терміну дії для тимчасових інтеграцій або виберіть необмежений для тривалих підключень. Додаткові дозволені списки IP-адрес можуть ще більше обмежити ключ запитами, що надходять із відомих серверів інтеграції.
Виберіть лише ті області, які потрібні інтеграції. Для зворотної сумісності застарілий ключ без збережених областей отримує всі області читання, але ніколи не отримує автоматично доступ до запису.
| Доступ | Ресурс |
|---|---|
employees:read | Співробітники |
departments:read | Відділи |
teams:read | Команди та члени команд |
leaves:read | Запити на відпустку |
assets:read | Активи компанії |
assets:write | Створення та оновлення активів компанії |
recruiting:read | Вакансії та кандидати |
recruiting:write | Створюйте та оновлюйте вакансії та кандидатів |
documents:read | Метадані документа |
documents:write | Створення та оновлення метаданих документів |
surveys:read | Метадані опитування та зведені підрахунки |
surveys:write | Створюйте та оновлюйте проекти опитувань |
goals:read | Цілі та OKR |
goals:write | Створення й оновлення цілей і OKR |
knowledge:read | Статті бази знань |
knowledge:write | Створюйте та оновлюйте статті бази знань |
використання POST для колекції, щоб створити запис, і PUT для /{id} щоб оновити лише передані поля. Успішна зміна повертає збережений запис у { "data": { ... } }; створення повертає HTTP 201.
Права на запис дають змогу змінювати персональні або критично важливі для бізнесу дані. HRlume позначає чутливі права в редакторі ключів. Використовуйте окремий короткостроковий ключ, обмежуйте його за IP-адресою та не надавайте доступ на запис інтеграціям, призначеним лише для звітності.
Ключі API не можуть видаляти записи, завантажувати файли, запускати опитування, надсилати відповіді на опитування чи схвалювати відпустку. Мутації співробітників, відділів, команд і запитів на відпустку залишаються недоступними, оскільки ці потоки потребують додаткових бізнес-правил HR.
curl -X POST "https://app.yourcompany.com/api/integrations/v1/assets" \
-H "X-API-KEY: your_api_key" \
-H "Content-Type: application/json" \
-d '{"code":"LT-1042","name":"MacBook Pro","serialNumber":"C02..."}'
використання limit та offset. Стандартний ліміт — 50, максимальний — 200.
{
"data": [{ "id": "resource-id" }],
"pagination": {
"limit": 50,
"offset": 0,
"total": 128
}
}
Зберігайте URL вашого екземпляра та API-ключ у змінних середовища. Приклади нижче використовують лише стандартні можливості платформ, тому почати можна без SDK.
HRLUME_URL=https://app.yourcompany.com · HRLUME_API_KEY=your_api_keyПродовжуйте запити, доки поточний offset не досягне загальної кількості, яку повернув API.
const baseUrl = process.env.HRLUME_URL;
const apiKey = process.env.HRLUME_API_KEY;
const employees = [];
let offset = 0;
while (true) {
const url = new URL("/api/employees", baseUrl);
url.search = new URLSearchParams({ paginate: "1", limit: "100", offset });
const response = await fetch(url, {
headers: { "X-API-KEY": apiKey }
});
if (!response.ok) throw new Error(`HRlume API ${response.status}`);
const page = await response.json();
employees.push(...page.data);
offset += page.data.length;
if (offset >= page.pagination.total || page.data.length === 0) break;
}
console.log(`Loaded ${employees.length} employees`);
Поєднайте фільтри з пагінацією, а потім запишіть вибрані поля у CSV.
import csv, json, os, urllib.parse, urllib.request
base = os.environ["HRLUME_URL"].rstrip("/")
key = os.environ["HRLUME_API_KEY"]
rows, offset = [], 0
while True:
query = urllib.parse.urlencode({
"status": "approved", "from": "2026-01-01",
"limit": 200, "offset": offset,
})
request = urllib.request.Request(
f"{base}/api/integrations/v1/leave-requests?{query}",
headers={"X-API-KEY": key},
)
with urllib.request.urlopen(request) as response:
page = json.load(response)
rows.extend(page["data"])
offset += len(page["data"])
if offset >= page["pagination"]["total"] or not page["data"]:
break
with open("approved-leave.csv", "w", newline="") as output:
fields = ["employeeEmail", "startDate", "endDate", "totalDays"]
writer = csv.DictWriter(output, fieldnames=fields, extrasaction="ignore")
writer.writeheader()
writer.writerows(rows)
Не повторюйте автоматично запити з помилками авторизації, прав доступу чи валідації. Записуйте статус і код помилки API, але ніколи не записуйте секретний ключ.
const response = await fetch(`${process.env.HRLUME_URL}/api/integrations/v1/assets`, {
headers: { "X-API-KEY": process.env.HRLUME_API_KEY }
});
const payload = await response.json();
if (!response.ok) {
console.error("HRlume request failed", {
status: response.status,
error: payload.error
});
process.exitCode = 1;
} else {
console.log(payload.data);
}
/api/employeesПовертає працівників компанії. Додайте paginate=1 щоб увімкнути пагінацію limit/offset.
1employees:read/api/departmentsПовертає всі відділи з інформацією про керівника, батьків і активну інформацію про кількість персоналу.
departments:read/api/teamsПовертає кожну команду, її керівника та короткі дані учасників. Використайте employeeId щоб повернути лише команди з указаним працівником.
/api/teams/{team_id}Повертає одну команду в тій же формі.
teams:read/api/integrations/v1/leave-requestsПеріоди повернення відпусток із підсумковими відомостями про співробітників, типи відпусток і затверджувачів. Приватні примітки та деталі відмови виключені.
curl "https://app.yourcompany.com/api/integrations/v1/leave-requests?status=approved&from=2026-01-01" \
-H "X-API-KEY: your_api_key"leaves:read/api/integrations/v1/assetsПовертає метадані обладнання, призначення, категорії, вартості, розташування та гарантії.
/api/integrations/v1/assetsСтворює непризначений актив. Потрібні code та name.
/api/integrations/v1/assets/{id}Оновіть ідентифікатор активу та метадані інвентаризації. Дії присвоєння не виставляються.
assets:readassets:write/api/integrations/v1/documentsПовертає назви, типи, папки, область дії та термін дії. Вміст файлу, ключі об’єктів R2 і URL-адреси зберігання не розкриваються.
/api/integrations/v1/documentsСтворює метадані для зовнішньої URL-адреси. Завантаження файлів і прямий доступ до об’єктів R2 через API недоступні.
/api/integrations/v1/documents/{id}Оновіть ім’я, тип, URL-адресу, співробітника, папку, обсяг або термін дії.
curl -X POST "$HRLUME_URL/api/integrations/v1/documents" \
-H "X-API-KEY: $HRLUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Remote work policy",
"type": "policy",
"url": "https://company.example/policies/remote-work.pdf",
"scope": "company",
"expiryDate": "2027-12-31"
}'documents:readdocuments:write — чутливий доступ/api/integrations/v1/knowledgeПовертає двомовні заголовки, категорії та тексти статей із коротким описом автора.
/api/integrations/v1/knowledgeСтворює двомовну статтю. title є обов’язковим.
/api/integrations/v1/knowledge/{id}Оновити заголовок, категорію чи тіло в українському/базовому та англійському варіантах.
curl -X POST "$HRLUME_URL/api/integrations/v1/knowledge" \
-H "X-API-KEY: $HRLUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Віддалена робота",
"titleEn": "Remote work",
"category": "Політики",
"categoryEn": "Policies",
"body": "Правила та рекомендації для команди.",
"bodyEn": "Rules and guidance for the team."
}'knowledge:readknowledge:write/api/integrations/v1/jobsПовертає вакансії з двомовним вмістом, відділом, діапазоном зарплат і кількістю кандидатів.
/api/integrations/v1/jobsСтворює вакансію. title є обов’язковим.
/api/integrations/v1/jobs/{id}Оновіть вміст вакансії, статус, відділ, зарплату та публічні метадані.
curl -X POST "$HRLUME_URL/api/integrations/v1/jobs" \
-H "X-API-KEY: $HRLUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Backend-розробник",
"titleEn": "Backend Engineer",
"location": "Remote · Ukraine",
"type": "full-time",
"status": "open",
"salaryMin": 3500,
"salaryMax": 5000,
"currency": "USD",
"hot": true
}'recruiting:readrecruiting:write — чутливий доступ/api/integrations/v1/candidatesПовертає контактні дані кандидата та поточний етап воронки. Файли резюме, внутрішні нотатки й детальні оцінки не включаються.
/api/integrations/v1/candidatesСтворює кандидата для вакансії з jobId.
/api/integrations/v1/candidates/{id}Оновлює контакти, джерело, відповідального, рейтинг або етап воронки.
curl -X POST "$HRLUME_URL/api/integrations/v1/candidates" \
-H "X-API-KEY: $HRLUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jobId": "job_uuid",
"firstName": "Olena",
"lastName": "Koval",
"email": "olena@example.com",
"source": "Referral",
"stage": "applied"
}'recruiting:readrecruiting:write — чутливий доступ/api/integrations/v1/surveysПовертає метадані опитування, а також кількість питань і відповідей. Індивідуальні відповіді та особи респондентів ніколи не розкриваються.
/api/integrations/v1/surveysСтворює чернетку опитування. title є обов’язковим.
/api/integrations/v1/surveys/{id}Оновлюйте двомовний вміст і анонімність, лише поки опитування є чернеткою.
curl -X POST "$HRLUME_URL/api/integrations/v1/surveys" \
-H "X-API-KEY: $HRLUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Настрій команди",
"titleEn": "Team mood",
"introText": "Поділіться, як минув ваш тиждень.",
"introTextEn": "Tell us how your week went.",
"anonymous": true
}'surveys:readsurveys:write — чутливий доступ/api/integrations/v1/goalsПовертає цілі компанії, команди та співробітників із значеннями показників, вагами, періодами та вхідними даними прогресу.
/api/integrations/v1/goalsСтворює ціль компанії, команди або працівника. title та ownerType є обов’язковими.
/api/integrations/v1/goals/{id}Оновіть вміст, значення показників, статус, дату або період. Право власності не можна передати шляхом оновлення.
curl -X PUT "$HRLUME_URL/api/integrations/v1/goals/goal_uuid" \
-H "X-API-KEY: $HRLUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"currentValue": 72,
"status": "active",
"dueDate": "2026-09-30"
}'goals:readgoals:write| Статус | Помилка | Значення |
|---|---|---|
401 | unauthorized | Відсутній, недійсний, прострочений, відкликаний або обмежений IP-ключ. |
403 | forbidden | Ключ не містить необхідної області. |
403 | product_not_licensed | Модуль продукту HRlume неактивний для цього екземпляра. |
404 | not_found | Невідома кінцева точка або ресурс. |
405 | method_not_allowed | Метод не підтримується. Кінцеві точки інтеграції приймають GET, POST і PUT лише там, де це задокументовано. |
409 | conflict | Запитана зміна суперечить поточному стану даних — наприклад, коли намагаються редагувати вже запущене опитування. |
Ми розширюємо API на реальні робочі процеси, зберігаючи доступ до даних співробітників чітким і доступним для перевірки.