Розробники

    Довідник API Lumenbase

    Кінцеві точки REST для контактів, компаній, угод, завдань, рахунків та активностей. JSON на вході, JSON на виході, автентифікація за API-ключем робочого простору.

    Швидкий старт

    1. Крок 1

      Створіть ключ

      Надайте лише ті права доступу, які використовує інтеграція. Ключ показується один раз.

      НалаштуванняНалаштування компаніїAPI
    2. Крок 2

      Надішліть запит

      Передавайте ключ у заголовку Authorization кожного виклику.

      Bearer lmb_…
    3. Крок 3

      Прочитайте конверт

      Перевірте success, прочитайте data і записуйте meta.request_id для підтримки.

      meta.request_id

    Базова URL-адреса

    https://api.lumenbase.io/functions/v1
    Кожен запит надсилає
    Authorization: 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...

    Через що проходить кожен запит

    1. API-ключ

      Відсутній, має неправильний формат або відкликаний

      401
    2. Право доступу

      Ключу бракує права доступу для цього виклику

      403
    3. Обмеження частоти

      Кошик заповнено

      429
    4. Перевірка

      Неправильне поле, невідомий ID або такого запису немає

      400404409
    5. Готово

      Створено, прочитано, оновлено або видалено

      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 досі працюють. Кожна надає читання і запис контактів або активностей.

    Пагінація

    Кожна кінцева точка списку приймає ці параметри запиту.

    ПолеТипОпис
    pageintegerНомер сторінки (за замовчуванням: 1)
    per_pageintegerЗаписів на сторінку, макс. 100 (за замовчуванням: 25)
    sort_bystringПоле для сортування (залежить від типу запису)
    sort_orderstring"asc" або "desc" (за замовчуванням: "desc")
    searchstringПовнотекстовий пошук за ключовими полями
    Пагінована відповідь
    {
      "success": true,
      "data": {
        "items": [ ... ],
        "pagination": { "page": 1, "per_page": 25, "total": 142, "total_pages": 6 }
      },
      "meta": { ... }
    }

    Ресурси

    Контакти

    Створити або імпортувати контакт

    POST/v1-public-contacts
    Право доступуcontacts:writeабоcontact_ingest

    Створює контакт або оновлює той, з яким є збіг. Може створити або пов'язати компанію за назвою чи доменом.

    Тіло запиту
    {
      "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_namestringІм'я контакту
    last_namestringПрізвище контакту
    emailstringЗіставляється з наявним контактом
    phonestringНомер телефону
    titlestringПосада
    company_namestringСтворює компанію, якщо вона нова
    company_domainstringЗіставляє або створює компанію
    sourcestringМітка джерела ліда
    signal_strengthnumberОцінка наміру, від 0 до 100 (за замовчуванням: 50)
    messagestringДовільне повідомлення, наприклад із форми
    tagsstring[]До 20 міток
    Відповідь
    {
      "success": true,
      "data": {
        "contact_id": "uuid",
        "company_id": "uuid",
        "is_new_contact": true,
        "is_new_company": false
      },
      "meta": { ... }
    }

    201, коли контакт створено, 200, коли наявний оновлено.

    Пакетний імпорт контактів

    POST/v1-public-contacts-batch
    Право доступуcontacts:writeабоcontact_ingest

    До 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 КБ.

    Отримати контакт або список контактів

    GET/v1-public-contacts-crud?id={uuid}

    Один контакт за ID разом із його компанією.

    GET/v1-public-contacts-crud?page=1&per_page=25

    Сторінка контактів.

    Право доступуcontacts:read
    ФільтриТипОпис
    emailstringТочна електронна пошта
    company_iduuidКонтакти цієї компанії
    sourcestringТочне джерело ліда
    searchstringСлова в імені, прізвищі або електронній пошті

    Сортувати за: created_at, updated_at, first_name, last_name, email

    Оновити контакт

    PATCH/v1-public-contacts-crud?id={uuid}
    Право доступуcontacts:write
    Тіло запиту
    { "title": "Senior Product Manager", "phone": "+1-555-999-0000" }

    Можна оновити: first_name, last_name, email, phone, title, company_id, source, birthday. Надсилайте лише те, що змінюється.

    Видалити контакт

    DELETE/v1-public-contacts-crud?id={uuid}
    Право доступуcontacts:write
    Відповідь
    { "success": true, "data": { "deleted": true, "id": "uuid" } }

    Компанії

    Створити компанію

    POST/v1-public-companies
    Право доступуcompanies:write

    Якщо компанія з таким доменом уже є, її оновлено, і виклик відповідає 200. Інакше створюється нова (201), і для неї потрібна назва.

    Тіло запиту
    {
      "name": "Acme Inc",
      "domain": "acme.com",
      "industry": "Technology",
      "size": "51-200",
      "website": "https://acme.com",
      "city": "San Francisco",
      "country": "US"
    }
    ПолеТипОпис
    namestringОбов'язкове під час створення
    domainstringЗіставляється з наявною компанією
    industrystringГалузь
    sizestringДіапазон розміру, наприклад 51-200
    websitestringURL вебсайту
    phonestringНомер телефону
    citystringМісто
    statestringШтат або регіон
    countrystringКод країни

    Отримати компанію або список компаній

    GET/v1-public-companies?id={uuid}
    GET/v1-public-companies?page=1&per_page=25
    Право доступуcompanies:read
    ФільтриТипОпис
    domainstringТочний домен
    industrystringТочна галузь
    searchstringСлова в назві або домені

    Сортувати за: created_at, updated_at, name, domain

    Оновити компанію

    PATCH/v1-public-companies?id={uuid}
    Право доступуcompanies:write
    Тіло запиту
    { "industry": "SaaS", "size": "201-500" }

    Можна оновити: усі поля вище. Надсилайте лише те, що змінюється.

    Видалити компанію

    DELETE/v1-public-companies?id={uuid}
    Право доступуcompanies:write

    Угоди

    Створити угоду

    POST/v1-public-deals
    Право доступуdeals:write

    Потрібні назва, а також вартість або company_id.

    Тіло запиту
    {
      "title": "Enterprise License: Acme",
      "value": 50000,
      "currency": "USD",
      "stage": "Proposal",
      "expected_close_date": "2026-04-15",
      "company_id": "uuid",
      "contact_id": "uuid"
    }
    ПолеТипОпис
    titlestring (обов'язкове)Назва угоди
    valuenumberСума угоди
    currencystringКод валюти (за замовчуванням: валюта робочого простору)
    stagestringНазва або ID етапу (за замовчуванням: перший етап)
    statusstringopen, won або lost (за замовчуванням: open)
    probabilitynumberЙмовірність перемоги, від 0 до 100
    expected_close_datedateYYYY-MM-DD
    company_iduuidПов'язана компанія
    contact_iduuidПов'язаний контакт
    pipeline_iduuidВоронка (за замовчуванням: основна воронка робочого простору)
    assigned_touuidВласник, учасник робочого простору (за замовчуванням: творець ключа)
    notesstringДовільний текст

    Отримати угоду або список угод

    GET/v1-public-deals?id={uuid}
    GET/v1-public-deals?page=1&per_page=25
    Право доступуdeals:read
    ФільтриТипОпис
    stagestringТочна назва етапу
    statusstringopen, won або lost
    company_iduuidУгоди цієї компанії
    pipeline_iduuidУгоди в цій воронці
    searchstringСлова в назві

    Сортувати за: created_at, updated_at, title, value, expected_close_date

    Оновити угоду

    PATCH/v1-public-deals?id={uuid}
    Право доступуdeals:write
    Тіло запиту
    { "stage": "Negotiation", "probability": 80 }

    Новий pipeline_id без етапу переміщує угоду на перший етап цієї воронки.

    Видалити угоду

    DELETE/v1-public-deals?id={uuid}
    Право доступуdeals:write

    Завдання

    Створити завдання

    POST/v1-public-tasks
    Право доступуtasks:write
    Тіло запиту
    {
      "title": "Follow up with Acme",
      "description": "Send proposal by Friday",
      "priority": "high",
      "due_date": "2026-03-01",
      "contact_id": "uuid",
      "deal_id": "uuid"
    }
    ПолеТипОпис
    titlestring (обов'язкове)Назва завдання
    descriptionstringОпис завдання
    statusstringopen або completed (за замовчуванням: open)
    prioritystringlow, medium або high (за замовчуванням: medium)
    task_typestringtodo, email, call, meeting, linkedin_message, linkedin_connection або custom
    due_datedateYYYY-MM-DD
    assigned_touuidУчасник робочого простору (за замовчуванням: творець ключа)
    contact_iduuidПов'язаний контакт
    company_iduuidПов'язана компанія
    deal_iduuidПов'язана угода

    Отримати завдання або список завдань

    GET/v1-public-tasks?id={uuid}
    GET/v1-public-tasks?page=1&per_page=25
    Право доступуtasks:read
    ФільтриТипОпис
    statusstringopen або completed
    prioritystringlow, medium або high
    assigned_touuidЗавдання цього учасника
    contact_iduuidЗавдання цього контакту
    company_iduuidЗавдання цієї компанії
    deal_iduuidЗавдання цієї угоди
    searchstringСлова в назві

    Сортувати за: created_at, updated_at, title, due_date, priority

    Оновити завдання

    PATCH/v1-public-tasks?id={uuid}
    Право доступуtasks:write
    Тіло запиту
    { "status": "completed", "description": "Proposal sent" }

    Надішліть status completed, щоб завершити завдання, і open, щоб відкрити його знову. Завдання з відкритими підзавданнями не можна завершити.

    Видалити завдання

    DELETE/v1-public-tasks?id={uuid}
    Право доступуtasks:write

    Рахунки

    Створити рахунок

    POST/v1-public-invoices
    Право доступуinvoices:write

    Потрібні 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_numberstring (обов'язкове)Унікальний у робочому просторі
    totalnumber (обов'язкове)Загальна сума
    statusstringdraft, sent, paid, partially_paid, overdue або cancelled (за замовчуванням: draft)
    issue_datedateYYYY-MM-DD (за замовчуванням: сьогодні)
    due_datedateYYYY-MM-DD
    subtotalnumberСума без податків
    tax_amountnumberСума податку
    currencystringКод валюти
    company_iduuidКомпанія-платник
    notesstringДовільний текст
    line_itemsjsonПозиції рахунку, зберігаються в надісланому вигляді

    Отримати рахунок або список рахунків

    GET/v1-public-invoices?id={uuid}
    GET/v1-public-invoices?page=1&per_page=25
    Право доступуinvoices:read
    ФільтриТипОпис
    statusstringТочний статус
    company_iduuidРахунки цієї компанії
    searchstringНомер рахунку містить

    Сортувати за: created_at, updated_at, invoice_number, due_date, total, issue_date

    Оновити рахунок

    PATCH/v1-public-invoices?id={uuid}
    Право доступуinvoices:write
    Тіло запиту
    { "status": "sent", "due_date": "2026-04-01" }

    Видалити рахунок

    DELETE/v1-public-invoices?id={uuid}
    Право доступуinvoices:write

    Активності

    Створити або імпортувати активність

    POST/v1-public-activities
    Право доступуactivities:writeабоactivity_ingest

    Записує подію з 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.

    jira_issuesupport_ticketform_submissioncontact_submissionwebhookexternal_activity

    Прив'язка

    • entity_emailКонтакт із цією електронною поштою
    • entity_domainКомпанія з цим доменом
    • contact_id · company_id · deal_idЦей запис, якщо він у вашому робочому просторі

    Без збігу подія все одно записується, activity_id дорівнює null, і в хронології нічого не з'являється.

    Отримати активність або список активностей

    GET/v1-public-activities-crud?id={uuid}
    GET/v1-public-activities-crud?page=1&per_page=25
    Право доступуactivities:read
    ФільтриТипОпис
    typestringТип у хронології, наприклад note, call, email, meeting або task
    contact_iduuidАктивності цього контакту
    company_iduuidАктивності цієї компанії
    deal_iduuidАктивності цієї угоди
    searchstringСлова в назві

    Сортувати за: created_at, type, title

    Видалити активність

    DELETE/v1-public-activities-crud?id={uuid}
    Право доступуactivities:write

    Відповіді форм Inbound

    Надіслати відповідь форми

    POST/v1-public-inbound-submissions
    Право доступуinbound:submit

    Для форми на вашому сайті або в іншому інструменті форм. Кожна відповідь спершу зберігається, а потім проходить шлях ліда, налаштований в 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_idstring (обов'язкове)ID форми з вкладки Connection: зрозумілий Form ID, якщо його задано, або довгий id. Працюють обидва.
    external_idstringВаш власний id цієї відповіді. Повторне надсилання повертає 200 duplicate і нічого нового не зберігає. До 200 символів.
    emailstring (обов'язкове)Email людини. Обов'язковий, напряму або через одну з назв нижче.
    namestringПовне ім'я. Або надсилайте first_name і last_name.
    companystringНазва компанії.
    company_domainstringСайт компанії. Без нього використовується домен email, якщо це не безкоштовний поштовий сервіс.
    phone, titlestringЗадається для нового контакту. Наявний контакт, знайдений за email, не змінюється.
    message, …stringБудь-який інший ключ, наприклад message чи budget, зберігається як відповідь у записі відповіді та на таймлайні контакту.
    fieldsobjectВідповіді можуть бути й тут, або глибше вкладені. Вкладені значення читаються за шляхом через крапку, наприклад contact.email.
    utmobjectutm_source, utm_medium та інші, для атрибуції.
    page_url, referrerstringСторінка, на якій була форма, і звідки прийшов відвідувач.

    Назви, які читаються без налаштування

    • 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 форми. На вашому боці нічого не змінюється.

    Відповідь (202)
    {
      "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" }
    }

    Відповіді

    СтатусКодЗначення
    202acceptedЗбережено, і шлях ліда виконано.
    202heldЗбережено, але затримано як імовірний спам, доки хтось не перегляне в розділі гігієна даних.
    200duplicateЦей external_id уже отримано для форми. Нічого нового не збережено.
    400VALIDATION_ERRORНе знайдено дійсного email, або form_id має неправильний формат. details.unmapped_keys перелічує, що було надіслано, але не прочитано.
    403EXTERNAL_FORMS_DISABLEDЗовнішні форми вимкнено в Inbound, Setup, Lead capture.
    404NOT_FOUNDУ робочому просторі ключа немає форми з цим form_id.
    409FORM_NOT_EXTERNALЦю форму створено в Lumenbase. Вона використовує свій код вбудовування, а не цю кінцеву точку.
    409FORM_NOT_PUBLISHEDФорма є чернеткою або в архіві. Спершу опублікуйте її.

    Відповідь називає лише запис відповіді. Ключ, який може тільки надсилати, не дізнається, які записи існують.

    Надсилайте зі свого сервера, ніколи з коду сторінки: будь-хто може прочитати ключ у браузері. Повторюйте 503 з тим самим external_id, щоб відповідь не зберіглася двічі.

    Помилки

    СтатусКодЗначення
    400VALIDATION_ERRORПоле відсутнє, має неправильний формат або не дозволене. details.field називає його, якщо воно є.
    401UNAUTHORIZEDAPI-ключ відсутній, має неправильний формат або відкликаний. Надсилайте Authorization: Bearer <key>.
    403FORBIDDENКлючу бракує права доступу. details.required_scope називає його.
    404NOT_FOUNDТакого запису немає в цьому робочому просторі, або його видалено.
    405METHOD_NOT_ALLOWEDКінцева точка не підтримує цей метод.
    409CONFLICTЗапис із таким унікальним значенням уже існує, наприклад номер рахунку.
    410GONEЗастаріла кінцева точка, виведена з ужитку після дати Sunset. Тіло відповіді називає її заміну.
    413PAYLOAD_TOO_LARGEТіло перевищує ліміт розміру: 50 КБ, або 500 КБ для пакетного запиту. Деякі кінцеві точки повідомляють про це як 400.
    429RATE_LIMIT_EXCEEDEDКошик обмеження частоти заповнено. Зачекайте стільки секунд, скільки вказано в Retry-After.
    500INTERNAL_ERRORПомилка на нашому боці. Надішліть нам meta.request_id.
    503SERVICE_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. Вони змінюються незалежно.

    Політика припинення підтримки

    Коли кінцева точка виходить з ужитку, вона повідомляє про це у власних відповідях, перш ніж перестати працювати.

    Кінцева точка, що виходить з ужитку, повертає

    • Deprecationtrue
    • Sunsetдата, коли вона перестане відповідати, у форматі дати HTTP.
    • Linkзаміна, з rel, що вказує на наступну версію.

    Дата Sunset настає щонайменше через шість місяців після оголошення. Після неї кінцева точка повертає 410 Gone і називає свою заміну.

    Виходить з ужитку зараз

    • POST /public-contactsPOST /v1-public-contactsSunset 26 листопада 2026
    • POST /public-activitiesPOST /v1-public-activitiesSunset 31 березня 2027

    Записуйте ці заголовки в лог. Це найраніше попередження, яке ви отримаєте, і воно приходить на відповідях, які загалом успішні.

    Опис OpenAPI

    Повний договір опубліковано як документ OpenAPI 3.1. Імпортуйте його в Postman чи Insomnia, згенеруйте клієнт або порівняйте між випусками, щоб побачити, що саме змінилося.

    Адреса документа
    https://lumenbase.io/api/openapi.json
    Завантажити
    curl -s https://lumenbase.io/api/openapi.json -o lumenbase-openapi.json

    Найкращі практики

    1. 1Дайте кожній інтеграції власний ключ, щоб можна було відкликати один, не зламавши решту.
    2. 2Надсилайте адресу електронної пошти з кожним контактом. Це найнадійніший критерій збігу.
    3. 3Надсилайте X-Idempotency-Key під час повтору імпорту.
    4. 4Масово завантажуйте контакти через пакетну кінцеву точку.
    5. 5Надсилайте форми з сайту на POST /v1-public-inbound-submissions ключем, що має лише inbound:submit. Тоді ключ, що витік, може лише надсилати відповіді.
    6. 6Стежте за X-RateLimit-Remaining, а при 429 чекайте Retry-After.
    7. 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

    Розпочати