Nodul LogoNodul

Использование API

Создание API-токена

Для использования API необходимо создать API-токен в личном кабинете. Это можно сделать в разделе «Access Tokens»:

  1. Войдите на платформу
  2. Перейдите в раздел White Label → Access Tokens
  3. Нажмите кнопку «Create Token»
  4. Заполните форму создания токена и нажмите «OK»
  5. Скопируйте сгенерированный токен

Важно

Этот токен не хранится на серверах платформы. После нажатия кнопки «Done» вы больше не сможете получить к нему доступ. Обязательно скопируйте и сохраните токен в безопасном месте.

Использование API-токена в запросах

Для аутентификации добавьте query-параметр с именем AUTH_TOKEN и значением вашего созданного токена из раздела «Access Tokens» к каждому запросу. Например, для получения списка созданных планов подписки URL запроса будет выглядеть так:

https://api.nodul.ru/latenode/v1/whitelabel/plans?AUTH_TOKEN=YOUR_API_TOKEN

Это аналогично применяется ко всем другим запросам.

Общий контейнер ответа для всех запросов

Каждый запрос, описанный в этой статье, возвращает стандартный формат ответа:

{
  "success": true,
  "request_id": "Spawv468Km1GW7ljPqGR",
  "data": {},
  "errors": []
}

Поле data содержит данные, относящиеся к конкретному эндпоинту. Это поле data будет описано как формат ответа для каждого эндпоинта.

Коды ответов

Для успешных запросов код ответа всегда 200. Для неудачных запросов код ответа может быть либо 200, либо 500. Всегда проверяйте поле success в общем контейнере ответа. При возникновении ошибки это поле будет false, а массив errors не будет пустым.

Исключением является неавторизованный доступ к API. В этом случае код ответа всегда будет 401.

Обработка ошибок

Общий формат ответа об ошибке выглядит так:

{
  "success": false,
  "data": null,
  "errors": [
    {
      "message": "error message",
      "code": "error.code"
    }
  ],
  "request_id": "IvqOBSrwjaIozf2afu98"
}

Для получения кода ошибки всегда обращайтесь к индексу 0 массива errors. Этот индекс зарезервирован и всегда используется для передачи кода ошибки клиенту.

Например, при неавторизованном доступе к API вы получите следующий ответ:

{
  "success": false,
  "data": null,
  "errors": [
    {
      "message": "Unauthorized",
      "code": "auth.Unauthorized"
    }
  ],
  "request_id": "xbpvv24sh4m3mALFhyZk"
}

Получение списка квот вашей организации

URL:

https://api.nodul.ru/latenode/v1/whitelabel/quotas

Query-параметры:

Нет

Метод:

GET

Формат ответа (data):

- Field:       quotas
  Type:        array
  Description: Список квот
  Contents:
    - Field:       alias
      Type:        string
      Description: Алиас квоты. Возможные значения:
                   min_execution_charging_period_in_mcs — Минимальный период списания за выполнение (микросекунды)
                   regular_microcredits — Микрокредиты выполнения
                   connected_accounts_limit — Лимит подключённых аккаунтов
                   parallel_executions_limit — Лимит параллельных выполнений
                   ai_assistant_request_limit — Лимит запросов ИИ-ассистента
                   plug_and_play_microcredits — Plug&Play микротокены
                   min_triggering_interval_in_seconds — Минимальный интервал триггера (секунды)
                   active_scenarios_limit — Лимит активных сценариев
                   exec_history_availability_period_in_min — Период доступности истории выполнения (минуты)
      ---
    - Field:       value
      Type:        object
      Description: Объект со значением квоты
      Contents:
        - Field:       int64
          Type:        string
          Description: Числовое значение квоты (если применимо)
          ---
        - Field:       bool
          Type:        boolean
          Description: Булево значение квоты (если применимо)

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/quotas?AUTH_TOKEN=YOUR_API_TOKEN'

Пример ответа:

{
  "success": true,
  "request_id": "UrUNdGscccEE3TJViSL0",
  "data": {
    "quotas": [
      {
        "alias": "min_execution_charging_period_in_mcs",
        "value": {
          "int64": "3000000",
          "bool": false
        }
      },
      {
        "alias": "ai_assistant_request_limit",
        "value": {
          "int64": "5000",
          "bool": false
        }
      },
      {
        "alias": "parallel_executions_limit",
        "value": {
          "int64": "5000",
          "bool": false
        }
      },
      {
        "alias": "exec_history_availability_period_in_min",
        "value": {
          "int64": "6000",
          "bool": false
        }
      },
      {
        "alias": "plug_and_play_microcredits",
        "value": {
          "int64": "5000000000000",
          "bool": false
        }
      },
      {
        "alias": "active_scenarios_limit",
        "value": {
          "int64": "5000",
          "bool": false
        }
      },
      {
        "alias": "min_triggering_interval_in_seconds",
        "value": {
          "int64": "20",
          "bool": false
        }
      },
      {
        "alias": "connected_accounts_limit",
        "value": {
          "int64": "5000",
          "bool": false
        }
      },
      {
        "alias": "regular_microcredits",
        "value": {
          "int64": "10000000",
          "bool": false
        }
      }
    ]
  },
  "errors": []
}

