Довідник API Lumenbase
API Lumenbase побудовано на основі REST. Наш API має передбачувані URL-адреси, орієнтовані на ресурси, приймає тіла запитів у форматі JSON, повертає відповіді у форматі JSON та використовує стандартні коди відповідей HTTP, автентифікацію та методи.
Для автентифікації запитів використовуйте API-ключі з вашого робочого простору. Створюйте ключі та керуйте ними в розділі Налаштування -> Налаштування компанії -> Інтеграції -> API. API-ключ визначає, до якого робочого простору відноситься запит.
Повний CRUD доступний для Контактів, Компаній, Угод, Завдань, Рахунків та Активностей.
Базова URL та автентифікація
https://api.lumenbase.ioУсі запити вимагають:
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/jsonНеобов'язково: X-Idempotency-Key для запобігання повторній обробці при повторних спробах; X-Request-Id для відстеження.
Конверт відповіді: Успішні відповіді повертають { success: true, data: { ... }, meta: { request_id, api_version, timestamp } }. Помилки повертають { success: false, error: { code, message, details? }, meta: { ... } }.
Налаштування
- Перейдіть до Налаштування -> Налаштування компанії -> Інтеграції -> API. Натисніть "Створити API-ключ" та оберіть потрібні права доступу.
- Скопіюйте ключ одразу: він більше не відображатиметься.
- За бажанням створіть Конектор для зіставлення вхідних полів із полями CRM та налаштування правил збігу (для кінцевих точок імпорту).
Права доступу API-ключа
Кожен API-ключ має одне або кілька прав доступу, які визначають, до чого він може звертатися. Призначайте лише ті права, які вам потрібні.
| Поле | Тип | Опис |
|---|---|---|
| contacts:read | scope | Читати та переглядати список контактів |
| contacts:write | scope | Створювати, оновлювати та видаляти контакти |
| companies:read | scope | Читати та переглядати список компаній |
| companies:write | scope | Створювати, оновлювати та видаляти компанії |
| deals:read | scope | Читати та переглядати список угод |
| deals:write | scope | Створювати, оновлювати та видаляти угоди |
| tasks:read | scope | Читати та переглядати список завдань |
| tasks:write | scope | Створювати, оновлювати та видаляти завдання |
| invoices:read | scope | Читати та переглядати список рахунків |
| invoices:write | scope | Створювати, оновлювати та видаляти рахунки |
| activities:read | scope | Читати та переглядати список активностей |
| activities:write | scope | Створювати та видаляти активності |
| read | scope | Доступ для читання до всіх типів записів |
| admin | scope | Повний доступ до всіх кінцевих точок |
Застарілі права contact_ingest та activity_ingest досі працюють і відповідають правам читання та запису.
Пагінація
Усі кінцеві точки списків підтримують пагінацію через параметри запиту:
| Поле | Тип | Опис |
|---|---|---|
| page | integer | Номер сторінки (за замовчуванням: 1) |
| per_page | integer | Записів на сторінку, макс. 100 (за замовчуванням: 25) |
| sort_by | string | Поле для сортування (залежить від типу запису) |
| sort_order | string | "asc" або "desc" (за замовчуванням: "desc") |
| search | string | Повнотекстовий пошук за ключовими полями |
Формат пагінованої відповіді:
{
"success": true,
"data": {
"items": [ ... ],
"pagination": {
"page": 1,
"per_page": 25,
"total": 142,
"total_pages": 6
}
},
"meta": { "request_id": "...", "api_version": "1", "timestamp": "..." }
}POST: Створити / Імпортувати контакт
Створення або оновлення контактів з форм, лендингових сторінок або сторонніх систем. Збіг визначається за електронною поштою; за потреби створює або пов'язує компанії.
https://api.lumenbase.io/functions/v1/v1-public-contactsScope:
Request body:
{
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone": "+1-555-123-4567",
"title": "Product Manager",
"company_name": "Acme Inc",
"company_domain": "acme.com",
"source": "website_form",
"signal_strength": 75,
"message": "Interested in your enterprise plan"
}| Поле | Тип | Опис |
|---|---|---|
| first_name | string | Ім'я контакту |
| last_name | string | Прізвище контакту |
| string | Електронна пошта (використовується для збігу) | |
| phone | string | Номер телефону |
| title | string | Посада |
| company_name | string | Назва компанії (створюється, якщо нова) |
| company_domain | string | Домен компанії для збігу |
| source | string | Джерело ліда |
| signal_strength | number | Сигнал наміру 0-100 |
| message | string | Нотатки |
201 - новий контакт створено; 200 - наявний контакт оновлено.
POST: Масовий імпорт контактів
Імпорт до 100 контактів за один запит. Та сама схема полів, що й при імпорті контакту.
https://api.lumenbase.io/functions/v1/v1-public-contacts-batchScope:
{
"contacts": [
{ "email": "a@example.com", "first_name": "Alice" },
{ "email": "b@example.com", "first_name": "Bob" }
],
"options": { "stop_on_error": false }
}201 - усі успішно; 207 - частково; 400 - усі помилково. Макс. 100 контактів, 500 КБ корисного навантаження.
GET: Отримати / Список контактів
https://api.lumenbase.io/functions/v1/v1-public-contacts-crud?id={uuid}Отримати один контакт за ID.
https://api.lumenbase.io/functions/v1/v1-public-contacts-crud?page=1&per_page=25Список контактів із пагінацією.
Scope:
Фільтри:
| Поле | Тип | Опис |
|---|---|---|
| string | Фільтр за точною електронною поштою | |
| company_id | uuid | Фільтр за компанією |
| status | string | Фільтр за статусом |
| search | string | Пошук за first_name, last_name, email |
Сортувати за: created_at, updated_at, first_name, last_name, email
PATCH: Оновити контакт
https://api.lumenbase.io/functions/v1/v1-public-contacts-crud?id={uuid}Scope:
{
"title": "Senior Product Manager",
"phone": "+1-555-999-0000"
}Поля, що оновлюються: first_name, last_name, email, phone, title, company_id, source, status.
DELETE: Видалити контакт
https://api.lumenbase.io/functions/v1/v1-public-contacts-crud?id={uuid}Scope:
{ "success": true, "data": { "deleted": true, "id": "uuid" } }POST: Створити компанію
https://api.lumenbase.io/functions/v1/v1-public-companiesScope:
Upsert за доменом, якщо вказано. Створює новий запис, якщо збігу не знайдено.
{
"name": "Acme Inc",
"domain": "acme.com",
"industry": "Technology",
"size": "51-200",
"website": "https://acme.com",
"city": "San Francisco",
"country": "US"
}| Поле | Тип | Опис |
|---|---|---|
| name | string | Назва компанії |
| domain | string | Домен компанії (використовується для збігу) |
| industry | string | Галузь |
| size | string | Діапазон розміру компанії |
| website | string | URL веб-сайту |
| phone | string | Номер телефону |
| city | string | Місто |
| state | string | Штат/регіон |
| country | string | Код країни |
| status | string | Статус |
GET: Отримати / Список компаній
https://api.lumenbase.io/functions/v1/v1-public-companies?id={uuid}https://api.lumenbase.io/functions/v1/v1-public-companies?page=1&per_page=25Scope:
Фільтри:
| Поле | Тип | Опис |
|---|---|---|
| domain | string | Фільтр за точним доменом |
| industry | string | Фільтр за галуззю |
| search | string | Пошук за name, domain |
Сортувати за: created_at, updated_at, name, domain
PATCH: Оновити компанію
https://api.lumenbase.io/functions/v1/v1-public-companies?id={uuid}Scope:
{ "industry": "SaaS", "size": "201-500" }DELETE: Видалити компанію
https://api.lumenbase.io/functions/v1/v1-public-companies?id={uuid}Scope:
POST: Створити угоду
https://api.lumenbase.io/functions/v1/v1-public-dealsScope:
{
"title": "Enterprise License: Acme",
"value": 50000,
"currency": "USD",
"stage": "Proposal",
"expected_close_date": "2026-04-15",
"company_id": "uuid",
"contact_id": "uuid"
}| Поле | Тип | Опис |
|---|---|---|
| title | string (required) | Назва угоди |
| value | number | Вартість угоди |
| currency | string | Код валюти (за замовчуванням: USD) |
| stage | string | Етап воронки |
| status | string | Статус угоди |
| probability | number | Ймовірність перемоги 0-100 |
| expected_close_date | date | Очікувана дата закриття |
| company_id | uuid | Пов'язана компанія |
| contact_id | uuid | Пов'язаний контакт |
| pipeline_id | uuid | ID воронки |
| assigned_to | uuid | ID призначеного користувача |
GET: Отримати / Список угод
https://api.lumenbase.io/functions/v1/v1-public-deals?id={uuid}https://api.lumenbase.io/functions/v1/v1-public-deals?page=1&per_page=25Scope:
Фільтри:
| Поле | Тип | Опис |
|---|---|---|
| stage | string | Фільтр за етапом |
| status | string | Фільтр за статусом |
| company_id | uuid | Фільтр за компанією |
| pipeline_id | uuid | Фільтр за воронкою |
| search | string | Пошук за title |
Сортувати за: created_at, updated_at, title, value, expected_close_date
PATCH: Оновити угоду
https://api.lumenbase.io/functions/v1/v1-public-deals?id={uuid}Scope:
{ "stage": "Negotiation", "probability": 80 }DELETE: Видалити угоду
https://api.lumenbase.io/functions/v1/v1-public-deals?id={uuid}Scope:
POST: Створити завдання
https://api.lumenbase.io/functions/v1/v1-public-tasksScope:
{
"title": "Follow up with Acme",
"description": "Send proposal by Friday",
"priority": "high",
"due_date": "2026-03-01",
"assigned_to": "uuid",
"contact_id": "uuid",
"deal_id": "uuid"
}| Поле | Тип | Опис |
|---|---|---|
| title | string (required) | Назва завдання |
| description | string | Опис завдання |
| status | string | Статус завдання |
| priority | string | Пріоритет: low, medium, high, urgent |
| due_date | date | Термін виконання |
| assigned_to | uuid | ID призначеного користувача |
| contact_id | uuid | Пов'язаний контакт |
| company_id | uuid | Пов'язана компанія |
| deal_id | uuid | Пов'язана угода |
GET: Отримати / Список завдань
https://api.lumenbase.io/functions/v1/v1-public-tasks?id={uuid}https://api.lumenbase.io/functions/v1/v1-public-tasks?page=1&per_page=25Scope:
Фільтри:
| Поле | Тип | Опис |
|---|---|---|
| status | string | Фільтр за статусом |
| priority | string | Фільтр за пріоритетом |
| assigned_to | uuid | Фільтр за виконавцем |
| contact_id | uuid | Фільтр за контактом |
| company_id | uuid | Фільтр за компанією |
| deal_id | uuid | Фільтр за угодою |
| search | string | Пошук за title |
Сортувати за: created_at, updated_at, title, due_date, priority
PATCH: Оновити завдання
https://api.lumenbase.io/functions/v1/v1-public-tasks?id={uuid}Scope:
{ "status": "completed", "description": "Proposal sent" }DELETE: Видалити завдання
https://api.lumenbase.io/functions/v1/v1-public-tasks?id={uuid}Scope:
POST: Створити рахунок
https://api.lumenbase.io/functions/v1/v1-public-invoicesScope:
{
"invoice_number": "INV-2026-001",
"status": "draft",
"issue_date": "2026-02-19",
"due_date": "2026-03-19",
"subtotal": 5000,
"tax_amount": 500,
"total": 5500,
"currency": "USD",
"company_id": "uuid",
"contact_id": "uuid",
"notes": "Net 30"
}| Поле | Тип | Опис |
|---|---|---|
| invoice_number | string | Номер рахунку |
| status | string | draft, sent, paid, overdue, cancelled |
| issue_date | date | Дата виставлення |
| due_date | date | Термін оплати |
| subtotal | number | Сума без податків |
| tax_amount | number | Сума податку |
| total | number | Загальна сума |
| currency | string | Код валюти |
| company_id | uuid | Пов'язана компанія |
| contact_id | uuid | Пов'язаний контакт |
| deal_id | uuid | Пов'язана угода |
| notes | string | Нотатки |
| line_items | json | Масив позицій рахунку |
GET: Отримати / Список рахунків
https://api.lumenbase.io/functions/v1/v1-public-invoices?id={uuid}https://api.lumenbase.io/functions/v1/v1-public-invoices?page=1&per_page=25Scope:
Фільтри:
| Поле | Тип | Опис |
|---|---|---|
| status | string | Фільтр за статусом |
| company_id | uuid | Фільтр за компанією |
| contact_id | uuid | Фільтр за контактом |
| search | string | Пошук за invoice_number |
Сортувати за: created_at, updated_at, invoice_number, due_date, total, issue_date
PATCH: Оновити рахунок
https://api.lumenbase.io/functions/v1/v1-public-invoices?id={uuid}Scope:
{ "status": "sent", "due_date": "2026-04-01" }DELETE: Видалити рахунок
https://api.lumenbase.io/functions/v1/v1-public-invoices?id={uuid}Scope:
POST: Створити / Імпортувати активність
https://api.lumenbase.io/functions/v1/v1-public-activitiesScope:
Записуйте активності з Jira, засобів підтримки, вебхуків або будь-яких зовнішніх джерел. Пов'язується з контактами та компаніями за електронною поштою або доменом.
{
"type": "jira_issue_created",
"entity_email": "john.doe@example.com",
"entity_domain": "acme.com",
"title": "PROJ-123: New Feature Request",
"description": "Customer requested dashboard export",
"timestamp": "2026-01-15T10:30:00Z",
"data": { "issue_key": "PROJ-123", "priority": "high" }
}Типи активностей:
Прив'язка до записів:
entity_email→ Контакт за електронною поштоюentity_domain→ Компанія за доменомentity_id→ Угода за ID
GET: Отримати / Список активностей
https://api.lumenbase.io/functions/v1/v1-public-activities-crud?id={uuid}https://api.lumenbase.io/functions/v1/v1-public-activities-crud?page=1&per_page=25Scope:
Фільтри:
| Поле | Тип | Опис |
|---|---|---|
| type | string | Фільтр за типом активності |
| contact_id | uuid | Фільтр за контактом |
| company_id | uuid | Фільтр за компанією |
| deal_id | uuid | Фільтр за угодою |
| search | string | Пошук за title |
Сортувати за: created_at, type, title
DELETE: Видалити активність
https://api.lumenbase.io/functions/v1/v1-public-activities-crud?id={uuid}Scope:
Зіставлення полів (Конектори)
Конектори зіставляють вхідні поля JSON із полями CRM. Використовуйте крапкову нотацію для вкладеного JSON, наприклад user.profile.email -> Електронна пошта. Конектори застосовуються до кінцевих точок імпорту (Імпорт контактів, Імпорт активностей).
Правила збігу
Контакт: електронна пошта (рекомендовано), телефон або ID. Компанія: домен (рекомендовано), назва або ID. Угода: ID або назва. Якщо збігу не знайдено і надано необхідні дані, створюється новий запис.
Обробка помилок
| Поле | Тип | Опис |
|---|---|---|
| 401 | UNAUTHORIZED | Недійсний або відсутній API-ключ; використовуйте Bearer <ключ> |
| 403 | FORBIDDEN | API-ключу бракує необхідного права доступу |
| 400 | VALIDATION_ERROR | Недійсне тіло запиту або відсутні обов'язкові поля |
| 404 | NOT_FOUND | Ресурс не знайдено |
| 405 | METHOD_NOT_ALLOWED | Метод HTTP не підтримується для цієї кінцевої точки |
| 413 | PAYLOAD_TOO_LARGE | Тіло запиту перевищує максимальний розмір (50 КБ одиничний, 500 КБ пакетний) |
| 429 | RATE_LIMIT_EXCEEDED | Забагато запитів; перевірте X-RateLimit-* та Retry-After |
| 500 | INTERNAL_ERROR | Помилка сервера |
Тіло відповіді з помилкою:
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Human-readable message",
"details": { }
},
"meta": { "request_id": "...", "api_version": "1", "timestamp": "..." }
}Найкращі практики
- Використовуйте окремі конектори для кожного джерела, щоб відстежувати походження та налаштовувати зіставлення.
- Включайте електронну пошту для збігу контактів (найнадійніший спосіб).
- Надсилайте X-Idempotency-Key при повторних спробах, щоб уникнути дублікатів.
- Ліміт запитів: 100 запитів на хвилину на робочий простір; добові обмеження 10 тис. контактів та 50 тис. активностей. Перевіряйте X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset та Retry-After при статусі 429.
- Використовуйте детальні права доступу (наприклад contacts:read) замість admin для мінімально необхідних привілеїв.
- Для масових операцій використовуйте пакетну кінцеву точку, щоб зменшити кількість API-викликів.
Не розробник?
Використовуйте Zapier для підключення Lumenbase до 6 000+ застосунків або перегляньте Довідковий центр.
