Розробники
Довідник API Lumenbase
Кінцеві точки REST для контактів, компаній, угод, завдань, рахунків та активностей. JSON на вході, JSON на виході, автентифікація за API-ключем робочого простору.
Швидкий старт
Крок 1
Створіть ключ
Надайте лише ті права доступу, які використовує інтеграція. Ключ показується один раз.
НалаштуванняНалаштування компаніїAPIКрок 2
Надішліть запит
Передавайте ключ у заголовку Authorization кожного виклику.
Bearer lmb_…Крок 3
Прочитайте конверт
Перевірте success, прочитайте data і записуйте meta.request_id для підтримки.
meta.request_id
Базова URL-адреса
https://api.lumenbase.io/functions/v1Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/jsonНеобов'язкові заголовки
X-Idempotency-KeyРобить повторний імпорт безпечним. Див. Ідемпотентність.X-Request-IdВаш власний ідентифікатор трасування, повертається в meta.request_id.
Кожна відповідь
{
"success": true,
"data": { ... },
"meta": {
"request_id": "req_...",
"api_version": "1",
"timestamp": "..."
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "...",
"details": { "field": "..." }
},
"meta": { ... }
}Автентифікація
Кожен запит несе API-ключ робочого простору як токен Bearer. Інша форма не приймається.
Authorization: Bearer lmb_0f2a...Через що проходить кожен запит
- 401
API-ключ
Відсутній, має неправильний формат або відкликаний
- 403
Право доступу
Ключу бракує права доступу для цього виклику
- 429
Обмеження частоти
Кошик заповнено
- 400404409
Перевірка
Неправильне поле, невідомий ID або такого запису немає
- 200201202
Готово
Створено, прочитано, оновлено або видалено
- Ключ складається з префікса lmb_ і 64 шістнадцяткових символів після нього.
- Ключі зберігаються в хешованому вигляді. Ми не можемо показати ключ повторно, тому збережіть його під час створення.
- Відкликання діє з наступного запиту. Спершу створіть заміну, щоб ротація відбулася без перерви.
- Ключ належить одному робочому простору. Він може читати лише записи цього робочого простору і пов'язуватися лише з ними.
- Записи, які створює ключ, приписуються людині, що створила ключ, або адміністратору робочого простору, якщо ця людина вже його покинула.
Права доступу
Кожен ключ має одне або кілька прав доступу. Надавайте лише те, що використовує інтеграція.
| Право доступу | Опис |
|---|---|
| contacts:read | Читати та переглядати список контактів |
| contacts:write | Створювати, оновлювати та видаляти контакти |
| companies:read | Читати та переглядати список компаній |
| companies:write | Створювати, оновлювати та видаляти компанії |
| deals:read | Читати та переглядати список угод |
| deals:write | Створювати, оновлювати та видаляти угоди |
| tasks:read | Читати та переглядати список завдань |
| tasks:write | Створювати, оновлювати та видаляти завдання |
| invoices:read | Читати та переглядати список рахунків |
| invoices:write | Створювати, оновлювати та видаляти рахунки |
| activities:read | Читати та переглядати список активностей |
| activities:write | Створювати та видаляти активності |
| inbound:submit | Надсилати відповіді у форму Inbound, і нічого більше. Ключ не може читати чи змінювати жоден запис. |
| read | Доступ для читання до всіх типів записів |
| admin | Повний доступ до всіх кінцевих точок |
Старі назви 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": { ... }
}Ресурси
Контакти
Люди, зіставлені за електронною поштою під час імпорту
POSTGETPATCHDELETE
Компанії
Організації, зіставлені за доменом
POSTGETPATCHDELETE
Угоди
Можливості у воронці
POSTGETPATCHDELETE
Завдання
Справи, відкриті або завершені
POSTGETPATCHDELETE
Рахунки
Платіжні документи
POSTGETPATCHDELETE
Активності
Події хронології з будь-якого джерела
POSTGETDELETE
Відповіді форм Inbound
Відповіді з форм сайту, через ваш шлях ліда
POST
Контакти
Створити або імпортувати контакт
/v1-public-contactsСтворює контакт або оновлює той, з яким є збіг. Може створити або пов'язати компанію за назвою чи доменом.
{
"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 (за замовчуванням: 50) |
| message | string | Довільне повідомлення, наприклад із форми |
| tags | string[] | До 20 міток |
{
"success": true,
"data": {
"contact_id": "uuid",
"company_id": "uuid",
"is_new_contact": true,
"is_new_company": false
},
"meta": { ... }
}201, коли контакт створено, 200, коли наявний оновлено.
Пакетний імпорт контактів
/v1-public-contacts-batchДо 100 контактів за виклик, кожен із тими самими полями, що й при одиничному імпорті.
{
"contacts": [
{ "email": "a@example.com", "first_name": "Alice" },
{ "email": "b@example.com", "first_name": "Bob" }
],
"options": { "stop_on_error": false }
}201, коли записано всі, 207, коли частина не вдалася (читайте results[].success), 400, коли не записано жодного. Макс. 500 КБ.
Отримати контакт або список контактів
/v1-public-contacts-crud?id={uuid}Один контакт за ID разом із його компанією.
/v1-public-contacts-crud?page=1&per_page=25Сторінка контактів.
| Фільтри | Тип | Опис |
|---|---|---|
| string | Точна електронна пошта | |
| company_id | uuid | Контакти цієї компанії |
| source | string | Точне джерело ліда |
| search | string | Слова в імені, прізвищі або електронній пошті |
Сортувати за: created_at, updated_at, first_name, last_name, email
Оновити контакт
/v1-public-contacts-crud?id={uuid}{ "title": "Senior Product Manager", "phone": "+1-555-999-0000" }Можна оновити: first_name, last_name, email, phone, title, company_id, source, birthday. Надсилайте лише те, що змінюється.
Видалити контакт
/v1-public-contacts-crud?id={uuid}{ "success": true, "data": { "deleted": true, "id": "uuid" } }Компанії
Створити компанію
/v1-public-companiesЯкщо компанія з таким доменом уже є, її оновлено, і виклик відповідає 200. Інакше створюється нова (201), і для неї потрібна назва.
{
"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 | Діапазон розміру, наприклад 51-200 |
| website | string | URL вебсайту |
| phone | string | Номер телефону |
| city | string | Місто |
| state | string | Штат або регіон |
| country | string | Код країни |
Отримати компанію або список компаній
/v1-public-companies?id={uuid}/v1-public-companies?page=1&per_page=25| Фільтри | Тип | Опис |
|---|---|---|
| domain | string | Точний домен |
| industry | string | Точна галузь |
| search | string | Слова в назві або домені |
Сортувати за: created_at, updated_at, name, domain
Оновити компанію
/v1-public-companies?id={uuid}{ "industry": "SaaS", "size": "201-500" }Можна оновити: усі поля вище. Надсилайте лише те, що змінюється.
Видалити компанію
/v1-public-companies?id={uuid}Угоди
Створити угоду
/v1-public-dealsПотрібні назва, а також вартість або company_id.
{
"title": "Enterprise License: Acme",
"value": 50000,
"currency": "USD",
"stage": "Proposal",
"expected_close_date": "2026-04-15",
"company_id": "uuid",
"contact_id": "uuid"
}| Поле | Тип | Опис |
|---|---|---|
| title | string (обов'язкове) | Назва угоди |
| value | number | Сума угоди |
| currency | string | Код валюти (за замовчуванням: валюта робочого простору) |
| stage | string | Назва або ID етапу (за замовчуванням: перший етап) |
| status | string | open, won або lost (за замовчуванням: open) |
| probability | number | Ймовірність перемоги, від 0 до 100 |
| expected_close_date | date | YYYY-MM-DD |
| company_id | uuid | Пов'язана компанія |
| contact_id | uuid | Пов'язаний контакт |
| pipeline_id | uuid | Воронка (за замовчуванням: основна воронка робочого простору) |
| assigned_to | uuid | Власник, учасник робочого простору (за замовчуванням: творець ключа) |
| notes | string | Довільний текст |
Отримати угоду або список угод
/v1-public-deals?id={uuid}/v1-public-deals?page=1&per_page=25| Фільтри | Тип | Опис |
|---|---|---|
| stage | string | Точна назва етапу |
| status | string | open, won або lost |
| company_id | uuid | Угоди цієї компанії |
| pipeline_id | uuid | Угоди в цій воронці |
| search | string | Слова в назві |
Сортувати за: created_at, updated_at, title, value, expected_close_date
Оновити угоду
/v1-public-deals?id={uuid}{ "stage": "Negotiation", "probability": 80 }Новий pipeline_id без етапу переміщує угоду на перший етап цієї воронки.
Видалити угоду
/v1-public-deals?id={uuid}Завдання
Створити завдання
/v1-public-tasks{
"title": "Follow up with Acme",
"description": "Send proposal by Friday",
"priority": "high",
"due_date": "2026-03-01",
"contact_id": "uuid",
"deal_id": "uuid"
}| Поле | Тип | Опис |
|---|---|---|
| title | string (обов'язкове) | Назва завдання |
| description | string | Опис завдання |
| status | string | open або completed (за замовчуванням: open) |
| priority | string | low, medium або high (за замовчуванням: medium) |
| task_type | string | todo, email, call, meeting, linkedin_message, linkedin_connection або custom |
| due_date | date | YYYY-MM-DD |
| assigned_to | uuid | Учасник робочого простору (за замовчуванням: творець ключа) |
| contact_id | uuid | Пов'язаний контакт |
| company_id | uuid | Пов'язана компанія |
| deal_id | uuid | Пов'язана угода |
Отримати завдання або список завдань
/v1-public-tasks?id={uuid}/v1-public-tasks?page=1&per_page=25| Фільтри | Тип | Опис |
|---|---|---|
| status | string | open або completed |
| priority | string | low, medium або high |
| assigned_to | uuid | Завдання цього учасника |
| contact_id | uuid | Завдання цього контакту |
| company_id | uuid | Завдання цієї компанії |
| deal_id | uuid | Завдання цієї угоди |
| search | string | Слова в назві |
Сортувати за: created_at, updated_at, title, due_date, priority
Оновити завдання
/v1-public-tasks?id={uuid}{ "status": "completed", "description": "Proposal sent" }Надішліть status completed, щоб завершити завдання, і open, щоб відкрити його знову. Завдання з відкритими підзавданнями не можна завершити.
Видалити завдання
/v1-public-tasks?id={uuid}Рахунки
Створити рахунок
/v1-public-invoicesПотрібні invoice_number і total. Номер має бути унікальним у робочому просторі.
{
"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",
"notes": "Net 30"
}| Поле | Тип | Опис |
|---|---|---|
| invoice_number | string (обов'язкове) | Унікальний у робочому просторі |
| total | number (обов'язкове) | Загальна сума |
| status | string | draft, sent, paid, partially_paid, overdue або cancelled (за замовчуванням: draft) |
| issue_date | date | YYYY-MM-DD (за замовчуванням: сьогодні) |
| due_date | date | YYYY-MM-DD |
| subtotal | number | Сума без податків |
| tax_amount | number | Сума податку |
| currency | string | Код валюти |
| company_id | uuid | Компанія-платник |
| notes | string | Довільний текст |
| line_items | json | Позиції рахунку, зберігаються в надісланому вигляді |
Отримати рахунок або список рахунків
/v1-public-invoices?id={uuid}/v1-public-invoices?page=1&per_page=25| Фільтри | Тип | Опис |
|---|---|---|
| status | string | Точний статус |
| company_id | uuid | Рахунки цієї компанії |
| search | string | Номер рахунку містить |
Сортувати за: created_at, updated_at, invoice_number, due_date, total, issue_date
Оновити рахунок
/v1-public-invoices?id={uuid}{ "status": "sent", "due_date": "2026-04-01" }Видалити рахунок
/v1-public-invoices?id={uuid}Активності
Створити або імпортувати активність
/v1-public-activitiesЗаписує подію з Jira, служби підтримки, форми чи будь-якого вебхука в хронологію контакту, компанії або угоди, з якими є збіг.
{
"type": "jira_issue",
"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" }
}type набуває одного з цих значень. Усе інше зберігається як external_activity.
Прив'язка
entity_emailКонтакт із цією електронною поштоюentity_domainКомпанія з цим доменомcontact_id · company_id · deal_idЦей запис, якщо він у вашому робочому просторі
Без збігу подія все одно записується, activity_id дорівнює null, і в хронології нічого не з'являється.
Отримати активність або список активностей
/v1-public-activities-crud?id={uuid}/v1-public-activities-crud?page=1&per_page=25| Фільтри | Тип | Опис |
|---|---|---|
| type | string | Тип у хронології, наприклад note, call, email, meeting або task |
| contact_id | uuid | Активності цього контакту |
| company_id | uuid | Активності цієї компанії |
| deal_id | uuid | Активності цієї угоди |
| search | string | Слова в назві |
Сортувати за: created_at, type, title
Видалити активність
/v1-public-activities-crud?id={uuid}Відповіді форм Inbound
Надіслати відповідь форми
/v1-public-inbound-submissionsДля форми на вашому сайті або в іншому інструменті форм. Кожна відповідь спершу зберігається, а потім проходить шлях ліда, налаштований в Inbound: контакт, компанія, дошка Leads, власник, сповіщення, ціль відповіді та завдання на подальший контакт. Створіть форму в Inbound, Forms, New form, Connect an external form і опублікуйте її.
{
"form_id": "website-contact",
"external_id": "wpforms-48213",
"email": "anna.larsen@northwind.example",
"name": "Anna Larsen",
"company": "Northwind Advisory",
"phone": "+46 70 123 45 67",
"message": "We need a CRM for 20 sellers.",
"budget": "10-20k",
"utm": { "utm_source": "linkedin", "utm_medium": "paid" },
"page_url": "https://northwind.example/contact"
}| Поле | Тип | Опис |
|---|---|---|
| form_id | string (обов'язкове) | ID форми з вкладки Connection: зрозумілий Form ID, якщо його задано, або довгий id. Працюють обидва. |
| external_id | string | Ваш власний id цієї відповіді. Повторне надсилання повертає 200 duplicate і нічого нового не зберігає. До 200 символів. |
| string (обов'язкове) | Email людини. Обов'язковий, напряму або через одну з назв нижче. | |
| name | string | Повне ім'я. Або надсилайте first_name і last_name. |
| company | string | Назва компанії. |
| company_domain | string | Сайт компанії. Без нього використовується домен email, якщо це не безкоштовний поштовий сервіс. |
| phone, title | string | Задається для нового контакту. Наявний контакт, знайдений за email, не змінюється. |
| message, … | string | Будь-який інший ключ, наприклад message чи budget, зберігається як відповідь у записі відповіді та на таймлайні контакту. |
| fields | object | Відповіді можуть бути й тут, або глибше вкладені. Вкладені значення читаються за шляхом через крапку, наприклад contact.email. |
| utm | object | utm_source, utm_medium та інші, для атрибуції. |
| page_url, referrer | string | Сторінка, на якій була форма, і звідки прийшов відвідувач. |
Назви, які читаються без налаштування
- emailemaile_mailemail_addressyour_emailmailwork_email
- namenamefull_namefullnameyour_namecontact_name
- first_namefirst_namefirstnamefirstgiven_namefname
- last_namelast_namelastnamelastfamily_namesurnamelname
- companycompanycompany_nameorganizationorganisationbusinessaccount
- company_domaincompany_domaindomainwebsitecompany_websiteurlsite
- phonephonephone_numbertelephonetelyour_phonemobile
- titletitlejob_titleroleposition
- messagemessageyour_messagecommentscommentinquiryenquirybodytextnotenotesquestion
Ключі порівнюються без урахування регістру, а пробіли, крапки й дефіси читаються як підкреслення, тож Your-Email вважається your_email. Будь-яку іншу назву зіставте один раз на вкладці Fields форми. На вашому боці нічого не змінюється.
{
"success": true,
"data": { "submission_id": "0b6f1c9e-4d2a-4e8b-9a7c-5f3e2d1c0b9a", "status": "accepted" },
"meta": { "request_id": "req_...", "api_version": "1", "timestamp": "2026-09-28T10:00:00.000Z" }
}Відповіді
| Статус | Код | Значення |
|---|---|---|
| 202 | accepted | Збережено, і шлях ліда виконано. |
| 202 | held | Збережено, але затримано як імовірний спам, доки хтось не перегляне в розділі гігієна даних. |
| 200 | duplicate | Цей external_id уже отримано для форми. Нічого нового не збережено. |
| 400 | VALIDATION_ERROR | Не знайдено дійсного email, або form_id має неправильний формат. details.unmapped_keys перелічує, що було надіслано, але не прочитано. |
| 403 | EXTERNAL_FORMS_DISABLED | Зовнішні форми вимкнено в Inbound, Setup, Lead capture. |
| 404 | NOT_FOUND | У робочому просторі ключа немає форми з цим form_id. |
| 409 | FORM_NOT_EXTERNAL | Цю форму створено в Lumenbase. Вона використовує свій код вбудовування, а не цю кінцеву точку. |
| 409 | FORM_NOT_PUBLISHED | Форма є чернеткою або в архіві. Спершу опублікуйте її. |
Відповідь називає лише запис відповіді. Ключ, який може тільки надсилати, не дізнається, які записи існують.
Надсилайте зі свого сервера, ніколи з коду сторінки: будь-хто може прочитати ключ у браузері. Повторюйте 503 з тим самим external_id, щоб відповідь не зберіглася двічі.
Помилки
| Статус | Код | Значення |
|---|---|---|
| 400 | VALIDATION_ERROR | Поле відсутнє, має неправильний формат або не дозволене. details.field називає його, якщо воно є. |
| 401 | UNAUTHORIZED | API-ключ відсутній, має неправильний формат або відкликаний. Надсилайте Authorization: Bearer <key>. |
| 403 | FORBIDDEN | Ключу бракує права доступу. details.required_scope називає його. |
| 404 | NOT_FOUND | Такого запису немає в цьому робочому просторі, або його видалено. |
| 405 | METHOD_NOT_ALLOWED | Кінцева точка не підтримує цей метод. |
| 409 | CONFLICT | Запис із таким унікальним значенням уже існує, наприклад номер рахунку. |
| 410 | GONE | Застаріла кінцева точка, виведена з ужитку після дати Sunset. Тіло відповіді називає її заміну. |
| 413 | PAYLOAD_TOO_LARGE | Тіло перевищує ліміт розміру: 50 КБ, або 500 КБ для пакетного запиту. Деякі кінцеві точки повідомляють про це як 400. |
| 429 | RATE_LIMIT_EXCEEDED | Кошик обмеження частоти заповнено. Зачекайте стільки секунд, скільки вказано в Retry-After. |
| 500 | INTERNAL_ERROR | Помилка на нашому боці. Надішліть нам meta.request_id. |
| 503 | SERVICE_UNAVAILABLE | Крок бази даних не відповів вчасно. Перш ніж повторювати створення, див. Обмеження частоти. |
Розгалужуйте логіку за error.code, а не за повідомленням. Повідомлення написані для людей і можуть змінюватися; коди є частиною договору.
Обмеження частоти
Обмеження діють на робочий простір і рахуються у хвилинних вікнах. Кожен ресурс має власний кошик.
- Кожен ресурс: 100 запитів за хвилину. Пакетний імпорт витрачає кошик контактів.
- Контакти: також 10 000 запитів на добу.
- Активності: також 50 000 запитів на добу.
- Пакетний виклик зараховується до добового ліміту один раз, скільки б контактів він не містив.
Успішні відповіді містять
X-RateLimit-LimitДозволена кількість запитів за хвилину в цьому кошику.X-RateLimit-RemainingСкільки запитів залишилося в цій хвилині.X-RateLimit-ResetКоли хвилина скидається, у секундах Unix.X-DailyLimit-RemainingСкільки запитів залишилося сьогодні. Лише для контактів і активностей.X-DailyLimit-ResetКоли доба скидається, у секундах Unix. Лише для контактів і активностей.Retry-AfterПри 429: час очікування в секундах.
503 SERVICE_UNAVAILABLE означає, що крок бази даних не відповів вчасно. Читання можна безпечно повторювати. Створення могло вже бути записане, тому повторюйте імпорт з тим самим X-Idempotency-Key, а перед повтором будь-якого іншого створення спершу прочитайте дані.
Ідемпотентність
Надсилайте X-Idempotency-Key, щоб повтор після тайм-ауту не створив дублікат. Той самий ключ протягом 24 годин повертає початковий результат замість нового запису.
Діє лише для POST /v1-public-contacts і POST /v1-public-activities. Усі інші кінцеві точки ігнорують цей заголовок, тож робіть їхні повтори безпечними, спершу прочитавши дані.
X-Idempotency-Key: 7d3f9c1e-2b84-4a17-9f0d-6c5e8a2b1d34Використовуйте значення від 8 до 128 символів, унікальне для кожної операції. UUID підходить. Ключ іншої довжини ігнорується, а не відхиляється.
Ключі діють у межах робочого простору й ресурсу протягом 24 годин. Повтор отримує 200 з першою відповіддю. Idempotency-Key працює як псевдонім.
Збіг і конектори
- Контакти зіставляються за електронною поштою, потім за телефоном.
- Компанії зіставляються за доменом (його беруть із робочої електронної пошти, якщо домен не надіслано), потім за вебсайтом, потім за назвою.
- Активність без deal_id приєднується до найновішої відкритої угоди своєї компанії.
- Конектор зіставляє ваші власні назви полів із цими полями для кінцевих точок імпорту. Для вкладеного JSON використовуйте крапкову нотацію, наприклад user.profile.email.
Версіонування
Версія міститься у шляху й повторюється в кожній відповіді як meta.api_version і заголовок X-API-Version.
Нові поля можуть з являтися у відповіді будь-коли й не вважаються змінами, що ламають сумісність. Розбирайте відповідь обережно та ігноруйте незнайомі поля замість перевірки на точну форму.
Зміна, що ламає сумісність, означає новий префікс шляху. Наявний продовжує працювати через процес нижче.
Версія застосунку, яку показано в інших місцях продукту, це дата випуску, а не версія API. Вони змінюються незалежно.
Політика припинення підтримки
Коли кінцева точка виходить з ужитку, вона повідомляє про це у власних відповідях, перш ніж перестати працювати.
Кінцева точка, що виходить з ужитку, повертає
DeprecationtrueSunsetдата, коли вона перестане відповідати, у форматі дати HTTP.Linkзаміна, з rel, що вказує на наступну версію.
Дата Sunset настає щонайменше через шість місяців після оголошення. Після неї кінцева точка повертає 410 Gone і називає свою заміну.
Виходить з ужитку зараз
POST /public-contactsPOST /v1-public-contactsSunset 26 листопада 2026POST /public-activitiesPOST /v1-public-activitiesSunset 31 березня 2027
Записуйте ці заголовки в лог. Це найраніше попередження, яке ви отримаєте, і воно приходить на відповідях, які загалом успішні.
Опис OpenAPI
Повний договір опубліковано як документ OpenAPI 3.1. Імпортуйте його в Postman чи Insomnia, згенеруйте клієнт або порівняйте між випусками, щоб побачити, що саме змінилося.
https://lumenbase.io/api/openapi.jsoncurl -s https://lumenbase.io/api/openapi.json -o lumenbase-openapi.jsonНайкращі практики
- 1Дайте кожній інтеграції власний ключ, щоб можна було відкликати один, не зламавши решту.
- 2Надсилайте адресу електронної пошти з кожним контактом. Це найнадійніший критерій збігу.
- 3Надсилайте X-Idempotency-Key під час повтору імпорту.
- 4Масово завантажуйте контакти через пакетну кінцеву точку.
- 5Надсилайте форми з сайту на POST /v1-public-inbound-submissions ключем, що має лише inbound:submit. Тоді ключ, що витік, може лише надсилати відповіді.
- 6Стежте за X-RateLimit-Remaining, а при 429 чекайте Retry-After.
- 7Записуйте meta.request_id з кожної відповіді. За ним підтримка знаходить ваш запит.
Відомі обмеження
Поведінка, яка не відповідає тому, чого можна очікувати з решти цієї сторінки. Ми пишемо про неї тут, бо виявити її під час роботи гірше.
- Два запити з однаковим X-Idempotency-Key, надіслані одночасно, можуть обидва здійснити запис.
- activity_id з відповіді на імпорт контакту неможливо отримати через кінцеві точки активностей.
- Імпортована активність зберігає свій type лише в журналі імпорту. У хронології вона має type note.
- Запити, відхилені хвилинним лімітом, усе одно зараховуються до добового ліміту.
- Відповіді форм Inbound використовують X-Idempotency-Key спільно з контактами. Ключ, уже використаний на POST /v1-public-contacts, поверне ту саму відповідь. Натомість надсилайте external_id, він зберігається окремо для кожної форми.
Не розробник?
Використовуйте Zapier для підключення Lumenbase до 6 000+ застосунків або перегляньте Довідковий центр.
Довідковий центрПотрібен API-ключ? Увійдіть, потім відкрийтеНалаштуванняНалаштування компаніїAPI
Розпочати