Получение списка созданных планов

URL:

https://api.nodul.ru/latenode/v1/whitelabel/plans

Query-параметры:

Нет

Метод:

GET

Формат ответа:

- Field:        plans
  Type:         array
  Description:  Список тарифных планов
  Content:
    - Field:       id
      Type:        string
      Description: ID тарифного плана
      ---
    - Field:       name
      Type:        string
      Description: Название тарифного плана
      ---
    - Field:       status
      Type:        string
      Description: Текущий статус тарифного плана.
                   Возможные значения:
                   plan_status_archived – план архивирован
                   plan_status_active – план активен
      ---
    - Field:       features
      Type:        array
      Description: Список функций тарифного плана
      Content:
        - Field:       alias
          Type:        string
          Description: Алиас функции. Возможные значения:
                       min_execution_charging_period_in_mcs – Минимальный период списания за выполнение (микросекунды)
                       regular_microcredits – Микрокредиты выполнения
                       connected_accounts_limit – Лимит подключённых аккаунтов
                       parallel_executions_limit – Лимит параллельных выполнений
                       ai_assistant_request_limit – Лимит запросов ИИ-ассистента
                       plug_and_play_microcredits – Plug&Play микротокены
                       min_triggering_interval_in_seconds – Минимальный интервал триггера (секунды)
                       active_scenarios_limit – Лимит активных сценариев
                       exec_history_availability_period_in_min – Период доступности истории выполнения (минуты)
        ---
        - Field:       value
          Type:        object
          Description: Объект, содержащий значение функции
          Content:
            - Field:       int64
              Type:        string
              Description: Если функция числовая, значение указывается здесь
              ---
            - Field:       bool
              Type:        boolean
              Description: Если функция булева, значение указывается здесь
      ---
    - Field:       created_at
      Type:        string
      Description: Дата создания плана
      ---
    - Field:       updated_at
      Type:        string
      Description: Дата последнего обновления плана

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/plans?AUTH_TOKEN=YOUR_API_TOKEN'

Пример ответа:

{
  "success": true,
  "request_id": "dPuN9LQBj1GUG805x27B",
  "data": {
    "plans": [
      {
        "id": "0",
        "name": "Demo Test Plan",
        "status": "plan_status_active",
        "features": [
          {
            "alias": "min_execution_charging_period_in_mcs",
            "value": {
              "int64": "3000000",
              "bool": false
            }
          },
          {
            "alias": "regular_microcredits",
            "value": {
              "int64": "10000000000",
              "bool": false
            }
          },
          {
            "alias": "connected_accounts_limit",
            "value": {
              "int64": "100",
              "bool": false
            }
          },
          {
            "alias": "parallel_executions_limit",
            "value": {
              "int64": "10",
              "bool": false
            }
          },
          {
            "alias": "ai_assistant_request_limit",
            "value": {
              "int64": "500",
              "bool": false
            }
          },
          {
            "alias": "plug_and_play_microcredits",
            "value": {
              "int64": "10000000",
              "bool": false
            }
          },
          {
            "alias": "min_triggering_interval_in_seconds",
            "value": {
              "int64": "120",
              "bool": false
            }
          },
          {
            "alias": "active_scenarios_limit",
            "value": {
              "int64": "100",
              "bool": false
            }
          },
          {
            "alias": "exec_history_availability_period_in_min",
            "value": {
              "int64": "1440",
              "bool": false
            }
          }
        ],
        "created_at": "2025-04-29T13:00:15Z",
        "updated_at": "2025-04-29T13:00:15Z"
      }
    ]
  },
  "errors": []
}

Создание тарифного плана

URL:

https://api.nodul.ru/latenode/v1/whitelabel/plans

Метод:

POST

Body-параметры:

- Field:        name
  Type:         string
  Description:  Название нового тарифного плана
  ---

