Открыть CRM →

REST API для интеграций

Полный доступ к данным КластерМС для 1С, Bitrix24, amoCRM, BI-систем и внутренних сервисов. Готовые примеры на Python, PHP и 1С.

✓ REST + JSON ✓ API-ключи (не пароли) ✓ Rate limit защита ✓ HTTPS обязателен

01Что можно сделать

Типовые сценарии интеграции с внешними системами

📊

1С:Бухгалтерия / УНФ

Выгрузка контрагентов и приборов из 1С в КластерМС. Автоматические акты выполненных работ и счета из закрытых заявок обратно в 1С.

💼

Bitrix24, amoCRM

Синхронизация клиентов между CRM. Автоматическое создание сделок при новой заявке. Обновление статуса сделки при выдаче.

📈

BI и дашборды

Выгрузка агрегированных данных в Power BI, Grafana, Metabase. Собственные отчёты по метрологической загрузке и выручке.

📱

Мобильные приложения

Разработка собственных мобильных клиентов для инженеров-выездников. Быстрая приёмка приборов через QR-сканирование.

🔔

Telegram / Slack боты

Уведомления о новых заявках, просроченных поверках, готовых к выдаче приборах. Ежедневные отчёты руководителям.

🌐

Клиентский портал

Отдельный сайт для ваших заказчиков, где они видят состояние своих приборов, могут заказать поверку или получить документы.

02Аутентификация

API-ключи создаются в CRM: Настройки → 1С-интеграция. Ключ показывается один раз при создании.

Каждый запрос должен содержать заголовок:

import requests

BASE = "https://klasterms.com"
API_KEY = "klms_XXXXXXXXXXXXXXXXXXXXXX"

headers = {"X-API-Key": API_KEY}

# Проверка соединения
r = requests.get(f"{BASE}/1c/ping", headers=headers)
print(r.json())
# → {"ok": true, "service": "KlasterMS", "version": "1.0"}
<?php
$BASE = "https://klasterms.com";
$API_KEY = "klms_XXXXXXXXXXXXXXXXXXXXXX";

$ch = curl_init("{$BASE}/1c/ping");
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => ["X-API-Key: {$API_KEY}"],
    CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
print_r($response);
curl -H "X-API-Key: klms_XXXXXXXXXXXXXXXXXXXXXX" \
     https://klasterms.com/1c/ping
Функция ВыполнитьЗапросAPI(МетодHTTP, URLОтносительный, ТелоЗапроса = Неопределено)
    БазовыйURL = "https://klasterms.com";
    APIКлюч = "klms_XXXXXXXXXXXXXXXXXXXXXX";

    HTTPЗапрос = Новый HTTPЗапрос(URLОтносительный);
    HTTPЗапрос.Заголовки.Вставить("X-API-Key", APIКлюч);
    HTTPЗапрос.Заголовки.Вставить("Content-Type", "application/json");

    Если ТелоЗапроса <> Неопределено Тогда
        HTTPЗапрос.УстановитьТелоИзСтроки(
            ЗаписатьJSON(ТелоЗапроса),
            КодировкаТекста.UTF8
        );
    КонецЕсли;

    Соединение = Новый HTTPСоединение(БазовыйURL, 443, , , , , Новый ЗащищённоеСоединениеOpenSSL);
    Ответ = Соединение.ВызватьHTTPМетод(МетодHTTP, HTTPЗапрос);

    Возврат ПрочитатьJSON(Ответ.ПолучитьТелоКакСтроку());
КонецФункции

03Эндпоинты

Все методы под /1c/*. Полная OpenAPI-спецификация — /docs (только для авторизованных).

Клиенты (контрагенты)

GET /1c/clients Список клиентов (с фильтром modified_since)
POST /1c/clients Создать или обновить клиента (по ИНН)

Приборы (СИ)

GET /1c/instruments Список приборов (фильтры: client_id, modified_since)

Услуги (номенклатура)

GET /1c/services Прайс-лист услуг с ценами

Заказы (заявки)

GET /1c/orders Список заявок (фильтры: status, from_date, to_date)

Служебные

GET /1c/ping Проверка соединения и валидности ключа

04Пример: работа с клиентами

# Получить всех клиентов, изменённых после указанной даты
r = requests.get(
    f"{BASE}/1c/clients",
    headers=headers,
    params={"modified_since": "2026-01-01T00:00:00"},
)
for client in r.json()["items"]:
    print(client["name"], client["inn"])

# Создать нового клиента (или обновить существующего по ИНН)
r = requests.post(
    f"{BASE}/1c/clients",
    headers=headers,
    json={
        "name": "ООО Пример",
        "inn": "7712345678",
        "kpp": "771201001",
        "address": "г. Москва, ул. Тестовая, 1",
        "phone": "+7 495 000-00-00",
        "email": "info@example.ru",
    },
)
print(r.json())
<?php
// GET списка
$ch = curl_init("{$BASE}/1c/clients?modified_since=2026-01-01T00:00:00");
curl_setopt_array($ch, [
    CURLOPT_HTTPHEADER => ["X-API-Key: {$API_KEY}"],
    CURLOPT_RETURNTRANSFER => true,
]);
$result = json_decode(curl_exec($ch), true);
foreach ($result["items"] as $client) {
    echo "{$client['name']} — {$client['inn']}\n";
}

// POST создание
$ch = curl_init("{$BASE}/1c/clients");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        "X-API-Key: {$API_KEY}",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "name" => "ООО Пример",
        "inn" => "7712345678",
        "email" => "info@example.ru",
    ]),
    CURLOPT_RETURNTRANSFER => true,
]);
$result = json_decode(curl_exec($ch), true);
print_r($result);

05Пример: выгрузка заявок для актов

# Все завершённые заявки за январь 2026
r = requests.get(
    f"{BASE}/1c/orders",
    headers=headers,
    params={
        "status": "Завершено",
        "from_date": "2026-01-01",
        "to_date": "2026-01-31",
    },
)
for order in r.json()["items"]:
    print(f"№{order['number']} — {order['total_price']} ₽ — клиент {order['client_id']}")
    # Здесь можно создавать счета/акты в 1С
// Выгрузка завершённых заявок за месяц
Параметры = Новый Соответствие;
Параметры.Вставить("status", "Завершено");
Параметры.Вставить("from_date", "2026-01-01");
Параметры.Вставить("to_date", "2026-01-31");

СтрокаПараметров = "";
Для Каждого КВ Из Параметры Цикл
    Если СтрокаПараметров = "" Тогда
        СтрокаПараметров = "?";
    Иначе
        СтрокаПараметров = СтрокаПараметров + "&";
    КонецЕсли;
    СтрокаПараметров = СтрокаПараметров + КВ.Ключ + "=" + КВ.Значение;
КонецЦикла;

Ответ = ВыполнитьЗапросAPI("GET", "/1c/orders" + СтрокаПараметров);

Для Каждого Заявка Из Ответ["items"] Цикл
    Сообщить("№" + Заявка["number"] + " — " + Заявка["total_price"] + " ₽");
    // Далее создание документа "Реализация услуг" в 1С
КонецЦикла;

Готовы интегрировать?

Получите API-ключ в личном кабинете за 30 секунд и начинайте разработку.

Открыть CRM →