Спеціалізовані endpoint’и
Читання та запис відпусток, майна, підбору персоналу, метаданих документів, опитувань, цілей і бази знань — з версіюванням за адресою /api/integrations/v1.
Пройдіть автентифікацію за допомогою ключа API із обмеженою областю, щоб читати або безпечно оновлювати активи, набір, метадані документів, опитування, цілі та дані знань у вашому власному екземплярі HRlume.
Читання та запис відпусток, майна, підбору персоналу, метаданих документів, опитувань, цілей і бази знань — з версіюванням за адресою /api/integrations/v1.
Кожен ключ має редаговане призначення, термін дії, опціональний список дозволених IP та незалежні права читання/запису — нічого не успадковується за замовчуванням.
Кожен endpoint на цій сторінці має готовий до виконання приклад запиту й відповіді — не потрібно синхронізувати окрему колекцію Postman.
Редактор ключів API робить межі безпеки видимими: призначення, термін дії, обмеження IP та області читання/запису вибираються незалежно, із чіткими попередженнями про конфіденційні дозволи.
Відкрийте налаштування ключа API →
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/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 на реальні робочі процеси, зберігаючи доступ до даних співробітників чітким і доступним для перевірки.