- Field:        features
  Type:         array
  Description:  Список функций нового плана
  Content:
    - Field:       alias
      Type:        string
      Description: Алиас функции. Возможные значения:
                   min_execution_charging_period_in_mcs – Минимальный период списания за выполнение (микросекунды)
                   regular_microcredits – Микрокредиты выполнения
                   connected_accounts_limit – Лимит подключённых аккаунтов
                   parallel_executions_limit – Лимит параллельных выполнений
                   ai_assistant_request_limit – Лимит запросов ИИ-ассистента
                   plug_and_play_microcredits – Plug&Play микротокены
                   min_triggering_interval_in_seconds – Минимальный интервал триггера (секунды)
                   active_scenarios_limit – Лимит активных сценариев
                   exec_history_availability_period_in_min – Период доступности истории выполнения (минуты)
      ---
    - Field:       value
      Type:        object
      Description: Объект, содержащий значение функции
      Content:
        - Field:       int64
          Type:        string
          Description: Указывается, если значение числовое
          ---
        - Field:       bool
          Type:        boolean
          Description: Указывается, если значение булево

Формат ответа (data):

- Field:        plan
  Type:         object
  Description:  Объект с данными созданного плана
  Content:
    - Field:       id
      Type:        string
      Description: ID нового тарифного плана
      ---
    - Field:       name
      Type:        string
      Description: Название нового тарифного плана
      ---
    - Field:       status
      Type:        string
      Description: Статус плана. Возможные значения:
                   plan_status_archived – план архивирован
                   plan_status_active – план активен
      ---
    - Field:       features
      Type:        array
      Description: Список функций
      Content:
        - Field:       alias
          Type:        string
          Description: Алиас функции
          ---
        - Field:       value
          Type:        object
          Description: Объект значения функции
          Content:
            - Field:       int64
              Type:        string
              Description: Числовое значение, если применимо
              ---
            - Field:       bool
              Type:        boolean
              Description: Булево значение, если применимо
      ---
    - Field:       created_at
      Type:        string
      Description: Дата создания плана
      ---
    - Field:       updated_at
      Type:        string
      Description: Дата последнего обновления плана

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/plans?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "name": "Plan Name",
    "features": [
        {
            "alias": "active_scenarios_limit",
            "value": {
                "int64": "1",
                "bool": false
            }
        },
        {
            "alias": "connected_accounts_limit",
            "value": {
                "int64": "1",
                "bool": false
            }
        },
        {
            "alias": "plug_and_play_microcredits",
            "value": {
                "int64": "1000000",
                "bool": false
            }
        },
        {
            "alias": "min_triggering_interval_in_seconds",
            "value": {
                "int64": "120",
                "bool": false
            }
        },
        {
            "alias": "min_execution_charging_period_in_mcs",
            "value": {
                "int64": "3000000",
                "bool": false
            }
        },
        {
            "alias": "exec_history_availability_period_in_min",
            "value": {
                "int64": "1",
                "bool": false
            }
        },
        {
            "alias": "regular_microcredits",
            "value": {
                "int64": "1000000",
                "bool": false
            }
        },
        {
            "alias": "parallel_executions_limit",
            "value": {
                "int64": "1",
                "bool": false
            }
        },
        {
            "alias": "ai_assistant_request_limit",
            "value": {
                "int64": "1",
                "bool": false
            }
        }
    ]
}'

Пример ответа:

{
  "success": true,
  "request_id": "Iit8HDuiyKSO6CuGGHzW",
  "data": {
    "plan": {
      "id": "0",
      "name": "Plan Name",
      "status": "plan_status_active",
      "features": [
        {
          "alias": "plug_and_play_microcredits",
          "value": {
            "int64": "1000000",
            "bool": false
          }
        },
        {
          "alias": "min_execution_charging_period_in_mcs",
          "value": {
            "int64": "3000000",
            "bool": false
          }
        },
        {
          "alias": "parallel_executions_limit",
          "value": {
            "int64": "1",
            "bool": false
          }
        },
        {
          "alias": "ai_assistant_request_limit",
          "value": {
            "int64": "1",
            "bool": false
          }
        },
        {
          "alias": "active_scenarios_limit",
          "value": {
            "int64": "1",
            "bool": false
          }
        },
        {
          "alias": "connected_accounts_limit",
          "value": {
            "int64": "1",
            "bool": false
          }
        },
        {
          "alias": "min_triggering_interval_in_seconds",
          "value": {
            "int64": "120",
            "bool": false
          }
        },
        {
          "alias": "exec_history_availability_period_in_min",
          "value": {
            "int64": "1",
            "bool": false
          }
        },
        {
          "alias": "regular_microcredits",
          "value": {
            "int64": "1000000",
            "bool": false
          }
        }
      ],
      "created_at": "2025-05-05T14:57:47.716Z",
      "updated_at": "2025-05-05T14:57:47.716Z"
    }
  },
  "errors": []
}

Обновление плана

URL:

https://api.nodul.ru/latenode/v1/whitelabel/plans/update

Метод:

POST

Query-параметры:

Нет

Body-параметры:

Важно

Этот API не поддерживает частичные обновления. Поля name и features обязательны и должны содержать полные новые (или старые, если изменения не требуются) значения.

- Field:        plan_id
  Type:         string
  Description:  ID плана для обновления
  ---
- Field:        name
  Type:         string
  Description:  Новое название плана
  ---
- Field:        features
  Type:         array
  Description:  Обновлённый список функций плана
  Contents:
    - Field:       alias
      Type:        string
      Description: Алиас функции. Возможные значения:
                   min_execution_charging_period_in_mcs — Минимальный период списания за выполнение (микросекунды)
                   regular_microcredits — Микрокредиты выполнения
                   connected_accounts_limit — Лимит подключённых аккаунтов
                   parallel_executions_limit — Лимит параллельных выполнений
                   ai_assistant_request_limit — Лимит запросов ИИ-ассистента
                   plug_and_play_microcredits — Plug&Play микрокредиты
                   min_triggering_interval_in_seconds — Минимальный интервал триггера (секунды)
                   active_scenarios_limit — Лимит активных сценариев
                   exec_history_availability_period_in_min — Период доступности истории выполнения (минуты)
      ---
    - Field:       value
      Type:        object
      Description: Объект значения функции
      Contents:
        - Field:       int64
          Type:        string
          Description: Целочисленное значение, если применимо
          ---
        - Field:       bool
          Type:        boolean
          Description: Булево значение, если применимо

Формат ответа (data):

Тело ответа пустое. См. поле `success` в общем контейнере ответа.

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/plans/update?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "plan_id": "0",
    "name": "new plan name",
    "features": [
        {
            "alias": "active_scenarios_limit",
            "value": {
                "int64": "1",
                "bool": false
            }
        },
        {
            "alias": "connected_accounts_limit",
            "value": {
                "int64": "1",
                "bool": false
            }
        },
        {
            "alias": "plug_and_play_microcredits",
            "value": {
                "int64": "1000000",
                "bool": false
            }
        },
        {
            "alias": "min_triggering_interval_in_seconds",
            "value": {
                "int64": "120",
                "bool": false
            }
        },
        {
            "alias": "min_execution_charging_period_in_mcs",
            "value": {
                "int64": "3000000",
                "bool": false
            }
        },
        {
            "alias": "exec_history_availability_period_in_min",
            "value": {
                "int64": "1",
                "bool": false
            }
        },
        {
            "alias": "regular_microcredits",
            "value": {
                "int64": "1000000",
                "bool": false
            }
        },
        {
            "alias": "parallel_executions_limit",
            "value": {
                "int64": "1",
                "bool": false
            }
        },
        {
            "alias": "ai_assistant_request_limit",
            "value": {
                "int64": "1",
                "bool": false
            }
        }
    ]
}'

Пример ответа:

{
  "success": true,
  "request_id": "Spawv468Km1GW7ljPqGR",
  "data": {},
  "errors": []
}

Архивирование плана

URL:

https://api.nodul.ru/latenode/v1/whitelabel/plans/archive

Метод:

POST

Body-параметры:

- Field:        plan_id
  Type:         string
  Description:  ID плана для архивирования

Формат ответа (data):

Тело ответа пустое. См. поле `success` в общем контейнере ответа.

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/plans/archive?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "plan_id": "0"
}'

Пример ответа:

{
  "success": true,
  "request_id": "rG0F38nQ4aE8Gy0TDh3C",
  "data": {},
  "errors": []
}

Получение списка подписок

URL:

https://api.nodul.ru/latenode/v1/whitelabel/subscriptions/list

Метод:

POST

Body-параметры:

- Field:        options
  Type:         object
  Description:  Опции запроса
  Contents:
    - Field:       include_consumption
      Type:        boolean
      Description: Включать ли информацию о потреблении ресурсов в ответ
  ---

- Field:        filters
  Type:         object
  Description:  Фильтры для выбора подписок
  Contents:
    - Field:       user_id
      Type:        string
      Description: Фильтр по ID пользователя. Может быть пустым
      ---
    - Field:       statuses
      Type:        array
      Description: Массив статусов подписок для фильтрации.
                   Возможные значения:
                   subscription_status_active — активная подписка
                   subscription_status_cancelled — отменённая подписка
      ---
    - Field:       consumption
      Type:        object
      Description: Фильтры потребления ресурсов
      Contents:
        - Field:       resources
          Type:        array
          Description: Типы ресурсов для анализа потребления.
                       Возможные значения:
                       billing_resource_execution_credits — кредиты выполнения
                       billing_resource_plug_and_play_credits — Plug&Play кредиты
          ---
        - Field:       start
          Type:        string
          Description: Начальная дата периода анализа. Если не указана, используется первое использование
          ---
        - Field:       end
          Type:        string
          Description: Конечная дата периода анализа. Если не указана, используется текущее время

Формат ответа (data):

- Field:        subscriptions
  Type:         array
  Description:  Список подписок
  Contents:
    - Field:       id
      Type:        string
      Description: ID подписки
      ---
    - Field:       plan_id
      Type:        string
      Description: ID связанного плана
      ---
    - Field:       user_id
      Type:        string
      Description: ID пользователя
      ---
    - Field:       status
      Type:        string
      Description: Текущий статус подписки
                   Возможные значения:
                   subscription_status_active — активная подписка
                   subscription_status_cancelled — отменённая подписка
      ---
    - Field:       consumption
      Type:        object
      Description: Информация о потреблении ресурсов (если запрошено)
      Contents:
        - Field:       execution_credits
          Type:        object
          Description: Использование микрокредитов выполнения
          Contents:
            - Field:       total
              Type:        string
              Description: Всего использовано кредитов
              ---
        - Field:       plug_and_play_credits
          Type:        object
          Description: Использование Plug&Play микротокенов
          Contents:
            - Field:       total
              Type:        string
              Description: Всего использовано токенов
      ---
    - Field:       created_at
      Type:        string
      Description: Дата создания подписки
      ---
    - Field:       cancelled_at
      Type:        string
      Description: Дата отмены подписки (если отменена)

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/subscriptions/list?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "options": {
        "include_consumption": true
    },
    "filters": {
        "user_id": "my_test_user_1",
        "statuses": ["subscription_status_active"],
        "consumption": {
            "resources": ["billing_resource_execution_credits"],
            "start": "2025-04-04T15:09:23.879Z",
            "end": "2025-05-05T15:09:23.879Z"
        }
    }
}'

Пример ответа:

{
  "success": true,
  "request_id": "HMI8jfzAIiuGH8bB2J1F",
  "data": {
    "subscriptions": [
      {
        "id": "0",
        "plan_id": "0",
        "user_id": "my_test_user_1",
        "status": "subscription_status_active",
        "consumption": {
          "execution_credits": {
            "total": "1"
          },
          "plug_and_play_credits": null
        },
        "created_at": "2025-05-05T14:19:39Z",
        "cancelled_at": null
      }
    ]
  },
  "errors": []
}

Назначение подписки пользователю

URL:

https://api.nodul.ru/latenode/v1/whitelabel/subscriptions

Метод:

POST

Query-параметры:

Нет

Body-параметры:

- Field:       user_id
  Type:        string
  Description: ID пользователя, которому будет назначена подписка
  ---

- Field:       plan_id
  Type:        string
  Description: ID тарифного плана для подписки

Формат ответа (data):

- Field:       subscription
  Type:        object
  Description: Объект с данными созданной подписки
  Contents:
    - Field:       id
      Type:        string
      Description: ID подписки
      ---
    - Field:       plan_id
      Type:        string
      Description: ID связанного тарифного плана
      ---
    - Field:       user_id
      Type:        string
      Description: ID пользователя
      ---
    - Field:       status
      Type:        string
      Description: Текущий статус подписки.
                   Возможные значения:
                   subscription_status_active — активная подписка
                   subscription_status_cancelled — отменённая подписка
      ---
    - Field:       consumption
      Type:        null
      Description: Всегда null, так как использование ещё не могло произойти
      ---
    - Field:       created_at
      Type:        string
      Description: Метка времени создания подписки
      ---
    - Field:       cancelled_at
      Type:        null

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/subscriptions?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "user_id": "my_test_user_1",
    "plan_id": "0"
}'

Пример ответа:

{
  "success": true,
  "request_id": "VbCf0CMPIJ8m3pc4u9vI",
  "errors": [],
  "data": {
    "subscription": {
      "id": "0",
      "plan_id": "0",
      "user_id": "my_test_user_1",
      "status": "subscription_status_active",
      "consumption": null,
      "created_at": "2025-05-05T15:26:10.320Z",
      "cancelled_at": null
    }
  }
}

Отмена подписки

URL:

https://api.nodul.ru/latenode/v1/whitelabel/subscriptions/cancel

Метод:

POST

Body-параметры:

- Field:       subscription_id
  Type:        number
  Description: ID подписки для отмены

Формат ответа (data):

Тело ответа отсутствует. См. поле `success` в общем контейнере ответа.

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/subscriptions/cancel?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "subscription_id": "0"
}'

Пример ответа:

{
  "success": true,
  "request_id": "J9KWRLlKIlP0tTPQOj6B",
  "errors": [],
  "data": {}
}

Получение списка пользователей

URL:

https://api.nodul.ru/latenode/v1/whitelabel/users/list

Метод:

POST

Query-параметры:

Нет

Body-параметры:

- Field:        options
  Type:         object
  Description:  Опции запроса
  Contents:
    - Field:       include_subscriptions
      Type:        boolean
      Description: Включать ли информацию о подписках
      ---
    - Field:       include_consumption
      Type:        boolean
      Description: Включать ли информацию о потреблении ресурсов
  ---

- Field:        filters
  Type:         object
  Description:  Фильтры потребления ресурсов
  Contents:
    - Field:       consumption
      Type:        object
      Description: Фильтры потребления
      Contents:
        - Field:       resources
          Type:        array
          Description: Типы ресурсов для фильтрации. Возможные значения:
                       billing_resource_execution_credits — кредиты выполнения
                       billing_resource_plug_and_play_credits — Plug&Play кредиты
          ---
        - Field:       start
          Type:        string
          Description: Начальная дата периода. Если не указана, используется первое использование
          ---
        - Field:       end
          Type:        string
          Description: Конечная дата периода. Если не указана, используется текущее время

Формат ответа (data):

- Field:       users
  Type:        array
  Description: Список пользователей
  Contents:
    - Field:       user_id
      Type:        string
      Description: Уникальный ID пользователя
      ---
    - Field:       subscriptions
      Type:        array
      Description: Подписки пользователя (если include_subscriptions = true)
      Contents:
        - Field:       id
          Type:        string
          Description: ID подписки
          ---
        - Field:       plan_id
          Type:        string
          Description: ID связанного тарифного плана
          ---
        - Field:       user_id
          Type:        string
          Description: ID пользователя
          ---
        - Field:       status
          Type:        string
          Description: Текущий статус подписки.
                       Возможные значения:
                       subscription_status_active — активная подписка
                       subscription_status_cancelled — отменённая подписка
          ---
        - Field:       consumption
          Type:        object
          Description: Информация о потреблении ресурсов (если include_consumption = true)
          Contents:
            - Field:       execution_credits
              Type:        object
              Description: Использование микрокредитов выполнения
              Contents:
                - Field:       total
                  Type:        string
                  Description: Всего использовано кредитов
                ---
            - Field:       plug_and_play_credits
              Type:        object
              Description: Использование Plug&Play токенов
              Contents:
                - Field:       total
                  Type:        string
                  Description: Всего использовано токенов
          ---
        - Field:       created_at
          Type:        string
          Description: Метка времени создания подписки
          ---
        - Field:       cancelled_at
          Type:        string
          Description: Метка времени отмены подписки (если отменена)

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/users/list?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "options": {
        "include_subscriptions": true,
        "include_consumption": true
    },
    "filters": {
        "consumption": {
            "resources": ["billing_resource_execution_credits"],
            "start": "2025-05-01T15:00:00.000Z",
            "end": "2025-05-06T15:00:00.000Z"
        }
    }
}'

Пример ответа:

{
  "success": true,
  "request_id": "iPl0JoZDJmQZnjkxoJXU",
  "data": {
    "users": [
      {
        "user_id": "my_test_user_1",
        "subscriptions": [
          {
            "id": "0",
            "plan_id": "0",
            "user_id": "my_test_user_1",
            "status": "subscription_status_active",
            "consumption": {
              "execution_credits": {
                "total": "1"
              },
              "plug_and_play_credits": null
            },
            "created_at": "2025-05-05T14:19:39Z",
            "cancelled_at": null
          },
          {
            "id": "0",
            "plan_id": "0",
            "user_id": "my_test_user_1",
            "status": "subscription_status_cancelled",
            "consumption": null,
            "created_at": "2025-05-05T15:26:10Z",
            "cancelled_at": null
          }
        ]
      }
    ]
  },
  "errors": []
}

Получение отчёта о потреблении ресурсов

URL:

https://api.nodul.ru/latenode/v1/whitelabel/reports/consumption

Метод:

POST

Body-параметры:

- Field:        start
  Type:         string
  Description:  Начальная дата периода. Если не указана, используется дата первого использования.
  ---

- Field:        end
  Type:         string
  Description:  Конечная дата периода. Если не указана, используется текущее время.
  ---

- Field:        options
  Type:         object
  Description:  Опции генерации отчёта
  Contents:
    - Field:       include_total
      Type:        boolean
      Description: Включать ли общее потребление по всем пользователям.
      ---
    - Field:       include_per_user
      Type:        boolean
      Description: Включать ли детали потребления для каждого пользователя.
  ---

- Field:        filters
  Type:         object
  Description:  Фильтры по типам ресурсов
  Contents:
    - Field:       resources
      Type:        array
      Description: Список типов ресурсов. Возможные значения:
                   billing_resource_execution_credits — кредиты выполнения
                   billing_resource_plug_and_play_credits — Plug&Play кредиты

Формат ответа (data):

- Field:        total
  Type:         object
  Description:  Общее потребление ресурсов (если include_total = true)
  Contents:
    - Field:       execution_credits
      Type:        object
      Description: Потребление микрокредитов выполнения
      Contents:
        - Field:       total
          Type:        string
          Description: Всего использовано кредитов
      ---
    - Field:       plug_and_play_credits
      Type:        object
      Description: Потребление Plug&Play микротокенов
      Contents:
        - Field:       total
          Type:        string
          Description: Всего использовано токенов
  ---

- Field:        users
  Type:         array
  Description:  Детали потребления по пользователям (если include_per_user = true)
  Contents:
    - Field:       user_id
      Type:        string
      Description: ID пользователя
      ---
    - Field:       consumption
      Type:        object
      Description: Потребление ресурсов
      Contents:
        - Field:       execution_credits
          Type:        object
          Description: Потребление микрокредитов выполнения
          Contents:
            - Field:       total
              Type:        string
              Description: Всего использовано кредитов
          ---
        - Field:       plug_and_play_credits
          Type:        object
          Description: Потребление Plug&Play токенов
          Contents:
            - Field:       total
              Type:        string
              Description: Всего использовано токенов
  ---

- Field:        start
  Type:         string
  Description:  Начальная дата периода отчёта
  ---

- Field:        end
  Type:         string
  Description:  Конечная дата периода отчёта

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/reports/consumption?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "start": "2025-05-01T15:00:00.000Z",
    "end": "2025-05-06T15:00:00.000Z",
    "options": {
        "include_total": true,
        "include_per_user": true
    },
    "filters": {
        "resources": [
            "billing_resource_execution_credits",
            "billing_resource_plug_and_play_credits"
        ]
    }
}'

Пример ответа:

{
  "success": true,
  "request_id": "Vwauyaa7L4lOjn4ZK2Xy",
  "data": {
    "total": {
      "execution_credits": {
        "total": "1"
      },
      "plug_and_play_credits": null
    },
    "users": [
      {
        "user_id": "my_test_user_1",
        "consumption": {
          "execution_credits": {
            "total": "1"
          },
          "plug_and_play_credits": null
        }
      }
    ],
    "start": "2025-05-01T15:00:00Z",
    "end": "2025-05-06T15:00:00Z"
  },
  "errors": []
}

Списание кредитов

URL:

https://api.nodul.ru/latenode/v1/whitelabel/billing/resource

Метод:

POST

Body-параметры:

- Field:        user_id
  Type:         string
  Description:  ID пользователя
  ---

- Field:        resource
  Type:         string
  Description:  Тип добавляемого ресурса
  ---

- Field:        quantity
  Type:         int64
  Description:  Количество добавляемого ресурса

Формат ответа (data):

Тело ответа пустое. См. поле `success` в общем контейнере ответа.

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/billing/resource?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "user_id": "10011",
    "resource": "billing_resource_plug_and_play_credits",
    "quantity": 10
}'

Пример ответа:

{
  "success": true,
  "request_id": "Spawv468Km4877fGR",
  "data": {},
  "errors": []
}

Добавление пользователя в пространство

URL:

https://api.nodul.ru/latenode/v1/whitelabel/space/access/grant

Метод:

POST

Body-параметры:

- Field:        grantee_user_id
  Type:         string
  Description:  Внутренний ID пользователя, подключаемого к пространству
  ---

- Field:        owner_user_id
  Type:         string
  Description:  Внутренний ID пользователя-владельца пространства. Пропускается, когда add_to_tenant_space = true
  ---

- Field:        add_to_tenant_space
  Type:         boolean
  Description:  Если true, пользователь будет подключён только к пространству тенанта
  ---

- Field:        role_id
  Type:         int64
  Description:  ID предоставляемой роли

Формат ответа (data):

Тело ответа пустое. См. поле `success` в общем контейнере ответа.

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/space/access/grant?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "grantee_user_id": "test_user_2",
    "owner_user_id": "test_user_1",
    "add_to_tenant_space": false,
    "role_id": 3
}'

Пример ответа:

{
  "success": true,
  "request_id": "Spawakhdfm4877fGR",
  "data": {},
  "errors": []
}

Удаление пользователя из пространства

URL:

https://api.nodul.ru/latenode/v1/whitelabel/space/access/revoke

Метод:

POST

Body-параметры:

- Field:        grantee_user_id
  Type:         string
  Description:  Внутренний ID пользователя, подключённого к пространству
  ---

- Field:        owner_user_id
  Type:         string
  Description:  Внутренний ID пользователя-владельца пространства. Пропускается, когда revoke_from_tenant_space = true
  ---

- Field:        revoke_from_tenant_space
  Type:         boolean
  Description:  Если true, пользователь будет отключён только от пространства тенанта

Формат ответа (data):

Тело ответа пустое. См. поле `success` в общем контейнере ответа.

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/space/access/revoke?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "grantee_user_id": "test_user_2",
    "owner_user_id": "test_user_1",
    "revoke_from_tenant_space": false
}'

Пример ответа:

{
  "success": true,
  "request_id": "Spa78377hfwakhdfm48GR",
  "data": {},
  "errors": []
}

Обновление названия пространства

URL:

https://api.nodul.ru/latenode/v1/whitelabel/space/update

Метод:

POST

Body-параметры:

- Field:        space_id
  Type:         string
  Description:  ID пространства
  ---

- Field:        name
  Type:         string
  Description:  Новое название пространства

Формат ответа (data):

- Field: space
  Type: object
  Description: Изменённое пространство
  Contents:
    - Field: id
      Type: string
      Description: ID пространства
      ---
    - Field: name
      Type: string
      Description: Новое название пространства
      ---
    - Field: status
      Type: string
      Description: Статус названия

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/space/update?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "space_id": "32",
    "name": "new_name"
}'

Пример ответа:

{
  "success": true,
  "request_id": "KMBhDbT7734zuaR7CR",
  "data": {
    "space": {
      "id": "32",
      "name": "new_name",
      "status": "new"
    }
  },
  "errors": []
}

Получение сценариев из пространства

URL:

https://api.nodul.ru/latenode/v1/whitelabel/scenarios/list

Метод:

POST

Body-параметры:

- Field:        space_id
  Type:         string
  Description:  ID пространства
  ---

- Field:        options
  Type:         object
  Description:  Опции ответа
  Contents:
    - Field: count_only
      Type: boolean
      Description: Если true, будет предоставлен только счётчик

Формат ответа (data):

- Field: scenarios_count
  Type: string
  Description: Общее количество сценариев, доступных для тенанта
  ---

- Field: folders
  Type: array
  Description: Список папок со сценариями
  ---

- Field: scenarios
  Type: array
  Description: Список сценариев
  Contents:
    - Field: id
      Type: string
      Description: Уникальный идентификатор сценария
      ---

    - Field: title
      Type: string
      Description: Название сценария
      ---

    - Field: description
      Type: string
      Description: Описание сценария
      ---

    - Field: node_count
      Type: string
      Description: Количество узлов в сценарии
      ---

    - Field: active
      Type: boolean
      Description: Указывает, активен ли сценарий
      ---

    - Field: status
      Type: string
      Description: Текущий статус сценария (например, deployed)
      ---

    - Field: last_version
      Type: string
      Description: Последняя развёрнутая версия сценария
      ---

    - Field: folder_id
      Type: string
      Description: Идентификатор папки, к которой принадлежит сценарий
      ---

    - Field: created_at
      Type: string
      Description: Метка времени создания сценария в формате ISO 8601
      ---

    - Field: last_modified_at
      Type: string
      Description: Метка времени последнего изменения сценария в формате ISO 8601
      ---

    - Field: created_by
      Type: object
      Description: Информация о пользователе, создавшем сценарий
      Contents:
        - Field: user_id
          Type: string
          Description: Идентификатор пользователя, создавшего сценарий
          ---

    - Field: last_modified_by
      Type: object
      Description: Информация о пользователе, последним изменившем сценарий
      Contents:
        - Field: user_id
          Type: string
          Description: Идентификатор пользователя, последним изменившего сценарий
          ---

Пример запроса:

curl --location 'https://api.nodul.ru/latenode/v1/whitelabel/scenarios/list?AUTH_TOKEN=YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "space_id": 32, 
    "options": { 
        "count_only": false 
    }
}'

Пример ответа:

{
  "success": true,
  "request_id": "Y3X5oDrjJz93j4hgg3CXcb",
  "data": {
    "scenarios_count": "1",
    "folders": [],
    "scenarios": [
      {
        "id": "29adf0adfa7df8df6adff",
        "title": "Test scenario",
        "node_count": "2",
        "active": true,
        "status": "deployed",
        "last_version": "3",
        "folder_id": "",
        "description": "",
        "created_at": "2025-04-15T17:46:56.055Z",
        "last_modified_at": "2025-04-15T17:50:12.217Z",
        "created_by": {
          "user_id": "test_user_1"
        },
        "last_modified_by": {
          "user_id": "test_user_1"
        }
      }
    ]
  },
  "errors": []
}